分段构造非循环图

时间:2018-05-23 22:47:00

标签: graph-theory directed-acyclic-graphs

我想构建一个非循环图。

我需要自下而上构建这个,因为我一次只能构造一个节点数量有限的子图。我也可以在任何地方附上这样一个子图的根。

例如,假设我想构建下面的图(g)。边缘是朝向的,总是指向下方。还允许多个边缘,因为在G和I之间显而易见(我不认为它会对算法产生太大影响)。

           A 
         / | \
        B  |  D 
        | /   | \  
  g =   C     E  F 
              | /
              G
             / \\
            H   I

假设我一次最多可以创建5个节点。该图可以以3个步骤构建。

首先,创建一个包含3个节点的子图(g1):

          G
  g1 =   / \\
        H   I

之后,我们可以更新另一个子图(g2),底部附有g1

          D           D
          | \         | \
          E  F        E  F
 g2 =     | /    =    | /
          g1          G
                     / \\
                    H   I           

最后我们可以组装图(g):

           A               A 
         / | \           / | \
        B  |  g2        B  |  D 
        | /             | /   | \  
 g =    C          =    C     E  F 
                              | /
                              G
                             / \\
                            H   I           

希望问题从示例中清楚可见。我正在尝试将algorihm放在一起,对于给定的DAG和最大尺寸标识这些部分或者得出结论,没有可用的解决方案。例如,如果最大尺寸为2,则图(g)不能被分割。

显然,在树上解决将是微不足道的。

这是否有一个alghoritm?此问题或类似问题是否有名称?

0 个答案:

没有答案