29.01.2014 Aufrufe

Bäume und Wälder

Bäume und Wälder

Bäume und Wälder

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Bäume <strong>und</strong> Wälder<br />

Definition <strong>und</strong> Eigenschaften<br />

Definition: Ein (ungerichteter) Graph ist ein Baum, wenn er zusammenhängend ist <strong>und</strong><br />

keinen Kreis enthält. Ein (ungerichteter) Graph, dessen Zusammenhangskomponenten Bäume<br />

sind, wird ein Wald genannt, d.h. jeder kreisfreie Graph ist ein Wald.<br />

Beispiel 1: Die folgende Abbildung zeigt einen aus vier Bäumen bestehenden Wald.<br />

Beispiel 2: Die folgende Abbildung zeigt die Liste aller Bäume mit 6 Knoten.<br />

Übung: Man mache sich klar, warum diese Bäume paarweise nichtisomorph sind!<br />

Definition: Sei G = (V, E) ungerichtet <strong>und</strong> zusammenhängend mit |V | = n. Ein Untergraph<br />

T auf allen n Knoten, der ein Baum ist, heißt aufspannender Baum von G.<br />

Analog definiert man einen aufspannenden Wald als Vereinigung von aufspannenden Bäumen<br />

von allen Zusammenhangskomponenten eines nichtzusammenhängenden Graphen.<br />

Beobachtung: Jeder zusammenhängende Graph G hat einen aufspannenden Baum, dieser<br />

ist aber nur eindeutig, wenn der Graph selbst ein Baum ist, denn dann ist T der Graph selbst.<br />

Ist G kein Baum, dann gibt es einen Kreis in G <strong>und</strong> wenn man eine Kante dieses Kreises aus<br />

E entfernt, bleibt der Graph zusammenhängend. Somit kann man einen aufspannden Baum<br />

von G erzeugen, indem man schrittweise Kanten von Kreisen entfernt bis keine Kreise mehr<br />

existieren.<br />

Lemma:<br />

Grad 1.<br />

Jeder Baum mit zumindest zwei Knoten besitzt mindestens zwei Knoten vom<br />

1


Beweis: Angenommen G = (V, E) ist ein Baum <strong>und</strong> hat keinen Knoten vom Grad 1, dann<br />

haben alle Knoten einen Grad ≥ 2. Wir beginnen mit einer beliebigen Kante {v 1 , v 2 } ∈ E.<br />

Wegen deg(v 2 ) ≥ 2 gibt es einen von v 1 verschiedenen Nachbarn v 3 von v 2 , wegen deg(v 3 ) ≥ 2<br />

gibt es einen von v 2 verschiedenen Nachbarn v 4 von v 3 usw. Man beachte, dass jeder Knoten<br />

v k aus dieser Konstruktion nicht in der Menge {v 1 , v 2 , . . . , v k−1 } liegen kann, denn dann hätte<br />

G einen Kreis. Damit müsste V unendlich viele Knoten enthalten - ein Widerspruch.<br />

Alternativer Beweis: Weniger intuitiv, aber dafür kürzer <strong>und</strong> eleganter ist das folgende Argument.<br />

Seien u 1 , u 2 , . . . , u i die Knoten eines längsten Weges in G. Dann liegen alle Nachbarn<br />

von u 1 auf diesem Weg, denn sonst wäre er nicht ein längster Weg. Aber nur u 2 kann ein<br />

Nachbar von u 1 sein, sonst gäbe es einen Kreis. Folglich ist deg(u 1 ) = 1.<br />

Definition: Ist G ein Baum, dann nennt man alle Knoten vom Grad 1 Blätter des Baums,<br />

alle anderen Knoten nennt man innere Knoten von G.<br />

Charakterisierung von Bäumen<br />

Satz: Folgende Aussagen sind äquivalent für G = (V, E).<br />

(1) G = (V, E) ist ein Baum.<br />

(2) Je zwei Knoten sind durch genau einen Weg verb<strong>und</strong>en.<br />

(3) G ist zusammenhängend <strong>und</strong> es gilt: |E| = |V | − 1.<br />

Beweis: (1) ⇒ (2) <strong>und</strong> (2) ⇒ (1) sind einfache indirekte Schlüsse. Die erste Implikation<br />

sieht man z.B. wie folgt. Angenommen es gibt zwei Knoten u, v, zwischen denen nicht genau<br />

ein Weg verläuft. Dann gibt es entweder gar keinen Weg von u nach v oder mindestens zwei<br />

