基于区间的遗传算法中的适应度函数

人工智能 遗传算法 爪哇 适应功能
2021-11-09 05:21:34

我正在编写一个应用程序,当一个球从佳能射出时,它应该落在给定距离的一个洞中。球应该落在球洞起点和球洞终点的距离之间。洞的大小为4m,球的大小为0.4m。我的问题是我不确定如何为此编写适应度函数。球落下的地方应该接近这个区间[D,D+3.6],其中D是球洞的距离。如果有人能给我提示如何解决这个问题,我将不胜感激。

1个回答

当给定一个平滑增加的标量适应度值时,遗传算法的效果最好,这样您就可以比较两个种群成员,无论他们在任务上是失败还是成功。

这通常需要您分析问题,并提出一个随着个人越来越接近解决任务而改进的措施。如果他们“更好”地解决问题,如果您为个人得分更高,通常会有所帮助。您想避免简单的布尔成功/失败指标。

衡量一个人打得有多好的一个简单方法是使用它与“完美”击球(球的中部击中球洞的中部)的绝对距离。唯一的问题是完美投篮得分为 0,而未命中得分为 2+,并且您希望最佳结果具有最高的适应度。这可以简单地解决,取绝对距离的负数:

F=-|DHle-Db一个ll|

在哪里DHle- 和Db一个ll是从每个对象的原点到中心的水平距离。

健身分数不需要为正数。这将得分F<-2想念,-2<F<0对于命中,和0一个完美的镜头。

对于 GA,您不必太关心适应度函数的可微性或梯度,只要它在个体质量之间提供了相当好的等级。所以在这里使用平方误差度量是没有意义的,尽管你可以如果你愿意的话。