kap12_4 - Informatik

Werbung
Graphen und Bäume
12
Graphen und Bäume
Graphen und Bäume
12.1
In diesem Kapitel wollen wir uns mit Erreihbarkeitsfragen in
Graphen beshaftigen.
Als wihtigen Spezialfall von Graphen besprehen wir Baume, eine
der zentralen Datenstrukturen der Informatik.
Um nur einige Anwendungen zu nennen:
{ der Dateibaum in Betriebssystemen,
{ der Hierarhiebaum der Klassen in Java,
{ Syntaxbaume von Programmen,
{ sortierte Baume fur die shnelle Suhe,
{ Raumunterteilungsbaume in der Computergraphik.
{1{
c B. Möller
Wie in Denition 2.6 besteht ein Graph G = (V, E) aus einer Menge
V von Knoten und einer Menge E ⊆ V ×V von Kanten.
Definition 12.1.1
• G ′ = (V ′ , E ′ ) heit
Teilgraph
von G, kurz G ′ ⊆ G, wenn V ′ ⊆ V
und E ⊆ E.
′
• F
ur V ′ ⊆ V ist der von V ′
erzeugte Teilgraph
GV ′ =df (V ′ , E ′ ),
wobei E =df E ∩ V ×V .
′
Diskrete Strukt. WS 10/11
Graphen und Bäume
′
′
{2{
c B. Möller
Diskrete Strukt. WS 10/11
Graphen und Bäume
Beispiel 12.1.2 Betrahte
2
r
O
/
4
3
/
5
r
xrrr
LLL
&
Fur eine Menge M bezeihnen wir mit |M| die Anzahl der Elemente
von M (im Falle einer unendlihen Menge setzen wir |M| = ∞).
1 LL
Definition 12.1.3
Der von der Knotenmenge V ′ = {2, 3, 4} erzeugte Teilgraph GV ′ ist
2
O
/
4
3
⊓
⊔
c B. Möller
Grundbegriffe
{3{
Diskrete Strukt. WS 10/11
• Der
eines Knotens x ∈ V ist |Ex|, d.h. die Anzahl
der Kanten, die in x enden.
• Analog ist |xE| der Ausgangsgrad eines Knotens x ∈ V , d.h. die
Anzahl der Kanten, die aus x herausfuhren.
• Der Eingangsgrad bzw. Ausgangsgrad von G ist das Maximum
der entsprehenden Knotengrade (evtl. ∞).
c B. Möller
Eingangsgrad
{4{
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
Definition 12.1.4
12.2
• Ein
Definition 12.2.1 Ein Knoten y heit von einem Knoten x aus
oder kurzer Pfad (von x1 nah xn ) in G ist eine
Folge von Knoten x1 , . . . , xn mit n ≥ 1, so dass xj E xj+1 fur alle
j ∈ [1, n − 1] gilt.
• Sind alle xj vershieden, dann heit der Pfad ein Weg.
Kantenzug
• Sind alle xj vershieden bis auf x1 = xn und gilt n ≥ 3, dann
heit der Pfad ein Zyklus.
c B. Möller
Die Erreichbarkeitsrelation in Graphen
direkt erreihbar,
wenn x E y. Allgemeiner heit y von x aus
erreihbar, wenn x E∗ y.
Das gilt also genau dann, wenn es einen Pfad von x nah y gibt.
Nah Satz 5.9. ist E∗ eine Praordnung.
{5{
Diskrete Strukt. WS 10/11
Graphen und Bäume
c B. Möller
{6{
Diskrete Strukt. WS 10/11
Graphen und Bäume
Definition 12.2.2

• Die nah Lemma 6.7 zugehorige Aquivalenzrelation
ist die
wehselseitige Erreihbarkeit
def
x ∼E y ⇔ x E∗ y ∧ y E∗ x

• Die zugehorigen Aquivalenzklassen
heien die
starken
des Graphen G.
• G selbst heit stark zusammenhangend, wenn ∼E die Allrelation
ist, also G nur eine starke Zusammenhangskomponente hat und
damit alle Knoten wehselseitig erreihbar sind.
Starker Zusammenhang ist vor allem in Verkehrsnetzen
wunshenswert.
Beispiel 12.2.3 Der Graph in Beispiel 12.1.2 ist niht stark
1 niht von 4 erreihbar ist.
zusammenhangend, da z.B. Die starken Zusammenhangskomponenten sind, als Teilgraphen
aufgefasst,
Zusammenhangskomponenten
c B. Möller
{7{
Diskrete Strukt. WS 10/11
2
rr O
xrrr
1 LL
LLL
&
3
4
5
⊓
⊔
c B. Möller
{8{
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
Allgemein gilt ja:
Wir betrahten nun den fur die Anwendungen wihtigen Spezialfall
der endlihen Graphen.
Zur konkreten Berehnung von E∗ bzw. der Erreihbarkeitsmengen
x E∗ und E∗ x konnen wir die Ergebnisse aus dem letzten Kapitel
noh verbessern.
c B. Möller
{9{
Diskrete Strukt. WS 10/11
Graphen und Bäume
Lemma 12.2.4 Ist M endlih und n = |M|, so hat eine Kette in
℘(M) maximal n + 1 Elemente.
Beweis: Die langsten Ketten in
℘(M) sind diejenigen, in denen
sih benahbarte Teilmengen nur um ein Element untersheiden.
Insbesondere haben die langsten Ketten, die ∅ und ganz M
enthalten, maximal die Lange n + 1.
c B. Möller
{ 10 {
⊓
⊔
Diskrete Strukt. WS 10/11
Graphen und Bäume
Als Hilfsmittel brauhen wir ein weiteres Beweisprinzip:
Shubfahprinzip
Damit haben in der Menge ℘(V ×V) aller Relationen uber V
die Ketten die Maximallange |V|2 + 1.
Wir werden aber sehen, dass wir E∗ bereits in |V| Shritten
berehnen konnen, was naturlih wesentlih shneller ist.
Sind m > n Objekte auf n Shubfaher verteilt, so liegen in
wenigstens einem Shubfah mindestens zwei dieser Objekte.
Dieses Prinzip heit oft auh Taubenshlagprinzip
(pigeonhole priniple).
Seine Korrektheit beweist man durh Kontraposition:
Ware in jedem Fah hohstens ein Objekt, so waren es insgesamt
hohstens n.
c B. Möller
{ 11 {
Diskrete Strukt. WS 10/11
c B. Möller
{ 12 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
Damit konnen wir folgendes zeigen.
Lemma 12.2.5 Gilt |V| = n > 0, so ist E∗ =
[
Ej .
j<n
Beweis: Die Relation x E y gilt genau dann, wenn es einen Pfad
von x nah y mit genau j Kanten und damit j + 1 (niht
notwendigerweise vershiedene) Knoten gibt.
j
Also gilt bereits (x, y) ∈
Das bedeutet aber E ⊆
[
Ej .
j<n
Dann kann man aber den Teil des Pfads, der von z nah z fuhrt,
weglassen und bekommt immer noh einen Pfad von x nah y, der
hohstens n Knoten und damit hohstens n − 1 Kanten hat.
{ 13 {
Ej .
j<n
∗
Fur j ≥ n + 1 muss nah dem Shubfahprinzip in einem solhen
Pfad mindestens ein Knoten z zweimal vorkommen.
c B. Möller
[
Diskrete Strukt. WS 10/11
Graphen und Bäume
Die umgekehrte Inklusion gilt nah Denition von E∗ sowieso.
{ 14 {
c B. Möller
Diskrete Strukt. WS 10/11
Graphen und Bäume
Nun betrahten wir den Spezialfall azyklisher Graphen, die im
nahsten Abshnitt eine entsheidende Rolle spielen.
12.3
Lemma 12.2.6 Ist |V| = n > 0 und E azyklish, so ist Ej = ∅ f
ur
alle j ≥ n.
Beweis: Angenommen x Ej y f
ur ein j ≥ n. Also gibt es einen Pfad
Bäume
Baume sind Graphen, in denen die Kanten nur in einer
Grobrihtung\ verlaufen.
"
von x nah y mit genau j Kanten und damit j + 1 > n Knoten.
Insbesondere sind Baume azyklish.
Nah dem Shubfahprinzip muss in diesem Pfad wenigstens ein
Knoten, etwa z, zweimal vorkommen.
Weiter sind Verzweigungen endgultig\, d.h. fuhren von einem
"
Knoten zwei Kanten weg, so gibt es keine Moglihkeit, die mit
diesen Kanten begonnenen Pfade wieder zusammenzufuhren.
Dann wurde aber gelten z E+ z, also ware E niht azyklish, im
Widerspruh zur Voraussetzung.
c B. Möller
⊓
⊔
{ 15 {
⊓
⊔
Diskrete Strukt. WS 10/11
c B. Möller
{ 16 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
Definition 12.3.1 Ein Graph G = (V, E) heit
Baum,
wenn
folgende Eigenshaften erfullt sind:
(1) Es gibt einen Knoten r ∈ V , von dem aus alle Knoten in V
erreihbar sind, d.h. r E∗ = V .
Wir zeigen als Erstes, dass der in Teil (1) der Baumdenition
geforderte Knoten eindeutig bestimmt ist.
(2) E ist azyklish, d.h. E+ ∩ I = ∅.
Lemma 12.3.2 Sei G = (V, E) ein Baum.
(3) Jeder Knoten hat hohstens den Eingangsgrad 1;
das lasst sih relational als E ; E ⊆ I shreiben.
(1) Die Erreihbarkeitsrelation E∗ ist eine Ordnung.
(2) Gilt r E∗ = V = r ′ E∗ , so folgt r = r ′ .
Da E azyklish ist, sind alle Pfade in einem Baum
wiederholungsfrei und somit Wege.
c B. Möller
{ 17 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
c B. Möller
{ 18 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Beweis:
Definition 12.3.3 Sei G = (V, E) ein Baum.
(1) Aus Abshnitt 12.2 wissen wir, dass E∗ eine Praordnung ist.
Wir mussen daher nur noh die Antisymmetrie zeigen.
Das nah Lemma 12.3.2 eindeutig bestimmte Element r mit
r E∗ = V heit die Wurzel (root) von G.
Es gelte also x E∗ y und y E∗ x (∗).
Annahme: x 6= y.
Mit (∗) folgt nun, dass x E y und y E x gelten muss.
+
+
Dann hat man aber auh x (E+ ; E+ ) x und damit x E+ x im
Widerspruh zur Azyklizitat von E.
(2) Nah Voraussetzung gilt insbesondere r E∗ r ′ und r ′ E∗ r und
die Behauptung folgt aus der in Teil (1) gezeigten
Antisymmetrie von E∗ .
⊓
⊔
c B. Möller
{ 19 {
Diskrete Strukt. WS 10/11
Beispiel 12.3.4 Der folgende Graph ist ein Baum mit Wurzel 1 :
/
2
4
8
qqq
qqq
6
1 MM
MMM
qq8
M&
qqq
q
/
3
5 MM
MMM
M&
7
⊓
⊔
c B. Möller
{ 20 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
Da man oft niht von vornherein wei, wie gro die Baume werden,
beginnt man beim Zeihnen oben mit der Wurzel und lasst sie nah
unten wahsen, also gerade umgekehrt wie bei naturlihen Baumen:
1
111
1
3
2
5
3
333
4
6
Kind
von x,
• Kinder y, z von x mit y 6= z
Geshwister,
• Elemente y mit x E y
Nahkommen
• Elemente y mit y E∗ x
Vorfahren
∗
von x,
von x.
Shlielih ist ein Blatt ein Knoten ohne Kinder.
7
{ 21 {
Definition 12.3.5 In einem Baum G = (V, E) nennt man
• ein y mit x E y ein
Das kennt man im taglihen Leben aber bereits von Stammbaumen.
c B. Möller
Daraus ergeben sih einige Sprehweisen:
Diskrete Strukt. WS 10/11
Graphen und Bäume
Auh andere alltaglihe Verwandtshaftsbeziehungen werden
sinngema angewandt.
c B. Möller
{ 22 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Die eigentlih reht einfahe Denition des Baums hat viele
nutzlihe Folgerungen.
Als Erstes betrahten wir Teilgraphen eines Baums.
Definition 12.3.7 Sei nun T ein
Lemma 12.3.6 Sei G = (V, E) ein Baum und x ∈ V beliebig. Dann
ist mit V ′ =df x E∗ der Teilgraph GV ′ wieder ein Baum, genannt
der Teilbaum von G mit Wurzel x.
Beweis: Nah Konstruktion ist ganz V ′ von x aus erreihbar.
Mit E ′ =df E ∩ V ′ ×V ′ ergeben sih die beiden anderen
Baumeigenshaften (E ′ )+ ∩ I = ∅ und E ′ ; (E ′ ) ⊆ I durh Isotonie.
mit Wurzel r.
Die Teilbaume von T , deren Wurzeln die Kinder von r sind (falls

vorhanden), heien unmittelbare Teilbaume oder kurz Aste
von T .
(Teil)baum
 angeordnet sind, wie dies durh
Oft nimmt man an, dass die Aste
die Reihenfolge von links nah rehts in der graphishen
Darstellung ausgedrukt wird.
⊓
⊔
c B. Möller
{ 23 {
Diskrete Strukt. WS 10/11
c B. Möller
{ 24 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
12.4
Graphen und Bäume
Trennungseigenschaften und rekursive
Zerlegung von Bäumen
Definition 12.4.1 Zwei Knoten x, y eines beliebigen Graphen
Nun wollen wir weitere Folgerungen aus der Baumdenition ziehen.
Insbesondere wollen wir die Endgultigkeit\ der Verzweigungen
"
prazisieren, die fur das Durhlaufen von Baumen wihtig ist.
Daraus wird shlielih abgeleitet, wie man Baume systematish in
einfahere Baume zerlegen bzw. aus einfaheren Baumen aufbauen
kann.
c B. Möller
{ 25 {
Hilfreih ist hierfur die folgende Relation:
Diskrete Strukt. WS 10/11
Graphen und Bäume
G = (V, E) heien
unverbunden,
in Zeihen x # y, wenn weder
x E∗ y noh y E∗ x gilt, d.h.
def
x # y ⇔ ¬(x E∗ y) ∧ ¬(y E∗ x)
Als unmittelbare Folgerung aus der Denition ergibt sih
Korollar 12.4.2 Unverbundene Knoten sind vershieden.
c B. Möller
{ 26 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Beweis:
Damit haben wir die folgenden Trennungseigenshaften:
(1) Seien x und y unverbunden.
[ [
• Annahme: z ∈ x E∗ ∩ y E∗ =
(Ei ∩ Ej ).
i≥0 j≥0
Lemma 12.4.3 Sei G = (V, E) ein Baum.
(1) Unverbundene Knoten haben disjunkte Nahkommenshaft, d.h.
x # y ⇒ x E∗ ∩ y E∗ = ∅
(2) Unverbundenheit vererbt sih von Knoten auf ihre Nahfahren:
x # y ∧ x E∗ u ∧ y E∗ v ⇒ u # v
(3) Vershiedene Kinder eines Knotens sind unverbunden.
(4) Von einem Knoten zum anderen fuhrt hohstens ein Weg.
• Wir zeigen durh Induktion u
 ber i + j, dass die Annahme
z ∈ x Ei ∧ z ∈ y Ej stets zum Widerspruh f
uhrt.
Induktionsanfang: i + j ≤ 1.
• Dann folgt i = 0 ∨ j = 0, also z = x ∨ z = y. Dann hatte
man aber y E∗ x bzw. x E∗ y im Widerspruh zu x # y.
Induktionsschritt: Sei i + j ≥ 2 und es gelte f
ur alle i ′ , j ′ mit
′
′
i′
j′
i + j < i + j dass x E ∩ y E = ∅ (Induktionsannahme).
• Angenommen z ∈ x Ei ∩ y Ej .
• Dann gibt es Wege x1 · · · xi xi+1 und y1 · · · yj yj+1 mit x1 = x,
y1 = y und xi+1 = z = yj+1 .
c B. Möller
{ 27 {
Diskrete Strukt. WS 10/11
c B. Möller
{ 28 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
• Die Anfangsst
uke x1 · · · xi und y1 · · · yj haben die Langen
i − 1 und j − 1 und nah Induktionsannahme gilt
x Ei−1 ∩ y Ej−1 = ∅, also insbesondere xi 6= yj .
• Gleihzeitig gilt aber xi E xi+1 und yj E yj+1 ,
d.h. xi , yj ∈ E z.
• Also hat z einen Eingangsgrad von mindestens 2. Widerspruh zu Teil (3) der Baumdenition!
(2) Es gelte die Voraussetzung x # y ∧ x E∗ u ∧ y E∗ v.
Annahme: u und v sind verbunden, etwa u E∗ v.
Dann gilt auh x E∗ v, also v ∈ x E∗ ∩ y E∗ , im Widerspruh zu
Teil (1).
• Daher muss auh x Ei ∩ y Ej = ∅ sein.
c B. Möller
{ 29 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
{ 30 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
(3) Es gelte x E y ∧ x E z ∧ y 6= z.
Annahme: y und z sind verbunden, also etwa y E∗ z.
Wegen y 6= z folgt y E+ z.
Betrahte daher einen Weg von y nah z, auf dem u der
vorletzte Knoten sei.
Insbesondere gilt u E z.
Aus der Azyklizitat von E und x E y E∗ u folgt u 6= x.
Damit sind aber x und u vershiedene Knoten in E z im
Widerspruh zu Teil (3) der Baumdenition.
c B. Möller
c B. Möller
{ 31 {
Diskrete Strukt. WS 10/11
(4) Angenommen, es gabe zwei Wege von x nah y.
Dann gibt es eine erste Stelle, an der sie sih untersheiden.
Der Knoten davor hat also zwei vershiedene und damit
unverbundene Kinder, von denen aus y erreihbar ist, im
Widerspruh zu Teil (1).
⊓
⊔
Es gibt fur dieses Lemma elegantere relationale Beweise, fur die
uns aber hier die Hilfsmittel fehlen.
c B. Möller
{ 32 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
Nun besprehen wir die angekundigte rekursive Zerlegung.
Praktish bedeuten diese Aussagen, dass man beim Navigieren in
Baumen vorsihtig sein muss:
• Entshliet man sih, einen Teilbaum aufzusuhen, kommt man
entlang der Baumkanten nie mehr zuruk in Rihtung zur Wurzel
und damit auh nie mehr in parallele\ Teilbaume.
"
• Man muss sih also hinreihend viel Information u
ber diese
Baumteile separat merken.
Andererseits haben diese starken Trennungseigenshaften auh
Vorteile: Arbeiten in einem Teilbaum beeinusst parallel\ dazu
"
liegende Teilbaume niht.
{ 33 {
c B. Möller
Diskrete Strukt. WS 10/11
Graphen und Bäume
12.5

Nah dem vorigen Lemma sind die an der Wurzel hangenden Aste
eines Baums knotendisjunkt, enthalten aber gleihzeitig zusammen
alle Baumknoten auer der Wurzel.
 T1 , . . . , Tk gehoren, so
Hat die Wurzel k Kinder, zu denen die Aste
kann man also den Baum in folgender Form darstellen:
u•III
zuuu I$
T1 · · · Tk
Fur ein Blatt (k = 0) ergibt sih der Terminierungsfall (bzw., in
aufbauender Rihtung, der Induktionsanfang)
•
Diese Darstellung werden wir im folgenden Abshnitt verwenden,
um bestimmte Mazahlen fur Baume rekursiv zu bestimmen.
c B. Möller
{ 34 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Maßzahlen für Bäume
Definition 12.5.1 Gegeben sei ein Baum T = (V, E).
• Die
Knotenzahl
• Die
H
ohe
von T ist K(T ) =df |V|.
hT (x) eines Knotens x ist sein Abstand von der
Wurzel r von T , d.h. die Anzahl der Kanten des nah
Lemma 12.4.3(3) eindeutigen Wegs von r zu x:
Um sih die Hohenbegrie zu veranshaulihen, dreht man einen
Baum am besten um 180◦ und verwandelt ihn so in einen
botanish korrekten\ Baum.
"
Beispiel 12.5.2 Im Baum aus Beispiel 12.3.4 gilt
h(
2 ) = h(
3)=1
h(
4 ) = h(
5)=2
i
hT (x) =df min {i : r E x}
Insbesondere hat die Wurzel die Hohe 0.
H
ohe H(T ) von T ist die maximale H
ohe der Knoten in V .
• Die
h(
6 ) = h(
7)=3
Damit hat der Baum selbst die Hohe 3.
⊓
⊔
• Shlielih ist B(T ) die Anzahl der Blatter von T .
c B. Möller
{ 35 {
Diskrete Strukt. WS 10/11
c B. Möller
{ 36 {
Diskrete Strukt. WS 10/11
Graphen und Bäume
Graphen und Bäume
In der praktishen Programmierung wird ein Baum durh Zeiger
dargestellt.
Man bekommt niht den Baum als Ganzes\, sondern nur einen
"
Verweis auf seinen Wurzelknoten und muss dann anhand der
Verweise, die den Baumkanten entsprehen, navigieren.
Wenn man also niht bereits beim Aufbau eines Baums die
angegebenen Mazahlen mit abspeihern mohte, muss man sie
aufgrund der Baumstruktur rekursiv berehnen.
Wir geben dafur die entsprehenden Formeln an.
c B. Möller
{ 37 {
Diskrete Strukt. WS 10/11
1. Ist T Blatt, so ist
H(T ) = 0
K(T ) = 1
B(T ) = 1
2. Sonst, also bei k > 0 Kindern der Wurzel ist
u•III
zuuu I$
= 1 + max {H(Ti ) : i = 1, . . . , k}
T1 · · · Tk
k
I
X
uu• II
(b) K T zuu· · · I$ T
= 1+
K(Ti )
1
k
(a) H
() B
i=1
c B. Möller
k
X
u•III
zuuu I$
=df
B(Ti )
T1 · · · Tk
i=1
{ 38 {
Diskrete Strukt. WS 10/11
Herunterladen