verschiedene Wege. Im ersten Fall wäre der Graph nicht zusammenhängend, im zweiten Fall<br />

würde er einen Kreis enthalten. In jedem Fall ist aber G kein Baum.<br />

Die Gegenrichtung kann mit ähnlichen Argumenten begründet werden: Angenommen G ist<br />

kein Baum, dann ist G nicht zusammenhängend oder G enthält einen Kreis. Im ersten Fall<br />

wählt man u <strong>und</strong> v aus verschiedenen Zusammenhangskomponenten von G <strong>und</strong> es gibt keinen<br />

Weg von u nach v, im zweiten Fall wählt man aus einem Kreis zwei Knoten u <strong>und</strong> v für<br />

die es dann zwei verschiedene Verbindungswege gibt. In beiden Fällen komen wir auf einen<br />

Widerspruch zu (2).<br />

Wir zeigen (1) ⇒ (3):<br />

Für Bäume der Ordnung a ist das offensichtlich. Sonst hat jeder Baum Knoten vom Grad 1,<br />

sei u 1 einer von ihnen <strong>und</strong> u 2 der einzige Nachbar von u 1 in G. Wir entfernen u 1 <strong>und</strong> die<br />

Kante {u 1 , u 2 } aus G <strong>und</strong> erhalten einen zusammenhängenden Restgraphen G ′ . Dieser hat<br />

genau einen Knoten <strong>und</strong> eine Kante weniger als G. Wenn wir dies iterieren, bleibt zum Schluss<br />

genau ein Knoten ohne Kanten übrig. Also |E| = |V |−1. Auf das Iterieren kann man natürlich<br />

verzichten, wenn man den Beweis mit vollständiger Induktion führt.<br />

Wir zeigen (3) ⇒ (1):<br />

Sei T = (V, E ′ ) aufspannender Baum von G, damit |V | − |E ′ | = 1. Aber nach Vorraussetzung<br />

gilt auch |V | − |E| = 1. Allerdings ist E ′ ⊆ E <strong>und</strong> die einzige Möglichkeit hierfür ist E = E ′ .<br />

2


Folgerung 1: Ist G ein Graph der Ordnung n mit genau k Zusammenhangskomponenten,<br />

dann hat jeder aufspannende Wald von G die Größe n − k.<br />

Folgerung 2: Ist G = (V, E) ein Graph, T = (V, E ′ ) ein aufspannender Wald von G <strong>und</strong><br />

e ∈ E \ E ′ eine Kante aus G, die nicht in T liegt, dann enthält der Graph H = (v, E ′ ∪ {e})<br />

genau einen Kreis.<br />

Gr<strong>und</strong>idee von Breiten- <strong>und</strong> Tiefensuche<br />

Zur Konstruktion von aufspannenden Bäumen mit speziellen Eigenschaften gibt zwei Standardverfahren,<br />

die Breitensuche (BFS - Breadth-first search) <strong>und</strong> die Tiefensuche (DFS -Depth-first<br />

search).<br />

Beide Algorithmen starten von einem vorher (beliebig) festgelegten Knoten r ∈ V , der sogenannten<br />

Wurzel, <strong>und</strong> besuchen in jedem Schritt von einem bereits erreichten Knoten aus einen<br />

benachbarten, aber noch nicht besuchten Knoten. Die Kanten, über die diese Besuche erfolgen,<br />

bilden den aufspannenden Baum.<br />

Die beiden Verfahren unterscheiden sich dadurch, von welchem der jeweils erreichten Knoten<br />

die Suche fortgesetzt wird. Dazu betrachten wir die aktuelle Reihenfolge in der die Knoten<br />

besucht wurden. Bei der Breitenssuche wählt man als aktuellen Ausgangspunkt den ersten<br />

Knoten in dieser Folge, der einen unbesuchten Nachbarn besitzt, bei der Tiefensuche den<br />

letzten. Falls dieser Ausgangspunkt mehrere unbesuchte Nachbarn besitzt, kann man einen<br />

beliebigen auswählen oder sich bei nummerierten Knoten auf den kleinsten festlegen.<br />

Es ist klar, dass beide Verfahren in einem (möglicherweise unzusammenhängenden) Graphen<br />

G einen aufspannenden Baum für die Zusammenhangskomponente der Wurzel liefern. Durch<br />

Wiederholung auf allen Zusammenhangskomponenten (jeweils mit einer neuen Wurzel) erhält<br />

man einen aufspannenden Wald.<br />

3

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!