我正在图编辑器上工作。图表显示与连接器(边缘)连接的2D形状(节点)。
我想添加一个操作,在选择了节点的情况下,将它们“解缠结”:如果可能的话,它会重新放置它们以减少交叉边缘的数量(如果必须用弯曲点绘制边缘就可以了) 。
因此,我想要一个图算法,在给定一个(拓扑)图嵌入及其节点子集的情况下,仅修改那些节点上的嵌入(拓扑),以最大程度地减少交叉边缘的数量。
通过阅读有关顶点图的信息并浏览Cabello和Mohar(2013),我认为这个问题是NP-难的。因此,对于任何给定参数值都具有已知的多项式时间复杂度的参数化算法(例如,相交边的数量),我将感到满意。这似乎是可行的,但我个人很难提出这样的算法。
问题:
- 我在哪里寻找这样的算法?
- 是否存在?
- 在现有软件中?
- 这样的操作是否有任何重要的实践经验?(理论上看起来不错的东西在实践中可能并不那么好,反之亦然。)
(我不确定在哪里最好问这个问题:在这里,在StackOverflow还是MathOverflow上?)