Frage

Ich versuche, das Folgende zu lösen Problem , aber mein Algorithmus ist zu langsam.Das ist, weil ich edmonds - Karp-Algorithmus , um maximalen Fluss zu findenWelches auf zweifache Grafiken angewendet wird, ergibt auch eine maximale Übereinstimmung.Es ist Laufzeit ist n ^ 5.Ich würde gerne schnellere Algorithmen kennen, um dieses Problem zu lösen (für bestimmte Diagramme speziell).Ein Algorithmus, den ich derzeit studiere, ist RELABEL nach vorne , was n ^ 3 ist.

War es hilfreich?

Lösung

Ich schreibe ein zweifaches Matching mit Dinitz-Algorithmus . Es gibt auch einen Satz, dass für die Diagramme der Art der maximalen bipartiten passenden Probleme die gleiche Komplexität wie RELABEL bis Front aufweist (und es ist viel einfacher, implementieren).

in Netzwerken, die während der Lösung von Bipartite-Matching-Problem entstehen, Die Anzahl der Phasen ist von o (\ sqrt {v}) begrenzt, wodurch daher zu führen das o (\ sqrt {v} e) Zeitgebundene. Der resultierende Algorithmus ist auch bekannt als Hopcroft-Karp-Algorithmus. In der Regel gilt diese Grenze für jede Einheit Netzwerk - ein Netzwerk, in dem jeder Scheitelpunkt, außer auf Source und Sink, Entweder hat eine einzige Eintrittskante der Kapazität oder einem einzigen Ausgehender Kapazitätsrand eins und alle anderen Kapazitäten sind willkürlich ganze Zahlen.

Leider ist der Wikipedia-Artikel auf dem Algorithmus, um es implementieren zu können, und ich konnte keine bessere Ressource online finden. Ich habe meine eigene Umsetzung, aber ich habe es vor langer Zeit von anderen in meiner Universität erstellt.

Andere Tipps

das sogenannte Ungarischer Algorithmus für zweifaches Matching kann mit einer niedrigeren Laufzeit implementiert werdenKomplexität.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top