欢迎光临散文网 会员登陆 & 注册

【优化选址】基于遗传算法进行厂区布置优化附matlab代码

2022-04-18 10:07 作者: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代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。



【优化选址】基于遗传算法进行厂区布置优化附matlab代码的评论 (共 条)

分享到微博请遵守国家法律