最高效的选择方法
Most performant selection method
我正在研究一个关于时间表问题的遗传算法,我有一个问题要决定我应该使用哪种选择方法选择.
我的问题是:
1)选择方法的选择如何影响遗传算法的性能?
2)最高效的选择方法是什么?
3)如果我尝试使用随机选择来规避基于适应度的选择(因为在我的情况下这个任务需要时间)会发生什么?
提前谢谢你..
1) 您的适应度函数、mutation/crossover 运算符和整体搜索 space 密切而微妙地相互关联。每个 problem/selection-method 都有自己的性能特征。因此,您的问题没有明确的答案。这仍然是一个开放的研究问题。
2) 不能说是因为 1)。您必须亲自尝试、测量和查看。
3) 可能是 ziggystar 所建议的完全随机游走,但没关系。
在大多数情况下,我使用随机 selection 或二元锦标赛,但我的种群模型是稳态的(如果后代比这个更好,则后代会替换最差的 - 所以我已经执行了 select在那里生存的离子)。
Random selection 确保我没有非常快的收敛。如果我增加 select 离子压力(例如 q-tournament,q > 2),我会得到非常快的收敛,这对困难的问题不利。
Q 锦标赛也很容易实施:只需 select 随机 q 个人,其中最好的是 selection 的结果。如果 q == 1,那么你有随机 selection.
如果你在实现这个时遇到困难,你可以看看我的实现:http://mepx.org/source_code.html(我是为遗传编程的变体做的)。
我正在研究一个关于时间表问题的遗传算法,我有一个问题要决定我应该使用哪种选择方法选择.
我的问题是:
1)选择方法的选择如何影响遗传算法的性能?
2)最高效的选择方法是什么?
3)如果我尝试使用随机选择来规避基于适应度的选择(因为在我的情况下这个任务需要时间)会发生什么?
提前谢谢你..
1) 您的适应度函数、mutation/crossover 运算符和整体搜索 space 密切而微妙地相互关联。每个 problem/selection-method 都有自己的性能特征。因此,您的问题没有明确的答案。这仍然是一个开放的研究问题。
2) 不能说是因为 1)。您必须亲自尝试、测量和查看。
3) 可能是 ziggystar 所建议的完全随机游走,但没关系。
在大多数情况下,我使用随机 selection 或二元锦标赛,但我的种群模型是稳态的(如果后代比这个更好,则后代会替换最差的 - 所以我已经执行了 select在那里生存的离子)。
Random selection 确保我没有非常快的收敛。如果我增加 select 离子压力(例如 q-tournament,q > 2),我会得到非常快的收敛,这对困难的问题不利。
Q 锦标赛也很容易实施:只需 select 随机 q 个人,其中最好的是 selection 的结果。如果 q == 1,那么你有随机 selection.
如果你在实现这个时遇到困难,你可以看看我的实现:http://mepx.org/source_code.html(我是为遗传编程的变体做的)。