找到边缘交叉最小的图形的java函数

时间:2012-04-10 15:13:02

标签: java graph edge minimization

我正在寻找一个最小化图中边缘交叉数的java函数。

输入应该是图G(E [],V []),其中V []是所有节点的数组,E []是所有边的数组。 输出应该是边缘元素的二维数组(E [] []),其中包含彼此交叉的所有边对。

请参阅https://www.ads.tuwien.ac.at/research/graphDrawing.html部分“交叉最小化”作为示例。图3a和3b示出了相同图的不同表示。但是图3b具有最小量的边缘交叉。因此在这种特殊情况下,函数outputarray应该具有长度[1] [2],元素[0] [0] =“节点绿黄”和[0] [1] =“节点粉红橙”

我已经看过JUNG,但是找不到最小化的内置函数。大多数做最小化的库是商业的并且完全超载。我不是在寻找图形输出。我只需要尽可能少的边缘交叉和相关的边缘。

1 个答案:

答案 0 :(得分:0)

我认为,一般来说,这是一个NP难问题,你只能得到最小交叉数的上限:Crossing number。但是,OGDF C ++库有一些布局,试图最小化输入图中的交叉数。