以最佳方式放置图中的方框(无交叉线)

时间:2012-09-11 04:35:40

标签: algorithm layout

我正在进行一项任务,我必须在一个带有多个框的网页上绘制图表,其中一些框用箭头连接。我有一切设置,以便我能够绘制实际图表,箭头和所有,但现在我面临着以最佳方式放置框的问题。这是我的意思是布置页面,以便我有最少的线交叉。

我必须做两种类型的图表:一种是更层次的图表,我知道哪个框位于左上角,所有框形成一个层次结构。另一个是更棘手的,没有框需要具有特定的位置,最终结果不是层次结构。在任何一种情况下,两个盒子之间都有多个连接。它与以最易读的方式为数据库布置E / R图几乎相同。

是否有人知道如何执行此操作或在何处查找有关如何执行此操作的信息?

提前致谢

./ CJ

1 个答案:

答案 0 :(得分:1)

使用最少的交叉布置任意图形是NP难题,因此您可以找到一个好的启发式方法。

我想到的是:

  1. 将您的物品放在圆形的边缘及其连接边缘。
  2. 使用模拟退火来交换物品,旨在最大限度地减少交叉数量。
  3. 整理使用强制定向布局。
  4. 另一种选择是找到生成树,渲染它,然后添加后面的链接。这可能比模拟退火方法产生更多的交叉点,但它具有将解决方案重新用于任务的第一部分的好处。

    祝你好运!