MATLAB绘制出权值wv和阀值bv确定的误差曲面

源代码在线查看: matlab遗传算法在车间布局优化中的应用.txt

软件大小: 56 K
上传用户: dxhh
关键词: MATLAB 绘制 误差
下载地址: 免注册下载 普通下载 VIP

相关代码

				遗传算法在车间布局优化中的应用2007/06/02 23:39车间大小(5m*5m),放置5台设备,工件在各设备间的传输次数表如下
				     m1    m2    m3    m4    m5
				m1   0     572   1559 157   0
				m2   15    0     26    0     2
				m3   6     54    0     64    36
				m4   0     14    37    0     38
				m5   7     4     0     22    0
				
				设备的尺寸表如下
				m1       m2       m3       m4       m5
				3*3      1*0.8   1.5*0.8 1.5*0.8 0.8*0.7
				
				dxij=0.8 dyij=0.5
				
				分析
				车间设备布局最优设计应使得各设备间的运输距离最短,即
				另外,各设备在车间中均需占有一定面积,设备间还需要为操作人员留有一定的活动空间,因此在车间设备布局设计中还需要考虑一些约束条件.
				间距约束:设备间应保持一定的间距,即
				边界约束:设备在X,Y方向的布置不应超过车间的长度尺寸,即
				分别表示车间在X,Y方向上的宽度
				
				
				
				
				
				
				
				
				
				
				
				h,g
				
				遗传算法参数设置:选择实数编码,种群中的个体数目为10,最大代数为100,交叉概率为0.9,变异概率为0.04
				
				适应值函数如下
				function [sol,eval]=f554(sol,options)
				x(1:5)=sol(1:5);
				y(1:5)=sol(6:10);
				%传输次数矩阵
				a=[0   572 1559 157 0;
				    15 0    26    0    2;
				    6   54   0     64   36;
				    0   14   37    0    38;
				    7   4    0     22   0];
				%x方向尺寸向量
				S=[3 1 1.5 1.5 0.8];
				%y方向尺寸向量
				L=[3 0.8 0.8 0.8 0.7];
				%设备x,y在x方向上的最小间距
				dxijmin=0.8;
				%设备x,y在y方向上的最小间距
				dyijmin=0.5;
				%车间尺寸
				H=5;
				G=5;
				
				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;
				     %设备i,j之间的距离
				     d(i,j)=sqrt((x(i)-x(j)).^2+(y(i)-y(j)).^2);
				   end
				end
				
				%约束1
				delta11=min(min(delta1));
				%约束2
				delta22=min(min(delta2));
				summ1=0;
				for i=1:4
				summ1=summ1+abs(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(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))
				   fsum=0;
				   for i=1:5
				       for j=1:5
				         fsum=fsum+a(i,j)*d(i,j);
				       end
				   end
				   eval=fsum;
				else
				   %惩罚项
				   eval=-500;
				end
				
				eval=-eval;
				
				求解过程如下
				%维数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				   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]);
				
				求解过程超慢,请耐心等待 
				
				
				
				--------------------------------------------------------------------------------
				 
							

相关资源