【问题标题】:An efficient algorithm to compute a line digraph from a digraph一种从有向图计算线有向图的有效算法
【发布时间】:2009-06-03 21:40:52
【问题描述】:

有人知道从有向图计算线有向图的有效算法吗?见http://en.wikipedia.org/wiki/Line_graph(维基百科文章在底部附近提到了二合字母的情况(在概括部分)。理想情况下,我想在线性时间内做到这一点。

从那个部分:

  • 如果 G 是有向图,则其有向折线图或折线图对于 G 的每条边都有一个顶点。
  • 当 v = w 时,表示 G 中从 u 到 v 和从 w 到 x 的有向边的两个顶点由线有向图中从 uv 到 wx 的边连接。

设 G 为有向图 设L(G)为有向线图

在给定 G 的情况下,我可以想出的生成 L(G) 的算法是:

  • 遍历 G 的所有边以生成 L(G) 的节点
  • 遍历 L(G) 中的所有节点对 (uv, wx) 并在 v = w 时连接

这是一个 O(n^2) 算法。

似乎应该有一种方法可以将其降低到 O(n) 时间。我会去考虑这个,但我想我会问堆栈溢出,以防万一有一些我不知道的著名(或不那么著名)算法可以做到这一点。

【问题讨论】:

  • 我猜最好的解决方法是更改​​第二步“遍历 L(G) 中的所有节点对 (uv, wc) ...)”,使其而是“遍历 ​​G 中的所有节点 v”。
  • 那么对于每个传入边 uv 和传出边 vx 将在 L(G) 中有一条边(在节点 uv 和 vx 之间)。虽然这听起来仍然像一个 O(n^2) 算法。也许对此有某种摊销分析?

标签: algorithm graph-theory linegraph


【解决方案1】:

嗯...我认为经过一番思考后可能会有一种更省时的算法...但是这样做需要大量的簿记和大量额外的内存。

我的基本想法是遍历 G 中的所有节点,并从连接到每个节点的边创建连接节点。通过一个额外的链接来跟踪 G(edge) 到 L(G)(node),您可能只需通过 G 上的节点的一个循环就可以逃脱。

【讨论】:

    【解决方案2】:

    你不能从 O(n^2) 开始,因为有些图具有线性图,其边的基数等于原始顶点的基数的平方:想想,对于例如,在具有 n+1 个顶点的图上,其中一个顶点连接到其他所有顶点:然后您必须构建一个具有 n 个顶点的团,因此具有 (n-1)^2 条边。

    算法的复杂性从底部开始受到它产生的输出大小的限制。

    当然,这并不意味着我们不必寻找智能算法。我是这么想的:

    LG(LN,LE) getLinearGraph(G(N,E)) {
      LN = EmptySet();
      LE = EmptySet();
      for (Vertex v : N) {
        verticesToAdd = EmptySet()
        for (Vertex i : out-degree(v) {
          toAdd += textual-rep((v,i));
        }
        LN += toAdd;
        LE += make-clique(toAdd);
      }
    }
    

    【讨论】:

    • 我不太确定我理解你的例子。你的意思是 G 是这样的:www.cs.colostate.edu/~stonea/stkimg/g.png (我不知道如何在这里将图像嵌入到 cmets 中)。在这种情况下,折线图只是节点 {ab, ac, ad, ...} 而没有边。
    • 虽然我怀疑你是对的,L(G) 中的边可能会出现二次爆炸。我可以想到 L(G) 比 G 有更多边的情况(例如维基百科文章中的那个)。
    • 折线图是有向的,但原来的不是,所以是的,如果你把这些边算作无向的,你有我的例子。
    • 你可以看到我所说的维基百科示例:3 与 1 和 4 相连,在折线图中,我们有一个带有节点 (1,3)、(1,4) 的嵌入式团, (3,4).
    • 哦,好吧,我明白了。对,你会得到一个集团:www.cs.colostate.edu/~stonea/stkimg/g2.png
    猜你喜欢
    • 2016-06-17
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2021-09-23
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    相关资源
    最近更新 更多