✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
基于问题的复杂度,优化模型的现实度以及求解算法的适合度3方面,对三维装箱问题的研究现状进行分析,着重对货物与箱体的规模与异构性,优化目标与约束条件的实用性和求解方法的优缺点进行归纳;其次,总结三维装箱问题在以上3方面存在的不足;最后,从整体问题复杂化,优化目标多样化和约束条件现实化,假设条件最小化,求解方法实用化等5方面对三维装箱问题的研究进行展望.
遗传算法通过编码技术,运用繁殖,杂交和突变等遗传算子,对染色体组成的初始种群,进行适应度分析,构成优胜劣汰,适者生存的自然环境,产生出新的更加优良的种群.经过若干代的进化,最终求得适合问题的最优解.
装箱问题是典型的NP问题,在物流运输行业中最为常见。为了提高货物配载方案的生成效率,为人工配载提供理论支撑,联系工程应用实际,本文通过数学方法对多箱型三维装箱问题进行了描述,提出了求解该问题的算法。本文算法的核心是遗传算法,采用自然数编码,表示货物的摆放序列和摆放方式;自然选择算子采用精英与灾变混合机制;交叉算子采取以偏随机秘钥为基础的新机制,有效加快收敛速度。变异算子采用单点变异。为了能够准确评估个体,本文设计了一个基于空间的启发式装箱算法,根据摆放序列和摆放方式模拟装箱。考虑熵约束、重心约束等条件,设计了合理的适应值函数,评估个体的适应值。最后,借鉴禁忌搜索的路径重连思想,实现多箱型混合装箱的目的。代码实现方面采用多线程,保证算法的响应速度。本文实现了完整的配载方案生成网站,并提供三维的可视化结果展示。以某物流公司的历史装箱清单为测试数据,给出了实验结果并进行了分析,证明了本文算法在一定意义上的有效性以及网站的可用性。
⛄ 部分代码
% 使用遗传算法得到最大装载方式
% 定义初始种群为100个
% 交叉方式为两两交叉组合,分裂概率为0.7
% 变异方式为随机变异,变异概率为0.3
% 然后进行选择 选择前面最优的100个
rateCom=0.7;%结合概率
rateAbe=0.3;%变异概率
populations=10;%种群大小
Maxtime=10;%最大迭代时间
%BigSet = zeros(80,3);
%for i = 1:80
% BigSet(i,:)=[randi([30,40]),randi([25,30]),randi([20,25])]*0.01;
%end
BigSet=[1,1,1,100; 2,2,2,100];% 表示可用箱子,前三个属性表示箱子三维尺寸,第四个属性为箱子数量
xscale=10;
yscale=10;
zscale=10;%箱子尺寸限制 =Genetic(rateCom,rateAbe,populations,BigSet,xscale,yscale,zscale,Maxtime);
%根据得到的位置序列,对应的物体种类、物体方向进行绘图
plotPermute(SolutionPosition,SolutionQ,SolutionD,BigSet);
⛄ 运行结果
⛄ 参考文献
[1]李鹏, 汤勇. 三维货物装箱问题的研究进展[J]. 铁道科学与工程学报, 2015(5):1232-1242.
[2]江宝钏, 熊伟清. 一种求解三维集装箱装箱问题的混合遗传算法[J]. 计算机工程与应用, 2007, 43(26):4.
[3]薛媛. 基于遗传算法的三维装箱问题研究[J]. 中文科技期刊数据库(全文版)工程技术:00222-00222.