Ich arbeite daran, einige Code mit Metaheuristiken für die Suche nach guten Lösungen für die Fixed Charge Transportation Problem (FCTP).Random-Spanning-Bäume von bipartite Graphen
Das Problem, das ich habe, ist eine Startlösung zu generieren, basierend auf dem Auffinden eines Spanning-Tree für die zugrunde liegende bipartite Grafik.
Ich möchte, dass es ein zufälliger spannender Baum ist, so dass ich die Prozedur für dasselbe Problem mehrere Male ausführen kann, möglicherweise unterschiedliche Lösungen zu erhalten.
Ich habe einige Schwierigkeiten dabei. Der Ansatz, den ich bisher gegangen bin, besteht darin, eine zufällige Permutation der Bögen zu machen, dann durch diese Liste zu iterieren und sie sequentiell in die Basis zu setzen, wenn sie keinen Zyklus erzeugen wird.
Ich muss eine schnelle Methode finden, um zu überprüfen, ob das Einfügen eines Bogens einen Zyklus erzeugt. Ich will es nicht "brutal forcen", da dieser Ansatz bei großen Problemfällen viel Zeit in Anspruch nehmen kann.
Vorausgesetzt, dass A
ist ein Array mit einer zufälligen Permutation der Bögen, wie würden Sie gehen um eine Auswahlverfahren zu gehen?
Ich habe jetzt ein paar Stunden daran gearbeitet, und nichts, was ich versucht habe, hat gearbeitet, die meisten es unsinnig, wenn es um Anwendung kommt ...
Nun, ich habe auch nur den Begriff der sequentiellen Verbindung mit Bäumen in der Spannweite Wald verwendet, bis nur ein Baum blieb;) – Undreren