用于查找具有给定节点数和边数的图的算法

时间:2017-04-02 13:27:11

标签: algorithm graph graph-algorithm

我有许多节点,每个节点都有许多边。 例如节点A有3个边,B有2个,C有2个,D有1.我正在寻找一个算法,找到两个节点之间没有多边的可能的无向图。 这个简单例子的可能解决方案是:

   A
  /|\
 / | \
B--C  D

所以A与其他3个节点连接,因为它有3个连接,B连接到A和C,D连接到A. 必须满足所有节点的所有边缘。 另一个例子:

A(3),B(3),C(2),D(1),E(1)

溶液:

     A-----D       OR:       A-----E
    / \                     / \
   /   \                   /   \
  C-----B-----E           C-----B-----D

因此,有时会有多种解决方案。但也有可能,没有解决方案,例如, A(2),B(2),C(1)

无法使用这3个节点及其给定的边数创建图形。

现在,我正在寻找一种算法来找到解决此问题的可能方法。可能已经有这样的已知问题吗? 我很乐意提供任何帮助或提示。

1 个答案:

答案 0 :(得分:3)

这称为Graph Realization Problem

Erdős–Gallai theorem提供了一个易于编码的标准,用于决定何时可以解决,Havel–Hakimi algorithm给出了构造这种图的递归方式。我在图论中最喜欢的书籍之一,#34; Pearls in Graph Theory"由Harsfield和Ringel对Havel-Hakimi算法进行了很好的讨论。