Alle möglichen maximalen Übereinstimmungen eines zweigliedrigen Graphen
Ich benutze networkx um das @ zu findmaximum cardinality matching eines zweigeteilten Graphen.
Die übereinstimmenden Kanten sind für das jeweilige Diagramm nicht eindeutig.
Gibt es eine Möglichkeit für mich, alle maximalen Übereinstimmungen zu finden?
Für das folgende Beispiel können alle Kanten unten die maximale Übereinstimmung sein:
{1: 2, 2: 1}
oder{1: 3, 3: 1}
oder{1: 4, 4: 1}
import networkx as nx
import matplotlib.pyplot as plt
G = nx.MultiDiGraph()
edges = [(1,3), (1,4), (1,2)]
nx.is_bipartite(G)
True
nx.draw(G, with_labels=True)
plt.show()
Unglücklicherweise
nx.bipartite.maximum_matching(G)
nur gibt @ zurü
{1: 2, 2: 1}
Gibt es eine Möglichkeit, die anderen Kombinationen auch zu bekommen?