ind在matlab是什么意思,Undefined function or variable "bestindever".这句什么意思,求教

function [bestfever,bestindever]=GAmain(N,Pc,Pm,T,Q,P)

clear

% GAmain 函数是遗传算法的主程序

% N,Pc,Pm,T,Q,P 为输入参数

% bestfever 为输出的迄今为止的最优适应度值

%bestindever 为对应的最优个体,即最优调度方案

N=input('输入种群大小: N=');   % 种群大小

Pc=input('输入交叉概率: Pc=');   % 交叉概率

Pm=input('输入变异概率: Pm=');   % 变异概率

T=input('输入终止代数:T=');  % 终止代数

Q=input('输入操作机器阵:Q=')  % 操作机器阵,Q(i,j)表示第 i 个工件第 j 道工序的机器代号

P=input('输入操作时间阵:P=')  % 操作时间阵,P(i,j)表示第 i 个工件第 j 道工序的加工时间

m=max(max(Q));  % 机器数量

[n,k]=size(Q);  % n 为工件个数,k 为所有工件的最大工序数,某个工件的工序数小于 k 时,其工序数至 k位置处的机器代号与加工时间均为 0

g=zeros(n,1);   % 存放各工件工序数的列向量,初始化为 0

for i=1:n

for j=1:k

if Q(i,j)~=0

g(i)=g(i)+1;  % g(1),g(2),…,g(n)分别表示工件 1,2,…,n 的工序数

end

end

end

K=sum(g);   % K 表示总的工序数

pop=initpop(N,K,n,g);   % 产生初始种群

bestfever=0;

for t=1:T

newpop=crossover(pop,n,Pc); % 对 pop 进行交叉运算产生新的种群 newpop

fitvalue=calfitvalue(m,n,newpop,Q,P); % 计算种群中每个个体的适应值

[newpop1,fitvalue1]=selection(newpop,fitvalue,N,K);  % 对 newpop 进行选择复制运算产生新的种群 newpop1

[bestindividual,bestfit]=best(newpop1,fitvalue1);  % 得到种群 newpop1 中的最优个体与最优适应值

if bestfit>=bestfever

bestfever=bestfit;  % 到目前为止最优适应度值

bestindever=bestindividual;   % 最优适应值对应的个体

end

fitmaxever(t)=bestfever;   % 到目前 t 代为止最优适应度值

fitmax(t)=max(fitvalue1);   % 计算种群中个体适应值的最大值

fitmean(t)=mean(fitvalue1);   % 计算种群中个体适应值的平均值

newpop2=mutation(newpop1,Pm); % 对 newpop1 进行变异运算产生新的种群 newpop2

pop=newpop2;  % 将 newpop2 赋予 pop 进行下一代的迭代遗传运算

end

bestfever  % 输出算法终止时的最优值

bestindever  % 输出算法终止时的最优个体即最优调度

x=1:T;  % 遗传代数变化

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值