如何移动线段以消除最小移动的交叉点?

时间:2011-03-08 09:46:39

标签: algorithm layout geometry line-intersection

针对以下问题是否有任何算法或相关工作?

在2D中给定一组线段,如何移动线段(水平或垂直)以消除交叉点以最小化整体移动?可以允许端点处的交叉点。

1 个答案:

答案 0 :(得分:0)

如果您想最小化段移动的数量:

您可以将线段问题转换为图形问题: 每个段是图的顶点,如果两个段彼此相交,则在两个顶点之间存在边。您希望找到包含所有边的至少一个端点的最小顶点数(因为如果移动所有这些段,则将不再有交叉点)。这是顶点覆盖问题,遗憾的是NP很难,但是存在近似算法。

请参阅:http://en.wikipedia.org/wiki/Vertex_cover_problem