三维装箱遗传算法matlab程序_第1页
三维装箱遗传算法matlab程序_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、NP 难题,很难精确求解。目前的求,如 NF(NextFit)近似算法、 NP 难题,很难精确求解。目前的求,如 NF(NextFit)近似算法、 FF(FirstFit)近似算法、Matlab 环境下进行实现。,对一,需本文考虑待装箱子的空间利u 为装箱方案从计算复杂性理论来讲 ,装箱问题是一个解方法主要是一些近似算法FFD(FirstFitDecreasing)近似算法等。近似算法的求解结果与物品的体积数据有较大关系,有时在极端情况下的求解结果很不理想。本文以三维离线装箱问题为研究对象, 利用遗传算法和模拟退火算法集成的思路对该问题进行求解,并编写程序代码在1、 问题描述假设有一批待装货物

2、 ,它们有多种货物种类 ,每种货物的尺寸重量是不同的尺寸己知的集装箱进行装载。这里所面临的问题是在满足一定约束的条件下要找到一种装箱方案进行装载 ,能够得到一种最佳的装载效果 ,这里指的是空间容积率最高或者载重利用率达到最高。2、 优化模型优化模型中的目标函数值可以评价装箱方案的优劣,用率最大以及所使用箱子数目最小,目标函数规定为:其中:m 为所使用的箱子数目,Cmax为一个足够大的常数,在本文中取为 1000,以保证 Cmax/m 为大于 1 的正数,后一项为箱子的空间利用率,违背约束条件时的处罚值。注:帮人代写 matlab 程序,有问题请咨询 qq:778961303 部分代码如下:Us

3、e: 输入变量(可修改量):Cargo:货物的属性order:要求货物的装载次序输出:author:0.81 1.02 0.70 0.578340 868 4;0.73 0.69 0.80 0.40296 240 2;. 1.20 0.72 0.72 0.622080 280 2;1.10 0.84 0.26 0.24024 80 1;. 0.80 0.74 0.72 0.426240 180 1;1.60 1.07 0.75 1.28400 774 12;. 1.19 1.11 1.08 1.426572 960 11;1.19 1.11 0.9 1.18810 800 10;. 1.40

4、1.16 1.20 1.948800 420 8;0.82 0.37 0.18 0.54612 40 5; % 货物数宽度(m)%所使用的箱子数参数遗传模拟退火算法主程序Box:箱子的属性bestLoadOrder:具体装箱Use: 输入变量(可修改量):Cargo:货物的属性order:要求货物的装载次序输出:author:0.81 1.02 0.70 0.578340 868 4;0.73 0.69 0.80 0.40296 240 2;. 1.20 0.72 0.72 0.622080 280 2;1.10 0.84 0.26 0.24024 80 1;. 0.80 0.74 0.72

5、0.426240 180 1;1.60 1.07 0.75 1.28400 774 12;. 1.19 1.11 1.08 1.426572 960 11;1.19 1.11 0.9 1.18810 800 10;. 1.40 1.16 1.20 1.948800 420 8;0.82 0.37 0.18 0.54612 40 5; % 货物数宽度(m)%所使用的箱子数参数遗传模拟退火算法主程序Box:箱子的属性bestLoadOrder:具体装箱怡宝 2号高度(m)体积(m3)重量(kg)数量% % % % % % % clc; clear; close all; tic % 数据录入% B

6、ox=2.33 1.78 2.197 5000; % 货箱数据 长,宽,高,限重% Cargo=0.94 0.68 0.39 0.249288 270.5 6;0.81 1.02 0.6 0.495720 896 2;. % % % % % 据%长度(m)order=6,3,11,7,8,5,1,2,4,9,10,12; cmax=300; % save Box Box % save Cargo Cargo % toc % 模拟退火参数tic % 初始温度% 终止温度% 各温度下的迭代次数(链长)%降温速率%交叉概率% 初始温度% 终止温度% 各温度下的迭代次数(链长)%降温速率%交叉概率%变

7、异概率%代沟% 待装箱类别数%随机产生一个装箱顺序Time %solve(1000Tend=1e-3; L=5; q=0.8; G=100; % 遗传参数Pc=0.9; Pm=0.05; popsize=20; retain=10; GGAP=0.9; % 加载数据load Box load Cargo % N=size(Cargo,1); for i=1:popsize chrom(i,:)=randperm(N); end for i=1:popsize tempchrom=chrom(i,:); RestSpace,LoadOrder=IniOrder(tempchrom,Box,Car

8、go); fitness(i)=FitFun(cmax,RestSpace,LoadOrder,Box,tempchrom,order); end fitness=fitness; % 计算迭代的次数Time=ceil(double(solve(1000*(0.8)x=,num2str(Tend); %迭代计数%目标值矩阵初始化%每代的最优路线矩阵初始化%更新迭代次数*(0.8)x=1e-3)这样也可以%迭代计数%目标值矩阵初始化%每代的最优路线矩阵初始化%更新迭代次数count=0; Obj=; track=; bestchrom=; % 迭代while TTend count=count+

9、1; temp=; temp index=sort(fitness,descend); chrom=chrom(index,:); chromone=chrom(1:retain,:); fitnessone=temp(1:retain,:); chromtwo=chrom(retain+1:end,:); % 交叉操作SelCh=Recombin(chromtwo,Pc); % 变异SelCh=Mutate(SelCh,Pm); tempchrom=; for i=1:size(SelCh,1) tempchrom=SelCh(i,:); RestSpace,LoadOrder=IniOrd

10、er(tempchrom,Box,Cargo); fitnesstwo(i,:)=FitFun(cmax,RestSpace,LoadOrder,Box,tempchrom,order); end for k=1:L % 产生新解for j=1:(popsize-retain) newchrom(j,:)=randperm(N); else %则原种群和解不变 ,即不接受模拟else %则原种群和解不变 ,即不接受模拟tempchrom=; for i=1:(popsize-retain) tempchrom=newchrom(i,:); RestSpace,LoadOrder=IniOrder(tempchrom,Box,Cargo); newfitness(i,:)=FitFun(cmax,RestSpace,LoadOrder,Box,tempchrom,order); end newfitness=G-newfitness; for i=1:(popsize-retain) if newfitness(i,:)fitnesstwo SelCh(i,:)=newchrom(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论