jasmine200 发表于 2006-7-18 18:30

关于遗传多目标优化的适应度计算问题

我是一个遗传算法的初学者,用基于pareto解的遗传算法求解多目标优化问题时,遇到一个难点:种群中所有个体的秩求出来以后,它们的适应度如何计算?可以用秩的倒数来代替吗?是否不再需要适应度函数?被这个问题困扰了很久,请高手指点迷津!多谢!

redstar 发表于 2006-7-18 20:27

不知道个体的秩是什么样的一个概念,是不是和个体的分布有关系啊?
我不清楚你说的秩和适应度函数有什么关系,呵呵。

jasmine200 发表于 2006-7-26 18:51

在这里秩的概念是这样的:先将多目标函数组成一个向量代表一个个体,假定个体在某一代时种群中有p个个体支配于它,则它在种群内的秩为1+p。
之后按秩对适应度计算方法作如下调整:
1)种群内个体进行排序;
2)按线性插值的方法计算个体适应度,序位为1者为最优个体。
根据资料,有两种pareto排序方法,上面所述为其中的一种。另一种方法好像是把秩的倒数作为个体的适应度。
有人用经由多个目标函数改造后的适应度函数值组成向量代表个体,我不知道该不该用各目标函数的原始表达式?
我的理解很粗浅,不知道是否说明白了,楼上的仁兄请发表高见。

[ 本帖最后由 jasmine200 于 2006-7-26 19:05 编辑 ]

stuartgew 发表于 2006-7-26 19:10

偶也想知道那!

心灯 发表于 2006-9-18 23:33

原帖由 jasmine200 于 2006-7-26 18:51 发表
在这里秩的概念是这样的:先将多目标函数组成一个向量代表一个个体,假定个体在某一代时种群中有p个个体支配于它,则它在种群内的秩为1+p。
之后按秩对适应度计算方法作如下调整:
1)种群内个体进行排序;
2) ...

我的理解是:每个个体的秩的大小就已经决定了这个个体的优劣程度,可以用它或它的倒数,甚至其他含秩的函数(取决于所研究问题是最大化还是最小化,并可以自由选择合适的函数形式)来作为个体的适应度。 个体的适应度存在的意义就在于它能够区分不同个体的优劣程度,让更优的个体有更多的选择机会。
如果你用各目标函数的原始表达函数值,因为每个个体存在多个函数值,如何区分对比这些个体的优劣,让较优的个体拥有更多的生存机会呢?当然,如果把每个个体的各目标函数 按照一定的形式,例如叠加,成为一个可以比较优劣的量,也是可以把这个量作为个体的适应度值的。
别管怎么说,你最后得到的必然是一个个体对应着一个能够表征优劣的数值。

不知道我的理解对不对,请高手指点。

[ 本帖最后由 心灯 于 2006-9-18 23:42 编辑 ]

tz6091 发表于 2006-9-19 19:38

我感觉楼主说的这个个体的秩,和NSGA里的等级是一样的。这要看你采用什么选择算法了。要是采用常规的轮盘赌就要给不同的秩自己设适应度值的大小。不过一般来说选择的时候不能只考虑PARETO最优解的等级。还要考虑他们分布的均匀程度。所以应该由这两方面来考虑你设定的适应度值的大小。但是如果采用的选择方式是锦标赛,那这些都不需要了。直接就能进行选择好的个体

心灯 发表于 2006-9-19 21:52

原帖由 tz6091 于 2006-9-19 19:38 发表
我感觉楼主说的这个个体的秩,和NSGA里的等级是一样的。这要看你采用什么选择算法了。要是采用常规的轮盘赌就要给不同的秩自己设适应度值的大小。不过一般来说选择的时候不能只考虑PARETO最优解的等级。还要考虑他 ...

有道理。不同的选择算法,对个体的目标函数值,或者说优劣评价指标的要求也不同。

Pareto解的优劣程度通过小生境环境进行评价是比较有效的一种方式,不过目前小生境的半径大多数是人为指定,自适应性比较差。

使用竞标赛方法也要考虑到选择强度和多样化损失的问题,所以确定竞赛规模很重要。

alian0270377 发表于 2008-5-24 23:11

询问一下,如果这里夺目标优化所谓的“秩”已经求出,并且根据其它书籍的说明,小生镜数也求出的话,重新调整的适应度函数是以哪些东西来靠量的?
   如:初始种群的每个个体的秩为rank(i),每个个体的小生镜数为m(i),重新调整的适应度函数该怎么表达(求多个目标的最小值)。难道每个个体的适应值可以表示是 f(i)=rank(i)/m(i)?
    求高手指教!书上总是说,原来的适应度函数除以小生镜数就是新的适应度函数,那么原来的适应度函数又是什么呢?
    谢谢
页: [1]
查看完整版本: 关于遗传多目标优化的适应度计算问题