Bei einem gegebenen Graphen müssen wir die Kardinalität der größten Menge von Scheitelpunkten finden, so dass jeder von ihnen in jeder maximal möglichen Übereinstimmung vorhanden ist.
Gibt es neben dem offensichtlichen eine Lösung, jeden Scheitelpunkt zu entfernen und die maximale Übereinstimmung zu finden, um zu sehen, dass er reduziert wird?
graph-theory
graph-algorithms
Hououin Kyouma
quelle
quelle
Antworten:
Ich denke, Sie wollen die Edmonds-Gallai-Zerlegung Ihres Graphen, die in Zeit berechnet werden kann (siehe diese Hinweise ).O ( n3)
quelle
Ist Ihr Graph zweiteilig? Angenommen, eine Seite der Bipartition ist links und die andere rechts. Finden Sie eine maximale Übereinstimmung und richten Sie alle übereinstimmenden Kanten von links nach rechts und alle nicht übereinstimmenden Kanten von rechts nach links aus. Dann kann ein Eckpunkt aus einer maximalen Übereinstimmung nur dann weggelassen werden, wenn eine der drei folgenden (sich gegenseitig ausschließenden) Bedingungen zutrifft:v
Wenn Sie zwei Breitensuchen oder Tiefensuchen ausführen, um die Teile des Diagramms zu finden, die von nicht übereinstimmenden Scheitelpunkten aus erreichbar sind, und um die Teile zu finden, die nicht übereinstimmende Scheitelpunkte erreichen können, können Sie die wesentlichen Scheitelpunkte in linearer Zeit finden habe schon das passende.
Möglicherweise funktioniert so etwas auch für den nicht-bipartiten Fall, bei dem eine Suche nach blütenkontrahierenden Alternativpfaden verwendet wird, aber die Details werden komplizierter.
quelle