收藏 分享(赏)

遗传算法基本思路.doc

上传人:hwpkd79526 文档编号:6545931 上传时间:2019-04-16 格式:DOC 页数:5 大小:140.50KB
下载 相关 举报
遗传算法基本思路.doc_第1页
第1页 / 共5页
遗传算法基本思路.doc_第2页
第2页 / 共5页
遗传算法基本思路.doc_第3页
第3页 / 共5页
遗传算法基本思路.doc_第4页
第4页 / 共5页
遗传算法基本思路.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 一维装箱问题 2引可描述如下:要将 11 个物品装入许多箱子(最多 n 个箱子)。每个物品有重量(W j 0)。每个箱子有重量限制(c i O)。问题是寻找最好的将物品分配到箱子的方案,使得在每个箱子中物品的总重量不超过其限制,并且使用的箱子数量最少。该问题可表示 2为:重量及限制表物品 1 2 ldots n重量 w_1 w_2 ldots w_n重量限制 c_1 c_2 ldots c_n其中重量 Wj和重量限制 ci是正实数 装箱问题的数学表示如下:。iin N=left1,2,ldots,nright。y i=0 或 1 xij=0 或 1 。其中 yi = l 表示箱子 i 被放入

2、物品,反之则表示箱子 i 空着;X ij = 1 表示物品 j 放入箱子 i,反之表示物品 j 未放入箱子 i。基于基本遗传算法的求解方案。由于近似算法有时并不能产生出一个优秀的装箱方案,在这里采用遗传算法进行优化。(一) 染色体表示对于一维装箱问题,由于其装箱费用依赖于箱子中物体的群体,故在此问题中染色体的表示需要包含两个部分,其一应该提供哪个物品属于哪个箱子(群体) 的信息,另外对使用的箱子进行编码。故采用基于群体的表示方法 2,其中一个基因表示一个箱子。设有六个物品,从 1 到 6 对其进行编码,染色体物品部分可以写作 1 4 2 3 2 5。表示第一个物品放入箱子 1,第二个物品放入箱

3、子 4,第三个和第五个物品放入箱子 2,第四个物品放入箱子 3,第六个物品放入箱子 5。染色体的群体部分仅表示箱子。下面我们采用字母而不是整数来表示箱子(比如,上述染色体可表示为 ADBCBE)。通过查询物品部分,可知群体的名字代表的含义,即 A=1),B=(3,5),c=4),D=(2),E=(6)。包含两部分的染色体的集成用图表示如下:(二) 初始化种群由于 BFD 算法对于很多数据均有较好的效果,所以本程序中把 BFD 算法作为一种方案放入初始的群体,这样就可能不失去一些优秀的解。(三) 选择算子选择操作是建立在群体中个体的适应度的评估的基础上,在本算法中采用按正比与适应度的轮盘赌的方式

4、进行随机选择,为了提高效率,选择轮盘时采用折半查找的方法,这样就能有效地减少比较次数,确保该过程的时间复杂度为 0(log n)(n 为种群大小) 。(四) 杂交算子因为染色体的表示包含两个部分:箱子和物品的群体。因此需要处理可变长度的染色体,故其杂交过程 2如下:第一步:随机选择两个杂交位置,对每个父代选定杂交部分第二步:将第一个父代杂交部分的内容插入到第二个父代第一个杂交位置之前。由于杂交对染色体的部分群体进行操作,这就意味着从第一个父代插入一些群体(箱子) 到第二个父代中。第三步:从产生的后代中原有的箱子中去掉所有重复出现的物品,使得这些物品原先的从属关系让位于“新”插入的箱子。因此产生

5、的后代中的某些群体发生了改变。他们不再包含与先前相同的物品,原因是消除了一些物品。第四步:改变两个父代的角色并重新应用第二步到第三步生成第 2 个子代。杂交过程可用图表示:(五) 变异算子装箱问题的变异算子必须针对箱子进行操作,一般有两种策略:启用一个新箱子或消除一个已经使用的箱子。(六) 适应度函数装箱问题的目标是:最小化使用的箱子数量同时尽量装满所使用的箱子。根据此要求,本文采用玄光南等所编教材遗传算法与工程优化中提到的适应度函数 2。具体定义如下:。其中,N 是解中使用的箱子数量,F i是第 i 个箱子中所装有物品的重量之和, C 是箱子的重量限制,k 是常数(k1)。常数 k 表示了对

6、装得满的箱子的重视程度。k 越大,装得满的箱子比一般填充的箱子受到的重视就越大。一般,k 取值为 2 得到的结果较好。二、求解步骤(一) 确定问题的解空间和个体的表现型我们把染色体表示为含有物品和箱子两项信息的数据串。首先对待装物品进行编号 1-n,对箱子进行编号 1-k,按照物品编号顺序写出其所在箱子的编号序列即定义为染色体。具体含义在上节中介绍的比较详细,这里将不再赘述。(二) 建立优化模型,确定出目标函数该问题表面上是要求得所用箱子的最小数目,其实是最大化利用资源的问题,故目标函数的类型应该是求最大值的。由此,我们采用的适应度函数为。其中,N 是解中使用的箱子数量,F i是第 i 个箱子

7、中所装有物品的重量之和,C 是箱子的重量限制,k 取值为 2。(三) 确定遗传算子见上节中对选择、交叉、变异三种遗传算子的设定,这里不再赘述。(四) 确定运行参数本文中,我们设定交叉概率 Pc = 0.7,变异概率 Pn = 0.1,代数 gen=100,种群大小 n=100。三、计算举例与结果分析。为了阐明利用该算法的计算过程与结果,程序选定下列一组特殊数据:假设现有一个由 l5个物体组成的物体队列和足够多的单位箱子,其中物体的重量如下:1-9 号物品的重量:0.310-l5 号物品的重量:0.2 假设箱子容量为 1,按照 BFD 算法,我们可以得到下列装箱方案:。(O.3,O.3,O.3),(0.3,0.3,0.3),(0.3,O.3,O.3),(O.2,0.2,0.2,0.2,0.2),(0.2)共用了 5 个箱子。我们把上述利用 BFD 算法产生的装箱方案作为利用遗传算法进行求解的初始群体,同时, 我们取交叉概率 Pc = 0.7,变异概率 Pn = 0.1,代数 gen=100,种群大小 n-100。得出结果为:(0.3,0.3,0.2,0.2),(0.3,0.3,0.2,0.2),(0.3,0.3,0.2,0.2),(0.3,0.3,0.3)共四个箱子, 显然结果比较理想。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 数据结构与算法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报