显然这是假设,但这是真的吗?我知道“完美的适应度函数”有点飘,但我的意思是因为我们有一个完美的方法来衡量任何问题的完成情况。
给定无限的时间和完美的适应度函数,基因程序能解决任何问题吗?
人工智能
基因编程
2021-10-21 12:53:31
2个回答
是的。
一个完全随机的算法可以在无限的时间和完美的适应度函数下解决任何问题。您需要做的就是在每一代给 GA 一些新的随机种群成员,并且保证您最终会找到解决方案。即使您只保留上一代的后代,将突变率和交叉数设置得足够高也可以有效地获得随机个体。
根据这个 AI SE question的答案,变异的存在使 GA 成为全局搜索算法,即它最终会访问搜索空间中的每个点。
它这样做的效率确实与适应度函数的质量有关:
可以想象,“完美的适应度函数”可能意味着以下任何一种:
- 一个函数,当它应用于最优解时,它取最优值。
- 形成二次碗的函数(牛顿法可以一步解决)。
1. 的退化情况是“大海捞针”函数,它在不是最优的任何地方都返回相同的任意差值,而 2. 不幸的是,在实践中并不经常出现。
因此,设计良好的适应度函数的作用是在搜索过程中施加梯度,在实践中,梯度通常位于“大海捞针”和“二次碗”之间。
适应度函数中存在某种形式的平滑度是一种机制,它比随机或穷举方法具有更好的性能。