我正在为旅行商问题绘制一个多边形,并且想要测试任何路径的非交叉点,作为自适应地停止遗传搜索的手段。我只是尝试检查线段或交叉点,但有时我得到的结果不正确,即使仍有一个或多个交叉点,也会终止搜索。
答案 0 :(得分:1)
这个问题基本上等同于检测任意一组线段中的交叉点。
例如,bentley-ottmann algorithm可用于解决此问题。当然,您可以在找到一个交叉路口后立即终止。
一个天真的检查只会检查每个边缘与每个其他边缘(在多边形中不相邻,因为它们不能相交),但是因为你只需要找到一个交叉点,输出 - 敏感算法(如bentley-ottmann)可以加快你的检查速度。