Prüfer-Code

in der Graphentheorie eine Folge, die einen beschrifteten Baum eineindeutig beschreibt

In der Graphentheorie bezeichnet ein Prüfer-Code eine Folge, die einen beschrifteten Baum eineindeutig beschreibt. Der Code für einen Baum mit Knoten hat die Länge und kann mit einem einfachen iterativen Algorithmus erstellt werden. Prüfer-Codes wurden 1918 von Heinz Prüfer eingeführt, um die Cayley-Formel zu beweisen.

Algorithmus Bearbeiten

Prüfer-Code aus einem Baum Bearbeiten

Erstellt werden kann ein Prüfer-Code aus einem Baum durch das iterative Entfernen von Knoten, bis nur noch zwei Knoten übrig sind. Gegeben sei ein Baum   mit Knoten  . Im Schritt   wird das Blatt mit der kleinsten Beschriftung aus dem Baum entfernt und das  -te Element des Prüfer-Codes auf die Beschriftung des einzigen Nachbarn des entfernten Blattes gesetzt.

Der Code eines Baums ist offensichtlich eindeutig und hat die Länge  .

Baum aus einem Prüfer-Code rekonstruieren Bearbeiten

Der ursprüngliche Baum aus einem Prüfer-Code kann ebenfalls leicht gewonnen werden.

Dazu geht man den Prüfer-Code   von links nach rechts durch und schreibt (in eine Liste  ) die jeweils kleinste Zahl darunter, die weder in  , noch in   enthalten ist. Diese wird mit der aktuellen Zahl in   verbunden. Die aktuelle Zahl in   wird anschließend gestrichen. Diese Schritte werden wiederholt, bis keine Elemente mehr in   vorhanden sind. Das  -te Element in   ist dann jeweils mit dem  -ten Element in   durch eine Kante verbunden.

Man erhält so allerdings einen Baum mit nur   Knoten. Um den  -ten Knoten zu erhalten, verbindet man nun die zwei Zahlen, die nicht in   enthalten sind, durch eine weitere Kante.

Beispiel Bearbeiten

Prüfer-Code aus einem Baum Bearbeiten

 
Ein beschrifteter Baum mit Prüfer-Code 5, 5, 2, 2, 2

Der oben vorgestellte Algorithmus wird auf das Bild rechts angewandt. Zu Beginn ist der Knoten 1 das Blatt mit der kleinsten Beschriftung, daher wird dieser Knoten als erstes entfernt und 5 wird als erstes Element in den Prüfer-Code eingefügt. Anschließend werden die Blätter 3 und 4 aus dem Baum entfernt und die Folge um 5 und 2 erweitert. Da der Knoten 5 jetzt das kleinste Blatt ist, wird er aus dem Baum entfernt und 2 an die Folge angehängt. Als letzter Knoten wird Knoten 6 aus dem Baum entfernt und 2 an die Folge angehängt. Der Algorithmus terminiert, da nur noch zwei Knoten (2 und 7) übrig sind.

Baum aus einem Prüfer-Code Bearbeiten

Wir verwenden den obigen Prüfer-Code  .

  1. Das kleinste Element, das nicht in   oder in   enthalten ist, ist 1. Die erste 5 wird also im Baum mit der 1 verbunden, die 1 zu   hinzugefügt und die 5 gestrichen.
  2. Das kleinste Element, das nicht in   oder in   enthalten ist, ist die 3. Es folgt:  ,   und die 5 und die 3 werden im Baum durch eine Kante verbunden.
  3. Als nächstes ist 4 das kleinste Element, das nicht in   oder   liegt. Es folgt:  ,   und die 2 und die 4 werden im Baum durch eine Kante verbunden.
  4. Als nächstes ist 5 das kleinste Element, das nicht in   oder   liegt. Es folgt:  ,   und die 2 und die 5 werden im Baum durch eine Kante verbunden.
  5. Als nächstes ist 6 das kleinste Element, das nicht in   oder   liegt. Es folgt:  ,   und die 2 und die 6 werden im Baum durch eine Kante verbunden.
  6. Der Baum mit   Knoten ist nun fertiggestellt. Da der Prüfer-Code fünfstellig ist, fehlt noch ein Knoten. Dieser ergibt sich, indem die beiden Zahlen, die jetzt nicht in   enthalten sind (also 2 und 7) verbunden werden.

Anwendung Bearbeiten

Der Prüfer-Code eines Baums mit   Knoten ist eine eindeutige Folge der Länge   mit Elementen aus  . Umgekehrt gilt, dass es zu einem gegebenen Prüfer-Code   der Länge   mit Elementen aus   einen eindeutigen beschrifteten Baum gibt. Das kann einfach mittels Induktion über   gezeigt werden.

Die direkte Konsequenz daraus ist, dass Prüfer-Codes eine Bijektion zwischen der Menge der beschrifteten Bäume mit   Knoten und der Menge der Folgen der Länge   mit Elementen aus   darstellen. Die letztgenannte Menge hat die Größe  , wodurch die Existenz der Bijektion die Cayley-Formel beweist: Es gibt   beschriftete Bäume mit   Knoten.

Die Ergebnisse können verallgemeinert werden: Ein beschrifteter Baum ist ein Spannbaum eines beschrifteten vollständigen Graphen. Werden geeignete Einschränkungen an den Prüfer-Code gestellt, kann mit ähnlichen Methoden die Anzahl von Spannbäumen für vollständige bipartite Graphen ermittelt werden. Ist   ein vollständiger bipartiter Graph mit Knoten   bis   in einer Partition und Knoten   bis   in der anderen Partition, so ist in   die Anzahl der beschrifteten Spannbäume  .

Literatur Bearbeiten

Weblinks Bearbeiten

Commons: Prüfer-Code – Sammlung von Bildern, Videos und Audiodateien