📄 example5_19.m
字号:
%维数n=5
%车间尺寸
H=5;
G=5;
%x方向尺寸向量
S=[3 1 1.5 1.5 0.8];
smin=min(S)/2;
%y方向尺寸向量
L=[3 0.8 0.8 0.8 0.7];
lmin=min(L)/2;
%设备x,y在x方向上的最小间距
dxijmin=0.8;
%设备x,y在y方向上的最小间距
dyijmin=0.5;
%设置参数边界
bounds =[smin H;smin H;smin H;smin H;smin H;
lmin G;lmin G;lmin G;lmin G;lmin G];
% 生成初始种群,大小为10,且满足约束条件
flag=0;
while flag<11
init=initializega(1,bounds,'f554');
x(1:5)=init(1:5);
y(1:5)=init(6:10);
for i=1:5
for j=1:5
delta1(i,j)=abs(x(i)-x(j))-(S(i)+S(j))/2-dxijmin;
delta2(i,j)=abs(y(i)-y(j))-(L(i)+L(j))/2-dyijmin;
end
end
%约束1
delta11=min(min(delta1));
%约束2
delta22=min(min(delta2));
summ1=0;
for i=1:4
summ1=summ1+abs(x(i)-x(i+1))+(S(i)+S(i+1))/2;
end
%约束3
summ11=H-summ1;
summ2=0;
for i=1:4
summ2=summ2+abs(y(i)-y(i+1))+(L(i)+L(i+1))/2;
end
%约束4
summ22=G-summ2;
if ((delta11>=0)&(delta22>=0)&(summ11>=0)&(summ22>=0))
flag=flag+1;
initPop(flag,:)=init;
else
continue;
end
end
% 调用遗传函数
[p endPop bpop trace] = ga(bounds,'f554',[],initPop,[1e-5 1 1],'maxGenTerm',100,…
'normGeomSelect',[0.08],['arithXover'], [20], 'nonUnifMutation',[2 1 3]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -