如何使用遗传算法找到位于Polygon边界内的最大圆?

时间:2015-11-25 15:02:38

标签: algorithm genetic

我想用遗传算法实现找到多边形边界内最大圆的代码。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在计算几何中可能存在一种已知的精确算法。如果你想使用遗传算法来做这件事并且对好的圈子而不是最佳圈子感到满意,那么这当然是可能的(尽管进化算法看起来有点像更自然)。圆圈可以用(x,y,r)形式的三元组表示。变异算子可以以各种方式碰撞坐标(例如,正态分布的增量)。交叉将类似于例如(a,b,c) x (d,e,f) => (a,e,f), (d,b,c)。你需要一个目标函数。从概念上讲它是区域 - 但很难确保总是满足约束。您可以做的是使用该区域作为目标函数减去每个违反约束的惩罚。可以调整惩罚以最终杀死所有违反约束的圆圈,但不应该太大以至于不能探索解决方案空间的所有部分。这些参数通常需要在试错的基础上进行调整。