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?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage