【优化选址】基于遗传算法进行厂区布置优化附matlab代码
1 简介
随着市场竞争日益激烈,先进高效的物流系统越来越成为企业增强自身竞争力的核心要素.本文针对工厂总平面布置优化设计问题,提出了一种基于遗传算法的厂区布置优化方法,通过对一个实际的汽车配件厂的具体设计问题对该算法进行实验,结果表明本算法能够显著优化人工设计的布局.
2 部分代码
clcclear allclose all%mainfun 是本项目运行遗传算法进行厂区布置优化的主程序,负责执行各函数 NIND=60; %NIND 为群体数量,设定为 60 个 MAXGEN=100; %MAXGEN 为最大遗传代数,设定为 100 代 GGAP=0.5; GGAr=0.5; XOVR=0.6; %交叉率%GGAP 为交叉概率,设定为 0.9 MUTR=0.8; %变异率%lenchrom 为染色体长度,作业单元数量为 23 lenchrom=23; WNumber=23;%下面运行 initial 函数来创建染色体初始种群 chrom=initial(NIND,lenchrom); %下面计算初始种群的目标函数值 trace=zeros(MAXGEN,2); gen=0; ObjV=goalfun(chrom); %运行 goalfun 函数来计算目标函数值 while gen<MAXGEN FitnV=ranking(ObjV); %分配、排序适应度值,从小到大排序 SelCh=select('rws',chrom,FitnV,GGAr); %选择操作,采用随机竞争选择 SelCh=across(SelCh,XOVR); %重组个体,采用两点交叉,交叉概率为 0.7 % f=rep([1;23],[1,23]); %矩阵复制,将[1;23]列向量横向复制 23 次 %f 是边界矩阵 SelCh=aberranceJm(SelCh,MUTR); %在边界矩阵 f 控制下,变异概率为 0.1,不压缩变异范围 SelCh=fix(SelCh); %向 0 方向取整 SelCh=restore(SelCh); %运行 restore 函数修复错误个体 ObjVSel=goalfun(SelCh); %计算子代目标函数值 [chrom,ObjV]=reins(chrom,SelCh,1,1,ObjV,ObjVSel); %重插入:基于适应度,插入全部子代,代替不适应的父代,并按子代拷贝目标 gen=gen+1; trace(gen,1)=min(ObjV); %当代最小目标函数值 trace(gen,2)=sum(ObjV)/length(ObjV); %当代平均目标函数值 end %下面求出最优解及其目标函数值 [Y,I]=min(ObjV); chrom(I,:),Yfigure(1)plot(trace(:,1),'-.');%画出每代的最小目标函数值曲线 grid %给坐标加网格 legend('最小目标函数值曲线') %显示图例
3 仿真结果

4 参考文献
[1]陈镇东, 秦坤, 刘凯勋. 基于遗传算法的共享汽车站点选址布局及优化设计[J]. 江苏科技信息, 2019, 36(14):3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。


