设为首页 - 加入收藏
广告 1000x90
您的当前位置:78345黄大仙救世网报 > 锦标赛算法 > 正文

遗传算法用锦标赛选择的话适应度函数可以当做目标函数吗

来源:未知 编辑:admin 时间:2019-06-07

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  2014-07-17展开全部其实适应度函数的根本是目标函数的函数,理解了这一点,我们就会知道目标函数可以做适应度函数,此时目标函数的函数选取的是恒等函数而已,所以说适应度函数当目标函数的说法有点问题,应该反过来说就对了

  那么当适应度函数就是目标函数时,得出的结果如果你是指编码的个体或者染色体的话,是可以作为下一代的母代

  多说一句,当我们求某函数的最大值时,如果直接把目标函数作为适应度函数,求出应为最小值(如果存在的话),所以此时我们要把目标函数取反作为适应度函数,再进行优化就可以求得最大值的个体。更多追问追答追问多谢你的回答,但是你说的那个求最大值时应为最小值,我还是不太明白。比如我有10个个体,经过锦标赛选择可以选出10对个体,然后只要留每一对里面大的那一个就会产生10个新的经过锦标赛选择的个体作为下一代的母体,我一直是在用最大值来找呀?你说的那个最小值能不能按照我举的例子帮我讲一下呢,因为其实我看到很多人都说要取反什么的,但是我觉得那是对于轮盘赌选择吧,锦标赛选择用取反吗?追答这儿可能我说的不太清楚,给定一个个体,就能根据适应度函数求出它的适应度值,我们再把用锦标赛选择出适应度值最大的个体作为父代母代进行之后的遗传算子,我求x^2的最小值,那么适应度函数就得用(-x^2),这样选择出来的适应度值最大的个体才更接近于x^2的最小值,当然这儿要根据收敛准则来判断了。

  不过这是基本遗传算法的流程描述,在算法实现的过程中,方向别搞返了就行了,你也可以从编码入手求最大或者判定选择上调整都可以的

  多谢你的回答,我明白了你说的取反的意思,但是如果求x^2的最小值直接用x^2当做适应度函数,然后用锦标赛选择选出适应度值最小的个体不是也可以吗?为什么还要取反求最大值呢,我觉得直接求最小值不是更方便吗?

  所以说,在实现的时候就可以灵活掌握了,只要方向对就行,明白自己是否要求最大还是要求最小,尤其在多目标优化的时候,不能保证都是一个方向,所以取反只是我们最简单的一个处理方式,你也可以对负值取绝对值,或者采用平方之类,或者用指数函数,这种都是方法论的东西了,而我说的适应度值取大,只是理论上的,在基本的遗传算法中,优胜劣汰当然要找到最适应的,也就是适应度最大的,这里理解性的区分一下

  多谢你的回答,我明白了你说的那个多目标的问题,就是把所有要优化的适应度函数都统一到一个方向,要么都是最大要么都是最小是吧?那如果我只优化y=x^2这一个目标函数找最小值的话,是不是就可以直接找适应值最小的,不用你说的那个取反变成y=-x^2找最大值了吧?

本文链接:http://rainy-monday.net/jinbiaosaisuanfa/167.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top