登录
首页 » Others » 三维装箱问题的模型与改进遗传算法

三维装箱问题的模型与改进遗传算法

于 2020-12-05 发布
0 496
下载积分: 1 下载次数: 9

代码说明:

关于三维装箱算法问题, 一些算法理论, 感觉对这方面的应用有一定帮助144效学的实践与认识40着∑(B,*v)≤VB,B,PD,PWy=0或者1v∈{1,2,…,D},y∈{1,2,…,W},z∈{1,2,…,H},j∈{1,2,…,n}(12目标函数是箱子未装填物品的空间最少(亦即空间浪费最少)条件(2)确保子的1个装填空间单元被装填不超过1次即保证物品间不会互相嵌入;(3)式说明上层物品会有支撑,不会悬空(4),(5),(6)式说明物品装箱位置约束;(7),(8},(9)说明物品的摆放问;(11)是箱子的容积约束2這传算法21遗俊法遗传算法(GAs)是建立在达尔文进化论基础上的搜索算法,它从代表问题潜在解的个种群( population)开始,而一个种群则由经过基因(gene)编码 coding)的一定数目的个体individual)组成遗传算法采用了自然进化模型,如选择,交叉变异等计算开始时,一定数目S个个体(父个体1、父个体2……)即种群随机地初始化,并计算每个个体的适应度函数第一代也即初始代产生如果不满足优化准则,开始产生新一代的计算为了产生新一代按照适应度选择个体,父代通过基因重组(交叉)而产生子代所有的子代按一定的概率变异然后重新计算子代的适应度,将子代插入到种群中取代父代构成新的一代循环执行这一过程,直到满足优化准则22算法设计2.21编码方法采用矩阵编码方法,用多维数组(二维矩阵表示染色体结构,数组元素表示染色体基因,编码清晰,易于理解,遗传算子操作方便染色体S=(L,P,Px,Py,T)来表示问题的一个解其中:向量L=(Li,L1,…,Ln)为待装箱物品的一个排列;向量P=(Bn,B1,…,B3n)为对应于排列L的B,一个排列向量Px=(PB,PB,…,PB)为对应于排列L的PB一个排列向量Py=(PB,PB},…,PB为对应于排列L的PBx一个排列矩阵T=(x2=欢面为对应于排列L的装箱物品坐标22适值函数问题的目标是最小化箱子的浪费空间,适应度函数可定义为空间利用率函数(S代表染色体C1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net2期陈德良,等:三维装箱问题的模型与改进遗传算法Fitness(s)(∑B3*v/若∑(B;*v)≤V否则23解的不可行性,罚函数与评估函数由于对染色体作遗传运算时可能获得不可行的子代,惩罚技术是用遗传算法解约束优化问题中最常用的技术,本质上它是通过惩罚不可行解将约束优化问题转化为无约爽问题就本文讨论的问题而言,惩罚项包括:1)物品在装箱时不交叠,即满足约束条件{2},有着∑By≤1g:(S)1,否则2)物品装箱时不能出现悬空即满足约束条件(3),有0若∑B-B+)>0g2(S)=(151,否则3)物品装箱不能超出箱子边界,即满足约束条件(4,(5)和(6),有0若吃+B(Pp++Pwy*吗)≤D1,否则0若+B*(PD*+PWy*m)≤W941,否则(17)95(S)=0,若x+B*h;≤H8)1,否则eat(s=∑9(S)b=1那么,式(14)至(18)任何一个取值为1,都是不可行评估函数eval(S)=Fitness(S)*(5-Genalty (S)24算法步骤)初始化进化代数计数器,随机产生一定数目(大于设定的初始种群规模)的染色体;2)利用式(14)检验初始种群染色体可行性,对不可行解旋转赌轮接受小部分不可行解,与可行解构成初始种群3)对初始种群染色体进行遗传运算;①按照式(14)至(20)计算评估函数:⑩按顺序交叉方法产生子代;④变异算子;4)旋转赌轮选择染色体;)重复3至4)直到完成给定的循环次数;C1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreservedhttp://www.cnki.net数学的实践与认识40卷6)确定最好的染色体作为最优解3实验结果我们用C++编程实现了上述算法在配置为CPU24GH/512 Mb ram的微机上,用随机产生的数据进行实验取遗传算法运行参数为:{群体大小进化代数,交叉概率,变异概率}-{100,50,0.85,0.05}用随机产生的数据进行实验,求解20个种类100件物品的装箱问题,得到最好解耗时小于1秒;计算50个种类200件物品的装箱问题,得到最好解耗时小于2秒以下是3类共16件物品的装箱问题.实验数据图2,第!行为箱子尺『;第2至第4行为待装箱物品,每行第1个数据表小序号第2至镌4数据分别为物品尺寸,第5个数据表示物品件数在计算转桌中包含数据依次是:序号,是否装载,物品长,物品宽,物品高,纵向坐标横向坐标,垂向坐标纵向长度,横向长度,垂向长度(图4).从图4可知第12号物品未能装箱,物品装箱的顺序可以从“序号列中得出.绘制的物品装箱示意图见图31421,2,乙2,2,图2实验数据图3装箱示意图文件((格式(Q帮助新 s REPORT耗时:.1 most g sec次数:01615积:7580001016每a0库:92.875989名寸:=280;y=1210;2=300NO: P st Din 1 Din 2 in 3 C xC YPu y Pu 2202002002002001002812B20020012010010020012鲁2020012010020020020020012B100100212021201215024015824815015561111111111115152每000ao00015150240202020055020200201002001215502D0200120100100201205s012020028012015024075000015024815015024075015015024a152002009o002002001002012090020012日未装相物品121501502年图1计算结果o1994-2010ChinaAcademicJournalElectronicPublishingHousealLrightsreservedhttp://www.cnki.net2期陈德良,等:三维装箱问题的模型与改进遗传算法1474结束语装箱问题是一常见而难解的优化问题,利用遗传算法求解时,随机产生的初始解会出现大量的不可行解(装箱物品占用空间出现大量交叠),本文将箱子内部空间划分为一个个立方体单元:算法的第2)步对标准遗传算法做了修改通过剔除大量不可行解提高算法的收敛速度,实验结果表明此算法运算过程及绪果稳定,具有较强的实际应用价值能有效解决复杂的三维装箱何题,今后将继续研究将该方法运用到其它不同的有关装箱问题或组合优化问题中参考文献[1] John J, et al. An improved algctithra for the ncn-guillctine-constraincd cutting-stock problem(JIOperational Resee ch Society, 19 /0,+1: 141-149[2] Coffmau E. G, et al. ver age-case analysis of cutting and packing in two dimensions [J]. Euro. Jof Operatic al Reseaich, 1990, 44: 134-14413) Fabien C, et al. A Two-phase heuristic for the two-dinensional cutting-stock problem [J. Opera-tional Research Society, 1991, 42: 39-744 Martello Silvano, Pisinger, David, and Vigo, Daniele. The Three-Dimensional Bin Packing ProblemJ. Operations Research, 2000 Informs. Vol. 48: 256-267]何大勇,査建中,姜义东遗传算法求解复杂集装箱装载问题方法研究向]软件学报,201,12(9):13801385阿]张德富魏丽军陈青山陈火旺等.三维装箱问题的组合启发式算法软件学报,2007,18(9):20832089A Mixed Integer Programming Model ofThree-Dimensional Bin-Packing Problem and ImprovedGenetic AlgorithmsCHEN De-liang, 2, CHEN Zhi-yaSchool of Traffc &z transportation Engineering, Central South University, Changsha 41076, China)(2. Logistics School, Central South University of Forestry Technology, Changsha 410004, ChinaAbstracts The three-dimensional bin-packing problem is complicated but a high level ofinterest in developing effective way to solve this kinds of NP-hard problem. First a MixedInteger Programming model was worked out in this paper, which resorted to dividing box spaceinto unit cube. Then an improved genetic algorithm was mainly developed. Tests on hundredsof problems show that this algorithm makes the most of volume utilization in minimal timeKeywords: three-dimensional bin-packing problem; space division; mixed integer program-ming model; improved genetic algorithmso01994-2010ChinaAcademicJournalElectronicPublishinghOuse.Allrightsreservedhttp://www.cnki.net

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Kasami序列生成MATLAB
    【实例简介】扩频通信中Kasami序列的MATLAB产生程序,容易看懂,运行结果正确,性能较好!!扩频通信中Kasami序列的MATLAB产生程序,容易看懂,运行结果正确,性能较好!!
    2021-11-07 00:31:52下载
    积分:1
  • pso算法路径规划
    pso算法路径的规划问题,主要是在有障碍的情况下从一点到达另一点的路径规划。
    2020-12-10下载
    积分:1
  • STM32 人脸识别系统
    单片机STM32利用OV2640实现人脸识别实验,keil5工程文件。
    2021-05-06下载
    积分:1
  • AUTOCAD《ActiveX 和 VBA 参考》由明经通道翻译.chm
    了让初学者能够更快地掌握 VBA 开发,明经通道曾经在2001年翻译了《ActiveX 和 VBA 开发人员指南》的所有内容。为了让用户对对象模型有更深刻更全面的了解,明经通道继续翻译了《ActiveX 和 VBA 参考》所有内容。
    2020-03-06下载
    积分:1
  • 五电平逆变器仿真
    五电平逆变器matlab仿真
    2020-11-28下载
    积分:1
  • Linux学习之CentOS(带完整目录,非常适合初学者)
    Linux学习之CentOS 带完整目录,非常适合初学者,精心制作
    2020-12-06下载
    积分:1
  • LabWindows CVI 6.0 指南
    LabWindowsCVI6.0编程指南日录第1章绪论简介程序开发概述在中使用语言的程序结构的新特性装第2章 Labwindows/CVⅥI的开发环境载入、运行和编辑源程序的主要窗口源代码编辑工具操作用户界面的控件生成交互式代码访问用户界面库函数面板执行和调试程序单步执行断点显示和编辑数据第3章 Labwindows/CV应用程序设计38图形用户界面用户界面编辑器源代码连接代码生成器建立用户界面文件仗用函数面板和函数库源代码分析生成随机数组构建⊥程运行完整的工程添加分析功能修改用户界面编写回调函数运行程序用户事件处理用户事件回调函数第4章基本函数库用户界面库(面板()操作用户界面管理(菜单结构(控件曲线图带状图()操作弹出面板函数格式化输入输出斥(文件输入输出(字符串处理(数据格式化(实用函数库(定时等待(日期时间(文件应用(路径应用(端口(函数库接口介绍函数库概述编程举例第5章高级函数库116高级分析库概述应用实例斥网络化仪器协议与库服务器程序设计客户程序设计介绍发送数据程序设计接收数据程序设计工具厍(L具斥简介密码设计工具条设计分页界面设计系统托盘设计第6章数据库应用程序开发— SQL Toolkit183概述功能概述的安装入门数据库基木概念结构化查询语言控件数据库基本操作数据库操作基木步骤使用的函数库数据斥高级操作设置连接属性设置语句属性操作复合语句第7章高级程序设计230和的基础知识创建和调试使用概述编程实例多线程概述两种多线程机制多线稈间的数据保护防止死锁监视和控制次线程线程的优先级线程局部变量其它一些要注意的问题第8章 ActiveX技术261技术简介使用控件设计带有控件的应用程序需要注意的问题创建服务器应用程序、对象和接口创建服务器工具生成的代码库—服务器函数联编并发布服务器注册线程模式调试服务器些建议、提示和技巧第9章虚拟仪器软件设计301虚拟仪器概述规范规范概述虚拟仪器软件结构仪器驱动程序开发仪器驱动程序模型函数的应用函数面板的设计动态链接库的牛成仪器软面板的设计仪器软血板软面板的设计叫执行文件的生成帮助文件的制作安装盘的制作规范的安装要求制作安装盘驱动程序仪器可互换性驱动程序的结构驱动程序的其他功能驱动程序开发向导驱动程序与驱动程序附录A函数Fmt、Scan的标识符和修饰符附录BS叫L命令348虚拟仪器软件开发环境—一编程指南第1章绪论是公司美国国家仪器公司,简称公司推出的交互式语言开发平台。将功能强大、使用灵活的语言平台与用于数据采集分析和显示的测控专业L具有机地结合起来,利用它的集成化开发环境、交互式编程方法、函数面板和卡富的库函数大大增强了语言的功能,为熟悉语言的开发设计人员编写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想的软件廾发坯境。考虑到人多数测控软件设计人员已经掌握了语言,因此本书的重点放在如何使用的编程环境和应用开发测控应用程序上。本书使用的版本是1.1 Labwindows/CV简介是为语言程序员提供的软件开发系统,在其交互式开发环境中编写的程序必须符合标准规范。使用可以完成如下工作:交互式的程厅开发;只有功能强大的函数库,用来创建数据米集和仪器控制的应用程序充分利用宄备的软件工具进行数据采集、分析和显示利用向导开发仪器驱动程序和创建服务器为其它程序开发目标模块、动态连接库)、语言库。在开发环境中可以利用其提供的库函数来实现程序设计、编辑、编译、链接和标准语言程序调试。在该丌发环垙中可以用丰富的函数库来编写程序,此外每个函数都有一个叫做函数面板()的交互式操作界面,在函数面板中可以执行该函数并可以生成调用该函数的代码,也可通过右击面板或控件获得有关函数、参数、函数类和函数库的帮助。在的交互式环境中编写程序必须符合标准语言的规范。另外,在开发应用程序时可以使用编译好的语言目标模块,动态链接库静态库和仪器驱动程序(如何在中载入目标模块和动态链接斥将在第章介绍)。的功能强大在于它提供了丰富的函数库。利用这些库函数除可实现常规的程序设计外,还可实现更加复杂的数据采集和仪器控制系统的廾发。其中比较重要的函数库如图所示仪器库是的特殊资源。它包括和仪器的驱动程序,如示波器、多用表和函数发生器,每个驱动程序都提供可编辑的源代码。使用开发工只提供的库函数可以创建自己的仪器驱动程序,可以创建单个仪器、多个仪器或实际上并不存在的虚拟仪器的驱动程序,在创建仪器驱动程序过程中可以虚拟仪器软件开发环境—一编程指南仪器库厍数据采集库数据采集厍格式化和厍数据分析分析库高级分析库函数库数据表示用户界面库动态数据交换厍网络和进程通讯传输控制协议库库标准凶数库的函数厍使用的其它库函数(本书在第章将介绍仪器驱动程序的开发)。使用的用户界面编辑器可以创建并编辑图形用户界面,而使用的用户界面库函数可以在程序中创建并控制。此外,为面板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指示灯等,以适应测控系统软件开发的需求,利用这些控件可以设计出专业的测控程序界面1.2 Labwindows/GVI程序开发概述在下开发应用程序和使用其它语言和开发环境一样,要保持良好的编程习惯。例如,在编写代码之前要改计程序的功能结构,冋时在代码中要有良好的文档和注释,这些可以帮助你更好的进行管理程序的开发。1.2.1在 Labwindows/cV中使用C语言使用的是语言,并且为仪器方面的应用程序开发增加了许多语言所不具备的功能。在使用之前,需要有语言的基础,在中可以使用它提供的标准厍函数。1.2.2 Labwindows/GVI的程序结构大多数工程测控软件都包含如下内容虚拟仪器软件开发环境—一编程指南用户界面程序控制:数据采集数据分析它们之间的相互关系如图所示。图是应用程序的组成示意图。其中,用户界面、数据呆集和数据分析部分将必要的信息输入给程序控制部分进行处理,每个部分还可再分成若干个子部件用户界面数据采集数据分析面板格式化菜单数字信号处理对话框统计朴学图表数据采集曲线拟合硬拷贝输出仪器驱动程序数组操作程序控制控制逻辑数据存储图应用程序各部分的相互关系用户界面用用户界面编辑器能轻松地建立复杂的交互式面板。设计的过程中,开发人员常常要确定程序如何获取并显示薮据,对菜单、面板、控件和对话框如何操作等问题,因此用户界面自然成为程序设计的起点二、代码生成器生成程序框架在用户界面绽辑器中完成设计后,能够使用代码生成器自动生成基于组件的程序框架。代码生成器自动写出所有控件的回调函数的框架,创建主程序,从而在程序启动时加载并显示窗体。代码编辑器自动生成程序的通用代码,从而节省了人量的程序开发时间。、程序控制程序控制部分同薮据采集、数据分析和用户界面协调运作。它包括管理程序流程的控虚拟仪器软件开发环境—一编程指南制逻辑和用户定义的支持函数。大多数控制程序的代码是手写完成的,学习软件光盘中所提供的例稈,能够很好理解如何编写测控稈序的代码。注意例程中回调函数的使用,它可以大大简化应用流程的控制四、数据采集通常的测控程序必须对从仪器或数据采集()设备的数据采集进行控制,程序的其它部分是对这些数据进行分析和显示各种库提供用来创建数据采集部分的函数,用这些库函数控制和设备以及的数据采集设备。此外,仪器斥包括多种常用的和仪器的驱动程序。五、数据分析获取数据后经常需要进行分析。例如,可能要对数据进行格式化、归一化、信号处理、统计和曲线拟合。格式化和库、分析库高级分析库提供了完成这些操作的函数。1.3 LabWindows/CVI6.0的新特性和以前的版本相比有一些改进,并增添了一些功能:用户可以在用户界面编辑器中创建控件,并在的程序中对它进行控制,本书将在第章“使用控件”中介绍用户可以用中的向导创建或者编辑服务器,本书将在第章“创建服务器”中介绍。用户界面厍中包含了一系列新的搾件。另外,对先前版本原有的搾件和菜单也进行了修改,使其更加接近标准的控件,的控件将在第章的的控件”中介绍支持多字节字符的应用。另外,现在的标准库和仪器驱动程序的上具箱包含了用户可以调用的函数和宏,用户可以用它们实现包含多字节字符的语句。在源程序中书写中文不会像先前的版本那样出现乱码。源代码浏览器列出了程序中的所有的文件、函数、变量、数据类型以及宏。用户可以用这个浏览器了解到程序的一个部分如何与另一个部分相互作用,本书将在第章“源代码编辑工具”中介绍这部分内容。用户可以用图形数组浏览窗∏作为调试上具,以图形方式观察生成的维或二维数组,该部分内容将在第章“显示和编辑数据”中介绍。在中,用户可以将多个工程分组到一个工作台。所有关于工程的外来设置都受工作台的保护。使用工作台,使得在同一源代码设置下的多个开发人员更容易共享工程。用户可以在用户界面编辑器中俣存预宄设置好的用户界面控件,以后可以在用户界面面板中使用,本书将在第章“的控件”中介绍
    2020-12-07下载
    积分:1
  • PCM相互转换WAV
    文章路径http://blog.csdn.net/chenluliang/article/details/74943130
    2020-11-28下载
    积分:1
  • OFDM及信道估计的
    关于OFDM信道估计程序,有ofdm基本程序,信道模型等
    2020-12-03下载
    积分:1
  • 五子棋(AI,悔棋均实现)
    一个简单的五子棋程序 实现基础的人人对战 人机对战 悔棋功能 以及背景音乐(存在小瑕疵),希望有志之士能加以修改,分享交流经验
    2021-05-06下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载