三维装箱问题的模型与改进遗传算法
关于三维装箱算法问题, 一些算法理论, 感觉对这方面的应用有一定帮助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
16×64LED点阵显示屏的设计(附完整proteus仿真图和源程序)
16×64LED点阵显示屏的设计(附完整proteus仿真图和源程序)答辩记录1、例举设计过程中遇到的问题及其解决方法(至少两例)。答:(1)问题说明:解决方法:(2)问题说明:解决方法2、教师现场提的问题记录在此(不少丁2个问题)《单片机原理及应用》课程设计摘要LED电子显示屏是利川发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,在信息显示领域得到了广泛的应用,实现显示屏的技术也有很多和。本文介绍了基于单片机80C51为控制器的16×64LED点阵显示屏系统的设计。整机以美国 ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595米驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,全屏能显示4个汉字,采用16块8×8点阼LED显示模块来组成一个16×64点阼显示模式。显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。本文介绍了利用 Proteus7.10软件进行原理图的绘制,利用汉字转换软件将汉字转换为将要发送给单片机的点阵数据,在keil软件当中采用C语言编程,与 proteus进行联调,并通过仿真软件Proteus7.10最终实现自己设想的效果,总体上系统的设计简单、显示清晰、成本较低。关键词:单片机;LED;点阼屏;c语言《单片机原理及应用》课程设计目录摘要设计任务基本要求选做设计方案点阵屏显示模块原理数据传输方案系统硬件电路的设计单片机系统及外围电路点阵显示屏设计点阵显示器的扫描驱动系统软件的设计显示驱动程序系统主程序总结参考文献附录:总设计图附录:总源程序《单片机原理及应用》课程设计设计任务从LED材料的不断更新,灰度控制技术的发展,真彩色图像的展现:到驱动电路的灵活、高效,控制系统技术的提高无不体现了LED行业技术的飞跃发展另外,随着计算机的网路技术的发展,LE显示屏在网路环境下的使用情况越来越多,在多媒体、多和显示设备组成的信息显示系统中,采用智能化网路控制,联网控制多屏技术也在实际屮得到应用。本文讨论了利用单片机为控制信号完成一个点阵显示屏系统的设计。11基本要求设计一款能够显示不同字符的点阵广告牌;2.设计不同的字符切换效果(如內烁,静止,平移等);设计控制按钮,可以在不同的效果间切换;12选做4能够显示图形或自定义字符5通过串行口从电脑上下载更新需显示的字符6其他功能(创新部分)图示例图《单片机原理及应用》课程设计设计方案21点阵屏显示模块原理四个8×8的点阵构成一个16×16的点阵,共由256个LED构成。如果LED的阴极与行相连,而阳极与列相连,那么只要给该LED对应的行以低电平,列以高电平,那么对应的LED就发光。图2-1画岀了可显示一个汉字的16×16的点阵屏模块。这种模块由256个发光LED以16×16的形式构成一个正方形模块,然后引出2列16针的引脚将内部电路接口引出,供驱动电路使用0200100fFC200生400gfEO004000800100TFFE010010001000005000200图2.1LED点阵显示原理图行对应的给LED的阴极,先给第一行以低电平,如果送给16列的代码为0200,则第一行的第7个LED被点亮,再给第二行以低电平,如果送给16列的代码为0100,则第二行的第8个被点亮,接着给第三行以低电平,同时给列以动代码,这样不断地进行行行的扫摧,只要速度够快,由于人的祧觉暂留作用,就不会感觉釗明显的闪烁感。点阵上会看到一个清晰的“字”字《单片机原理及应用》课程设计22数据传输方案显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并列传输的方案是不可取的。采用牛行传输的方法,控制电路可以只用根信号线,将列数据位一位传往列驱动器,在硬件方面无疑是卜分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这行的各列才能并行地进行显小。这样,对于一行的显小过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就人少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响行的显示。图22为显示屏电路实现的结构框图列驱动列驱动列驱动列驱动单片机控制器行驱动6×6LED16×⊥6LED16×16LED6×6LED点阵点阵点阵点阵图点阵显示屏系统框图《单片机原理及应用》课程设计系统硬件电路的设计本系统采用单片机作控制器。整个电路主要由单片机控制及其接口电路、驱动显小电路、电源电路等部分纽成。为了简化显示屏电路,降低成本,本系统在单片机部分不加字库存储器,而在机上编辑汉字和字符显示信息,并将其转换为相应的点阵显示数据。然后通过串口送给单片机存储并进行显示处理使件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路部分。31单片机系统及外围电路单片机采用MSC-51或其兼容系列芯片,采用24MHZ或更高频率晶振,以获得较高的刷新频率,时期显小更稳定。单片机的串口与列动器相连,用来显小数据。P1口低4位与行驱动器相连,送出行选信号;P1.5~P1.7口则用来发送控制信号MSC51单片机部分管脚说明如下:P0口:P0口为一个8位漏级开路刈向I/0口,每脚可吸收8TTL门电流。当P凵的管脚第次写1时,被定义为高阻输入。P0能够用于外部程序薮据存储器,它可以被定义为数据/地址的第八位P1凵:P1凵是一个内部提供上拉电阻的8位双向I/0凵,P1凵缓冲器能接收输出4L门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程和校验时,P1口作为第八位地址接收P2凵:P2凵为一个内部上拉电阻的8位双向I0凵,P2凵缓冲器可接收输出4个TL门流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将《单片机原理及应用》课程设计输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“I”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2凵输出其特殊功能寄存器的内谷。P2凵在 FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/0口,可接收输出4个TTL门电流。当P3凵写入“1”后,它们被内部上拉为髙电平,并用作输入。作为输入,由亍外部下拉为低电平,P3凵将输出电流(IL)这是由于上拉的缘故RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。CF气x1灯TAP0ADD□P0.2/AD236C2F4/D4F0.5AD5PO, 3JAD6RSTPO.7/A07A3t4C3H山ARo 1nFP2.2A10PSENP2.3A|1ALEF2.4inP2541328P25A1427P27A|5P123P3. 0/RXD F10F1.1/2EP3. ITXDP3 2/NT0F13P1361. 4P34/014P3 6R16PC/FD17B9C54图单片机最小系统原理图
- 2020-12-12下载
- 积分:1