将线段分组为最小折线集

时间:2019-05-01 17:40:35

标签: algorithm graph graph-theory

给出线段列表,我需要在保持折线数量最少的同时构造一个折线列表。

折线不得多次访问同一条边。

例如,如果给我一个矩形的4条边,那么一条折线就足够了。
如果给我一个矩形的6条边,中间有一个十字,那么我将需要两条折线来覆盖它。

此问题看起来与旅行业务员问题非常相似,因此我不确定是否存在解决方案。在那种情况下,我可以接受次优的解决方案。

编辑:
对于我们来说,性能比精度更重要,因此理想情况下,我们希望将几乎相互连接的对象(相距1-2个像素)分组为一条多段线

示例:

  1. 平方输入:
    L(0,0)-(0,1),L(0,1)-(1,1),L(1,1)-(1,0),L(1,0)-(0,0 )
    预期的输出:折线(0,0),(0,1),(1,1),(1,0),关闭

  2. 输入带有X的正方形:
    L(0,0)-(0,1),L(0,1)-(1,1),L(1,1)-(1,0),L(1,0)-(0,0 ),L(0,0)-(1,1),L(1,0)-(0,1) 一个可能的输出:Polyline1(0,0),(0,1),(1,1),(1,0),(0,0),(1,1)Polyline2(1,0),(0, 1)

  3. 彼此靠近的行的输入:
    L(0,0)-(1,0),L(2,0)-(3,0)
    理想输出:折线(0,0),(3,0)

0 个答案:

没有答案