当所有人口成员都不遵守时,如何处理遗传算法中的约束?

问题描述

我的目标是应用GA找到最佳位置,以在2D平面中放置多个圆(等直径),以使两个圆都不比特定距离更近。我通过将适应度函数设置为-1来解决邻近约束,如果约束被打破,但问题不在于随机生成的初始总体中没有一个遵循邻近度约束,因此使所有成员的适应度都为-1。

通过谷歌搜索,我发现如果将飞机分离成具有间隙大小的网格,我将不会遇到这个问题,但是恐怕它将错过很多潜在的解决方案。是否有一种方法可以纳入邻近约束或应该使用网格?

解决方法

从随机约束解决方案开始,而不是随机约束。生成一个圆,然后找到下一个圆的可行空间,创建第二个圆,然后继续直到生成完整的一代。