ind在matlab是什么意思,Undefinedfunctionorvariablebe。。。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 的⼯序数
variable used in lambdaend
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;  % 遗传代数变化

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。