Maximales Matching in einem mittelgroßen Diagramm
-
29-09-2020 - |
Frage
Angesichts eines zweifacher Diagramms $ g= (v_1 \ cup v_2, e) $ und ein set $ v '\in (v_1 \ cup v_2) $ .Was ist die Komplexität, ein maximales Matching in $ g $ zu finden, das nur
Lösung
Set $ v_i '= v_i \ cap v' $ . Sie können dies lösen, indem Sie die maximale Übereinstimmung mithilfe von höchstens $ K $ Scheitelpunkte von $ v_1 '$ und höchstens $ XK $ aus $ v_2 '$ für alle $ k \ in [0, x] $ . Dies wiederum kann mit maximalem Durchfluss gefunden werden.
Um diese maximale Übereinstimmung zu finden, ändern wir die übliche Reduzierung auf den maximalen Durchfluss. Lassen Sie $ S $ Seien Sie die Quelle und $ T $ die Spüle. Lassen Sie $ L $ und $ R $ Hilfsscheitelpunkte. Fügen Sie eine Kante von $ S $ bis $ L $ mit Kapazität
wir können somit das problem in $ \ mathcal {o} (x \ cdot m) $ bei $ m $ ist die Komplexität des maximalen Flusses. Die maximalen Flussprobleme sind sehr ähnlich, so dass wir uns daran verbessern können.
Wir können die Kapazität von jeder Kante mit $ 1 $ reduzieren oder verringern, während der maximale Durchfluss in $ \ Mathcal { O} (| e |) $ . Berechnen Sie zunächst die maximale Anpassung mit keinen Scheitelpunkten in $ V '$ . Erhöhen Sie dann die Kapazität der Kante von $ S $ bis $ L $ von $ x $ . Erhöht dann bei jedem Schritt die Kapazität des Randes von $ R $ bis $ T $ und verringern Sie die Kapazität der Kante von $ s $ bis $ L $ , während Sie einen maximalen Durchfluss aufrechterhalten. Die größte Anpassung ergeben. Die Komplexität ist $ \ Mathcal {O} (| E | \ sqrt {| V |} + x \ cdot | e |) $ Wenn wir Dinic verwenden, um zu finden das anfängliche bipartite passende.