我有许多节点,每个节点都有许多边。 例如节点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个节点及其给定的边数创建图形。
现在,我正在寻找一种算法来找到解决此问题的可能方法。可能已经有这样的已知问题吗? 我很乐意提供任何帮助或提示。
答案 0 :(得分:3)
Erdős–Gallai theorem提供了一个易于编码的标准,用于决定何时可以解决,Havel–Hakimi algorithm给出了构造这种图的递归方式。我在图论中最喜欢的书籍之一,#34; Pearls in Graph Theory"由Harsfield和Ringel对Havel-Hakimi算法进行了很好的讨论。