网站大量收购独家精品文档,联系QQ:2885784924

遺传算法基本思路.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
遺传算法基本思路

  一维装箱问题[2]引可描述如下:   要将11个物品装入许多箱子(最多n个箱子)。每个物品有重量(Wj 0)。每个箱子有重量限制(ci O)。问题是寻找最好的将物品分配到箱子的方案,使得在每个箱子中物品的总重量不超过其限制,并且使用的箱子数量最少。   该问题可表示[2]为:   重量及限制表 物品 1 2 \ldots n 重量 w_1 w_2 \ldots w_n 重量限制 c_1 c_2 \ldots c_n   其中重量Wj和重量限制ci是正实数装箱问题的数学表示如下:   。   i\in N=\left\{1,2,\ldots,n\right\}。   。   yi=0或1  xij=0或1  。   其中yi = l表示箱子i被放入物品,反之则表示箱子i空着;Xij = 1表示物品j放入箱子i,反之表示物品j未放入箱子i。   基于基本遗传算法的求解方案。   由于近似算法有时并不能产生出一个优秀的装箱方案,在这里采用遗传算法进行优化。   (一)染色体表示   对于一维装箱问题,由于其装箱费用依赖于箱子中物体的群体,故在此问题中染色体的表示需要包含两个部分,其一应该提供哪个物品属于哪个箱子(群体)的信息,另外对使用的箱子进行编码。故采用基于群体的表示方法[2],其中一个基因表示一个箱子。   设有六个物品,从1到6对其进行编码,染色体物品部分可以写作1 4 2 3 2 5。表示第一个物品放入箱子1,第二个物品放入箱子4,第三个和第五个物品放入箱子2,第四个物品放入箱子3,第六个物品放入箱子5。染色体的群体部分仅表示箱子。下面我们采用字母而不是整数来表示箱子(比如,上述染色体可表示为ADBCBE)。通过查询物品部分,可知群体的名字代表的含义,即A={1),B=(3,5),c={4),D=(2),E=(6)。   包含两部分的染色体的集成用图表示如下:   (二)初始化种群   由于BFD算法对于很多数据均有较好的效果,所以本程序中把BFD算法作为一种方案放入初始的群体,这样就可能不失去一些优秀的解。   (三)选择算子   选择操作是建立在群体中个体的适应度的评估的基础上,在本算法中采用按正比与适应度的轮盘赌的方式进行随机选择,为了提高效率,选择轮盘时采用折半查找的方法,这样就能有效地减少比较次数,确保该过程的时间复杂度为0(log n)(n为种群大小)。   (四)杂交算子   因为染色体的表示包含两个部分:箱子和物品的群体。因此需要处理可变长度的染色体,故其杂交过程[2]如下:   第一步:随机选择两个杂交位置,对每个父代选定杂交部分   第二步:将第一个父代杂交部分的内容插入到第二个父代第一个杂交位置之前。由于杂交对染色体的部分群体进行操作,这就意味着从第一个父代插入一些群体(箱子)到第二个父代中。   第三步:从产生的后代中原有的箱子中去掉所有重复出现的物品,使得这些物品原先的从属关系让位于“新”插入的箱子。因此产生的后代中的某些群体发生了改变。他们不再包含与先前相同的物品,原因是消除了一些物品。   第四步:改变两个父代的角色并重新应用第二步到第三步生成第2个子代。   杂交过程可用图表示:   (五)变异算子   装箱问题的变异算子必须针对箱子进行操作,一般有两种策略:启用一个新箱子或消除一个已经使用的箱子。   (六)适应度函数   装箱问题的目标是:最小化使用的箱子数量同时尽量装满所使用的箱子。根据此要求,本文采用玄光南等所编教材《遗传算法与工程优化》中提到的适应度函数[2]。具体定义如下:   。   其中,N是解中使用的箱子数量,Fi是第i个箱子中所装有物品的重量之和,C是箱子的重量限制,k是常数(k1)。常数k表示了对装得满的箱子的重视程度。k越大,装得满的箱子比一般填充的箱子受到的重视就越大。一般,k取值为2得到的结果较好。   二、求解步骤   (一)确定问题的解空间和个体的表现型   我们把染色体表示为含有物品和箱子两项信息的数据串。首先对待装物品进行编号1-n,对箱子进行编号1-k,按照物品编号顺序写出其所在箱子的编号序列即定义为染色体。具体含义在上节中介绍的比较详细,这里将不再赘述。   (二)建立优化模型,确定出目标函数   该问题表面上是要求得所用箱子的最小数目,其实是最大化利用资源的问题,故目标函数的类型应该是求最大值的。由此,我们采用的适应度函数为。   其中,N是解中使用的箱子数量,Fi是第i个箱子中所装有物品的重量之和,C是箱子的重量限制,k取值为2。   (三)确定遗传算子   见上节中对选择、交叉、变异三种遗传算子的设定,这里不再赘述。   (四)确定运行参数   本文中,我们设定交叉概率Pc = 0.7,变异概率Pn = 0.1,代数gen=

文档评论(0)

fglgf11gf21gI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档