问:遗传算法的初始化

时间:2015-05-14 21:41:34

标签: r algorithm artificial-intelligence genetic-algorithm evolutionary-algorithm

我有一个非常大的搜索空间的函数,所以我想使用遗传算法稍微接近最优,然后使用其他方法,如BFGS来找到最佳点。我正在使用R来做到这一点。

问题是我的函数有12个参数,并且在大多数点都无效。当我向GA提供最大和最小参数值并尝试生成总体时,有时整个群体由NaN形成(因此,算法无法继续)。

由于我对GAs知之甚少,我很难找到解决这个问题的方法。我唯一想到的是选择一个非常大的人口规模(类似10e5),所以它可以找到一些有效的值来开始。这不是一个非常好的解决方案,因为能够用正常大小的人口初始化算法会好得多。

你有什么建议吗?关于我缺少的任何东西?

谢谢

2 个答案:

答案 0 :(得分:2)

如果您的大部分参数空间无效,则GA可能不是最佳方法。风险在于,当您跨越算法时,您可能会得到无效的参数组合。

另一种思考方式是GA是一种搜索算法。当它尝试的结果比它开始时更好或更差时,它的效果最好;如果大多数尝试都无效,那么搜索就没有多少指导。

我的建议是尝试以不同方式对问题进行参数化,以便更多的点有效(尽管可能是低适应度)。你没有描述这个功能,所以很难更具体,但有时可以接受一个"无效"输入并且只是量化了有效的"有多远?它是。那就是你可以搜索的东西。

答案 1 :(得分:0)

您可以使用FI-2Pop GA。

“这是FI-2Pop GA的优点之一,它可以用空的可行人口进行初始化,并最终找到可行的解决方案。”