当前位置 : 主页 > 编程语言 > python >

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

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 随着市场竞争日益激烈,先进高效的物流系统越来越成为企业增强自身竞争力的核心要素.本文针对工厂总平面布置优化设计问题,提出了一种基于遗传算法的厂区布置优化方法,通过

1 简介

随着市场竞争日益激烈,先进高效的物流系统越来越成为企业增强自身竞争力的核心要素.本文针对工厂总平面布置优化设计问题,提出了一种基于遗传算法的厂区布置优化方法,通过对一个实际的汽车配件厂的具体设计问题对该算法进行实验,结果表明本算法能够显著优化人工设计的布局.

2 部分代码

clc
clear 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 仿真结果

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

4 参考文献

[1]陈镇东, 秦坤, 刘凯勋. 基于遗传算法的共享汽车站点选址布局及优化设计[J]. 江苏科技信息, 2019, 36(14):3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

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

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


网友评论