三维装箱问题的遗传算法研究
2023-04-20
来源:易榕旅网
20lO耳6月 电 脑 学 习 第3期 三维 装箱问题的遗传算法研究 周 昕 纪颖” 摘 要:本文以集装箱自动装载系统为例。根据货物放置方向 装载客积等约束条件。给出了有效的解码算法.提出了一种改进 遗传算法.并通过实例数据进行了实验结果分析。 关键词:三维装箱 遗传算法 优化 中图分类号:TP301.6 文献标识码: A 文章编号:1002—2422(2010)03—0117—03 Research on Genetic Algorithm for Three Dimensional Container-Packing Problem Zhou Xin Ji YiIlg Abstract: Based on automatic contalner-packing system,the paper takes into account the dierction of the goods,loading capa- city and other constraints,and it contributes an effective decoding algorithm,sith improved genetic algorithm,therefore naalyzes the result based on experimental data. Keyword: Three—dimensional Contianer-Packing Genetic Algorithm Optimization 1装箱问题的数学模型 (3)货物装载容积的约束:货物装载的总容积不得大 集装箱三维装载优化问题可描述为:在一定约束条件 于集装箱的最大装载容积。 限制下,将一批货物按照适当的装载方法装入同一集装箱 (4)稳定性的约束:货物装载应该使重心位于允许的 中,使得集装箱的容积利用率或装载质量利用率最大,从 范围内而确保整体稳定,以利于运输安全。 而增强对集装箱的合理有效使用。为方便建模,约定如下: (5)承载能力的约束:在装载中,货物所能承受的最大 货物简化为长方体,高度相等且均小于集装箱尺寸;货物 压力受限制。 以水平方向放置于集装箱中任位置而不受配置位置限制。 (6)货物装载顺序:不同的货物在装载中应按不同的 1.1目标函数及约束条件 优先顺序装载。 1.1.1目标函数描述 1.2货物装载遵循的方向次序原则 装箱的目标可描述为如下的最大化函数旧: 定义集装箱箱门所在端为后端,集装箱在坐标系中的 位置关系如图1所示。则在集装箱中装载货物遵循以下原 Max z= ∑(1。Wi hi)/v+(1一 )∑(&6 )/G (1) i 1 i≈l 则: 其中Ij、wi、hi、 分别表示货物i(i=I,2,?,13) (1)依次沿左侧至右侧方向(即Y轴方向)、前端至后 的长、宽、高和质量;V,G分别表示集装箱的最大装载容积 端方向(即x轴方向)放置每一层。 和最大装载质量。 是0-1变量,当追求目标为容积利用 (2)沿下端至上端方向(即z轴方向)逐层放置。 率最大时 =1,当追求目标为装载质量利用率最大时 = Z^ 0:6 i是0—1变量,若货物i装载则6 i:1,否则/5 i 上端 前端 =O。 本文旨存确定一种集装箱装载方案,以便将所有货物 端 装入集装箱中;如果不能完全装入,则找到一个待装子集, y 或者使集装箱的空间利用率最高。则问题的目标函数可描 左端 述为: Max z= (1j wj hi)/v (2) , 后端 i=1 图1集装箱在坐标系中的位置 1.1.2约束条件 2基于遗传算法的问题求解 装箱约束条件如下: 遗传算法是一种基于达尔文进化论思想的全局最优化 (1)货物放置方向的约束:在装载中,货物只能水平放 算法。在闯题求解过程中,模仿自然界生物进化过程,以被 置,不能旋转。 索空间中的每一个点表示每一个生物个体,从任一代初始 (2)货物装载质量的约束:货物装载的总质量不得多 群体出发,通过随机选择、交叉、变异等过程,使群体进化到 于集装箱的最大装载质量。 搜索空间中越来越理想的区域。 收稿日期:2010—03—31 周昕哈尔滨理工大学计算机科学与技术学院讲师(黑龙江,哈尔滨150080)。 ¥纪颖哈尔滨理工大学计算机科学与技术学院副教授(黑龙江,哈尔滨150080)。 .1l7. 遗传算法的优越性主要表现在搜索过程中不易陷入局 协调。 部最优,即使在所定义的适应度函数不连续的情况下,也能 以极大的概率找到最优解f7l。 2.1编码预处理 在交叉过程中,由[1,3 n】间按均匀分布随机产生两个 整数a。,a:(a <a2)作为父代两个个体s,,S:的交叉位, 若at>n,则交叉仅在s 。至s, 段间进行,直接交换交叉 定义货物水平放置方向为货高与箱高相互平行的放置 状态,则集装箱最多装载层数M计算: M=H/hi (3) 位间对应位置的基因而其余基因保持不变;若a2≤11,则交 叉仅在s。至S 段间进行,采取序交叉方法;若al≤n且a2>ri ,则交叉在两段间分别进行,s。至s。段采取序交叉方法对 在进行个体编码之前,做如下的编码预处理: an ̄n位间的基因进行重组,s 至s知段问直接对应交换11+ l—a:位间的基因。 (1)货物编号:按自然数序列对待装货物进行编号,i =1,2,…,n o (2)放置方向编号:若货物的放置方向为lid L,wi/W ,hi/H,则编号为1:若货物的放置方向为wi∥L,IV/W,hi ∥H,则编号为2。 2.2个体编码及解码嘲 编码时考虑货物放置方向及装载顺序约束,每种装载 方案对应一个编码长度为3 n的符号串个体P=(8。,s’…., Si,…sn,8n“,8m-2,…,¥wd,…,s'』,s l,s +2,…,s ,…,S3n)。基因 s 一s 表示货物装载顺序编号,fit[1,n】间随机产生的一 系列非重复整数排列组成, 并且基因s。一s 所在位置序列 号1,2,…,n与货物编号一一对应。基因Sn+I ̄S知表示货物 的放置方向编号,由【1,2】间随机产生的一系列可重复整 数排列组成;基因S2a+l—s, 表示装载层数编号,由【0,M】间 随机产生的一系列可重复整数排列组成,s =0表示货 物i不装载。 个体解码方法: (1)基因s ,S ,S 之间具有一一对应关系,即基因 8 表示的具有某装载顺序的货物i按照基因s 表示的放 置方向装载至基因s 表示的层中。 (2)s 取值小的货物先装,取值大的货物后装。 (3)基因8 表示的放置方向按照编码预处理进行解 码。 (4)货物在箱中的装载遵循所规定的方向次序原则。 2.3遗传算子 2.3.1选择 选择算子的目的是把优化的个体(或解)遗传到下一 代,或通过配对交叉产生新的个体遗传到下一代。选择算子 的操作是建立在群体中个体的适值基础上,采用轮盘赌选 择方法,复制N个个体。若某个体i,其适应度为fi,则选挥 概率为: Pi=£/ (4) i=I 选择适应度最大的个体组成新一代种群。 2.3.2交叉 交叉算子是把两个父代个体的部分结构加以替换重 组,而生成新个体,在遗传算法中起核心作用。交叉算子的 设计一般与所求解的具体问题有关,而且要和编码方式相 2.3.3变异 变异算子是对染色体的某些基因座上的基因值作变 动,作用是维持群体的多样性,避免算法早熟收敛甚至无法 寻到全局最优解。 对个体采取变异操作过程:在【n+l,3n】间按均匀分布 随机产生一个整数b:作为基因Sn+l ̄S 间的变异位,若n+ 1≤b:≤2n则将该位基因值替换为相异编号值;若2 n+ 1≤b。≤3n则将该位基因值替换为【0,M】间随机产生的一 整数。 2.4适应度计算 通过个体适应值的大小来评价群体中个体所对应装载 方案的优劣,对于违反装载质量约束、装载容积约束和装 载重心约束的个体,在求解其适应值的过程中要给予相应 的惩罚以确保符合条件而较优的个体有较大的生存机会。 2.5终止准则 采用设定最大迭代次数的方法来判断是否终止。 3结束语 对集装箱货物装载问题提出了一种改进遗传算法,解 决了简化模型下的集装箱货物装载的求解问题,方法简单 易行。 参考文献 [1 J]ohnson D S.计算机和难解性一NP完全性理论导论.张立昂, 译.北京:科学邮版社,1990. 【2】Khoo W S,Sa.ratehandran P,Sundararajan N.A genetic叩一 proach for two dimensional packing with constraint S【A】.Pro— ceedings of the Part II International Conference on Computat— ional Science ICES【C】.San Francisco,CA,USA:Alexandr- OV,200l,291—299. 【3】Andrea Ledi,Silvano MarteHo,Daniele Vigo.Approximation algorithms for the oriented 2 dimensional bin packing problem 【J】.European Journal of Operational Research,1999,1 12:158— 166. 【4】Lipnit skii A A.Use of genetic algorithms for solution of the erctangle packing problem【J1.Cybernetics and Systems Analy— sis,2002,38(6):943—946. 【5】许光泞,俞金寿.改进遗传算法求解三维集装箱装载问题【J】. 上海:华东理工大学学报,2007,33(3):425--428. 【6】翟钰.三维装箱问题的混合遗传算法研究.上海:上海交通大 学硕士论文,2007. 201O年6月 电 脑 学 习 第3期 基于驱动的进程创建监控的实现 刘利‘ 戚建亮 摘 要:介绍了驱动开发技术背景及应用.讲述SSDT HOOK方法.实现监控NtCre{lteProee ̄sEx系统服务。RING3应用程序和 驱动程序的交互。RING3应用程序和驱动程序的同步实现基于驱动的进程创建监控。 关键词:驱动 进程创建 中图分类号:TP31 1.1 文献标识码; A 文章编号:1Oo2-2422(2010)03—01 19--02 Implementation of Monitoring Process Creation Based on Drive Liu Ll Qi Jianliang Abstract: In this paper,the background and application of Driver Development techndog'y 8re introduced and described in de— tailed.The first one is SSDT HOOK method to achieve control NtCracteProeessEx system services,the second one is interaction between RING3 application and driver,and the third one is RING3 applications and drivers synchronizat— ion,which achieve monitoring process creation based on drive. Keyword: Dfiver Process Creation 1背景简介 来锁住SSDT后再修改,或者调用IntedoekedExchange()来 随着互联网的全民化,木马、病毒成为困扰网络安全的 修改。系统服务NtCreateProcessEx()的参数如下: 一个重要的因素,各主流安全软件推出了基于行为判断的 NTSYSAPI 主动防御技术,简易的实现其中功能之一:进程创建监控。 N rsTATUS 下面的实例是基于驱动程序的,监控的是进程的创建。 NTAPI NtCreatePrceessEx( 当进程需要创建时,监控模块会弹出如图1所示的一个窗 0UT PHANDLE ProcessHandle. 口,询问是否同意创建这个进程,点击“确定”,进程可以正 IN ACCESS MASK DesierdAceesa, 常运行;点击“取消”,这个进程将无法运行,同时弹出拒 IN POBJEC 1 1Tl’RIBUTES ObjectAttirbutes. 绝运行窗口。 IN HANDLE lnherltFmmProcessHandle, IN ULONG CreateFlags, IN HANDLE SectionHandle OPTIONAL, IN HANDLE DebugObject OPTIONAL, IN HANDLE ExeeptionPort OPTIONAL, IN ULONG JohMemherLevd ); 当RING3的应用程序需要创建一个进程时,参数OUT PHANDLE ProcessHandle会在进程创建成功后返回该进程 图1 的HANDLE。 2通过SSDT HOOK方法实现监控NtCreatePro— 通过该方法可以获取创建这个进程的父窗口的PlD和 cessEx系统服务 即将创建的进程的路径。驱动程序是没有自己独立的进程 要监控进程的创建,简单而有效的方法是SSDT 的,而是“依附”在调用者的进程中,当RING3有进程创建 HOOK。System Service Dispath Table是系统服务派送表, 进程而进入HOOK后的NtCreateProeessEx(),通过调用 通过SSDT HOOK中的系统服务NtCreatePmcessEx(),所 ()可获得调用NtCreateProcessEx()进 有来自RING3的进程创建请求都会调用它。如果要更彻底 程的进程信息,调用PsGetCurrentProcessld()能获得调用 的监控进程的创建,可以HOOK更深层的PspCreateProeess NtCreateProcessEx()进程的进程PID(进程标识符);通过 (),详细内容请参考相关资料。 参数中的SecfionHandle,获得对应的FileObject,再通过 SSDT HOOK时需要注意多线程安全性:可以用MDL FileName获得即将创建的进程的路径。 f7】aEd,平,曹立明.遗传算法一理论、应用与软件实现【M】.西安: 【8]b雷,等.基于遗传算法的集装箱单箱三维装载优化问题[J】. 西安交通大学出版社,2002. 北京:中国铁道科学,2004(8). 收稿日期:2010-04—14 刘利大庆师范学院计算机系本科学生(黑龙江,大庆163712)。 ・l19・