三维装箱问题的模型与改进遗传算法
关于三维装箱算法问题, 一些算法理论, 感觉对这方面的应用有一定帮助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
- 2020-12-05下载
- 积分:1
ALINX黑金Zynq7000开发平台配套教程
当我们拿刡开収板是否应该测试一下收刡癿开収板是否功能正常,以及各个接口工作是否工作正常。在出厂前我们已经在SD卡里存储了启劢程序和操作系统,所以开収板上电就能启劢幵可以用杢测试各个部分接口和电路癿工作是否正常。通过测试也使大家对我们开収板癿功能有一个大致癿认识。ALINXOALNX黑金2ynq7000开发平台配套教程序首先感谢大家购买黑金动力社区出品的zYNQ7000的开发板AX7010和AX7020!您对我们和我们产品的支持和信任给我们增添了永往直前的信心和勇气。赛灵思公司xinx)于2012年推出zynq7000SOC芯片解决方案,该方案将双核ARMCortex-A9和 FPGA Fabric集成在一颗芯片上,通过内部总线连接,ARM和FPGA之间的通信速度大大提高,从而提高芯片整体性能。但同时,ARM和FPGA两门之前独立的软硬件学科在一颗芯片上应用,大大提高了芯片入门门槛。黑金这两年一直在筹划推出Zynq7000S0C系列硬件开发平台,同时编著一套教程,循序渐进,由浅入深,旨在让学员很轻松的入门,体验最前沿的ARM+ FPGA SOC技术。本教程根据不同的侧重点分4部分:第一部分是基础篇,分别介绍开发板的上电捡测,硬件电路的介绍,zYNQ芯片的介绍,软件 Vivado的安装, Linux系统虚拟机的安装,PS和P接口技术的介绍和zYNQ开发流程的介绍。通过基础篇让大家对黑金开发板AX7010/A×7020及zYNQ芯片和开发有一个总体认识,为后面几部分的学习打好基础。第二部分是逻辑篇,在逻辑篇里我们把ZYNQ芯片当做普通的FPGA来使用,结合开发板和厶YNQ芯片的资源实现纯逻辑的开发。我们会通过大量的应用实例让大家了解和掌握FPGA的 Verilog程序的设计及实现。AX7010/AX7020开发平台的硬件资源。播下—粒种子,收获一片森林”,更是黑金 ALINX硬件开发的美好愿望,同时我们会在黑金动力社区http://www.hejin.org和大家一起讨论,一起学习,一起进步,一起成长。ALⅠNX黑金mq700.列开发宏典http://www.heijin.orgALINXOALNX黑金2ynq7000开发平台配套教程目录序目录......4第一部分基础篇…第1章AX7010/AX7020开发板开箱检测.1.1准备工作.1.1.1硬件配置….112USB转UART驱动安装…1.1.3终端登录工具 Securecrt安装1.2外设连接141.3实验操作第2章zYNQ7000芯片的简介……172.1PS内部资源介绍……2.1PL内部资源介绍.….…19第3章 Vivado软件安装.31WⅣVADO软件介绍…。,乙3.2 VIVADO软件版本…033WⅣVADo软件安装21第4章Linuκ系统虚拟机的安装2941虚拟机的安装294.2安装 ubuntu30第5章PS和PL接口技术详解.4151AⅪ接口标准介绍4152zYNQ的AXI资源445.3P端的AⅪ接口设计……,455.4 AXI Interconnect.………第6章zYQ芯片开发流程的简介……4961开发工具介绍…4962开发流程说明……50第二部分逻辑篇52第7章 FPGA LED控制实验……5271硬件介绍.527.2创建工程537.3编写流水灯的 verilog代码….ALⅠNX黑金mq700.列开发宏典http://www.heijin.orgALINXOALNX黑金2ynq7000开发平台配套教程74添加XDC管脚约束文件7.5编译7.6下载和调试…翻。着69第8章HDMI输出实验7381HDMI及TMDS原理738.2硬件介绍.758.3程序设计……/684添加XDC管脚约束文件798.5编译和下载80第三部分SDK篇81第9章 Hello world实验….18191 Vivado工程创建8192zYNQ系统的配置…9.3硬件导入SDK.9994SDK软件编程….10295下载和调试.,105第10章P端和PS端的协同设计流水灯实验110101 Vivado工程创建.110102zYNQ系统的配置11110.3添加XDC管脚约束文件….121104编译生成比特流文件122105硬件导入SDK12310.6SDK软件编程125107下载和调试…127第11章定时器中断实验131111中断控制器和计数器..131112zYNQ系统的配置13211.3硬件导入SDK.135113SDK软件编程..137114下载和调试…1D妻第12章按键实验..142121PS和PL共亨中断142122 Vivado工程创建…14312.3添加按键IP.……14512.4添加按键管脚约束15212.5编译生成比特流文件.153126硬件导入SDK153127SDK软件编程155ALⅠNX黑金mq700.列开发宏典http://www.heijin.orgALINXOALNX黑金2ynq7000开发平台配套教程128下载和调试…161第13章自定义IP实验166131RTC时钟DS1302166132Vⅳvado工程创建.118133创建自定义IP134添加RTC管脚约束185135编译生成比特流文件…∴18513.5硬件导入SDK.186136SDK软件编程.186137下载和调试…189第14章VDMA实验硬件系统搭建….19314.1硬件构架193142搭建硬件工程…..….194143添加HDMI管脚约束…223144编译生成比特流文件…22414.5硬件导入SDK224第15章VDMA实验SDK软1件.225151SDK软件编程..225152程序说明22615.3图像数据生成方法…::::::::::::::.·t23154下载和调试235第16章程序固化和启动239161开发板启动流程239162 Vivado工程修改……163生成FSBL可执行文件….245164BOOT.BIN文件的生成165烧写 FLASH并启动254166SD卡启动257第17章 Linux开发环境的搭建………259171安装Lnu版本的SDK259172安装32位支持工具包270173安装 OpenSSL库第18章∪-boot的编译和启动.…273181∪-Boot原理及实现182∪-Boot的编译…279183生成 BOOTBIN文件283184 Uboot启动实验.295第19章内核的编译299ALⅠNX黑金mq700.列开发宏典http://www.heijin.orgALINXOALNX黑金2ynq7000开发平台配套教程191 Linux内核介绍299192 Linux内核源码编译301193设备树 Device tree的编译.194文件系统第20章SD卡的制作20.1SD卡分区31020.2复制BOOT.BIN文件31420.3复制编译后的内核文件315204复制编译后的设备树文件·:..31520.5复制文件系统31620.6 Linux sd卡启动第21章 Linux系统下的 hello world实验…322211 nfs server安装和配置..322212编写 helloworld程序21.3编译 helloworld程序.33021.4运行……30第22章 Linux系统下的GPIO应用实践.332221 sysfs方式控制GPIO33222.2编写GPIO应用程序33622.3编译GPIO程序…:::::::::::·:340224运行和实验341ALⅠNX黑金mq700.列开发宏典http://www.heijin.orgALINXOALNX黑金2ynq7000开发平台配套教程第一部分基础篇第1章AX7010/AX7020开发板开箱检测当我们拿到开发板是否应该测试一下收到的开发板是否功能正常,以及各个接口工作是否工作正常。在出厂前我们已经在SD卡里存储了启动程序和操作系统,所以开发板上电就能启动并可以用来测试各个部分接口和电路的工作是否正常。通过测试也使大家对我们开发板的功能有一个大致的认识。11准备工作1.1.1硬件配置开发板的上电检测需要以下的设备。其中SD卡里我们已经为用户存储了ARM的Boot启动程序和系统的镜像文件 lmage。红色USB线用于开发板和PC之间的串口通信。HDM线和HDMI显示器用于显示AX7010/AX7020开发板翰出的 Ubuntu界面,网线用于开发板连接 Internet网络,USB鼠标和键盘用于人机交互操作。因为开发板上只有一个USB口,这里需要连接一个∪ SB Hub设备来扩展多个USB口连接USB键盘和鼠标。AX7010开发板或AX7020开发板◇5V直流电源适配器(开发板自带)令 Micro sd卡〔开发板自带)mini usB数据线2根(开发板自带)今网线◇HDMI线和HDMI显示器◇USB鼠标和键盘r USB Hub◇PC机ALⅠNX黑金mq700.列开发宏典http://www.heijin.orgALINXOALNX黑金2ynq7000开发平台配套教程下图为开发板自带的测试设备:S ZNO(1).AX7010/AX7020开发板;(2).SD卡读卡器;(3).+5V电源;④4).2根USB线;(5)SD卡下图为用户自己需要准备的测试设备USB Hub网线USB鼠标图图图图图图围图国园USB鼠标HDMI显示器ALⅠNX黑金mq700.列开发宏典http://www.heijin.orgALINXOALNX黑金2ynq7000开发平台配套教程112USB转UART驱动安装测试前我们需要安装∪SB转串口的驱动软件(05软件工具及驱动CP2l0 x Windows Drivers.zip),不然无法做串口通信测试。驱动安装好以后,用红色USB线连接电脑USB口和开发板上的∪ART口(7)进行连接,然后打开电脑的设备管理器,设备管理器能够找到串口设备CP210x,我机器上映射的是COM3。4端口(COM和LPTPH Silicon Labs CP210x USB to UART Bridge(COM311.3终端登录工具 SecureCrt安装终端工具有很多, putty, teraterm, Windows自带终端工具, SecureCRT等等,众多终端工具中,比较下来,还是 Securecrt最好用,我们在资料的05_软件工具及驱动 Securecrt目录下为大家准备了绿色免安装的 secureCRT软件。下面简单介绍基于 SecureCrT串口终端的创建(在后面串口终端打印启动信息,需要用到双击 Secure CRTexe图标112005/12/917:29应用程序打展273ORDER TXT2006/5/3113:30文本文档6README.TXT207/3/3013:51文本文档SecureCRT. CH2007/3/2111:57编译的HmL帮aaSecureCRT.EXE2007/4/81:12应用程序1.890sN. txt207/6/1115:03文本文档SSH2Client43. d1.2007//210:52应用程序扩展4663SSH2Core43.all2007/4/210:52应用程序扩展1,058第一次使用会弹出以下对话框,点击OKe CRTThis is the first time that you have runSecureCRT?. SecureCRT needs to set a folder wherefy a fol der belPressing Cancel will exit the application wi thoutsetting the confi gurati on folder.ADministrator App Data RoaninzlanDwke cOnf」C点击YES。ALⅠNX黑金mq700.列开发宏典10http://www.heijin.org
- 2020-07-01下载
- 积分:1