CN100347713C - 基于最小自由度优先原则的提高集装箱装箱效率的方法 - Google Patents
基于最小自由度优先原则的提高集装箱装箱效率的方法 Download PDFInfo
- Publication number
- CN100347713C CN100347713C CNB2004100688427A CN200410068842A CN100347713C CN 100347713 C CN100347713 C CN 100347713C CN B2004100688427 A CNB2004100688427 A CN B2004100688427A CN 200410068842 A CN200410068842 A CN 200410068842A CN 100347713 C CN100347713 C CN 100347713C
- Authority
- CN
- China
- Prior art keywords
- module
- container
- modules
- sequence
- freedom
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000005094 computer simulation Methods 0.000 claims abstract description 3
- 238000012856 packing Methods 0.000 claims description 27
- 230000001186 cumulative effect Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 claims description 9
- 230000003321 amplification Effects 0.000 claims description 8
- 230000001174 ascending effect Effects 0.000 claims description 8
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 8
- 238000004088 simulation Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 230000008676 import Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 21
- 238000002474 experimental method Methods 0.000 description 3
- 239000004575 stone Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 210000001015 abdomen Anatomy 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000009408 flooring Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
基于最小自由度优先原则的提高集装箱装箱效率的方法属于运输技术中的装箱技术领域,这种方法适合于所有将长方体物品填放入长方体容器的问题。其特征在于,它按照最小自由度优先的原则,通过计算机模拟,从待装入集装箱的所有模块中,提出候选方案,并从候选方案中根据模块空间自由度最小的原则选出最优方案。重复上述两步,从而确定要装入集装箱的多个模块,及每一个模块沿何种方向放置,放在集装箱中的具体位置,最终输出所述这多个模块的放置方式序列,使得集装箱的容量得到充分利用。
Description
技术领域
基于最小自由度优先原则的提高集装箱装箱效率的方法属于运输技术中的装箱技术领域,这种方法适合于所有将长方体物品填放入长方体容器的问题,例如典型的集装箱装箱问题或是仓库装填问题。
背景技术
如今,随着时代的不断发展,每天都有无数的货物装填到集装箱、车厢等各种容器内进行运输。为了能够节约成本、时间和人力等,人们总在想用更快的速度找到一种最好的装填方法,使容器能够尽量方便地装载尽可能多的货物。
现今集装箱装箱技术中比较常用的是LL(layer by layer-level by level层叠式)方法。此方法能提供稳定有效的装填方法,但是它随着模块种类的增多,填放效率会大幅度下降。简单的说,对于箱子列表I={b1,b2,……,bn},LL按给定的顺序放置箱子,LL开始将b1放置在容器B的最底部的左下角处(假设),然后从左到右地装填这排直到bk放不进这排(“排”指在同一水平面从前到后的层次),而将bk填到下一排(此排与b1在同一水平面上)。这个过程不断重复直到bp不能装入此水平面,另一层(比b1等高一水平面)被创建。图1是LL方法的实例。从顶视图和侧视图可以看出,LL方法在每一层的放置过程中由于照顾到最大模块,填放较小模块时产生的零碎空间无法充分利用,因此LL方法的空间利用率很低,但是由于其思路操作简单,运算速度较快,所以它仍是目前主流解决方法,大部分算法都是建立在这种思想的基础上的改进或优化。
发明内容
本发明的目标的在于,提出一种基于最小自由度优先原则的提高集装箱装箱效率的方法,能够充分有效地利用集装箱空间。LFF(Less Flexibility First最小自由度优先)方法起源于劳动人民的生产生活中。长期以来,人们在用具有多边形平面的石块砌河岸,砌墙,铺地板时,总是最先使用受限制最多的资源,例如首先从工作区域的角部做起,首先使用面积大或长的石块等等。这就是所谓的“最小自由度优先”原则。围棋中的“金角,银边,草肚皮”说的也是这一原则。利用这个方法解决装箱问题,装箱效率(主要指空间利用率)上得到很大提高。
本发明采用LFF(最小自由度优先)原则,以一种确定性的带有人工智能的方法来解决装箱问题,以期达到更好的空间利用率和时间利用率,尤其是在模块形状差异较大时的空间利用方面。将本发明所解决的装箱问题抽象成数学问题就是给定一个集装箱的大小(长宽高分别为L、W、H),将一系列小模块Mi(长宽高分别为li、wi、hi)填入此集装箱中,模块可以颠倒翻转,沿各个方向放置,但模块不能有变形或和其它模块重合,希望能够放置进去的模块总体积最大。
工人在将货物运进仓库时,一般先将较大的货物填放进仓库,并且填放在仓库的角部,装集装箱也是如此。受此启迪,LFF方法的基本思想就是认为仓库的角部或是较大的货物的限制性较大,认为它们的自由度较低,因此先进行操作。
首先介绍一下自由度的概念。简单的说,自由度就是能够移动的限度。根据需要,我们定义了三种自由度,一种是空间区域的自由度,一种是模块的自由度,另一种是模块的放置位置的自由度。
自由度1:我们定义空间区域的自由度是角<边<中间,由图2可以看得很清楚,角部只能向三个方向移动,边上可以有四个,中间能有六个,因此,角部自由度<边上自由度<中间自由度,将自由度量化表示就是
角部:Pcf=3/6=1/2;边上:Psf=4/6=2/3;中间:Phf=6/6=1
因此先放置在角部上,最后中间。而我们在实际操作中,只将模块放置在角上(因为在边上或中间的模块经过平移一般总会靠在某个角上)。本方法中用链表结构记录可供模块放置的角的空间位置,下文中链表中的结点为角结点,即代表可以放置模块的空间。
自由度2:关于模块的自由度,并没有确定的定义,主要是根据实际需要来选择。例如既可以只凭体积判断自由度大小,体积越大,自由度越小,也可以只凭最长边的长短定义,本方法中,采用最长边的比较方法决定模块自由度大小。
自由度3:模块的空间位置的自由度Mi f,见图3。我们认为对于虚线的模块来说,(b)图的放置位置就比(a)图自由度要低,要好。定义模块位置自由度
Cj为模块mi的第j个顶点的周围情况,如图4,在模块bi的某个顶点j的8个方位上,各取一个单位立方体(也即最小立方体,如果这个立方体与某模块x有重叠也即说明模块bi与x是相邻紧挨着的),先初始化Cj为0,然后把这8个立方体分别与集装箱内所有已放入的模块作是否重叠的判断以及是否超出集装箱边界的判断,如果某个单位立方体在集装箱内并且与集装箱内已填入的所有模块均没有重叠,则把Cj加1。这样假设顶点j的8个单位立方体中有m个与所有模块(包括此模块本身)均无重叠,那么Cj值就为m。然后把模块bi8个顶点的Cj值全部累加,就得到模块bi此时的Mi f值。例如图3虚线模块在(a)情况下的C1=0,C2=1,C3=3,C4=1,C5=1,C6=3,C7=7,C8=3,因此Mi f为19,(b)情况下C1=1,C2=0,C3=0,C4=1,C5=3,C6=1,C7=1,C8=3,因此Mi f为10,所以选择(b)方案。
本发明的特征在于:它按照最小自由度优先的原则,通过计算机模拟,从待装入集装箱的所有模块中,选出多个模块,确定这多个模块中每一个模块装入集装箱的方式,即每一个模块沿何种方向放置,以及放在集装箱中的具体位置,最终输出所述这多个模块的放置方式序列,使得集装箱的容量得到充分利用;它含有计算机处理的以下步骤:
1)初始化:
输入集装箱的长L、宽W、高H;
按照模块自由度由小到大的原则输入待放置模块序列{Mi},其中i指模块排列的秩序,1≤i≤m,i为整数,m指序列中模块的个数,序列中每一个元素包含模块的长、宽、高信息;所述模块自由度由小到大原则是指按照模块最长边由大到小的顺序,当模块最长边相等时根据次长边由大到小的顺序,当模块次长边也相等时按照最短边由大到小的顺序排列;
以集装箱底部任意一个角作为坐标原点,以集装箱的长、宽、高三个方向分别作为坐标轴,则集装箱中所有可填放模块的角结点形成一个角节点链表;记为Sp(xp,yp,zp),p表示角结点的序号;角结点链表中的角结点的初始值为S1(0,0,0),S2(L,0,0),S3(0,W,0),S4(L,W,0);
最终要确定的模块放置方式序列{Gq},其初始值为空;
2)确定候选方案序列:
2.1)将模块序列中的任意一个模块按照任意方向模拟填入角结点链表的任意角结点,记录下此时模块的位置坐标;
2.2)判断在该位置坐标时集装箱是否能装入该模块,且模块是否与集装箱中已装入的其它所有模块均不重叠,若满足,则将该模块的此种放置方式作为候选方案记录到候选方案序列中,继续下一步;若不满足,则返回2.1)步确定下一个候选方案;
2.3)重复2.1)~2.2)得到所有模块所形成的候选方案序列;
3)根据模块空间位置自由度Mi f最小的原则从候选方案序列中选出最优方案,即确定可实际填入集装箱的一个模块及该模块的位置坐标;
3.1)根据模块空间位置自由度Mi f最小的原则,确定一个候选方案所能对应的能装入集装箱的模块总体积,依次含有以下步骤:
3.1.1)对于其中任意一个候选方案,将集装箱的角结点链表更新;
3.1.2)将待放置模块序列中剩余模块自由度最小的第一个模块沿任意方向填入任意角结点,记录下该模块此时的位置坐标;
3.1.3)判断在该位置坐标时集装箱是否能装入该模块,且模块是否与集装箱中已装入的其它所有模块均不重叠,若满足,则继续下一步;若不满足,则返回3.1.1)步处理下一个候选方案;
3.1.4)记录下该模块每一个顶点的坐标;
3.1.5)对每一个顶点分别取8个方向的单位正方体,记录下每一个单位正方体的位置坐标;
3.1.6)判断集装箱内的每一个单位正方体是否与集装箱中其他所有模块重叠,计算与所有模块均不重叠的集装箱内的单位正方体的总数,该总数即为该模块在当前位置坐标时的空间位置自由度Mi f;
3.1.7)将该模块的其它所有放置方式的空间位置自由度Mi f进行计算,得到该模块的空间位置自由度序列{Mi f},从该序列中选出该模块空间位置自由度最小的方案,记录下该方案所对应的模块的位置坐标,并将该模块与在此之前已最终确定放置方式的模块以及模拟放入集装箱的所有模块的体积累加;
3.1.8)更新角结点链表,重复步骤3.1.2)~3.1.7),依次处理待放置模块序列中剩余的模块,直到处理完模块序列中剩余的所有模块,则得到一个候选方案所对应的能装入集装箱的模块的总体积;
3.2)将所有候选方案均进行总体积的计算,得到所有候选方案按照模块空间位置自由度Mi f最小的原则所确定的装入集装箱模块的总体积序列;
3.3)从上述总体积序列中选出体积最大的方案,将其对应的候选方案选出,并将该模块及其位置坐标信息存入最终要输出的模块放置方式序列{Gq}中;删除待放置模块序列{Mi}中的该模块,及自由度小于该模块的其他所有模块,使模块序列得到更新;同时以模块放置方案序列{Gq}中的模块位置坐标为基础,将集装箱的角结点链表更新;
4)返回第2)步,确定下一个可实际填入集装箱中的模块及其位置坐标,将此信息存入最终要输出的模块放置方式序列{Gq}中;
5)当待放置模块序列中的所有模块均已被删除,或集装箱已没有空间继续填放模块时,输出最终的模块放置方式序列{Gq},结束。
上述模块在集装箱中的放置方式即位置坐标记为(x1,y1,z1,x2,y2,z2),其中x1,y1,z1是模块最靠近坐标原点的顶点的坐标,x2,y2,z2是模块最远离坐标原点的顶点的坐标。
所述角结点链表的更新方法如下:
1)纪录下更新之前填入集装箱的最后一个模块的各个顶点的坐标;对于其中任意一个顶点,分别取其8个方向的单位正方体,记录下每一个单位正方体的位置坐标;若当前顶点的坐标为(x2,y2,z2),则所述8个单位正方体的位置坐标为:
(x2-1,y2-1,z2-1,x2,y2,z2);D类型
(x2,y2-1,z2-1,x2+1,y2,z2);C类型
(x2-1,y2,z2-1,x2,y2+1,z2);B类型
(x2,y2,z2-1,x2+1,y2+1,z2);A类型
(x2-1,y2-1,z2,x2,y2,z2+1);
(x2,y2-1,z2,x2+1,y2,z2+1);
(x2-1,y2,z2,x2,y2+1,z2+1);
(x2,y2,z2,x2+1,y2+1,z2+1)
2)判断每一个单位正方体是否在集装箱内,若在集装箱内则进行下一步,若不在,则转到下一个单位正方体进行判断:
3)若集装箱内的单位正方体中,仅有1个与所有模块均不重叠,且该单位正方体的位置坐标属于上述单位正方体的A、B、C、D四种类型之一,则该顶点是可填放模块的一个角结点;
4)重复1)~3)步处理该模块的其他顶点,确定该模块能够作为角结点的其他顶点;
5)将该模块所有可作为角结点的顶点坐标加入到角结点链表中,同时删除原角结点链表中用于填放该模块的角结点,和删除原角结点链表中与该模块不能作为角结点的顶点的坐标相同的角结点,使角结点链表得到更新。
判断集装箱是否能装入模块的原则如下:
若当前处理模块的位置坐标为(Ax1,Ay1,Az1,Ax2,Ay2,Az2),则当x1<0或y1<0或z1<0或x2>L或y2>W或z2>H时,集装箱不能装入此模块,其它情况都表明能够装入此模块。
在上述初始化步骤中,在输入每一个待放置模块的长、宽、高信息中,有n个模块的长、宽、高相同,长、宽、高分别为l,w,h;则在排列成待放置模块序列之前先进行以下步骤的处理:
1)设a=int(l/w),b=int(l/h);
2)设s=int(n/2),k=int(s/(a×b));
3)将(a×b)个小模块搭成一个大模块,该大模块的长为l,宽为(a×w),高为(b×h);这种大模块的个数为k个;
4)将上述k个大模块与(n-a×b×k)个原小模块与其它模块一起按照模块自由度由小到大的顺序排列成待放置模块序列。
实验证明,本方法能够提高集装箱的空间利用率,达到了预期的目的。
附图说明:
图1是LL方法实例图;图1(a)是俯视图,图1(b)是左视图;
图2是空间区域的自由度示意图;
图3是模块空间位置自由度的示意图,图3(a)是示意图之一,图3(b)是示意图之二;
图4是本方法总流程图;
图5是模块序列双向链表示意图;
图6是确定候选方案序列的流程图;
图7是模块在集装箱中的位置坐标示意图;
图8是模块6种放置方向示意图;
图9是从候选方案序列中选出最优方案的流程图;
图10是模块顶点取8个方向单位正方体的示意图;
图11是实施例的模块序列双向链表示意图;
图12是实施例的集装箱示意图同时也是角结点类型示意图;
图13是实施例的集装箱初始状态的角结点链表;
图14是实施例的模块和角结点的对应图;
图15是实施例的模块M1填放方式之一的示意图;
图16是实施例的模块M1形成的候选方案序列;
图17是实施例的模块M1的一种放置方式示意图;
图18是实施例的模块M1的另一种放置方式示意图;
图19是实施例中3个模块的方案个数示意图;
图20是实施例中放置完模块M2后,更新的角结点链表;
图21是模块M2和M3的填放示意图;
图22是一个较复杂情况的实例图;
图23是有多个相同模块时的处理示意图。
具体实施方式:
从物理角度来将,按照LFF方法,每填放一个模块,需要两大步骤。第一,要提出一系列候选方案;第二,针对每种候选方案,按照某种方式操作(下文将详述)后,选择出我们认为最优的方案。
步骤1:先将需要填放的m个模块按最长边由大到小的顺序,当最长边相等,以次长边由大到小的顺序排列形成一待放置模块序列{Mi},记录下集装箱中所有可供填放的角部位置。将待放置模块序列中的第一个模块M1,沿不同放置方向模拟填入容器中各个角部位置,形成n1种放置候选方案(M11~M1n1)。然后将M1拿出集装箱,将模块M2填入,形成n2种放置候选方案(M21~M2n2),这样直到m个模块都被模拟填入过。此时应该记录了(n1+n2+……+nm)个候选方案,形成候选方案序列。
步骤2:针对各个候选方案,将待放置模块序列中的剩余模块(对于方案M11~M1n1,剩余模块为M2~Mm;对于方案M21~M2n2,剩余模块为M3~Mm,以此类推)依次(也即按照模块自由度由小到大顺序,先前形成的模块序列是按照此顺序排列的)按照模块的空间位置的自由度Mi f最小的原则(尝试所有的放置可能,记录下所有情况下的Mi f,选择Mi f最小的那种方案)填入集装箱中,记录各个候选方案能够放置的模块总体积(V11、V12、……、V1n1、V21、V22、……V2n2、……、Vm1、……、Vmnm)。比较这些总体积,找出最大的那种候选方案(例如Mk),我们认为是最优方案,按照这种方案填放,并删除其它候选方案。选定后,将此模块Mk之前的所有模块(包括此模块)从待放置模块序列中删除,此时待放置模块序列是(Mk+1,Mk+2,……,Mm)。
经过这两个步骤,一个模块放置完毕,接着按此方法填放下一个模块,直到填完所有的模块或集装箱容器内无法再填入模块。
下面结合附图详细阐述LFF方法。
LFF方法的基本流程图见图4,下做详细说明。
(1).输入数据(注意所有数据均为正整数)。所有的模块大小数量及容器大小都是由使用者自行定义的,以文本文件的形式提供输入。此文件可参照以下格式:
第一行为集装箱的大小,三个数据分别为长宽高,中间以空格分隔;以下行代表需要装填入集装箱的长方体模块,每一行代表一个模块,每一行的三个以空格隔开的数据分别表示这个长方体的长宽高。例如:
input file name:input
104 96 84
104 70 24
104 48 14
56 12 3
这个输入文件表达了如下信息:
集装箱大小:104(长),96(宽),84(高);
模块:共有3个长方体模块,1个长宽高分别为104、70、24;1个长宽高分别为104、48、14;另一个长宽高分别为56、12、3。
输入时,不失一般性,认为最长边为长(lenth),次长边为宽(width),最短边为高(height),再根据模块自由度的定义,将所有模块组织成双向链表,自由度越小的模块越在前面,也即越先被操作。在本方法中,以最长边的长度为自由度大小衡量标准,即最长边越长,自由度越小,若最长边相同则比较次长边,以次类推。双向链表中每个结点表示一个模块。结点结构由模块的序号ID、长lenth、宽width、高height组成,如图5所示。结点间由双向指针链接,即除了根结点(第一个结点)的其它结点同时有父结点和子结点,根结点只有子结点。
(2).模拟装填进一个模块(称为当前处理模块,模块序列中当前处理模块后面的所有模块称为后续模块),并进行判断。注意此阶段放置都是模拟放置,所有模拟方案仅记录为候选方案序列,未记录为最优放置方案,可将此阶段称为试填阶段。流程图见图6。
(2.1).设置当前处理模块的放置方向。一个长宽高各不相同的长方体模块沿着集装箱的长、宽、高共有6种放置方向(见下面说明),可以任意设一种初始方向。
在说明六种放置方向之前,先介绍一下如何记录模块在集装箱中的位置信息。
以集装箱底部任意一个角作为坐标原点,以集装箱的长、宽、高三个方向分别作为坐标轴,则模块在集装箱中的放置方式即位置坐标用六维数据(x1,y1,z1,x2,y2,z2)表示,其中x1,y1,z1是模块最靠近坐标原点的顶点的坐标,x2,y2,z2是模块最远离坐标原点的顶点的坐标;假设坐标原点是集装箱的左前下角,则六维数据(x1,y1,z1,x2,y2,z2)记录了模块的左前下角(模块内所有点中,三维坐标都最小的那个点)到右后上角(模块内所有点中,三维坐标都最大的那个点)的一条角对角线两端顶点的三维坐标,这样就准确确定了一个长方体的位置坐标。见图7,记录下A点和B点的坐标后,此模块在集装箱中的位置即放置方式也就随之确定。
6种放置方向,如图8:1、模块的长沿着集装箱的长、宽沿着宽、高沿着高;2、模块的长沿着集装箱的宽、宽沿着长、高沿着高;3、模块的长沿着集装箱的长,宽沿着高、高沿着宽;4、模块的长沿着集装箱的宽、宽沿着高、高沿着长;5、模块的长沿着集装箱的高、宽沿着长、高沿着宽;6、模块的长沿着集装箱的高、宽沿着宽、高沿着长。
如果假设模块最左前下角(也就是此模块x、y、z轴坐标均为最小的那点)坐标固定为(x,y,z),它的长宽高分别为l、w、h,那么同一个模块按照这六种放置方向的放置后的位置信息分别为:
(x,y,z,x+l,y+w,z+h);(x,y,z,x+w,y+l,z+h);(x,y,z,x+l,y+h,z+w);
(x,y,z,x+h,y+l,z+w);(x,y,z,x+w,y+h,z+l);(x,y,z,x+h,y+w,z+l)。
一个模块在集装箱中有六种放置方向,将模块沿六种方向填入角结点Sp(x,y,z),角结点在集装箱中有四种类型,以A、B、C、D表示,见图12,则若为A类型时,六种方向所形成的位置坐标分别记为:
(x,y,z,x+l,y+w,z+h);(x,y,z,x+w,y+l,z+h);(x,y,z,x+l,y+h,z+w);
(x,y,z,x+h,y+l,z+w);(x,y,z,x+w,y+h,z+l);(x,y,z,x+h,y+w,z+l);
若为B类型时,六种方向所形成的位置坐标分别记为:
(x-l,y,z,x,y+w,z+h);(x-w,y,z,x,y+l,z+h);(x-l,y,z,x,y+h,z+w);
(x-h,y,z,x,y+l,z+w);(x-w,y,z,x,y+h,z+l);(x-h,y,z,x,y+w,z+l);
若为C类型时,六种方向所形成的位置坐标分别记为:
(x,y-w,z,x+l,y,z+h);(x,y-l,z,x+w,y,z+h);(x,y-h,z,x+l,y,z+w);
(x,y-l,z,x+h,y,z+w);(x,y-h,z,x+w,y,z+l);(x,y-w,z,x+h,y,z+l);
若为D类型时,六种方向所形成的位置坐标分别记为:
(x-l,y-w,z,x,y,z+h);(x-w,y-l,z,x,y,z+h);(x-l,y-h,z,x,y,z+w);
(x-h,y-l,z,x,y,z+w);(x-w,y-h,z,x,y,z+l);(x-h,y-w,z,x,y,z+l);
其中l,w,h分别指模块的长、宽、高;
(2.2).判断当前处理的模块按照当前放置方向是否已模拟填放到所有可供装填的角结点(即是否把已经设置好放置方向的模块尝试填放过所有可以放置的空间)。若是,则跳到(2.5);若否,则根据设置好的放置方向装填模块填放到当前角结点。
(2.3).如果放入后没有和别的模块重叠,并且没有超过集装箱的边界,即集装箱是否能装入该模块,则认为装填合法,记录这种候选方案。
下面说明如何判断模块是否与别的模块重叠,以及是否超过集装箱的边界:
●是否与别的模块重叠:
假设模块A与模块B比较,他们的位置坐标分别为(Ax1,Ay1,z,Ax2,Ay2,Az2);(Bx1,By1,Bz1,Bx2,By2,Bz2),则若Ax1≥Bx2或Ay1≥By2或Az1≥Bz2或Ax2≤Bx1或Ay2≤By1或Az2≤Bz1时,两者无重叠,其余情况都有重叠。
●是否超过集装箱的边界:
假设集装箱长宽高为L、W、H,那么默认集装箱的位置信息为(0,0,0,L,W,H)。再假设模块的位置信息为(x1,y1,z1,x2,y2,z2),那么当x1<0或y1<0或z1<0或x2>L或y2>W或z2>H时,此模块就超出了集装箱边界,其它情况都在集装箱内。
记录候选方案也就是记录下模块的放置坐标(x1,y1,z1,x2,y2,z2)到候选方案序列里。
(2.4).改变当前处理模块准备放置的当前角结点,回到(2.2)。
(2.5).改变一种放置方向,回到(2.2)-(2.4)进行处理,直到6种放置方向全部尝试过,跳到(2.6)。
(2.6).一个模块的所有填放方案都存入候选方案序列后,将当前处理模块改为下一模块,回到(2.1)-(2.5)进行处理,直到所有的模块都被尝试过。
(3).经过第(2)步,将对所有尚未正式填放的模块产生一个装填的尝试候选方案序列,下面我们要从这个序列中选择出一种最优方案。方法是对每种候选方案做一个测试,把模块序列中在候选方案模块之后的所有模块按照模块空间位置自由度最小的原则填入集装箱,看哪种候选方案能填的模块体积最大,即为最优方案。具体流程图见图9。
(3.1).判断所有的候选方案是否测试完。若是,则转入(4),若否,则进行(3.2)。
(3.2).在未填放模块中是否还有比候选方案中模块自由度更大的模块以及集装箱中是否还有角结点以供装填。若否,回到下一个候选方案,转入(3.1);若是,进行(3.3)。
(3.3).将模块按照不同的放置方向和放置方位填入,分别记录下所有可能情况的Mi f(模块的空间位置的自由度)值,选择Mi f值最小的那种方式填入。
如何计算Mi f值前面已经简单介绍,下面再详细说明一下。对于一个放置好的模块,假设它的位置信息为(x1,y1,z1,x2,y2,z2)。它有8个顶点,坐标分别为:A(x1,y1,z1);B(x2,y1,z1);C(x1,y2,z1);D(x2,y2,z1);E(x1,y1,z2);F(x2,y1,z2);G(x1,y2,z2);H(x2,y2,z2);(见图10)对于每个顶点又有8个方位,在这8个方位上各取一个单位正方体。例如:对于D点(x2,y2,z1)来说,它的这8个单位正方体的位置坐标为:
1、(x2-1,y2-1,z1,x2,y2,z1+1);D类型 2、(x2,y2-1,z1,x2+1,y2,z1+1);C类型
3、(x2-1,y2,z1,x2,y2+1,z1+1);B类型 4、(x2,y2,z1,x2+1,y2+1,z1+1);A类型
5、(x2-1,y2-1,z1-1,x2,y2,z1); 6、(x2,y2-1,z1-1,x2+1,y2,z1);
7、(x2-1,y2,z1-1,x2,y2+1,z1); 8、(x2,y2,z1-1,x2+1,y2+1,z1)。
把这8个单位正方体和已填入集装箱的所有模块进行是否重叠以及是否超过集装箱的边界的判断(前面已经介绍过如何进行重叠判断以及超出边界的判断),就可以根据前面Cj的定义得到该点的Cj值,然后其它7个顶点也做类似的操作,也就是共要有8×8=64个单位正方体需要进行判断,总共得到8个Cj值,最后就把这8个Cj值相加即得Mi f值。
还需说明的是,每当填放入一个模块后,需要更新角结点。集装箱中所有可填放模块的角结点形成一个角节点链表:{Sp},p表示角结点的序号,记为Sp(xp,yp,zp),xp、yp、zp为此角结点的三维坐标,角结点共有四种类型,以A、B、C、D表示,参见图12。而判断角结点的方法则与计算Cj值的方法类似。如果模块的8个顶点中某个顶点的Cj值为1,也就说明它位于集装箱内的方位只有一个是空的,那么这个顶点就有可能是一个角结点,还需要看这个顶点的8个方位中究竟哪个是空的。图10中顶点j的8个方位上,如若只有4代表的方位是空的,那么顶点j为角结点,且类型是A,如若只有方位3为空,那么角结点j类型为B,如若只有方位2为空,那么角结点j类型为C,如若方位1为空,那么角结点j类型为D,而如若其它方位为空,那么顶点j并不是一个角结点。如图3(b),当虚线模块填放入集装箱后,我们按照前面的方法来计算它的8个顶点的Cj值,得到C1=1,C2=0,C3=0,C4=1,C5=3,C6=1,C7=1,C8=3。因此新增加了点1、点4、点6和点7共4个角结点,而原角结点链表中的角结点2和点3因为用于填入该模块,而从角结点链表中删除。
(3.4)处理下一模块,转入(3.2)
(4).比较(3)的各种情况所装填入的总体积,选择体积最大的那种,找到对应的候选方案作为最优方案,将其记录到最终要确定的模块放置方式序列中,并将候选方案序列清空。更新集装箱的状态(即在原状态的基础上加上了这个模块,使作为下一步处理的原状态),并且将这个模块以及它之前的所有模块从待放置模块序列中删除,在后期处理中不必再考虑。
(5).回到(2),根据更新了的模块序列在更新了的集装箱状态基础上,重复(2)-(4),直到模块序列中的所有模块均被删除(也即所有模块均被处理完),或是模块序列中的模块无法再放入集装箱,结束所有放置过程,输出此时集装箱的最终确定的填放方案,也即LFF方法确定的最优集装箱填放方案。
用C语言在UNIX工作站下(750M CPU、2G内存、solaris8.0操作系统)编程实现LFF方法后,经测试,在空间利用率方面比以往方法有很大程度的提高,特别是在模块复杂度较高的情况下。
下面我们用一个实例来说明本方法具体操作过程。假设集装箱为长宽高均为5的长方体,要装填进3个模块,其中一个(设为M1)长宽高分别为4、4、4,一个(设为M2)长宽高为4、4、3,另一个(设为M3)长宽高为4、4、2。
1.读入输入文件,形成待放置的模块序列和代表可放置空间的角结点链表。
输入文件内容:
5 5 5
4 4 4
4 4 3
4 4 2
读入后,将所有模块按模块自由度(即自由度定义2)由小到大排序形成待放置模块序列(图11)。
如图12所示,初始状态下,集装箱有4个可放置模块的方位(A、B、C、D)(图12),将其组成角结点链表(图13)。
2.试填模块,形成多种候选方案。
如图14所示,将3个模块分别填入A、B、C、D四个方位,每个方位每个模块应该有6种放置方向,但因为模块M1长宽高相等,模块M2、M3长宽相等,因此分别只有1种和3种放置方向。具体的说,M1填在A处,如图15所示。填在B、C、D处的图省略。此种情况记为M1A,那么M1的试填情况就有四种候选方案,组成链表,如图16所示。
然后尝试M2,同理,将M2填在A、B、C、D,四种候选方案,图17表示的是M2填在A处的情形。改变M2的放置方向,再填入A、B、C、D,又产生四种候选方案,图18表示M2改变放置方向后填在A处的情形。再改变M2的放置方向,同理又可产生四种候选方案。对于一般长宽高都不相等的模块,总共可以改变6次放置方向,但对于M2,由于长宽相等,所以总共是3种放置方向。
同理,再尝试M3,3种放置方向,4个角结点,因此对于M3来说,和M2一样,共12种候选方案。
此步骤完成以后,共有28种候选方案,如图19所示。针对每种候选方案,将剩余的模块按模块空间位置的自由度(自由度定义3)最小的原则填入,记录各个方案所能填入的总体积。对于M1的4种方案来说,剩余模块为M2和M3,但我们发现已经无法再填入M2或M3,所以这4种方案的总体积数都是M1的体积,即64。对于M2的12种方案,剩余模块为M3,我们将M3按照自由度最小原则填入(对于图17,我们将M3填入角结点F或B处,即为自由度最小),我们发现对于这12种方案,所填入总体积都是M2+M3,为80。而对于M3的12种方案,由于M3是最后一个模块,所以总体积就是M3,也即32。
3.比较这28种方案,M2的12种方案所得到的总体积最大,因此我们选定其中的任意一种,不妨设为图17的情况。此时,集装箱的状态如图17所示,更新待放置模块序列和角结点链表。待放置模块序列就只剩M3,而角结点链表如图20所示,A点删去,新增了E、F、G三点。这样我们就完成一个模块的放置。
4.重复2.、3.步,将所有模块按照此方法一一填入。对于此例也就是将M3填入图17情况下的集装箱。最后得到最终放置,见图21。
图22是一个较复杂情况的实例。
一种改进方法:
在处理一些相同模块较多的复杂情况时,我们可以先把一部分小的相同模块搭成一个近似于立方体的较大的模块,然后再进行上面的处理,这样可以减少模块数,大大节约运行时间。具体方法如下:
假设有n个相同的模块(l,w,h),l为最长边,h为最短边,令a为不超过(l/w)的最大整数,b为不超过(l/h)的最大整数,那么我们可以用a×b个这样的模块搭成一个较大的近似立方体模块。但是注意,由于较小的模块具有较大的自由度,为了后面的放置达到较高体积利用率,我们不宜将过多的小模块搭成大模块。实际操作时,我们最多只这样处理n/2个小模块。这是因为虽然将小模块搭成大模块减少了模块数,使得运行时间减少,但是同时大模块的自由度较低,如果所有的小模块都搭成大模块,可能无法充分利用集装箱空间。所以我们只对部分小模块进行操作,n/2是个经验参数,通过大量实验我们认为这个数值比较合适,当然还可以根据实际情况进行调整。
例如,有n=25个长宽高分别为(9,4,3)的模块,9/4=2,9/3=3,因此a=2,b=3,我们可以把a×b=6个小模块搭成一个长宽高分别为(9,9,8)的近似立方体大模块(如图23所示),而我们最多处理不超过n/2=12个小模块,因此最后我们得到了2个大模块和剩下的13个原模块,然后再进行后面的放置处理。
具体实施中,假设有n个长宽高为(l,w,h)的模块,我们要做如下处理:
1.计算得a=int(l/w),b=int(l/h);
2.设s=int(n/2),k=int(s/(a×b));
3.将l、a×w和b×h按从大到小排序,不妨设为l>(a×w)>(b×h);
4.因此最后我们得到k个长宽高为l、(a×w)、(b×h)的大模块,和剩下(n-a×b×k)个长宽高仍为l、w、h的小模块。
实验结果比较:
用一些相同的实验模块进行比较,可见LFF算法在体积利用率上有明显提高。见表1:
文件名 | LL算法体积利用率 | LFF算法体积利用率 |
in1 | 68.7 | 83 |
in2 | 100 | 100 |
in3 | 91.7 | 100 |
in4 | 89 | 89.7 |
in5 | 91.6 | 95.4 |
表1
下附5个文件清单:
文件in1:
104 96 84 34 35 36
1 2 3 37 38 39
4 5 6 40 41 42
7 8 9 43 44 45
10 11 12 46 47 48
13 14 15 2 3 4
16 17 18 5 6 7
19 20 21 8 9 10
22 23 24 11 12 13
25 26 27 14 15 16
28 29 30 17 18 19
31 32 33
文件in2: 文件in3: 文件in4: 文件in5:
104 96 84 104 96 84 104 96 84 104 96 84
70 104 24 70 50 24 70 45 24 28 32 18
70 104 24 70 50 24 70 45 24 28 32 18
70 104 24 70 50 24 70 45 24 28 32 18
70 104 24 70 50 24 70 45 24 28 32 18
14 104 48 70 54 24 70 30 24 24 21 35
14 104 48 70 54 24 70 30 24 24 21 35
70 54 24 70 30 24 24 21 35
70 54 24 70 30 24 24 21 35
14 104 48 70 29 24 24 21 35
14 104 48 70 29 24 19 26 20
70 29 24 19 26 20
70 29 24 19 26 20
14 40 48 16 26 20
9 26 16 20 20 26
14 32 48 16 14 25
14 32 48 16 26 20
14 32 48 16 26 20
14 32 48 16 26 20
9 26 16 16 26 20
9 26 16 16 14 25
9 26 16 16 14 25
14 40 48 16 14 25
14 40 48 16 14 25
14 40 48 16 14 25
14 40 48 24 21 35
14 40 48 24 21 35
14 40 48 24 21 35
14 40 48 24 21 35
14 40 48 24 21 35
14 40 48 24 21 35
Claims (6)
1、基于最小自由度优先原则的提高集装箱装箱效率的方法,其特征在于,它按照最小自由度优先的原则,通过计算机模拟,从待装入集装箱的所有模块中,选出多个模块,确定这多个模块中每一个模块装入集装箱的方式,最终输出所述这多个模块的放置方式序列,使集装箱的容量得到充分利用;所述每一个模块装入集装箱的方式是指每一个模块沿何种方向放置,以及放在集装箱中的具体位置;本方法含有计算机处理的以下步骤:
1)初始化:
输入集装箱的长L、宽W、高H;
按照模块自由度由小到大的原则输入待放置模块序列{Mi},其中i指模块排列的秩序,1≤i≤m,i为整数,m指序列中模块的个数,序列中每一个元素包含模块的长、宽、高信息;所述模块自由度由小到大原则是指按照模块最长边由大到小的顺序,当模块最长边相等时根据次长边由大到小的顺序,当模块次长边也相等时按照最短边由大到小的顺序排列;
以集装箱底部任意一个角作为坐标原点,以集装箱的长、宽、高三个方向分别作为坐标轴,则集装箱中所有可填放模块的角结点形成一个角节点链表;记为Sp(xp,yp,zp),p表示角结点的序号;角结点链表中的角结点的初始值为S1(0,0,0),S2(L,0,0),S3(0,W,0),S4(L,W,0);
最终要确定的模块放置方式序列{Gq},其初始值为空;
2)确定候选方案序列:
2.1)将模块序列中的任意一个模块按照任意方向模拟填入角结点链表的任意角结点,记录下此时模块的位置坐标;
2.2)判断在该位置坐标时集装箱是否能装入该模块,且模块是否与集装箱中已装入的其它所有模块均不重叠,若满足,则将该模块的此种放置方式作为候选方案记录到候选方案序列中,继续下一步;若不满足,则返回2.1)步确定下一个候选方案;
2.3)重复2.1)~2.2)得到所有模块所形成的候选方案序列;
3)根据模块空间位置自由度Mi f最小的原则从候选方案序列中选出最优方案,即确定可实际填入集装箱的一个模块及该模块的位置坐标;
3.1)根据模块空间位置自由度Mi f最小的原则,确定一个候选方案所能对应的能装入集装箱的模块总体积,依次含有以下步骤:
3.1.1)对于其中任意一个候选方案,将集装箱的角结点链表更新;
3.1.2)将待放置模块序列中剩余模块自由度最小的第一个模块沿任意方向填入任意角结点,记录下该模块此时的位置坐标;
3.1.3)判断在该位置坐标时集装箱是否能装入该模块,且模块是否与集装箱中已装入的其它所有模块均不重叠,若满足,则继续下一步;若不满足,则返回3.1.1)步处理下一个候选方案;
3.1.4)记录下该模块每一个顶点的坐标;
3.1.5)对每一个顶点分别取8个方向的单位正方体,记录下每一个单位正方体的位置坐标;
3.1.6)判断集装箱内的每一个单位正方体是否与集装箱中其他所有模块重叠,计算与所有模块均不重叠的集装箱内的单位正方体的总数,该总数即为该模块在当前位置坐标时的空间位置自由度Mi f;
3.1.7)将该模块的其它所有放置方式的空间位置自由度Mi f进行计算,得到该模块的空间位置自由度序列{Mi f},从该序列中选出该模块空间位置自由度最小的方案,记录下该方案所对应的模块的位置坐标,并将该模块与在此之前已最终确定放置方式的模块以及模拟放入集装箱的所有模块的体积累加;
3.1.8)更新角结点链表,重复步骤3.1.2)~3.1.7),依次处理待放置模块序列中剩余的模块,直到处理完模块序列中剩余的所有模块,则得到一个候选方案所对应的能装入集装箱的模块的总体积;
3.2)将所有候选方案均进行总体积的计算,得到所有候选方案按照模块空间位置自由度Mi f最小的原则所确定的装入集装箱模块的总体积序列;
3.3)从上述总体积序列中选出体积最大的方案,将其对应的候选方案选出,并将该模块及其位置坐标信息存入最终要输出的模块放置方式序列{Gq}中;删除待放置模块序列{Mi}中的该模块,及自由度小于该模块的其他所有模块,使模块序列得到更新;同时以模块放置方案序列{Gq}中的模块位置坐标为基础,将集装箱的角结点链表更新;
4)返回第2)步,确定下一个可实际填入集装箱中的模块及其位置坐标,将此信息存入最终要输出的模块放置方式序列{Gq}中;
5)当待放置模块序列中的所有模块均已被删除,或集装箱已没有空间继续填放模块时,输出最终的模块放置方式序列{Gq},结束。
2、如权利要求1所述的基于最小自由度优先原则的提高集装箱装箱效率的方法,其特征在于,模块在集装箱中的放置方式以位置坐标表示,记为(x1,y1,z1,x2,y2,z2),其中x1,y1,z1是模块最靠近坐标原点的顶点的坐标,x2,y2,z2是模块最远离坐标原点的顶点的坐标。
3、如权利要求1所述的基于最小自由度优先原则的提高集装箱装箱效率的方法,其特征在于,所述角结点链表的更新方法按如下步骤:
a)纪录下更新之前填入集装箱的最后一个模块的各个顶点的坐标;对于其中任意一个顶点,分别取其8个方向的单位正方体,记录下每一个单位正方体的位置坐标;若当前顶点的坐标为(x2,y2,z2),则所述8个单位正方体的位置坐标为:
(x2-1,y2-1,z2-1,x2,y2,z2);D类型
(x2,y2-1,z2-1,x2+1,y2,z2);C类型
(x2-1,y2,z2-1,x2,y2+1,z2);B类型
(x2,y2,z2-1,x2+1,y2+1,z2);A类型
(x2-1,y2-1,z2,x2,y2,z2+1);
(x2,y2-1,z2,x2+1,y2,z2+1);
(x21,y2,z2,x2,y2+1,z2+1);
(x2,y2,z2,x2+1,y2+1,z2+1)
b)判断每一个单位正方体是否在集装箱内,若在集装箱内则进行下一步,若不在,则转到下一个单位正方体进行判断:
c)若集装箱内的单位正方体中,仅有1个与所有模块均不重叠,且该单位正方体的位置坐标属于上述单位正方体的A、B、C、D四种类型之一,则该顶点是可填放模块的一个角结点;
d)重复a)~c)步处理该模块的其他顶点,确定该模块能够作为角结点的其他顶点;
e)将该模块所有可作为角结点的顶点坐标加入到角结点链表中,同时删除原角结点链表中用于填放该模块的角结点,和删除原角结点链表中与该模块不能作为角结点的顶点的坐标相同的角结点,使角结点链表得到更新。
4、如权利要求1或3所述的基于最小自由度优先原则的提高集装箱装箱效率的方法,其特征在于,判断模块重叠的原则如下:
若当前处理模块的坐标为(Ax1,Ay1,Az1,Ax2,Ay2,Az2),与当前处理模块进行重叠判断的模块的坐标为(Bx1,By1,Bz1,Bx2,By2,Bz2),则当Ax1≥Bx2或Ay1≥By2或Az1≥Bz2或Ax2≤Bx1或Ay2≤By1或Az2≤Bz1时,两个模块不重叠。
5、如权利要求1或3所述的基于最小自由度优先原则的提高集装箱装箱效率的方法,其特征在于,判断集装箱是否能装入模块的原则如下:
若当前处理模块的位置坐标为(Ax1,Ay1,Az1,Ax2,Ay2,Az2),则当x1<0或y1<0或z1<0或x2>L或y2>W或z2>H时,集装箱不能装入此模块,其它情况都表明能够装入此模块。
6、如权利要求1所述的基于最小自由度优先原则的提高集装箱装箱效率的方法,其特征在于,在上述第1)步中,若输入每一个待放置模块的长、宽、高信息中,有n个模块的长、宽、高相同,长、宽、高分别为l,w,h;则在排列成待放置模块序列之前先进行以下步骤的处理:
1)设a=int(l/w),b=int(l/h);
2)设s=int(n/2),k=int(s/(a×b));
3)将(a×b)个小模块搭成一个大模块,该大模块的长为l,宽为(a×w),高为(b×h);这种大模块的个数为k个;
4)将上述k个大模块与(n-a×b×k)个原小模块与其它模块一起按照模块自由度由小到大的顺序排列成待放置模块序列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100688427A CN100347713C (zh) | 2004-07-09 | 2004-07-09 | 基于最小自由度优先原则的提高集装箱装箱效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100688427A CN100347713C (zh) | 2004-07-09 | 2004-07-09 | 基于最小自由度优先原则的提高集装箱装箱效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1588416A CN1588416A (zh) | 2005-03-02 |
CN100347713C true CN100347713C (zh) | 2007-11-07 |
Family
ID=34604176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100688427A Expired - Fee Related CN100347713C (zh) | 2004-07-09 | 2004-07-09 | 基于最小自由度优先原则的提高集装箱装箱效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100347713C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101893854A (zh) * | 2010-08-10 | 2010-11-24 | 上海海事大学 | 集装箱码头装船倍内发箱顺序决策系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104444384B (zh) * | 2014-10-27 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 处理码盘数据的方法和装置 |
CN105911450B (zh) * | 2016-03-22 | 2018-03-23 | 重庆大学 | 飞针测试机开路测试路径优化方法 |
CN108876230A (zh) * | 2017-05-12 | 2018-11-23 | 菜鸟智能物流控股有限公司 | 一种装箱方法、装箱方案生成方法、装箱系统和服务器 |
CN107839947B (zh) * | 2017-11-29 | 2020-01-10 | 厦门理工学院 | 一种基于三维装箱定位的机器人装箱方法 |
CN110222862A (zh) * | 2018-03-02 | 2019-09-10 | 北京京东尚科信息技术有限公司 | 码垛方法和装置 |
CN110577048B (zh) * | 2018-06-07 | 2022-04-12 | 北京京东乾石科技有限公司 | 入库调度的方法和系统 |
CN109823627B (zh) * | 2019-01-29 | 2021-04-06 | 上海安鲜达物流科技有限公司 | 应用于电商产品组装出货的方法 |
CN112069641B (zh) * | 2019-05-21 | 2024-04-05 | 顺丰科技有限公司 | 一种容器空间的分配方法、分配装置及终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1152149A (zh) * | 1995-12-11 | 1997-06-18 | 阿萨工业(C.S.)有限公司 | 存贮系统及方法 |
WO2000063805A1 (en) * | 1999-04-20 | 2000-10-26 | International Stevedoring Operations Limited | Cargo loading and unloading systems |
-
2004
- 2004-07-09 CN CNB2004100688427A patent/CN100347713C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1152149A (zh) * | 1995-12-11 | 1997-06-18 | 阿萨工业(C.S.)有限公司 | 存贮系统及方法 |
WO2000063805A1 (en) * | 1999-04-20 | 2000-10-26 | International Stevedoring Operations Limited | Cargo loading and unloading systems |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101893854A (zh) * | 2010-08-10 | 2010-11-24 | 上海海事大学 | 集装箱码头装船倍内发箱顺序决策系统 |
CN101893854B (zh) * | 2010-08-10 | 2012-09-05 | 上海海事大学 | 集装箱码头装船倍内发箱顺序决策系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1588416A (zh) | 2005-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100347713C (zh) | 基于最小自由度优先原则的提高集装箱装箱效率的方法 | |
CN1315057C (zh) | 重映射闪速存储器的方法 | |
CN1637748A (zh) | 可重配置电路、具备可重配置电路的处理装置 | |
CN1152305C (zh) | 虚拟机系统 | |
CN1849608A (zh) | 由边界表示数据生成体数据的方法及其程序 | |
CN1439137A (zh) | 优化成果驱动作业流程合成及简化的方法、处理和系统 | |
CN1392985A (zh) | 多处理器系统、数据处理系统、数据处理方法和计算机程序 | |
CN1121199A (zh) | 字符发生装置及其实现方法 | |
CN1910308A (zh) | 先进的多压力工件加工 | |
CN101030257A (zh) | 基于汉字特征的文档图像分割方法 | |
CN101065725A (zh) | 命令供给装置 | |
CN1942901A (zh) | 图像处理装置及图像处理方法 | |
CN1556503A (zh) | 图像处理中的快速形态学腐蚀、膨胀方法 | |
CN1291312A (zh) | 用于控制生产过程的方法和系统 | |
CN1577250A (zh) | 用于实现2的幂的浮点估计的系统与方法 | |
CN1261740A (zh) | 滤波器及获得滤波器系数的方法 | |
CN1681085A (zh) | 电子束描绘系统、方法、程序及直接描绘制造半导体器件方法 | |
CN1731761A (zh) | 一种基于混合蚂蚁算法的QoS多播路由的方法 | |
CN1903655A (zh) | 钢铁产品散装货运船舶积配载方法 | |
CN1444161A (zh) | 物料清单(bom)数据的拆分方法 | |
CN1801745A (zh) | 一种建立网络故障诊断规则库的方法 | |
CN1787197A (zh) | 基板处理装置和基板处理装置的基板输送方法 | |
CN101038676A (zh) | 图像处理装置和图像处理方法 | |
CN1547252A (zh) | 集成电路布图规划与缓冲器规划集成的布局方法 | |
CN100336054C (zh) | 布局数据的保存方法、布局数据变换装置以及图形验证装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071107 Termination date: 20120709 |