✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
本文对遗传算法做了系统介绍,包括遗传算法的特点、基本实现技术等。对求解矩形件优化排样问题的遗传算法的设计及具体实现进行了详细讨论。 本文所做的主要工作如下:分析了排样问题的研究现状,对中外学者在矩形件优化排样方面提出的多种算法进行了认真的比较,在矩形件排放算法-“基于最低水平线的搜索算法”基础上,提出了一种改进算法:“基于最低水平线的空闲区域可再利用搜索算法”,它克服了其它排放算法对某些排样图不能给出的缺点,满足“最左最下”条件。改进算法和原算法相比,改进之处表现在:能够对最低水平线发生提升时产生的废弃空闲区域进行回收利用,通过对矩形件排放过程中动态产生的空闲区域的位置关系进行判断,改进算法能够对相邻的空闲区域进行有效合并,通过对空闲区域进行适当的填充从而实现对空闲区域的再利用,因此能够在一定程度上提高卷材的利用率。通过比较要排放矩形件的长宽与空闲区域的尺寸大小,最终确定矩形件的较优排放次序及矩形件在卷材上的确切排放位置。本文把“基于最低水平线的空闲区域可再利用搜索算法”和遗传算法结合起来,共同求解矩形件优化排样问题:先通过遗传算法确定矩形件较优的排放顺序和排放方式,然后按照“基于最低水平线的空闲区域可再利用搜索算法”生成排样图,通过比较不同的矩形件排放序列对应的卷材利用率,最终得到较优的排样方案。根据提出的改进算法,开发出了计算机辅助优化排样系统,测试数据表明了改进算法的有效性。这对于企业节约原材料、降低产品成本、提高经济效益,具有积极的意义。
⛄ 部分代码
clc
clear
close all
global size_juxing point_num s_yuan
popsize=20; %群体大小
pc =0.9; %交叉概率
pm =0.1; %变异概率
maxgen=10;%迭代次数
s_yuan=[2500 2500];
size_juxing=[655.5 645.5;1671.5 70.5;1671.5 70.5;494.5 70.5;1516.5 58.5;403.5 58.5;1807.5 612;1700.5 550.5;];
point_num=size(size_juxing,1);
pop1=zeros(popsize,point_num);
pop2=zeros(popsize,point_num);
for i=1:popsize
pop1(i,:)=randperm(point_num);
pop2(i,:)=randi(2,1,point_num)-1;
pop2(i,:)=chuli(pop2(i,:),pop1(i,:));
end
gen=1;
ymax=zeros(gen,1);
sc1new=zeros(popsize,point_num);
sc2new=zeros(popsize,point_num);
sm1new=zeros(popsize,point_num);
sm2new=zeros(popsize,point_num);
Best=0;
for i=1:popsize
obj_v(i)=obj_fun(pop1(i,:),pop2(i,:));
end
⛄ 运行结果
⛄ 参考文献
[1] 贾志欣, 殷国富, 罗阳. 二维不规则零件排样问题的遗传算法求解[J]. 计算机辅助设计与图形学学报, 2002, 14(5):4.
[2] 韩喜君, 丁根宏. 矩形件优化排样问题的混合遗传算法求解[J]. 计算机技术与发展, 2006, 016(006):219-221.
[3] 周琛琛. 基于Matlab遗传算法工具箱的函数优化问题求解[J]. 现代计算机:上下旬, 2006.
[4] 丁穗庭, 王智伟, 王思扬. 基于可重构思路的智慧车间优化布局算法[J]. 现代制造技术与装备, 2018(3):4.
[5] 鄂晓征, 祖巧红, 曹萌萌. 基于遗传算法的汽车零件自动化仓储货位优化[J]. 2013.