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小时内删除。
发表评论