Für ein Projekt, an dem ich arbeite, sollte ich zufällige Spannbäume mit begrenzter Höhe generieren.
Grundsätzlich mache ich Folgendes: 1) Generiere einen Spanning Tree 2) Überprüfe die Machbarkeit, wenn machbar, behalte sie.
1) Ausgehend von einem minimalen Spannbaum (Prims oder Kruskals) füge ich eine nicht vorhandene Kante hinzu und dies erzeugt einen Zyklus. Ich erkenne diesen Zyklus und entferne eine der Kanten dieses Zyklus, die mir einen neuen Spannbaum gibt, und fahre fort dieser Spannbaum durch Hinzufügen einer neuen Kante ...
2) Angenommen, es gibt einen speziellen Scheitelpunkt . Für jeden Scheitelpunkt v sollte die Länge des Pfades von v nach V c e n t e r kleiner als δ sein , wobei δ ein gegebener Parameter ist.
Gibt es einen besseren (klugen) Weg, dies zu tun?
PS Ich habe vergessen, die andere Einschränkung anzugeben (mein Fehler): Der Grad der Eckpunkte sollte ebenfalls begrenzt sein.