1、1基于O-tree编码和模拟退火算法的物流驱动设施布置模型及算法研究摘要: 在采用计算智能算法的设施布置算法中,有效的布置表示是随机搜索算法能够有效的产生高质量布置解的关键,为此,借鉴 VLSI 物理设计中的相关思想,提出了一种有效的基于有序树(Ordered tree,O-tree)结构的设施布置编码表示法。在 O-tree 表示的基础上,根据布置、约束图和 O-tree 的相互关系,给出了获得以面积利用率为目标函数的基本布置解的确定性算法。在此基础上,进一步提出了以 O-tree 编码作为编码序列采用模拟退火算法扰动 O-tree 以获得物流驱动的优化布置解的求解方法。最后,通过仿真试验验
2、证了基于 O-tree 编码的设施布置表示及实现算法的有效性和可行性。关键词:设施布置;O-tree;模拟退火算法;物流Study on Logistics Driven Infrastructure Layout Based on O-tree Representation and Simulated Annealing AlgorithmAbstract: Among infrastructure layout algorithm adopting computational intelligence arithmetic, the valid layout representation
3、is the key for random optimization approach to obtain the layout resolution. A representation of infrastructure layout is presented based on O-tree structure referring to some approach of IC layout design. A deterministic algorithm to obtain better area utilization ratio is also developed according
4、to interrelation of the layout, its constraint graph and the corresponding O-tree. A Simulated Annealing Algorithm with O-tree as its gene coding is further proposed to find optimized logistics driven infrastructure layout solution by systematically perturbing the O-tree. Empirical results show the
5、efficiency and feasibility of the infrastructure layout coding representation and corresponding algorithm.Key Words: Infrastructure layout; Ordered tree; Simulated Annealing Algorithm; Logistics1 引言设施布置设计在设施规划设计中占有重要地位。它是指根据企业的经营目标和生产纲领,在已确认的空间场所内,按照从原材料的接收、零件和产品的制造、产品的包装、运输等全过程,力争将人员、设备和物料所需要的空间做最适
6、当的分配和最有效的组合,以获得最大的经济效益 1。通常设施布置包括工厂总体布置和车间布置。其中工厂总体布置设计主要解决工厂各个组成部分,尤其是物流相关因素,包括各种作业单位和运输通道等的相互位置关系;而车间布置设计则解决车间内各单元的相互位置关系。设施布置的好坏直接影响整个企业系统的物流、信息流、生产能力、生产率,生产成本以及生产安全。其布置过程就是在满足一定规则条件下在一个有限平面内寻找设施间最理想组合的过程,规则可以定义为一定的优化目标,比如有效利用空间和物料搬运费用最少等,因此可以将设施布置问题转化为一个组合优化问题。其实质是一个寻找最优解的过程,因此又可以转化成对合法构形空间的搜索问题
7、。通常,许多设施布置问题都可归结为 NP 困难的优化问题。随着工业技术的发展,设施布置问题的规模变得越来越大,问题空间维数随之剧增,传统优化算法面临计算量爆炸、易陷入局部极值等困难,不能有效地解决问题。而近年来出现的许多计算智能优化算法,如神经网络、模糊逻辑、遗传算法、模拟退火算法等,则已展现出其解决此这类问题的巨大潜力。虽然这些优化算法的目标是寻求满意解或者次优解,但是由于算法效率高,收敛性能好,依然得到广泛的应用,成为设施布置研究中的热点课题。在设施布置算法中,布置的表示是对有效地产生和评估可行解的一个关键的因素。但目前业界的研究往往专注于使用计算智能算法来解决工厂布置问题,对布置表示方面
8、的研究却很少。基于此,本文从设施布置的几何表示方法进行研究,提出了一种基于 O-tree 编码的设施布置表示法,成功地将复杂的设施布置问题解空间映射到简单的编码空间,在编码空间中通过引入计算智能算法解决性能驱动的设施布置问题,为有效解决设施布置问题开辟了一个新的途径。22 问题描述设施布置问题的核心就是处理一定区域内多个作业单位的相互关系。因此,本文不具体针对某种类型的工厂或者车间的设施来进行研究,而是对设施布置这类问题的基本几何表示问题研究,在此表示的基础上,引入性能驱动机制来解决具体的设施布置问题。所谓作业单位是指布置图中各个不同的工作区或存在物,是设施的基本区划,它可以是某个厂区的一个建
9、筑物、一个车间,或者是一个车间的一台机床、一个办公区。在实际的厂区布置问题中,作业单位可能为各种形状,但是随着园区和工厂建设逐渐规则化,多为矩形区域。为了方便对几何表示法进行说明,我们把作业单位进一步抽象化矩形如图 1a 所示,那么所要解决的布置问题就是在一定区域内找到各矩形模块间的位置,如图 1b 所示。 aaf fcebdcdeb图 1 设施布置的抽象定义Fig.1 Abstract definition of infrastructure layout如图 1 所示,尽管作业单元被抽象为矩形区域,但是随着问题规模的增加,设施布置(布局)问题依然是 NP 复杂问题,由于解决设施布置问题的计
10、算智能算法首先依赖于作业单元的几何表示,因此有效简便的几何表示便是解决此类问题的基础和关键。基于此,本文提出了基于 O-tree 的布置表示方案,引入这种布置表示的好处是通过布置的 O-tree 编码,复杂的设施布置问题转换到了相对简单编码处理问题,这样可以更方便在其中灵活加入各种代价函数,如物流最优等,以便进行性能驱动的设施优化。3 设施布置的 O-tree 编码表示树(Tree )是树型结构的简称,是一种重要的非线性数据结构。在树中,若考虑子树的顺序,称之为有序树(ordered tree) 。本文所采用的 O-Tree(1999 年 P.N.Guo 等提出)就是一种带有根结点(虚根)的有
11、序树。在 O-tree 中,子树的顺序至关重要,它决定了用 DFS 算法对树遍历的次序 2,3。3图 2 O-tree 编码过程Fig.2 O-tree coding process通过 DFS 遍历的方式,可以使用一个二元组(T,)对 O-Tree 编码,对一个具有 n 个节点(不算虚根)的 O-Tree,使用一个 2n 为二进制串 T 表示各个分支结构,用字符串表示各个节点的标号。从根节点开始对 O-Tree 遍历,T 中“0” 表示沿树枝下降, “1”表示沿树枝上升;表示 DFS 遍历节点的排列。逐个遍历每个分支,当搜索完一个分支,回溯,遇到分支结点就转向另一分支搜索,直到所有结点均被访
12、问,最后回到根结点,编码结束。图 2 所示为一个 6 结点的 O-Tree 及编码过程,可编码为(T,)=(001100110011,afbdce)。通过一定的规则,把设施布置中作业单元的相互关系定义在 O-tree 编码中,则可以用 O-tree 编码来表示设施布置。首先定义一种水平 O-Tree(T,) 来表示一个布置,其中 (T,)是作业单元B 1B2,Bn对应节点和一个附加的左边界节点作为根节点的集合,其中 T 确定单元间的水平相对位置关系,排列确定了它们的垂直位置关系。具体定义如下:O-Tree 的根表示了布置区域的左边界。因此,我们设定它的 x 坐标 以及它的宽度 。0ROT 0R
13、OTw子节点在它们的父节点的右面,在这里,为了说明问题的方便,假设它们之间在 x 坐标的间隔距离为 0,具体的间隔和建筑占地系数等设计规则有关,后文介绍。设 是 的父单元,有: iBj(31)iijwx当两个单元在 x 坐标映射有重叠时,通过排列来确定单元的垂直位置。对每个单元 ,设 是单元iBi的集合, 是在排列中单元 的后面,且 和 在 x 坐标轴上有重叠。因此, 是非空集合,我kBkiBki们有:(32)otherwisyyi kik0maafcebd0130m25433029m505023094afcbd4图 3 布局的 O-tree 表示Fig.3 O-tree representa
14、tion to layout根据以上的定义从一个水平 O-Tree,通过深度优先搜索算法 DFS,可以能获得一个布置,图 3 所示即为一个水平 O-tree 及其对应的布置。4.基于 O-tree 编码的设施紧置布置算法在设施布置的诸多目标中,最基本的无疑是面积利用率。使场地利用达到适当的建筑占地系数(即建筑物、构筑物占地面积与场地面积的比率)及建筑物内部设备的占有空间和单位制品的占有空间较小是设施布置的首要目标。设施布置问题复杂的原因在于所处理的对象是大量复杂的几何图形,因此即便是为了得到以面积利用率为目标函数的基本布置解,也可能是 NP 困难问题。为了把复杂的设施布置问题简单化,我们引入了
15、 O-tree 编码,通过它可以将问题转换到相对简单的编码空间,并且利用 O-tree 编码的一些性质,可以用确定性算法得到以面积利用率为目标函数的基本布置解,这为后续的性能驱动设施布置算法提供了非常好的基础。.1 紧置布置的定义为了得到以面积利用率为目标函数的基本设施布置解,给出如下定义:在不引起模块重叠的前提下,如果在其余模块都固定的情况下,布置中没有一个模块可以向左滑动,这种布局称为左紧置;同理,如果布置中没有一个模块可以向下滑动,则为下紧置;如果同时满足左紧置和下紧置,则为紧置布置,即满足面积利用率优化的布置。需要注意的是,为了避免使问题复杂化,此处模块重叠的概念不是简单指矩形模块的重
16、叠,而是指需要满足一定的作业单位间的设计规则,如物流通道和绿化区域等。.2 约束图的定义bacabcab( a ) ( b )( c )图 4 约束图Fig.4 Restriction chart设施布置中作业单元的约束关系可以定义约束图 G=(V,E)表示。其中 V 代表单元模块的结点(Nodes)的集合。E 代表边(Edges)的集合,描述了模块间的几何约束关系,包括水平约束关系和垂直约束关系。描述单元模块间水平约束关系的图为水平约束图(Horizontal Constraint Graph)Gh=(Vh,Eh),定义如果模块 i 和模块 j 在水平方向存在约束关系,且模块 i 在模块 j
17、 的左边,则水平约束图中有一条从 i 到 j 的有向边,如图 4(b)所示。垂直约束图(Vertical Constraint graph) 表示为 Gv=(Vv,Ev),其定义类似,即如果 Ev 中有 i 到 j 的有向边,则 i要放置到 j 的下面,如图 4( c)所示。可以证明,水平约束图和垂直约束图均为有向无环平面图。54.3 紧置布置的实现由3 的水平 O-tree 定义和4.1 的紧置布置的定义可知水平 O-tree 表示的布置总是下紧置的,但不一定是左紧置的。由上述水平 O-Tree 的定义,使用布置区域的底边作为 O-Tree 的虚根则可以构造一个垂直 O-Tree。由垂直 O
18、-Tree 得到相应布置的方法与由水平 O-Tree 得到相应布置的方法类似,同理可知垂直 O-tree表示的布置总是左紧置的,但不一定是下紧置的。这里我们定义对应布置是紧置布置的 O-tree 为容许 O-tree,因此,只要获得容许 O-tree,就能够实现紧置布置。C o n s t r a i n t G r a p h G = ( V , E )O - t r e e ( T 0 : 2 n - 1 , P 0 : n )s e t a l l m a r k t o f a l s es e t p e r m = 0 ;s e t c o d e = 0YNYs e t n =
19、c u r r e n t n o d es e t p = p a r e n t n n o t m a r k n a n d w e i g h t ( e d g e ( p , n ) = 0 ?c i n c h i l d r e n n 处理完毕 ?t r a v e r s e ( c )s e t P p e r m + + = 1s e t m a r k n = t r u es e t P p e r m + + = 0s e t T c o d e + + = nD F S 遍历 GO - t r e e ( T 0 : 2 n - 1 , 0 : n )O r
20、t h o g o n a l C o n s t r a i n t G r a p h G = ( V , E ) , x 1 : n , a n d y 1 : n V = + V s , V t p e r m = 1c o n t o u r = N U L Lc u r r e n t _ c o n t o u r = 0T 0 : 2 n - 1 处理完毕 ?T ( c o d e ) = 0 ?c u r r e n t _ b l o c k = p e r m Nc u r r e n t _ c o n t o u r = 0 ?x c u r r e n t _ b
21、l o c k =x c u r r e n t _ c o n t o u r + w c u r r e n t _ c o n t o u r Ys e t x c u r r e n t _ b l o c k = 0NYNy c u r r e n t _ b l o c k = f i n d _ m a x _ y ( c o n t o u r , c u r r e n t _ b l o c k )u p d a t e _ c o n s t r a i n t _ g r a p h ( G , c o n t o u r , c u r r e n t _ b l o
22、 c k )u p d a t e _ c o n t o u r ( c o n t o u r , c u r r e n t _ b l o c k )c u r r e n t _ c o n t o u r = c u r r e n t _ b l o c kp e r m = p e r m + 1c u r r e n t _ c o n t o u r= p r e v c u r r e n t _ c o n t o u r Y( a ) O T 2 O C G 变换 ( b ) C G 2 O T 变换图 5 OT2OCG 变换和 CG2OT 变换Fig.5 OT2OC
23、G (2)从一个 O-tree(T,) 中删除该模块结点;(3)进行 O-tree 的节点外插或者内插操作;由于目标函数比较简单,模拟退火算法本身并不复杂,算法的重点是对 O-tree 的外插和内插操作。 5,6,7节点外插操作也是在 O-tree 编码上进行变化的,从图中可以得到如:(T,)=(00110100011011,adbcegf)中,如果将模块 a 外插到模块 e 的子节点标有 1 的节点上,则操作的编码应该为:(T1,1)=(01010001011011,dbceagf);如果将模块 a 外插到模块 e 标有 2 的子节点上,则编码应该为(T2,2)=(0101000101101
24、1,dbcegaf)。内插操作同样可以在编码上进行,如图即是把 e 作为 c 父节点的操作。图 6 父节点转换Fig.6 Father node operation(4)在模拟退火算法(SA)执行中重复(1)-(3)步,直到最后根据目标函数得到一个布局面积和物流性能均为最优者,就是物流驱动设施布置的可行解。6 O-tree 编码的复杂度和优点多数设施布置问题是 NP 复杂的问题,因此,布置表示法的复杂度和解空间就成为表示法的关键 8。(T,)的 空间复杂度:对 n 个作业单元的设施布置,其对应 O-tree 编码的每个节点的标号需要lgn位表示,因此共需 n (2lgn)位存储二元组(T,),
25、2n 位存储 T, n lgn位存储。O-Tree 的解空间 : n 个节点的 O-Tree 可能的(T,)总数是位串 T 和排列的乘积。排列 可能的配置数为e插 入 后 T= 0 01 0 1 c插 入 前 T= 0 1 01 01ce7n!,对于位串 T 它是由 n 个 0 和 n 个 1 表示的一个 n 节点的 O-Tree 数。对 n 个无标号节点的 O-Tree 可能的配置如下:(1)12通过 Stirling 估计: (2)nen!应用公式(2) ,我们从式子(1)得到它的近似形式:(3)5.125.2114nnn因而,对 n 节点的树可能的(T,)总数为 。./!n使用 O-tr
26、ee 有如下优点:(1)O-tree 仅使用 n (2lgn)位编码即可表示 n 个作业单元的设施布置,其空间复杂度非常理想;(2)把一个 O-Tree 变换到它所表示的布置可以在线性时间(O(n)内完成,由于在设施布置中二者的转换是经常需要进行的,因此可在线性时间内完成转换至关重要;另外,O-tree 和其约束图间的相互转换的OT2OCG 和 CG2OT 算法同样可以在线性时间内完成;这为采用 O-tree 表示的整个布置算法的可行性提供了保证;(3)O-Tree 具有较小的解空间 5.12!n,这有利于使用计算智能算法进行性能驱动布置时算法的收敛,易于获得理想的布置解;(4)因为 O-tr
27、ee 表示的灵活简便,很多针对布置的操作则可以包含在 O-tree 编码中进行,并且可以在其中灵活加入其它代价函数,比如路径最短等,便于进行其它性能的优化。 7 结论本文提出了一种基于 O-tree 结构的设施布置编码表示方法,它具有解空间小、解码时间线性,操作简单、所需存储空间小的特点。通过 O-tree 编码表示,可以将复杂的设施布置问题映射到简单的编码空间来解决。通过布置、约束图和 O-tree 的相互转换实现了获得以面积利用率为目标函数的基本布置解的确定性算法。并给出了以此为基础采用模拟退火算法的物流驱动设置布置算法。通过以上的分析和试验表明,这种基于 O-tree 编码的设施布置表示
28、法,可以有效降低采用计算智能算法的设施布置问题的复杂性,为解决大规模多目标的实际设施布置问题提供了有效途径。参 考 文 献1 MA Hanwu.Infrastructure layout and logistics system designM. Beijing: China Higher Education Press,2005 马汉武.设施规划与物流系统设计 M .北京:高等教育出版社 2005 2 Pei-Ning Guo, Chung-Kuan Cheng, Takeshi YoshimuraAn, “An O-tree Representation of Non-Slicing Fl
29、oorplan and its Applications“ Proc. Design Automation Conf.,1999, pp. 268-273.3 Jing Li; Tan Yan; Bo Yang; Juebang Yu; Chunhui Li;A packing algorithm for non-Manhattan hexagon/triangle placement design by using an adaptive O-tree representation,Design Automation Conference, 2004. Proceedings. 41st20
30、04 Page(s):646 6514 Yu Li, Xuliang Zhang, Juebang Yu, “The Application Based on the O-tree Representation in VLSI/PCB Placement with 8Predefined Coordinate Alignment Constraint”, Journal of Chengdu University of Information Technology,2005.35 MA Shaoping.,ZHU Xiaoyan. Artificial intelligenceM. Beiji
31、ng: Tsinghua University Press,2004.马少平,朱小燕.人工智能M. 北京:清华大学出版社,20046 WANG Nengchao. Algorithm design and MATALAB implementM. Beijing: China Higher Education Press,2005王能超,算法设计及其 MATLAB 实现M . 北京:高等教育出版社 20057 WANG Ling. Optimization algorithm and application M. Beijing: Tsinghua University Press, 2001王凌.智能优化算法及其应用M.北京:清华大学出版社,20018 XING Wenxun,XIE Jinxing. Modern optimization algorithm. M. Beijing: Tsinghua University Press,2005邢文训,谢金星.现代优化计算方法M.北京:清华大学出版社 2005