1 简介 随着市场竞争日益激烈,先进高效的物流系统越来越成为企业增强自身竞争力的核心要素.本文针对工厂总平面布置优化设计问题,提出了一种基于遗传算法的厂区布置优化方法,通过
1 简介
随着市场竞争日益激烈,先进高效的物流系统越来越成为企业增强自身竞争力的核心要素.本文针对工厂总平面布置优化设计问题,提出了一种基于遗传算法的厂区布置优化方法,通过对一个实际的汽车配件厂的具体设计问题对该算法进行实验,结果表明本算法能够显著优化人工设计的布局.
2 部分代码
clcclear all
close 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,:),Y
figure(1)
plot(trace(:,1),'-.');%画出每代的最小目标函数值曲线
grid
%给坐标加网格
legend('最小目标函数值曲线')
%显示图例
3 仿真结果
4 参考文献
[1]陈镇东, 秦坤, 刘凯勋. 基于遗传算法的共享汽车站点选址布局及优化设计[J]. 江苏科技信息, 2019, 36(14):3.