我正在使用遗传算法开展项目,我正在尝试制定健身功能,我的问题是:
健身公式选择对GA的影响是什么?
可以使适应度函数直接等于违规次数(在最小化的情况下)?
答案 0 :(得分:0)
健身公式选择对GA的影响是什么
适应度函数在指导GA中起着非常重要的作用。
良好的健身功能将帮助GA有效地探索搜索空间。另一方面,糟糕的健身功能很容易使GA陷入局部最优解决方案并失去发现能力。
不幸的是,每个问题都有自己的适应性功能。
对于分类任务,错误措施(欧几里德,曼哈顿......)被广泛采用。您也可以使用基于熵的方法。
对于优化问题,您可以使用正在调查的函数的粗略模型。
有关适应度函数特征的大量文献(例如{2},{3},{5})。
从实现的角度来看,必须考虑一些额外的机制:线性缩放,sigma截断,功率缩放......(见{1},{2})。
健身功能也可以是动态的:在进化过程中改变以帮助搜索太空探索。
可以使适应度函数直接等于违规次数(在最小化的情况下)?
是的,它可能,但你必须考虑它可能是一个太粗糙的健身功能。
如果适应度函数太粗糙(*),它没有足够的表现力来指导搜索,遗传算法会更频繁地陷入局部最小值,并且可能永远不会收敛于解决方案。< / p>
理想情况下,良好的适应度函数应该能够告诉您从给定点开始的最佳方向是:如果一个点的适应性良好,其邻域的子集应该更好。
所以没有大的高原(一个宽阔的平坦区域,不会给出搜索方向并诱导随机游走)。
(*)另一方面,完美平滑的适应度函数可能是您使用错误类型算法的标志。
一个天真的例子:您要查找参数a
,b
,c
,以便
g(x) = a * x / (b + c * sqrt(x))
是n
给定数据点(x_i, y_i)
您可以最小化此适应度函数:
| 0 if g(x_i) == y_i
E1_i = |
| 1 otherwise
f1(a, b, c) = sum (E1_i)
i
它可以工作,但搜索不是针对性的。更好的选择是:
E2_i = (y_i - g(x_i)) ^ 2
f1(a, b, c) = sum (E2_i)
i
现在你有一个&#34;搜索方向&#34;并且成功的可能性更大。
进一步详情: