Algorithm 分段分块法求两点间最短距离

Algorithm 分段分块法求两点间最短距离,algorithm,geometry,graph-algorithm,Algorithm,Geometry,Graph Algorithm,我需要找到平面中端点A,B之间的最短欧几里德距离,受约束条件是有一组N段S=[S1,S2,…]我的欧几里德路径不能相交 我可以想象一种递归方法,该方法首先“猜测”a、B之间的直线,并检查与段s的任何交点,更改路径以绕过s,然后在新端点上递归调用相同的算法。这看起来像是运行时O(2^N),因为每个段有两种方式 这是我正在研究的旅行推销员问题的一个版本的子问题 编辑:如果两个线段共享一个端点,则该点可以通过。构建一个图形G,其顶点为a、B和线段的2N端点。当且仅当两点之间的直线不与任何其他边相交时,

我需要找到平面中端点
A,B
之间的最短欧几里德距离,受约束条件是有一组N段
S=[S1,S2,…]
我的欧几里德路径不能相交

我可以想象一种递归方法,该方法首先“猜测”a、B之间的直线,并检查与段
s
的任何交点,更改路径以绕过
s
,然后在新端点上递归调用相同的算法。这看起来像是运行时O(2^N),因为每个段有两种方式

这是我正在研究的旅行推销员问题的一个版本的子问题


编辑:如果两个线段共享一个端点,则该点可以通过。

构建一个图形
G
,其顶点为
a
B
和线段的
2N
端点。当且仅当两点之间的直线不与任何其他边相交时,用边连接两点

现在,使用查找最短路径