在我讨论问题之前,这里有一些可能有用的定义:
我们有两个没有孔的简单多边形,相应的顶点标记为1,2,...,n 我们先来看看简化问题。如图2所示,我们有两个多边形P和Q.我想从凹多边形P开始,并且仅使用对角线将P分解为一组凸子多边形,而不将任何Steiner点引入多边形P.同时时间,我们还在多边形Q中使用相同的顶点对找到另一个多边形Q中的链接路径。
例如,我们使用P中的对角线连接顶点2和5来分割P,如图3所示。我们找到连接多边形Q中的顶点2和5的链接路径,它引入了Steiner点7(在这里,让我们假设我们总能找到多边形Q中的链接路径,其中需要最少数量的Steiner点) 我们希望使用P的对角线分割多边形P,同时将最小数量的Steiner点引入多边形Q.我们迭代地分解P和Q,直到所有子多边形对包含凸多边形。例如,在图3中,子多边形对P_ {2345}和Q_ {2345}已经包含凸多边形P_ {2345},我们不再需要对它们进行分解。然后,我们需要考虑子多边形对P_ {1256}和Q_ {1256},因为它们中的任何一个都是凸的。
下面是使用一个Steiner点7对多边形P和Q进行分割的一个示例,如图4所示。(我们在对角线上添加一个对应点7,以P为线性比率连接P中的顶点2和5。 ratio由多边形Q中的线段(2,7)的长度计算,该长度超过连接Q中的顶点2和5的链路路径的总长度。)
如图5所示,这里有一些关于凸分解多边形P和Q的更多情况。
更普遍的问题:
(1)在开始时,我们可以从多边形P或Q开始
(2)在分区过程中,我们也可以从其他相应的子多边形开始
例如,在开始时,我们从多边形P开始,使用连接P中的顶点2和4的对角线来分解P.然后,对于子多边形对P_ {12456}和Q_ {12456},我们可以从Q_ {12456开始而不是P_ {12456}用于分解。比如说,我们选择连接图6所示Q中的顶点4和6的对角线
我意识到如果我想找到最佳解决方案,就会有指数组合。我的问题是,有没有算法可以加快速度?