Graphentheorie für Informatiker [Reprint 2011 ed.] 9783110835724, 9783110039467


165 43 19MB

German Pages 140 [144] Year 1972

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
1. Grundlagen der Graphentheorie
1.1. Grundbegriffe für ungerichtete Graphen
1.2. Zusammenhang
1.3. Artikulationen, Brücken, Blöcke
1.4. Isomorphie
1.5. Stabile Mengen
1.6. Bäume
1.7. Zyklomatische Zahl
1.8. Vektorraum der Teilgraphen
1.9. Eulersche und Hamiltonsche Linien
1.10. Färbungen, Paare Graphen
1.11. Ebene Graphen
1.12. Grundbegriffe für gerichtete Graphen
1.13. Zusammenhang in gerichteten Graphen
1.14. Knotenbasen
1.15. Satz von Menger, Kantenbasen
1.16. Turniere
1.17. Eulersche Linien in gerichteten Graphen
1.18. Arboreszenzen
2. Graphen und Matrizen
2.1. Inzidenzmatrix
2.2. Adjazenzmatrix
2.3. Kreismatrix und Kokreismatrix
3. Die Speicherung von Graphen in digitalen Rechenanlagen
3.1. Vorbemerkungen
3.2. Darstellung der Adjazenzmatrix unbewerteter gerichteter Graphen
3.3 Darstellung von Bäumen
3.4. Speicherung bewerteter gerichteter Graphen
4. Kürzeste Wege in einem Graphen
4.1. Problemstellung
4.2. Der Algorithmus nach Dantzig
4.3. Der Algorithmus nach Warshall
4.4. Netzpläne
5. Spannende Bäume und Minimalgerüste
5.1. Minimalgerüste
5.2. Bestimmung aller spannenden Bäume
5.3. Ein Algorithmus zur Bestimmung von Blöcken und Artikulationen
5.4. Algorithmus zur Bestimmung von gerichteten Kreisen
6. Flüsse in Transportnetzen
6.1. Allgemeines
6.2. Transportnetze mit Kapazitäten
6.3. Der Satz von Gale
6.4. Transportnetze mit oberen und unteren Schranken
6.5. Transportnetze mit Kostenfunktion
7. Matching
8. Gerichtete Graphen und Programme
Algorithmen
Sachverzeichnis
Recommend Papers

Graphentheorie für Informatiker [Reprint 2011 ed.]
 9783110835724, 9783110039467

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Graphentheorie für Informatiker von

Dr. Willibald Dörfler Technische Hochschule Wien und

Dr. Jörg Mühlbacher Hochschule für Sozial- und Wirtschaftswissenschaften Linz

W DE

G Sammlung Göschen Band 6016

Walter de Gruyter Berlin · New York · 1973

Die Reihe „Informatik" in der Sammlung Göschen umfaßt folgende Bände: Einführung in Teilgebiete der Informatik. 2 Bände Digitale Rechenautomaten. Von R. Klar. Analog- und Hybridrechner. Von G. Gensch. (In Vorb.) Datenübertragung und -fernverarbeitung. Von K. Oettl. (In Vorb.) Programmierung von Datenverarbeitungsanlagen. Von H. J. Schneider u. D. Jurksch. Datenstrukturen und höhere Programmiertechniken. Von H. Noltemeier. Betriebssysteme I. Grundlagen. Von£". J. Neuhold. (In Vorb.) Betriebssysteme II. Von P. Caspers. (In Vorb.) Theorie und Praxis des Übersetzerentwurfs. Von H. J, Hoffmann. (In Vorb.) Schaltwerk- und Automatentheorie. Von C. Hackl. 2 Bände Graphentheorie Für Informatiker. Von W. Dörfler u. /. Mühlbacher. Einführung in die mathematische Systemtheorie. Von F. Pichler. (In Vorb.) Formale Beschreibung von Programmiersprachen. Von K. Alber. (In Vorb.) Angewandte Informatik. Von P. Mertcns. Information Retrieval. Von 0. Simmler. (In Vorb.) Programmiersprachen für die numerische Werkzeugmaschinensteuerung. Von U. Grupc. (In Vorb.)

© Copyright 1972 by Walter de Gruyter & Co., vormals G. J. Göschen'sche Veriagshandlung - J. Guttentag, Verlagsbuchhandlung Georg Reimer Karl J. Trübner Veit & C'omp., Berlin 30. - Alle Rechte, einschl. der Rechte der Herstellung von Photokopien und Mikrofilmen vom Verlag vorbehalten. - Satz: [BM-Composcr, Walter de Gruyter - Druck: MercedesDruck, Berlin - Printed in Germany

ISBN 3 l l 003946 X

Inhaltsverzeichnis 1. Grundlagen der Graphentheorie 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9. 1.10. 1.11. 1.12. 1.13. 1.14. 1.15. 1.16. 1.17. 1.18.

Grundbegriffe für angerichtete Graphen Zusammenhang Artikulationen, Brücken, Blöcke Isomorphie Stabile Mengen Bäume Zyklomatische Zahl Vektorraum der Teilgraphen Eulersche und Hamiltonsche Linien Färbungen, Paare Graphen Ebene Graphen Grundbegriffe für gerichtete Graphen Zusammenhang in gerichteten Graphen Knotenbasen Satz von Menger, Kantenbasen Turniere Eulersche Linien in gerichteten Graphen Arboreszenzen

2. Graphen und Matrizen 2.1. 2.2. 2.3.

Inzidenzmatrix Adjazenzmatrix Kreismatrix und Kokreismatrix

3. Die Speicherung von Graphen in digitalen Rechenahlagen 3.1. 3.2. 3.2.1. 3.2.2. 3.3 3.4. 3.4.1. 3.4.2. 3.4.3.

Vorbemerkungen Darstellung der Adjazenzmatrix unbewerteter gerichteter Graphen . . Die Bit-Matrix Listcndaistellung Darstellung von Bäumen Speicherung bewerteter gerichteter Graphen Indexsequentielle Speichermethode Speicherabbildungsformel für 2-dimensionale Matrizen Kantenspeicherung

4. Kürzeste Wege in einem Graphen 4.1. 4.2. 4.3. 4.4.

Problemstellung Der Algorithmus nach Dantzig Der Algorithmus nach Warshall Netzplänc

7 7 9 11 16 18 21 25 27 29 33 35 39 41 43 45 47 48 49

55 55 57 60

6l 61 62 63 63 65 67 68 68 70

7l 71 72 73 78

4

Inhaltsverzeichnis

5. Spannende Bäume und Minimalgerüste 5.1. 5.2. 5.3. 5.4.

Minimalgerüste Bestimmung aller spannenden Bäume Ein Algorithmus zur Bestimmung von Blöcken und Artikulationen . . Algorithmus zur Bestimmung von gerichteten Kreisen

6. Flüsse in Transportnetzen 6.1. 6.2. 6.3. 6.4. 6.5.

Allgemeines Transportnetze mit Kapazitäten Der Satz von Gale Transportnetze mit oberen und unteren Schranken Transportnet/.e mit Kostenfunktion

79 79 86 88 97

99 99 101 106 108 115

7. Matching

117

8. Gerichtete Graphen und Programme

122

Algorithmen

137

Sachverzeichnis

138

Vorwort In den letzten Jahren hat die Graphentheorie in vielen jungen Wissensgebieten ausgedehnte Anwendung gefunden. Insbesondere gilt dies für die Informatik, wo ganz allgemein diskrete Strukturen und endliche Mathematik von Bedeutung sind. Daher erscheint es sinnvoll, aus der zu schwer überblickbarer Größe angewachsenen Theorie der Graphen alles zusammenzustellen, was für den Informatiker relevant sein kann. Ein solches Vorhaben würde jedoch den Rahmen eines Taschenbuches sprengen, und so mußten der Stoffwahl Beschränkungen auferlegt werden. Dabei waren zwei Gesichtspunkte maßgebend. Einerseits soll der Leser mit bereits bewährten Verfahren bekannt gemacht werden, die unmittelbar in die Praxis umgesetzt werden können. Andererseits soll er die formalen und methodischen Grundlagen erwerben, um von sich aus neue Verfahren /.u entwickeln, wenn dies ein konkretes Problem erfordert. Dem zweiten Gesichtspunkt entspricht die streng mathematische Behandlung der zugrundeliegenden Theorie, insbesondere in den Kapiteln l , 6 und 7. In Anbetracht der beschränkten Stoffauswahl waren wir ferner bemüht, stets Ausblicke auf weitere Resultate oder Anwendungen zu geben, was durch ein umfangreiches Literaturverzeichnis unterstützt werden soll. Die beigefügten Programme sind alle in FÜRTRAN geschrieben. Herrn Losbichler danken wir für die mühevolle Herstellung der Abbildungen und dem Verlag Walter de Gruyter für die entgegenkommende Behandlung unserer Wünsche und Vorschlage. W. Dörfler J. Mühlbacher

l. Grundlagen aus der Graphentheorie 1 . 1 . Grundbegriffe für ungerichtete Graphen Man kann ungerichtete Graphen auf verschiedene Arten definieren, die aber inhaltlich gleichwertig sind. Wir wählen die folgende Definition, die Kanten als Paare von Knoten einführt. Definition 1.1.1. Ein angerichteter Graph X besteht aus einer Menge V = V(X), den Knoten von X, und einer Menge E = E(X) von ungeordneten Paaren e = [x, y] verschiedener Elemente aus V, den Kanten von X Wir schreiben X = (V, E). Über die Kardinalzahl von V wird somit nichts vorausgesetzt, doch beschränken wir uns im Hinblick auf die Zielrichtung dieses Buches auf Graphen X = (V, E), für die V nur aus endlich vielen Knoten besteht. Die folgenden Bezeichnungen sind in der Graphentheorie üblich: Eine Kante ( x , y ] verbindet ihre Endpunkte und y, und diese nennt man adjazent. Der Knoten und die Kante ( x . y ] heißen inzident, zwei Kanten sindadjazent, wenn sie einen gemeinsamen Endknoten besitzen. Die obige Definition soll nun in Beispielen illustriert werden. Beispiel 1.1.1. Ein Graph X wird definiert, indem man setzt V = Menge von Städten, E = diejenigen Paare von Städten, die durch eine Autobahn verbunden sind. Beispiel 1.1.2. Geometrischer Graph im R n . Im euklidischen Raum R" sei eine endliche Menge V von Punkten gegeben und glatte Kurven, von denen jede zwei verschiedene Punkte aus V verbindet. Zwei Kurven treffen einander höchstens in Punkten aus V. Die Menge V von Punkten zusammen mit der Menge von Kurven bildet einen geometrischen Graphen im R n . Man erhält einen Graphen nach unserer Definition, wenn man E als Gesamtheit der ungeordneten Paare von Punkten aus V erklärt, die durch eine Kurve verbunden sind. Beispiel 1.1.3. Jedes Leitungssystem läßt sich bei Vernachlässigung der Durchflußrichtung durch einen Graphen darstellen, ebenso jedes Straßennetz (ohne Einbahnen). Der Begriff des geometrischen Graphen ist zu unterscheiden von der Zeichnung eines Graphen in der Ebene. Ist V = { l , 2. 3. 4. 5, 6} und = < [ 1 , 4 | , | 1 , 5 ] , [ 1 , 6 ] , | 2 41,[2,5|.[2,6].[3.4|.|3.51.[3.6]>,so kann X = (V, E) zur Unterstützung der Anschauung gezeichnet werden, wie dies in Fig. 1.1.1 getan wurde.

1. Grundlagen der Graphentheorie 1

2

3

Diese Darstellung ist kein geometrischer Graph, da etwa die Kurven von l nach 5 und von 2 nach 4 einander in einem Punkt schneiden, der kein Knoten von X ist. Trotzdem wird man, soweit dies möglich ist, durch eine Zeichnung die Anschauung unterstützen. Doch es soll ausdrücklich vor leicht zu begehenden Fehlschlüssen gewarnt werden, die durch eine irreführende Zeichnung verursacht werden können. Einen Beweis für einen Sachverhalt kann man nur durch exaktes Schließen erhalten. Die Definition 1.1.1 erlaubt zwei wichtige Erweiterungen. Zunächst kann man darauf verzichten, nur Paare verschiedener Knoten als Kanten zu betrachten und erhalt damit Schlingen [x, x]. Die zweite Erweiterung besteht darin, daß wir nicht fordern, daß E eine Menge ist, sondern zulassen, daß ein Element [x, y] aus E in E mehrfach auftritt. Dem entspricht die Verbindung von zwei Knoten eines geometrischen Graphen durch mehrere verschiedene Kurven. Kommt [ x , y j in E mehrfach vor, so nennt man [x, y] eine Mehrfachkante und die verschiedenen Exemplare von [x, y ) heißen parallel. Im Hinblick auf diese Erweiterungen nennt man einen Graphen nach Definition 1.1.1 einen schlichten Graphen. Wenn nichts Anderes vorausgesetzt wird, ist ein ungerichteter Graph in diesem Buch stets ein schlichter Graph. Jedoch treten gerade in der Praxis oft Fälle auf, die die Verwendung des allgemeinen Graph-Begriffes fordern. Definition 1.1.2. Ein Graph X, = (V 1? E t ) heißt Teilgraph von X = (V, E), wenn V^V und E! C E ist. Ein Teilgraph X! von X ist spannender Teilgraph von X. wenn Vj = V ist. Enthält E t alle Kanten aus E, deren Endpunkte in V, liegen, so sagt man, daß X j von V t C V in X aufgespannt wird, oder daß Xl ein gesättigter Teilgraph von X ist. Die Vereinigung X, U X 2 zweier Graphen X j ^ ( V ^ E j ) und X2 = (V2, E 2 ) ist der Graph (Vt U V2, E! U E 2 ). Analog ist der Durchschnitt , 2 erklärt. Die Anzahl der Kanten von E(X), die mit einem Knoten x inzident sind, heißt der Grad d(x). Hat jeder Knoten denselben Grad d. so heißt X regulär vom Grad d. 1st d(x) = ü, so ist x ein isolierter Knoten, ein

1.2. Zusammenhang

9

Knoten vom Grad l ist ein Endknoten. Offentsichtlich ist für schlichte Graphen 0 < d(x) < l VI - l für alle G V(X). Satz 1.1.1. Es ist d(x) = 2 l E ( X ) l xev(X) Beweis: Es wird über alle Knoten summiert, so daß auf der linken Seite jede Kante genau zweimal den Beitrag l liefert. Folgerung 1.1.1. In jedem Graphen ist die Anzahl der Knoten mit ungeradem Grad gerade. Sind in einem Graphen X je zwei verschiedene Knoten durch eine Kante verbunden, so heißt X vollständig.

1.2. Zusammenhang Bei einem Straßennetz wird man als grundlegende Forderung verlangen, daß je zwei Orte durch einen Straßenzug verbunden sind. Dies führt zu folgenden abstrakten Begriffen. Definition 1.2.1. Eine Kantenfolge von x, nach x n in Graphen X ist eine endliche Folge von Kanten [x,, x 2 ], [x 2 , ^3], · · ·, [ , Xj], [Xi< Xi+i ], . . ., [x n _i, x n ], so daß je zwei aufeinanderfolgende Kanten einen Endpunkt gemeinsam haben. Die Kantenfolge ist offen, wenn xl ist und verbindet dann x t und x n . Ist \l = x n , so ist die Kantenfolge geschlossen. Ein Kantenzug ist eine Kantenfolge, in der alle Kanten voneinander verschieden sind. Ein Weg W ist eine offene Kantenfolge, in der alle Knoten X j , . . ., x n verschieden sind. Einen Knoten x fassen wir ebenfalls als Weg auf. Beispiel 1.2.1. Im Graphen der Figur 1.2.1 bilden die Kanten l, 2. 2. 5 eine offene Kantenfolge, jedoch keinen Kantenzug, die Kanten l, 2, 3, 4, 5. l eine geschlossene Kantenfolge. Die Kanten 1. 5. 8, 7 bilden einen Kantenzug aber keinen Weg, und schließlich bilden l , 2, 3, 4. 6 einen Weg. 2

Definition 1.2.2. Ein Kreis ist ein geschlossener Kantenzug, bei dem die Knoten X j , \2- . . ., x n _i alle verschieden sind. In Figur 1.2.1 bilden die Kanten 1/2, 3. 4. 8 einen Kreis.

10

1. Grundlagen der Graphentheorie

Satz 1.2.1. Jede Kantenfolge von xi nach xn enth lt einen Weg von X] nach x n . Beweis: Es sei [xj, x 2 ] , . . ., [ΧΜ, xj],. . ., [x n -i> XH] eine Kantenfolge von X j nach x n . Ist x t = x n , so ist man fertig. Also sei X j 4 x n und es gebe zwei Knoten xj und Xj, i < j , mit Xj = Xj. Ist i = l, so w hlen wir als neue Kantenfolge von X j nach x n [xi, Xj-n], [Xj+i> Xj+2J • · ·> [ χ η-ι> χ η]· Wenn i > l ist, so nimmt man als neue Kantenfolge [\i, \2 j, · · ·, [Xj-i, X;|, [Xj, Xj+i J, · · -- [x n -i' x n]· Sind hier alle Knoten verschieden, so hat man einen Weg von x, nach x n . Ist dies nicht der Fall, so wiederholt man das Verfahren, das nach endlich vielen Schritten einen Weg ergeben mu . Man bezeichnet die Anzahl der Kanten in einer Kantenfolge als die L nge der Kantenfolge. Gibt es im Graphen X berhaupt Wege von χ nach y. so gibt es einen Weg kleinster L nge. Die L nge dieses Weges nennt man den Abstand d(x, y) der Knoten χ und y in X. Gibt es keinen Weg, so setzt man d(x, y) = °°. Der Abstand d(x, y) erf llt dann die Axiome einer Metrik auf V(X). Definition 1.2.3. Ein Graph X heii.M zusammenh ngend, wenn je /.wei seiner Knoten durch einen Weg in X verbunden sind. Beispiel 1.2.2. Der linke Graph in Figur 1.2.2 ist zusammenh ngend. der rechte nicht.

l-'isr. 1.2.2

Man sieht, da der recht e Graph in Fig. l .2.2 die Vereinigung von drei zusammenh ngenden Graphen ist. Definition 1.2.4. Die Komponente K ( x ) des Knoten χ ist die Menge aller Knoten y. die mit χ durch einen Weg verbunden sind. Lemma 1.2.1. Sind χ φ ν /wei Knoten des Graphen X und K i x ) Π K(y) Φ φ, so ist K(x) - K(y). Beweis: Ls sei z G Κ(χ) Γι K(y). Dann gibt es einen Weg von \ nach /. und von / nach y. Die Vereinigung der Wege von χ nach /. und von z nach y enth lt sicher einen Weg von χ nach y. Daraus erh lt man, da K(y) C K ( v ) ist und ebenso, da K(x) C K(y) ist. Die Kno'enmengen K ( x ) . χ £ V(X). bilden somit eine Zerlegung von V(X) in paarweise disjunkte Teilmengen. Die von den K ( x ) aufgespann-

1.3. Artikulationen, Brücken, Blöcke

11

ten Teilgraphen von X heißen Komponenten von X. Aus der Definition von K(x) ist ferner ersichtlich, daß jede Komponente von X ein zusammenhängender Graph ist, und jeder Teilgraph von X, dessen Knotenmenge einer Komponente echt enthält, nicht zusammenhängend ist. Man sagt: eine Komponente ist ein maximaler zusammenhängender Teilgraph von X. Ein Graph X ist also zusammenhängend genau dann, wenn er nur aus einer Komponente besteht. Einen Algorithmus zur Bestimmung der Komponenten des Graphen X" und damit zur Beantwortung der Frage, ob X zusammenhängend ist, liefern die Methoden zur Bestimmung eines spannenden Baumes im Kapitel 5.

1.3. Artikulationen, Brücken, Blöcke Es soll nun untersucht werden, wie stark der Ausfall einer Verbindung in einem Kommunikationsnetz den gesamten Informationsfluß stört, und ob dadurch Teile abgeschnitten werden. Ähnliche Probleme wirft z. B. die Blockierung einer Kreuzung in einem Straßennetz auf. Für alle diese Probleme bietet die Graphentheorie einfache Modelle, die es erlauben, die Einflüsse solcher Störungen zu untersuchen. Definition 1.3.1. 1st X ein Graph und A C V ( X ) , so ist X - A folgender Graph V(X - A) = V(X) - A E(X-A)= 3 sein). Ist X zusammenhängend und x Artikulation von X, so ist X nicht zusammenhängend. Es kann dann X - {x} aus mehr als zwei Komponenten bestehen, wie Fig. 1.3.1 für x = 4 zeigt. Einen zusammenhängenden Graphen mit Artikulationen nennt man separabel. An einer Artikulation ist ein Graph besonders „verwundbar", was bei strategischen und militärischen Überlegungen und bei der Versorgung mit lebenswichtigen Produkten von Bedeutung ist. Satz 1.3.1. X sei zusammenhängend. Ein Knoten x G V ( X ) ist genau dann Artikulation von X, wenn es zwei Knoten y , in V(X) gibt, so daß jeder Weg von y nach z den Knoten x enthält. Beweis: Es sei x Artikulation von X. Dann besteht X - {x} aus Komponenten K j , . . ., K r , r > 2. Ist y G K , , z E K 2 , so gibt es in X - {*} keinen Weg von y nach z, daher muß jeder Weg von y nach z in X — es gibt solche Wege, weil X zusammenhängend ist — den Knoten x enthalten. Umgekehrt seien y und z zwei Knoten mit der angegebenen Eigenschaft. Dann kann es in X - { x } > keinen Weg von y nach z geben, und X - { x } ist somit nicht zusammenhängend, d. h, x ist Artikulation von X. Daß nicht alle Knoten eines Graphen X Artikulationen sein können, zeigt der nächste Satz. Satz 1.3.2. Jeder zusammenhängende Graph X mit \V(X)\^2 destens zwei Knoten, die keine Artikulationen bilden.

hat min-

B e w e i s : Wir wählen in V(X) zwei Knoten x, y mit maximalem Abstand d(x. y). Ist x Artikulation, so gibt es in X - {xf ein , das in einer anderen Komponente von X - < { x ^ liegt als y. Dann liegt x auf jedem Weg von y nach z. also auch auf einem Weg der Länge d(y, z). Dieser Weg enthält aber als kürzester Weg von y nach z über x einen kürzesten Weg von y nach x. Das liefert den Widerspruch d(y. z) > d(y. x). Ebenso sieht man, daß y keine Artikulation ist. Man kann zeigen, daß die Graphen X mit genau | V(X) | - 2 Artikulationen die Wege der Länge | VfX) | - l sind. Wie schon erwähnt, sind Graphen ohne Artikulationen von praktischem und auch theoretischem Interesse. Man sagt, daß ein Teilgraph X, von X einen Hlock von X bildet, wenn X, ein gesättigter zusammenhängender Tcilgraph ist und keine Artikulation enthält, jedoch kein Teilgraph X 2 mit V ( X 2 ) D V ( X , ) diese Eigenschaften besitzt. Ein Block von X ist also ein maximaler /usammenhängender Teilgraph ohne Artikulationen.

1.3. A r t i k u l a t i o n e n , Brücken, Blöcke

13

Beispiel 1.3.2. Die Knoten ( l , 2, 3, 4, 5} spannen im Graphen X der Fig. 1.3.2 einen Block auf, ebenso , {8, 9, 10}· und 411}. Die Artikulationen von X sind die Knoten 5, 7 und 10.

Fig. 1.3.2 Satz 1.3.3. Zwei Blöcke eines Graphen X haben höchstens einen gemeinsamen Knoten und dieser Knoten ist Artikulation von X. Beweis: Es seien B 1 und B 2 zwei Blöcke von X. 1st V(B t ) V(B 2 ) . so ist der Teilgraph B j U B 2 zusammenhängend, weil BI und B2 zusammenhängend sind. Enthält V ( B ] ) n V ( B 2 ) mehr als einen Knoten, so kann keiner der Knoten aus V ( B | ) n V ( B 2 ) Artikulation von B , U B 2 sein. Dann ist aber B j U B 2 ein zusammenhängender Graph ohne Artikulation, im Widerspruch dazu, daß B, und B2 Blöcke sind. Also ist | V Y B , ) n V ( B 2 ) I = 1. Wäre der Knoten mit {x> = V(B,) V(B 2 ) nicht Artikulation von X, so ist X- {x} zusammenhängend, und es gibt in X - {\} einen Weg W von einem Knoten y G V ( B i ) - { x > nach einem Knoten z e V ( B 2 ) - < x } . Dieser Weg W vereinigt mit B! und B2 bildet einen zusammenhängenden Teilgraphen ohne Artikulation, womit derselbe Widerspruch wie oben vorliegt. Folgerung 1.3.1. Ein Knoten von X ist Artikulation von X genau dann, wenn in mindestens zwei Blöcken von X liegt. B e w e i s : Liegt in mehr als einem Block, so ist nach Satz l .3.3 Artikulation von X. Nun sei Artikulation von X. Dann zerfällt -{ } in mehrere Komponenten K , , K 2 ; . . .. K r . r > 2. Ist B ein Block von X, so muß für ein i V(B) < V(K ; ) U{x> sein. Jedes K j U{\} ist aber entweder selbst ein Block oder besteht aus mehreren Blöcken. Somit liegt in mindestens zwei Blöcken. Folgerung 1.3.2. Jede Kante und jeder Kreis von X liegen in genau einem Block von X. B e w e i s : Da der Durchschnitt zweier Blöcke höchstens einen Knoten enthält, müssen beide Endpunkte einer Kante im selben Block liegen. Ein Kreis besitzt keine Artikulation und ist daher in einem Block enthalten.

14

I. Grundlagen der Graphentheorie

In Kapitel 5 werden wir einen effektiven Algorithmus zur Bestimmung von Blöcken und Artikulationen mit Hilfe eines Computers kennenlernen. Trotzdem geben wir hier eine theoretische Charakterisierung der Blöcke, weil sie deren Struktur sehr klar herausstellt und nochmals auf die praktische Bedeutung des Fehlens von Artikulationen hinweist. Satz 1.3.4. Es sei X ein zusammenhängender Graph mit | V(X) | > 3. Dann sind die folgenden Aussagen äquivalent. (i) X ist ein Block. (ii) Durch je zwei Knoten von X geht ein Kreis. (iii) Durch je zwei Kanten von X geht ein Kreis. (iv) Sind y beliebig aus V(X) und e £ E(X) beliebig, so gibt es einen Weg von nach y, der e enthält, (v) Für je drei verschiedene Knoten x, y, z aus V(X) gibt es einen Weg von nach y, der über z führt, (vi) Für je drei verschiedene Knoten x, y, z aus V(X) gibt es einen Weg von x nach y, der z nicht enthält. Wir verzichten auf den Beweis von Satz 1.3.4 (siehe etwa Harary [15]), obwohl die einzige Schwierigkeit darin liegt zu zeigen, daß aus (i) sich (ii) ergibt. Man vergleiche dazu den Satz 1.3.5, aus dem die Äquivalenz von (i) mit (ii) folgt. Besitzt ein Graph keine Artikulation, so kann die Verbindung zwischen zwei seiner Knoten nicht durch Wegnahme eines dritten Knotens unterbrochen werden. Man kann nun fragen: Wieviele Knoten muß man wegnehmen, um die Verbindung zu stören? Definition 1.3.3. Es seien x und y zwei verschiedene nicht adjazente Knoten eines Graphen X und T C V(X) : x, y $ T . Dann heißt T trennende Knotenmenge für und y, wenn es in X - T keinen Weg von x nach y gibt. Unter der Trennungszahl r (x, y) zweier nicht adjazenter Knoten x, y versteht man die minimale Knotenzahl'einer und y trennenden Knotenmenge. Um so größer r ( x , y ) ist, desto „schwieriger" wird es, im Graphen X die Verbindung zwischen den beiden Knoten x. y zu stören. Diese Eigenschaft wird noch deutlicher, wenn man den folgenden Begriff verwendet: Zwei Wege von x nach y heißen knotcndisjunkt, wenn sie außer x und y keinen Knoten gemeinsam haben. Bezeichnet ( , y) die maximale Zahl von knotendisjunkten Wegen von x nach y, so gilt der Satz 1.3.5. fSatz von Menger [92].) Sind x und y nicht adjazente Knoten in X. so ist co (x. y) = r (x, y). Die Ungleichung r (x, y) > ( . y) folgt sofort aus der Definition dieser beiden Zahlen. In der anderen Richtung ist die Ungleichung jedoch keineswegs einfach zu beweisen, und der Beweis geht über den Rahmen dieses Buches hinaus. Der interessierte Leser findet den Beweis in jedem der

1.3. Artikulationen, Brücken, Blöcke

15

Standardwerke über Graphentheorie. Einen eleganten und kurzen Beweis gab Dirac [59]. Die Zahl (x, y) macht eine Aussage über zwei feste Knoten und y. Man nennt das min r (x, y) über alle Paare nicht adjazenter Knoten von X die Zusammenhangszahl ( ). Für den vollständigen Graphen Yn auf n Knoten erklärt man (Yn) = n - 1. Damit ist ( ) die minimale Anzahl von Knoten, durch deren Wegnahme X in einen unzusammenhängenden Graphen übergeht oder sich auf einen einzelnen Knoten reduziert. Es ist ( ) = 0 genau dann, wenn X unzusammenhängend ist, ( ) = 1 , wenn X zusammenhängend ist, aber Artikulationen besitzt. Ist ( ) ^- , so heißt X -fach zusammenhängend. Man kann entsprechend der Wegnahme von Knoten auch die Bedeutung einer gewissen Kante oder Kantenmenge für den Zusammenhang von X studieren. Definition 1.3.4. Ist F C E(X), so ist der Graph X - [F] definiert auf V(X) durch die Kanten aus E(X) - F. Definition 1.3.5. Eine Kante e aus E(X) heißt eine Brücke von X, wenn X - [e] mehr Komponenten besitzt als X. Beispiel 1.3.3. Im Graphen X der Fig. 1.3.3 ist die Kante mit Nummer 5 eine Brücke, die Kante 6 ist keine Brücke.

Ist e eine Brücke im zusammenhängenden Graphen X, so besteht X - [e] aus genau zwei Komponenten. Satz 1.3.6. Es sei X ein zusammenhängender Graph und e G E(X). Dann sind die folgenden Aussagen äquivalent: (i) e ist eine Brücke von X. (ii) e liegt auf keinem Kreis von X. (iii) Es gibt Knoten und y von X. so daß e auf jedem Weg von nach y liegt. Beweis: Wir führen einen zyklischen Beweis, indem wir zeigen (i)=>(ii) Ist e eine Brücke von X, so ist X - f e j nicht zusammenhängend und die Endknotcn von e = [x. y| liegen in verschiedenen

16

I. Grundlagen der Graphentheorie

Komponenten von X - [e]. Daher gibt es in X keinen Weg von nach y außer der Kante e. Diese liegt daher auf keinem Kreis in X. (ii) => (iii) Gilt (ii), so genügt es, die Endknoten x, y von e zu nehmen, denn für sie gilt (iii). (iii) => (i) Ist (iii) erfüllt, so gibt es in X - [ej keinen Weg von nach y, also muß e eine Brücke sein. Eine Brücke bildet zusammen mit ihren Endknoten einen Block, denn entweder sind beide Endpunkte Artikulationen oder ein Endpunkt ist Endknoten und der andere Artikulation von X, Wir können die Blöcke eines Graphen einteilen in 3 Klassen: (i) (ii) (iii)

maximale 2-fach zusammenhängende Teilgraphen (enthalten mindestens drei Knoten). " Brücken (mit ihren Endknoten), isolierte Knoten.

Man kann die Definition 1.3.3 auf Kanten übertragen und trennende Kantenmengen F C E(X) für beliebige Paare von Knoten betrachten. F heißt trennende Kantenmenge für und y, wenn in X - [F] kein Weg von nach y existiert. Die minimale Kantenzahl in einer solchen Menge sei · ( , y). Mit ( , y) bezeichnen wir die maximale Anzahl von Wegen von nach y, die paarweise keine Kante gemeinsam haben. Dann gilt der folgende duale Satz von Menger (Kotzig [80]), den wir ebenfalls nicht beweisen. Satz 1.3.7. Für je zwei verschiedene Knoten r ( x , y ) = co(x,y).

und y aus V(X) ist

Die Kantenzusammenhangszahl ist erklärt als das min ^(x, y) über alle Knoten x ^ y < E V ( X ) .

1.4. Isomorphie In den verschiedensten Wissensgebieten treten Strukturen auf, die durch Graphen beschrieben und untersucht werden können. Dabei wird stets von der konkreten Bedeutung der Knoten und Kanten abstrahiert, und wesentlich ist nur, ob zwei Objekte in einer gewissen Relation stehen oder nicht. Diesem Gedankengang entspricht der Begriff „Isomorphie von Graphen". Definition 1.4.1. Gegeben seien zwei Graphen X t =(Vl,El) und X 2 = (V2, E2). Eine bijektive Abbildung von Vx auf V2 heißt ein Isomorphismus von X{ auf X 2 , wenn [ x , y ] G E j ist genau dann, wenn \ , ] ·2 ist. Gibt es einen Isomorphismus von X } auf X 2 , so nennt man X! und X2 isomorph, symbolisch ausgedrückt durch X j =X 2 .

1.4. Isomorphie

17

Beispiel 1.4.1. Die beiden Graphen in Fig. 1.4.1 sind isomorph, ein Isomorphismus ist gegeben durch: l -»· 6', 4 -»· 7', 2 -»· 5', 3 -* 4', 5 -»> l', 6 -> 3', 7 ^ 2 '

Fig. 1.4.1

Beispiel 1.4.2. Ist X ein Graph und ein geometrischer Graph in R n mit Y = X, so heißt eine geometrische Realisierung von X. Wir erwähnen, daß jeder Graph eine geometrische Realisierung im R 3 besitzt. Die Graphentheorie beschäftigt sich mit den Eigenschaften eines Graphen X, die gegenüber beliebigen Isomorphismen invariant sind. Als Beispiel sei «(X) erwähnt. Ist X = Y und X zusammenhängend, so ist auch zusammenhängend und ( ) = , ( ). Diese Invarianz gewisser Eigenschaften kann umgekehrt dazu dienen um festzustellen, daß X und nicht isomorph sind. Ist zum Beispiel der maximale Grad eines Knotens in X gleich m, aber in y gleich n m, so sind X und sicher nicht isomorph. Von anderen schon behandelten derartigen Hilfsmitteln erwähnen wir: Längen von Kreisen und Wegen, Artikulationen, 'Brücken, Anzahl der Komponenten; gewisse Typen von Teilgraphen, die in X auftreten. Auf diesem Wege kann man aber nur feststellen, daß X nicht isomorph zu ist. Es gibt noch kein allgemein anwendbares Verfahren zur Entscheidung der Isomorphie von Graphen. Nur für gewisse Graphenklassen ist das Problem gelöst. L. Weinberg [l 13] gab einen Algorithmus zur Entscheidung der Isomorphie zweier 3-fach zusammenhängender ebener Graphen an(vgl. 1.11.). Ein Isomorphismus eines Graphen X auf sich selbst heißt Automorphismus von X. Die Gesamtheit der Automorphismen von X bildet eine Gruppe G(X), die Automorphismengruppe von X. Resultate über G(X) findet man in Harary [15] und in Ore [33], jedoch zum größten Teil muß auf die Zeitschriftenliteratur verwiesen werden. 2 Dörfler/Mühlbacher, Graphentheorie

18

1. Grundlagen der Graphentheorie

Beispiel 1.4.3. Die Abbildung der Knotenmenge des Graphen X aus Fig. 1.4.2, die l mit 6 und 2 mit 4 vertauscht und alle anderen Knoten fest läßt, ist ein Automorphismus von X.

1.5. Stabile Mengen Wir beginnen mit einem Beispiel, das teüweise schon von C. F. Gauß 1854 behandelt wurde. Beispiel 1.5.1. Auf einem Schachbrett sollen acht Damen so aufgestellt werden, daß keine Dame eine andere schlagen kann (unter den üblichen Schachregeln), und es sollen alle diese Aufstellungen angegeben werden. Dieses Problem kann mit Hilfe der Graphentheorie gelöst werden. Jedem der 64 Felder des Schachbrettes wird ein Knoten zugeordnet und zwei Knoten bilden eine Kante, wenn die Felder auf derselben Zeile, Spalte oder Diagonale des Schachbrettes liegen. Man kann Damen aufstellen, ohne daß sie einander bedrohen, wenn die den gewählten Feldern entsprechenden Knoten paarweise nicht adjazent sind. Es zeigt sich im konkreten Fall, daß 92 Aufstellungen von acht Damen möglich sind. Definition 1.5.1. In einem Graphen X heißt eine Teilmenge W C V(X) innen stabil, wenn keine zwei ihrer Knoten adjazent sind. Die maximale Anzahl von Knoten in einer innen stabilen Menge heißt der Koeffizient der inneren Stabilität, kurz Stabilitätskoeffizient, a(X) von X. In Beispiel 1.5.1 müssen also die gewählten Felder im betrachteten Graphen eine innen stabile Menge bilden. Zur Bestimmung aller maximalen innen stabilen Mengen W, die also in keiner anderen innen stabilen Menge echt enthalten sind, gibt es ein Verfahren von Maghout, das einfache Boolesche Operationen verwendet. Wir verweisen dazu auf C. Berge [3j oder A. Kaufmann [21J.

1.5. Stabüe Mengen

19

Der Begriff der innen stabilen Menge findet neben Anwendungen in der Soziologie eine Verwendung in der Theorie der Informationsübertragung, deren Grundidee wir kurz anführen. Beispiel 1.5.2. (C. E. Shannon [107]) Mit Hufe der Buchstaben a, b, c, d, e soll Information übertragen werden. Man weiß, daß der Empfänger gewisse dieser Buchstaben nicht unterscheiden kann. Gesucht ist die maximale Anzahl von Buchstaben, die zur Übertragung verwendet werden können, ohne daß eine Verwechslung möglich ist. Man bildet einen Graphen X mit V(X) = , in dem zwei Knoten genau dann verbunden sind, wenn sie der Empfänger verwechseln kann. Das ergebe für die Buchstaben a, b, c, d, e den Graphen der Fig. 1.5.1.

Fig. 1.5.1

In der Sprache der Graphentheorie bedeutet dies das Aufsuchen einer innen stabilen Menge W im Graphen X mit |W| = a(X). Bei uns ist a(G) = 2 und etwa {a, c} eine innen stabile Menge mit 2 Knoten. Statt einzelner Buchstaben kann man auch n-tupel aus den gegebenen Buchstaben verwenden. Zwei solche n-tupel kann man genau dann verwechseln, wenn man die Komponenten, in denen sich die n-tupcl unterscheiden, verwechseln kann. Um dies graphentheoretisch zu fassen, erklärt man ein Produkt von Graphen, das als starkes Produkt bekannt ist. Für zwei Graphen X und ist X*Y erklärt durch V(X*Y) = {(x, y) | e V(X). y G V(Y)> = V(X) X V(Y) E(X*Y) = {[(x 1 ,y 1 ),(x 2 ,y 2 ))ixi = x 2 , ly„y 2 |eE(Y)oder = 2 , [ , 2 ] £ ( ) oder [x,, x 2 ] G E(X), [yl} y 2 ] G E(Y)>. Das starke Produkt ist assoziativ und kommutetiv. Das Produkt X n ist für n^3 erklärt durch X n = X*X Iv4 . Die Knotenmenge von X n sind die n-tupel ( x j , x 2 , . . ., x n ) mit X j G V ( X ) für i = l . . . , , n und zwei n-tupel sind adjazent genau dann, wenn man sie verwechseln kann. Man /eigt leicht, daß ( * ) ^ ( ) ( ) ist. Daher wird es im altgemeinen günstiger sein, n-tupel von Buchstaben zu verwenden für ein n^2. Denn die maximale Anzahl von n-tupeln, die paarweise nicht zu verwechseln sind, ist gleich

20

1. Grundlagen der Graphentheorie

a(Xn), also mindestens gleich a(X) n . Die Zahl supv/opC") wird die n>1 Kapazität von X genannt. In der Soziologie findet auch der Begriff der Clique Verwendung, der im gewissen Sinne das Gegenteil zu den innen stabilen Mengen darstellt. Definition 1.5.2. Eine Clique Q im Graphen X ist ein maximaler vollständiger Teilgraph Q von X. Bedeutet die Existenz einer Kante [x, y] das Bestehen einer Beziehung bestimmter Art zwischen und y, so ist eine Clique eine maximale Menge von Knoten (Objekten, Individuen), die paarweise in der betrachteten Beziehung stehen. Die Cliquen von X entsprechen genau den maximalen innen stabilen Mengen im Komplement X von X, das wie folgt erklärt ist. Es ist V(X) = V(X) und Zum Beispiel ist in Fig. 1.5.2 der rechte Graph isomorph zum Komplement des linken Graphen.

Fig. 1.5.2

Bevor wir den nächsten Begriff einführen, bringen wir wieder ein Beispiel. Beispiel I.S.3. Beim Schachspiel kann man die folgende Frage stellen. Wieviele Damen muß man aufstellen und wo muß man sie aufstellen, so daß jedes Feld von wenigstens einer Dame bedroht wird? Bildet man wie im Beispiel 1.5.1 den Graphen X, so läßt sich das Problem formulieren als die Frage nach einer minimalen Anzahl von Knoten, so daß jeder andere Knoten mit mindestens einem der gewählten Knoten adjazent ist. Definition 1.5.3. Eine Teilmenge W C V ( X ) heißt außen stabil in X, wenn jeder Knoten aus V(X) - W mit einem Knoten aus W adjazent ist. Die kleinste Zahl von Knoten in einer außen stabilen Menge ist der Koeffizient der äußeren Stabilität von X. Zur Bestimmung aller außen stabilen Mengen eines Graphen X kann man die Boolesche Methode von Maghout [901 verwenden. Man vergleiche wieder Kaufmann [ 2 1 1 oder C. Berge [3].

1.6. Bäume

21

In der Spieltheorie wird der Begriff des Kernes eines Graphen X verwendet. W C V(X) heißt Kern von X, wenn W innen und außen stabil ist. Beispiel 1.5.4. Im Graphen der Fig. 1.5.3 bilden die Knoten 3, 4, 7 eine außen stabile Menge, die minimal ist. Die Knoten l, 4, 6, 8 bilden einen Kern.

8

7 Fig. 1.5.3

B e m e r k u n g . Meistens werden die Begriffe der außen stabilen Menge und des Kernes für gerichtete Graphen (vgl. 1.12) verwendet. Im gerichteten Graphen X heißt W C V(X) außen stabil, wenn zu jedem Knoten aus V(X) - W ein Knoten y aus W existiert mit (iii) Wenn (ii) gilt, so ist X sicher zusammenhängend. Ferner bildet jede Kante den einzigen Weg, der ihre Endknoten verbindet. Somit ist jede Kante eine Brücke, da nach ihrer Wegnahme ihre Endknoten nicht mehr verbunden sind. (iii) => (iv) Es soll (iii) gellen. Dann ist X zusammenhängend, und es bleibt zu zeigen, daß m = n - l ist. Für |V(X)|= l, 2 ist die Behauptung sicher richtig. Wir führen den Beweis weiter mit Induktion nach n = IV(X)| und machen die Induktionsannahme, daß die Behauptung für !V(X)| < n - l richtig ist. Ist X ein Graph der (iii) erfüllt mit |V(X)|= n. so sei c G E(X) beliebig gewählt. X - [ej /.erfällt in genau zwei Komponenten X [ , X 2 . Jede dieser Komponenten erfüllt wieder (iii), besitzt aber weniger Knoten als X. Nach Induktionsannahme gilt daher | E ( X i ) ! = I V ( X i ) | - l . i = 1 . 2 . Damit erhält man |E(X)| = | E ( X j ) | + + | E ( X 2 ) | + 1 = |V(X) - 1. ( i v ) ^ ( v ) Es gelte (iv). Dann ist m - n - J und X ist zusammenhängend. Wir nehmen an, daß X einen Kreis C enthält. X kann sicher nicht nur aus dem Kreis C bestehen, weil sonst in = n wäre. Ist k die Anzahl der Knoten auf C. so gibt es noch n - k Knoten von X. die

24

l . Grundlagen der Graphentheorie

nicht auf C liegen. Jeder dieser Knoten ist mit einem Knoten von C durch einen Weg verbunden. Man kann diese Wege so auswählen, daß jeder Knoten, der nicht auf C liegt, durch genau einen Weg mit einem Knoten auf C verbunden ist, indem man überflüssige Kanten streicht. Ist € V(C), so sei Wx die Menge der Knoten, die mit durch einen der konstruierten Wege verbunden sind. Nach Konstruktion besitzt der Graph Yx mit V(YX) = Wx U{x> und mit den Kanten, die auf den gewählten Wegen liegen, die Eigenschaft (ii). Wie schon bewiesen wurde, folgt daraus die Eigenschaft (iv). Somit hat Yx genau |WX| Kanten. Daher gibt es außer den Kanten von C noch mindestens |WX| = n - k Kanten in X. Widerspruch zu m = n - l ! xev(C). (v) => (vi) Unter der Voraussetzung, daß (v) gilt, hat X keinen Kreis. X ist daher nach Definition ein Wald. Für jede Komponente X 4 von X gilt daher (i) und damit (iv), was schon bewiesen wurde. Also ist |E(Xj)|= |V(Xi)|- 1. Gäbe es p>2 Komponenten in X, so erhielte man daraus durch Summation m = n - p, was (v) als Voraussetzung widerspricht. Somit ist X zusammenhängend, also ein Baum. Daher bildet eine Kante e = [x, y] $ E(X), wenn sie zu E(X) hinzugefügt wird, mit dem eindeutig bestimmten Weg in X von nach y einen Kreis, und dieser ist der einzige in dem so erhaltenen Graphen. (vi) => (i) Gilt (vi), so hat X keinen Kreis. Sind x, y nicht durch eine Kante verbunden, so erhält man durch Hinzufügen von [x, y] zu E(X) einen Kreis. Daher müssen x, y schon in X durch einen Weg verbunden sein. Das bedeutet, daß X zusammenhängend und somit ein Baum ist. Folgerung 1.6.1. Jeder Baum hat mindestens zwei Endknoten. Beweis: Nach Eigenschaft (iv) ist m = n - l . Andererseits ist d(x) = 2m = 2n - 2. Hätten mehr als n - 2 Knoten einen Grad größer xev(X) als eins, so wäre d(x) > 2n - 2, Widerspruch! xev(X) Im folgenden wird der Begriff des Zentrums eines Graphen behandelt, dessen Bestimmung sich bei Bäumen als besonders einfach erweist. Definition 1.6.2. Es sei X ein zusammenhängender Graph. Die Exzentrizität e(x) eines Knotens x G V(X) ist definiert als max d(x, y). Der Radius r(X) ist erklärt als min e (x). Ein Knoten x heißt zentraler Knoten, wenn e(x) = r(X). Das Zentrum eines Graphen ist die Menge seiner zentralen Knoten. Satz 1.6.2. Das Zentrum eines Baumes ist entweder ein Knoten oder es besteht aus zwei adjazenten Knoten.

1.7. Zyklomatische Zahl

25

Beweis: Es sei X ein Baum. Ist x£V(X), so ist jeder Knoten mit maximalem Abstand von notwendig ein Endknoten. Daher ist e(x) = max d(y, x), wobei das Maximum nur über die Endknoten y von X zu nehmen ist. Der Satz ist richtig für |V(X)| = 1 , 2 . Ist X ein Baum mit |V(X)|5*3, so sei W die Menge seiner Endknoten. Auf Grund der obigen Bemerkung ist die Exzentrizität jedes Knotens von X - W genau um eins kleiner als die Exzentrizität desselben Knotens in X. Daher sind die Knoten mit minimaler Exzentrizität in X und X-W dieselben, d. h. X und X - W haben dasselbe Zentrum. Wir wiederholen den Prozeß des Wegnehmens der Endknoten solange wie möglich. Da |V(X)| endlich ist, erhält man nach endlich vielen Schritten einen Knoten oder zwei adjazente Knoten, die das Zentrum von X bilden. Wir bemerken, daß der eben geführte Beweis zugleich ein Verfahren zur Bestimmung des Zentrums eines Baumes liefert. Für beliebige Graphen X kann das Zentrum aus mehreren Knoten bestehen, die adjazent oder auch nicht adjazent sein können. Einige Anwendungen von Bäumen werden im Abschnitt über gerichtete Graphen besprochen. Spannende Bäume in bewerteten Graphen werden ausführlich in Kapitel 5 behandelt. Auch das Folgende steht noch in engem Zusammenhang mit Bäumen.

1.7. Zyklomatische Zahl Wir beginnen mit einer Definition. Definition 1.7.1. Ist der Teilgraph H von X zugleich spannender Teilgraph und ein Baum, so heißt H spannender Baum oder Gerüst von X. Beispiel 1.7.1. Die stark ausgezogenen Kanten im Graphen der Fig. 1.7.1 bestimmen einen spannenden Baum in X.

Fig. 1.7.1

Satz 1.7.1. Ein Graph X besitzt genau dann einen spannenden Baum, wenn X zusammenhängend ist.

26

l . Grundlagen der Graphentheorie

Beweis: Besitzt X einen spannenden Baum H, so sind je zwei Knoten aus V(X) durch einen Weg in H und damit durch einen Weg in X verbunden. Umgekehrt sei X zusammenhängend. Ist X ein Baum, so ist nichts zu zeigen. Andernfalls gibt es einen Kreis C in X. Man wählt e G E(C) beliebig. Dann ist X - [e] wieder zusammenhängend. Ist X - [e] ein Baum, so ist man fertig. Sonst wiederholt man solange die Wegnahme von Kanten, die auf einem Kreis liegen, bis ein Baum entsteht. Das muß nach endlich vielen Schritten der Fall sein. Bemerkung. Im Beweis von Satz 1.7.1 steckt ein Algorithmus zur Konstruktion eines spannenden Baumes, der sich kurz so ausdrücken läßt: man streiche solange Kanten aus E(X), bis man einen zusammenhängenden Graphen erhält, der durch Streichen jeder Kante in einen unzusammenhängenden Graphen übergeht. Das ist für eine Durchführung mit der Hand geeignet. Für den Computer ist jedoch die Überprüfung, ob eine Kante auf einem Kreis liegt, relativ umständlich. Die Algorithmen aus Kapitel 5 sind dagegen geeignet, mit einem Computer einen bzw. alle spannenden Bäume zu bestimmen. Es ist klar, daß alle spannenden Bäume eines zusammenhängenden Graphen X dieselbe Anzahl von Kanten besitzen, nämlich |V(X) | - l . Wenn man wie oben sukzessive Kanten streicht, um einen spannenden Baum zu erhalten, so müssen |E(X)| - |V(X)| + l Kanten gestrichen werden. Definition 1.7.2. Ist X ein zusammenhängender Graph, so ist die zyklomatische Zahl y(X) erklärt als KX)=!E(X)|-|V(X)| + 1 Ist X nicht zusammenhängend und sind Xj, i = l, . . ., k die Komponenten von X, so ist oder KX)=IE(X)| - |V(X)| + k. wo k die Anzahl der Komponenten von X ist. Ist X zusammenhängend, so muß man genau p(X) Kanten wegnehmen, um einen spannenden Baum zu erhalten. Es ist v(X) = 0 genau dann, wenn X ein Baum ist. Satz 1.7.2. Der zusammenhängende Graph X besitzt dann und nur dann genau einen Kreis, wenn v ( X ) = l ist. Beweis: Der Satz folgt unmittelbar aus der Eigenschaft (vi) von Satz 1.6.1. Ist i>(X) > l, so ist die Anzahl der verschiedenen Kreise in X im allgemeinen größer als f(X). Definition 1.7.3. Ist H ein spannender Baum des Graphen X, so heißt jede Kante aus E(X), die nicht in E(H) liegt, eine Sehne von X. Zu jedem spannenden Baum H von X gibt es genau f(X) Sehnen. Fügt man eine der Sehnen /um Baum II hinzu, so erhält man einen Gra-

1.8. Vektorraum der Teilgraphen

27

phen mit genau einem Kreis. Die Gesamtheit der so erhaltenen v(X) Kreise von X nennt man das Fundamentalsystem von Kreisen zum spannenden Baum H. Wenn der Graph X nicht zusammenhängend ist, so besitzt jede seiner Komponenten einen spannenden Baum. Deren Vereinigung bezeichnet man ebenfalls als Gerüst von X. Auch hier gilt, daß man v(X) Kanten aus E(X) wegnehmen muß, um ein Gerüst von X zu erhalten. Die Anzahl der Gerüste in einem Graphen X kann man mit dem Satz von Kirchhoffund Trent (Satz 2.2.2 in Kapitel 2) bestimmen. Große praktische Bedeutung hat der Begriff des spannenden Baumes in der Theorie der elektrischen Netzwerke.

1.8. Vektorraum der Teilgraphen Wir legen unseren Betrachtungen einen Graphen X zugrunde, dessen Kantenmenge E(X) wir auf irgend eine Weise durchnumerieren, also ist E(X)= {e!,e2, . . . , e m } . Für zwei Mengen M und N ist die symmetrische Differenz definiert als (M - N) U (N - M). M ist also die Menge der Elemente, die in genau einer der Mengen M oder N liegen, jedoch nicht in beiden. Sind H! und H 2 zwei spannende Teilgraphen von X, d. h. V(Hj) = V(H 2 ) = V(X), so erklären wir den spannenden Teilgraphen H von X durch die Kantenmenge E(H) = ^ ( 2 ). Der spannende Teilgraph H wird als die Summe H j © H 2 von H j und H 2 bezeichnet. Aus der Mengenlehre ist bekannt, daß eine assoziative und kommutative Verknüpfung ist, also gilt dies auch für ®. Es gilt jedoch mehr, wie das folgende Lemma zeigt. Lemma 1.8.1. Die spannenden Teilgraphen von X mit der Verknüpfung e bilden eine kommutative Gruppe. Beweis: Wir müssen noch die Existenz eines neutralen Elements und eines inversen Elements zu jedem H beweisen. Der spannende Teilgraph HO mit E(H0) = 0 erfüllt offensichtlich H 0 e H = H für alle spannenden Teilgraphen H von X. Ferner gilt H e H = H 0 für jeden spannenden Teilgraphen H, also ist jeder spannende Teilgraph H bezüglich zu sich selbst invers. Damit ist das Lemma bewiesen. Man kann eine skalare Multiplikation spannender Teilgraphen mit den Elementen 0, l des Restklassenkörpers mod 2 erklären. Und zwar soll l · H = H für alle Teilgraphen H von X und 0 · H = H 0 (neutrales Element) sein. Man prüft leicht nach, daß diese Multiplikation mit 0 und l alle Eigenschaften einer skalaren Multiplikation besitzt. Wir fassen zusammen im

28

1. Grundlagen der Graphentheorie

Satz 1.8.1. Die spannenden Teilgraphen eines Graphen X mit der Addition und der skalaren Multiplikation mit 0 und l bilden einen Vektorraum über dem Restklassenkörper mod 2. Im folgenden sollen stets 0 und l die beiden Restklassen mod 2 bedeuten. Man kann bei gegebener Numerierung der Kanten jedem spannenden Teilgraphen H von X ein m-tupel ( a t , . . ., a m ) über {0, 1} zuordnen, wobei m = |E(X) | ist. Und zwar setzt man 3j = l, wenn e, G E(H) ist, und as = 0, wenn Cj $ E(H) ist, für i = l , . . ., m. Addiert man diese m-tupel komponentenweise als m-tupel über den Restklassen mod 2, so entspricht die Summe zweier m-tupel gerade der Summe der zugeordneten spannenden Teilgraphen. Dabei ist nur zu beachten, daß 1 + 1 = 0 ist. Die den Teilgraphen entsprechenden m-tupel bilden bei dieser Addition eine Gruppe, und obige Zuordnung von m-tupeln und spannenden Teilgraphen ist ein Isomorphismus der beiden Gruppen. Dabei ist das m-tupel (0,..., 0) das Nullelement und jedes m-tupel ist zu sich selbst invers. Ferner definiert man eine Skalarmultiplikation mit 0, l, indem man komponentenweise multipliziert. Dadurch werden die m-tupel zu einem Vektorraum über dem Restklassenkörper mod 2 und dieser Vektorraum ist isomorph zum Vektorraum der Teilgraphen. Wir wollen einen wichtigen Teilraum des Vektorraums der Teilgraphen und seine Dimension bestimmen. Definition 1.8.1. Ein Quasikreis des Graphen X ist ein spannender Teilgraph X, in dem alle Knoten geraden Grad oder den Grad null besitzen. Man kann jeden Kreis C als Quasikreis auffassen, wenn man alle Knoten, die nicht auf C liegen, mitbetrachtet. Wir verwenden vorgreifend das Ergebnis von Satz 1.9.1, aus dem folgt, daß jeder Quasikreis eine kantendisjunkte Vereinigung von Kreisen aus X ist. Insbesondere ist der Graph H mit V(H) = 0 ein Quasikreis. Satz 1.8.2. Die Summe zweier Quasikreise ist wieder ein Quasikreis. Beweis: Der Grad eines Knotens in der Summe zweier Quasikreise ist die Summe seiner Grade in den beiden Quasikreisen, vermindert um die doppelte Anzahl derjenigen mit inzidenten Kanten, die in beiden Quasikreisen liegen. Also ist der Grad von in der Summe wieder gerade oder null. Da auch das Produkt eines Quasikreises mit 0 oder l wieder ein Quasikreis ist, ergibt sich Satz 1.8.3. Die Quasikreise bilden einen Teilvektorraum des Vektorraumes der spannenden Teilgraphen eines Graphen X. Wir wollen noch die Dimension des Raumes der Quasikreise ermitteln. Satz 1.8.4. Ist X zusammenhängend und H ein spannender Baum von X, so bilden die Kreise des Fundamentalsystems zu H eine Basis des Vektorraumes der Quasikreise. B e w e i s : Wir zeigen zuerst, daß die Kreise Cj, i = l, . . ., v(X) aus dem Fundamentalsystem linear unabhängig sind. Es entstehe C[ durch

1.9. Eulersche und Hamiltonsche Linien

29

Hinzufügen der Sehne fj zum Baum H. Dann enthält Cj die Kante f it aber keiner der Kreise C J 5 j ^ i enthält fj. Somit ist kein C, als Linearkombination der übrigen Cj darstellbar, und die Cj sind linear unabhängig. Wir müssen noch zeigen, daß jeder Quasikreis C eine Linearkombination der Q ist. Für E(C) = 0, also C = H 0 ist das klar. Es enthalte C ohne Beschränkung der Allgemeinheit genau die Sehnen f\, f 2 , . . ., f s , s< v(X) zum Baum H, d. h. alle übrigen Kanten von C liegen in H. zu den Sehnen Dann sei C = Summe der Kreise f,, f2,_. . ., f s . Wir bilden die Summe C ® C. Da fj, i = 1, . . ., s in C undJT auftritt, liegen diese fj nicht in C r ^ C , also ist jede Kante von C © C eine Kante von H. Da C © C ein Quasikreis ist, muß E(C © C) = 0 sein^denn H besitzt keinen Kreis. Also ist C ® C = H 0 und C = C = GI ® . . . ® C s . Damit ist der Satz bewiesen. Folgerung 1.8.1. Die Dimension des Vektorraumes der Quasikreise eines zusammenhängenden Graphen X ist die zyklomatische Zahl v(X). Wendet man Satz 1.8.4 auf jede Komponente eines unzusammenhängenden Graphen X an, so sieht man, daß Folgerung 1.8.1 auch f ü r u n z u sammenhängende Graphen richtig ist. Speziell folgt aus Satz 1.8.4, daß jeder Kreis von X die Summe gewisser Kreise eines Fundamentalsystems ist. Diese Tatsache wird bei der Beschreibung elektrischer Schaltungen durch die Kirchhoffschen Gesetze dadurch ausgenützt, daß man nur Kreise eines Fundamentalsystems betrachtet. Ferner bietet Satz 1.8.4 die Möglichkeit, ausgehend von einem Fundamentalsystem alle Kreise eines Graphen zu ermitteln. Eine effektive Methode dafür wird in Gibbs [72] beschrieben. Zur Bestimmung eines Fundamentalsystems kann eine Vereinfachung von Algorithmus 5.3.2 verwendet werden. Dort werden gleichzeitig mit der Konstruktion eines spannenden Baumes die Fundamentalkreise zu diesem Baum ermittelt.

1.9. Eulersche und Hamiltonsche Linien Bei der Behandlung Eulcrscher Linien kann X auch Mchrfachkanten enthalten. Euler hat im Jahre 1736 das sogenannte Königsberger Brückenproblem gelöst, in Königsberg bilden einige Brücken über den Pregel-Fluß folgendes Schema.

y//////////////,

~

/////////////,

v/////////////, Fig. 1.9.1

30

1. Grundlagen der Graphentheorie

Diese Situation kann durch einen Graphen mit Mehrfachkanten, Fig. 1.9.2, beschrieben werden.

Das Problem bestand darin, ob man von einem Punkt (Ufer oder Insel) ausgehend zum Ausgangspunkt so zurückkehren kann, daß man jede Brücke genau einmal benützt. Die negative Antwort gibt Satz l .9.1. Definition 1.9.1. Gibt es in einem Graphen X einen geschlossenen Kantenzug Z, der jede Kante aus E(X) genau einmal enthält, so heißt X ein Eulerscher Graph und Z eine Eulersehe Linie in X. Satz 1.9.1. Ist X ein zusammenhängender Graph, so sind folgende Aussagen äquivalent: (i) X ist ein Eulerscher Graph. (ii) Jeder Knoten von X hat geraden Grad. (iii) Es ist E(X) - E(C t ) U E (C2) U ... U E(Cr), wobei die C, Kreise in X mit (0;) E(Cj) = 0 sind. Man sagt X ist die kantendisjunkte Vereinigung von Kreisen. Beweis: Wir zeigen (i) => (ii) => (iii) =* (i). (i) =>· (ii) Es sei Z eine Eulersche Linie in X. Durchläuft man Z, so gibt es zu jeder Kante, die zu einem Knoten führt, eine Kante auf der man wieder verläßt. Daher ist d(x) gleich der doppelten Anzahl des Auftretens von in Z. (ii) => (iii) Es sei (ii) erfüllt. Dann gibt es in X sicher einen Kreis Cj. Jede Komponente des Graphen X - [E(Ci)J, die kein isolierter Knoten ist, erfüllt wieder (ii). In jeder dieser Komponenten wählt man wieder einen Kreis. Alle diese Kreise und C j sind paarweise kantendisjunkt. Das Verfahren wird wiederholt bis nur isolierte Knoten übrig bleiben. Dies muß einmal der Fall sein, denn in jedem Schritt erfüllt jede Komponente entweder (ii) oder sie ist ein isolierter Knoten. Die erhaltenen Kreise leisten das Gewünschte. ( )=*·( ) Es sei Cj einer der Kreise, die nach Bedingung (iii) existieren. Ist X = C l 5 so ist man fertig. Andererseits muß es wegen des

1.9. Eulersche und Hamiltonsche Linien

31

Zusammenhanges von X einen Kreis Q geben, der mit Cl einen Knoten gemeinsam hat. Durchläuft man von aus zuerst Cl und dann Cj, so erhält man wegen E(Cj) E(Cj) = 0 einen geschlossenen Kantenzug. Dieses Verfahren setzt man fort, bis alle C}, i = l , . . ., r verwendet wurden und erhält so einen geschlossenen Kantenzug, der jede Kante von X enthält. Folgerung 1.9.1. Ist X zusammenhängend und hat X genau 2s Knoten ungeraden Grades, so ist X die kantendisjunkte Vereinigung von s Kantenzügen, von denen jeder zwei Knoten ungeraden Grades verbindet. Beweis: Wir konstruieren aus X einen Graphen X', indem wir die 2s Knoten ungeraden Grades in s Paare aufteilen und die Knoten jedes Paares durch eine neue Kante verbinden. Jeder Knoten von X' hat geraden Grad und somit ist X' ein Eulerscher Graph. Ist Z eine Eulersche Linie in X', so ergeben ihre Abschnitte in X, die durch Streichen der Kanten von E(X') - E(X) entstehen, die gewünschten Kantenzüge. Beispiel 1.9.1. Das Problem des Chinesischen Briefträgers. Man betrachtet einen Graphen X, in dem jeder Kante e eine bestimmte nichtnegative Zahl g(e) als ihre Länge zugeordnet ist. Ist Z eine geschlossene Kantenfolge, so ist ihre Länge die Summe der Längen ihrer Kanten, wobei die Länge jeder Kante e so oft genommen wird, wie e in Z auftritt. Man sucht eine geschlossene Kantenfolge, die jede Kante mindestens einmal enthält und die kJeinstmögliche Länge besitzt. Man vergleiche Kwan [86] und Edmonds [61 ]. Ist X Eulersch, so ist die Lösung durch eine Eulersche Linie gegeben. Algorithmus 1.9.1. Konstruktion einer Eulerschen Linie in einem Eulerschen Graphen X. (1) Man wählt einen beliebigen Knoten und durchläuft von ausgehend so lange wie möglich einen Kantenzug. Hat man keine noch nicht durchlaufene Kante mehr zur Verfügung, so befindet man sich notwendig wieder beim Knoten und man hat einen geschlossenen Kantenzug Z konstruiert. (2) Ist E(Z) = E(X), so gehe man nach (6). Andernfalls ist jede Komponente Xj mit |V(Xj)| > l von X-[E(Z)] ein Eulerscher Graph und hat mit V(Z) einen Knoten Xj gemeinsam. (3) Man konstruiert in X4 mit x 4 als Ausgangsknoten so wie unter (1) einen geschlossenen Kantenzug Zj. (4) Man durchläuft folgenden Kantenzug Z0: Man beginnt in auf Z und geht auf Z bis zum ersten x{, durchläuft Z,, dann weiter auf Z bis zum nächsten Xj, wieder Zj und so fort, bis man alle Z; durchlaufen hat und wieder nach zurückgekehrt ist.

32

l. Grundlagen der Graphentheorie

(5) Man setzte Z = Z0 und gehe nach (2). (6) Z ist Eulersche Linie. Im Unterschied zu den Eulerschen Graphen hat man bis heute noch kein Kriterium gefunden, das die Graphen charakterisiert, die eine Hamiltonsche Linie besitzen. Definition 1.9.2. Gibt es in einem Graphen X einen Kreis C, der jeden Knoten aus V(X) genau einmal trifft, so heißt C Hamiltonsche Linie in X. Es ist C also ein spannender Kreis von X. Der Graph X heißt dann Hamiltonscher Graph. Beispiel 1.9.2. Im Graphen X der Fig. 1.9.3 bilden die Knoten (l, 2, 3, 4, 5, 6, 7, 1) und (l, 2, 3, 7, 5, 4, 6, 1) in dieser Reihenfolge je eine Hamiltonsche Linie. Dagegen besitzt der Graph keine Hamiltonsche Linie.

Fig. 1.9.3 Beispiel 1.9.3. Das Problem des Handlungsreisenden (Traveling Salesman Problem). Es ist jeder Kante e des Graphen X eine Länge g(e)^0 zugeordnet. Gesucht ist eine Hamiltonsche Linie minimaler Länge, wobei die Länge eines Kreises die Summe der Längen seiner Kanten ist. Anschaulich läßt sich dieses Problem so interpretieren: ein Vertreter will von einer Stadt aus gewisse n Städte besuchen und zwar jede genau einmal und will nach zurückkehren, wobei die zurückgelegte Gesamtstrecke minimal sein soll. Auch für dieses Problem gibt es keinen allgemein anwendbaren Algorithmus. Allerdings gibt es Methoden, die bis zu einer gewissen Knotenzahl verwendbar sind. Meistens steigt die Rechenzeit mit wachsender Knotenzahl in einem unvertretbaren Maße an. Wir verweisen hier auf die äußerst reichhaltige Literatur [32,48, 49, 56, 87, 88J. Wir geben ohne Beweis einige hinreichende Bedingungen für die Existenz einer Hamiltonschen Linie an, die aber alle nicht notwendig sind. Satz 1.9.2. (0. Ore [33]) Ist X zusammenhängend und gibt es in X einen Weg W größtmöglicher Länge k > 2 derart, daß d(x0) + d(xk)

1.10. Färbungen, Paare Graphen

33

^k + l ist für den ersten Knoten x 0 und den letzten Knoten Xj< von W, so besitzt X eine Hamiltonsche Linie. Folgerung 1.9.2. Es sei X zusammenhängend und |V(X)| > 3. Ist für je zwei nicht adjazente Knoten x, y aus V(X) stets d(x) + d ( y ) > |V(X)|, so ist X ein Hamiltonscher Graph. Folgerung 1.9.3. (Dirac [58]). Ist im zusammenhängenden Graphen X mit |V(X)|>3 für alle Knoten G V(X) stets d(x) > 1/2 |V(X)|, so ist X ein Hamiltonscher Graph. Eine weitere allgemeine Bedingung dafür, daß X Hamiltonsch ist, stammt von A. Posa [99]. Vgl. dazu Harary [15].

1.10. Färbungen, Paare Graphen Unter einer zulässigen Färbung eines Graphen X versteht man anschaulich, daß jedem Knoten von X eine Farbe so zugewiesen ist. daß je zwei adjazente Knoten verschiedene Farben erhalten. Formal kann man folgende Definition geben. Definition 1.10.1. Eine Färbung eines Graphen X mit m Farben ist eine Abbildung f von V(X) auf die Menge { 1 , 2 \\\\. Eine Färl bung f heißt zulässig, wenn für alle i gilt, daß E(f~ (i)) = ® ist. Das heißt: f'^i) spannt einen Teilgraphen auf, in dem keine zwei Knoten durch eine Kante verbunden sind. Beispiel 1.10.1. Der Graph X in Fig. 1.10.1 wird mit 3 Farben zulässig gefärbt, wenn man den Knoten l und 5 die Zahl l , den Knoten 3. 6 die Zahl 2 und den Knoten 2. 4, 7 die Zahl 3 zuordnet.

Jeder Graph kann mit |V(X)| Farben zulässig gefärbt werden. Definition 1.10.2. Das kleinste natürliche m, xu dem es eine zulässige Färbung von X mit m Farben gibt, heißt die chromatische /.ahl \ ( X ) . Beispiel 1.10.2. Der Graph in Fig. 1.10.1 hat ( ) = 3. Ist X ein vollständiger Graph auf n Knoten, so ist ( ) = n. Besonderes Interesse besteht für Färbungen ebener Graphen, was wir im nächsten Kapitel kür/. behandeln werden. t.·!·. ( i r i i p h c i i t l i e o r i i ·

34

1. Grundlagen der Graphentheorie

Definition 1.10.3. Ein Graph X heißt paar oder bichromatisch, wenn X(X) = 2 ist. Aus Definition 1.10.3 folgt, daß sich die Knotenmenge V(X) eines paaren Graphen X darstellen läßt als V(X) = Vj U V2 mit Vj V2 = 0, so daß jede Kante aus E(X) einen Knoten aus V^ mit einem Knoten aus V2 verbindet. Umgekehrt ist jeder Graph mit einer solchen Zerlegung seiner Knotenmenge ein paarer Graph. Eine Zerlegung dieser Art von V(X) ist nicht eindeutig bestimmt, denn man kann in jeder Komponente K die Durchschnitte Vl n V(K) und V2 V(K) vertauschen. Geht man von einer festen Zerlegung aus, so schreibt man X = (Vi, V2; E(X)) für einen paaren Graphen X. In Fig. 1.10.2 ist X ein paarer Graph.

Fig. 1.10.2

Eine weitere Charakterisierung paarer Graphen gibt Satz 1.10.1. Ein Graph ist paar genau dann, wenn er keine Kreise ungerader Länge enthält. Beweis: Es sei X = (V!,V 2 ;E) ein paarer Graph. Ist C ein Kreis in X, so müssen auf C abwechselnd Knoten aus V\ und V2 aufeinanderfolgen, und C muß daher eine gerade Knotenzahl und damit Kantenzahl besitzen. Gibt es also in X einen Kreis, so ist dieser von gerader Länge. Umgekehrt gebe es in X keinen Kreis ungerader Länge. Das heißt es gibt überhaupt keinen Kreis in X oder nur Kreise gerader Länge. Wir können X als zusammenhängend annehmen, denn für unzusammenhängendes X wird der Beweis für jede Komponente geführt. Wir wählen einen Knoten x 0 in V(X) beliebig und setzen Vl = {x|d(x, x 0 ) = 0 oder gerade j>, V2 = {x|d(x, x 0 ) ist ungerade >. Dann ist Vj U V2 = V(X) und Vj V2 = 0. Wir zeigen, daß keine Knoten aus V{ durch eine Kante verbunden sein können. Angenommen es wäre [x, y] E E(X) für x, y G Vj. Es sei Wj ein kürzester Weg von x 0 nach x und W2 ein kürzester Weg von x 0 nach y. Die Längen von Wj und W2 sind beide gerade. Es sei z der letzte Knoten auf W!, der auch auf W2 liegt. Es kann / = x 0 sein. Dann ist das Stück auf Wj von x 0 nach z ein kürzester Weg von x 0 nach z. Da auch W2 kürzester Weg sein soll, kann man das Stück auf W2 von x 0 nach z in W2 durch das Stück auf W, von x 0 nach / erset-

I.I 1. Ebene Graphen

35

zen, wenn diese Wegstücke nicht ohnedies übereinstimmen, denn es haben beide Wegstücke notwendig die gleiche Länge. Ist d(x0, z) gerade, so sind die Wegstücke auf Wt bzw. W2 von z nach bzw. y gerade und bilden mit der Kante [x, y] einen ungeraden Kreis. Derselbe Widerspruch ergibt sich, wenn d(x0, z) ungerade ist. Eine entsprechende Überlegung zeigt, daß auch keine zwei Knoten aus V2 durch eine Kante verbunden sein können. Damit ist der Satz bewiesen. Weitere Eigenschaften paarer Graphen werden im Kapitel 7 im Zusammenhang mit der Matching-Theorie behandelt.

l. 1 1 . Ebene Graphen Definition 1 . 1 1 . 1 . Ein Graph X heißt plättbar, wenn es einen geometrischen Graphen Y in R 2 gibt, der zu X isomorph ist. Anders ausgedrückt (vgl. Beispiel 1.4.2) heißt X plättbar, wenn X eine geometrische Realisierung im R 2 besitzt. Ein geometrischer Graph im R heißt ein ebener Graph. Es ist zwischen plattbaren und ebenen Graphen zu unterscheiden. Jeder plättbare Graph ist isomorph zu einem ebenen Graphen. Bei diesen Definitionen kann man Mehrfachkanten und Schlingen zulassen, da sie ohne Einfluß darauf sind, ob ein Graph plättbar ist oder nicht. Einen plattbaren Graphen X kann man so in der Ebene zeichnen, daß keine zwei Kanten einander schneiden außer in ihren Endpunkten. Beispiel 1.11.1. Der Graph X j in Fig. 1.11.1 ist ein plättbarer Graph, denn der geometrische Graph X 2 ist zu X j isomorph.

X

'

Fig. l . l l . l

Jeder plättbare Graph kann so auf einer Kugel gezeichnet werden, daß keine zwei Kanten einander schneiden ausgenommen höchstens in ihren Endknoten, Umgekehrt ist jeder Graph, der sich so auf einer Kugel zeichnen läßt ein plättbarer Graph. Diesen Zusammenhang beweist man leicht mit Hilfe einer geeignet gewählten stenographischen Projektion. Den folgenden Satz führen wir ohne Beweis an. Satz 1 . 1 1 . 1 . (Fary [64]) Jeder plättbare schlichte Graph besitzt eine geometrische Realisierung in der Ebene, wo jede Kante eine Strecke ist.

36

I . Grundlagen d e r Graphentheorie

Mit anderen Worten: Man kann jeden plättbaren schlichten Graphen mit geradlinigen Kanten in der Ebene zeichnen. Beispiel 1.11.2. Der Graph X j aus Beispiel 1.11.1 kann wie folgt gezeichnet werden:

Fig. 1.11.2

Definition 1.11.2. Jeder ebene Graph X zerlegt die Ebene in zusammenhängende Gebiete, von denen genau eines nicht beschränkt ist. Diese Gebiete der Ebene nennt man die Gebiete des ebenen Graphen X. das unbeschränkte Gebiet heißt das äußere Gebiet von X. Beispiel 1.11.3. Im Graphen X schließen die Kantenmengen [1. 2, 3 , 4 ] . sowie 1 3 , 5 , 6 ] und [ 5 , 7 , 8 . 9 , 1 0 , 1 1 ] die endlichen Gebiete von X ein. Außerhalb des Kreises mit den Kanten [ 1 . 2 , 7 . 8 , 9, 10, 11, 6, 4] liegt das äußere Gebiet von X.

9

X

Hg. 1.11.3

Ausgehend von einer Zeichnung Z eines plättbaren Graphen X auf einer Kugel (hier sind alle Gebiete endlich) sieht man, daß das äußere Gebiet eines ebenen Graphen von der Wahl des Poles der stereographischen Projektion auf die Ebene abhängt. Auch die Darstellung auf der Kugel ist im allgemeinen nicht eindeutig. Dies ist jedoch der Fall, wenn X 3-fach zusammenhängend ist, man vgl. Whitney [ 1 1 7 ] . Satz 1.11.2. In einem ebenen Graphen X bilden diejenigen Kreise, die den Rändern der endlichen Gebiete von X entsprechen, eine Basis für den Raum der Quasikreise.

1 . 1 1 . Ebene ( i r a p h c n

37

Beweis: Es sei X ein ebener Graph. Die Kreise, die die endlichen Gebiete umgeben, sind linear unabhängig. Denn die Summe von Rändern endlicher Gebiete ist die disjunkte Vereinigung von Kreisen, die alle diese Gebiete in ihrem Inneren enthalten. Somit kann kein Rand eines endlichen Gebietes als Summe anderer Ränder dargestellt werden. Da jeder Quasikreis die Summe von Kreisen ist, genügt es zu zeigen, daß jeder Kreis von X eine Summe von Rändern von Gebieten von X ist. Es sei C ein beliebiger Kreis von X und C , , C 2 C s die Ränder aller Gebiete von X. die innerhalb von C liegen. Ist e eine Kante eines der Cj, so liegt e auch auf C oder auf noch genau einem der Kreise Cj. Bildet man daher die Summe der Cj, so fallen alle Kanten weg ausgenommen die K a n t e n von C Also ist C = C, e C 2 *- : -. . . ^ C s . Folgerung 1.11.1. Ein zusammenhängender ebener Graph mit n Knoten und m Kanten besitzt m - n + l endliche Gebiete. Beweis: Da die Ränder der endlichen Gebiete eine Basis des Raumes der Quasikreise bilden, ist die Anzahl der endlichen Gebiete gleich der zyklomatischen Zahl v von X. Da X zusammenhängend ist. ist v - m - n + l nach Definition. Bezeichnet g die Anzahl der Gebiete von X einschließlich dem äußeren Gebiet, so erhält man Folgerung 1.11.2. Für jeden zusammenhängenden ebenen Graphen gilt die ..Eulersche Polyederformer'·. n - m+g=2 Beispiel 1.11.4. Wir verwenden Folgerung 1 . 1 1 . 2 . um zu zeigen, daß die Graphen X und der F'ig. 1.11.4 nicht p l ä t t b a r sind. Üblicherweise wird X mit K 3 3 und mit bezeichnet ( , sind die Kuratowski-(Jraphen).

l-'itr. 1.11.4 Im Graphen X ist n = 6, m = 9. daher müßte g = 2 - d + t) = 5 SLMII. In einer geometrischen Realisierung von X im R : müßte jedes Gebiet von mindestens vier Kanten begrenzt sein, weil jeder Kreis in X mitide-

38

l. Grundlagen der Graphentheorie

stens vier Knoten enthält; andererseits liegt jede Kante von X auf dem Rand von höchstens zwei Gebieten und daher ist 4g ^ 2m. Das ergibt den Widerspruch 20^ 18. Im Graphen ist n = 5 und m =10. Wie oben erhält man 3g·^ 2m, weil jeder Kreis mindestens drei Kanten enthält. Setzt man m ^ -^g in die Eulersche Formel ein, so erhält man 3n - 6 ^-m, woraus sich sofort ein Widerspruch ergibt. Beispiel 1.11.5. Behauptung: In einem plättbaren schlichten Graphen X gibt es mindestens einen Knoten mit d(x)4§ 5. Wäre d(x)^6 für alle G V(X), so wäre 6 n ^ 2 m , also wäre m ^ 3 n . Da in einem schlichten Graphen jeder Kreis mindestens die Länge 3 hat, erhält man wie im Beispiel 1.11.4 die Ungleichung 3n - 6 ^-rn. Setzt man m ^ 3n ein, so ergibt sich ein Widerspruch. Die beiden Graphen X und aus Beispiel 1.11.4 dienen zur Charakterisierung plättbarer Graphen. Man sagt, ein Graph X2 = (V 2 , E 2 ) entsteht aus X j = ( V l 5 E j ) durch Unterteilung der Kante [ x , y ] e E , , wenn V2 = Vt U { X l , .. . , x k j . X i $ V i , i = l k und E2 = (E, - [x, y]) U {[ , , ], [ X l , x 2 ], . . .. [x k , y]}. Ferner heißt X 2 eine Unterteilung von X i , wenn X2 aus X] durch Unterteilung gewisser Kanten von Xi entsteht. In Fig. 1.11.5 ist der Graph X2 eine Unterteilung von X,. die durch Einfügen der Knoten l, 2, 3, 4 entstand.

Fig. 1.11.5

Es ist klar, daß ein Graph plättbar ist genau dann, wenn alle seine Unterteilungen plättbar sind. Enthält ein Graph X einen Teilgraphen, der eine Unterteilung eines nicht plättbaren Graphen ist. so ist X nicht plättbar. Ohne Beweis führen wir an: Satz 1.11.3. (Kuratowski [85]) Ein Graph ist plattbar genau dann, wenn er keine Unterteilung von K 3 i 3 oder K s als Teilgraph enthält. Neben diesem Kriterium von Kuratowski gibt es Charakterisierungen plättbarer Graphen von Mac Lane [89] und H. Whitney [115]. Alle diese Kriterien sind rein theoretischer Natur und nicht geeignet zur praktischen Prüfung, ob ein Graph plättbar ist oder nicht. Eine wirklich befriedigende

1.12. Grundbegriffe für gerichtete Graphen

39

Methode zur Entscheidung dieser Frage auf dem Computer wurde noch nicht gefunden. Wir erwähnen hier einige Algorithmen, deren Programmierung jedoch aufwendig erscheint. Eine Methode stammt von L. Weinberg [114], die auch in B. Harris [18] beschrieben wird. Ebenfalls in B. Harris [18] wird der Algorithmus von Fisher und Wing [65] beschrieben. Ganz andere Wege beschreitet U. Klemm in seinen beiden Arbeiten [78, 79]. Der geeignetste Weg dürfte die Modifikation des Algorithmus von Fisher und Wing durch B. Harris [18] sein. Im Zusammenhang mit ebenen Graphen steht auch das bekannteste und bis heute trotz umfangreicher Versuche ungelöste „Vier-Farben-Problem". Es geht dabei um die Frage, ob vier Farben ausreichen, um die Gebiete jedes ebenen Graphen so zu färben, daß zwei Gebiete, deren Ränder eine Kante gemeinsam haben, verschiedene Farben erhalten. Die Behandlung der damit zusammenhängenden Ergebnisse und Probleme liegt außerhalb der Absicht unseres Buches, und wir verweisen auf die ausführliche Behandlung in 0. Ore 134]. Für daslsomorphieproblem, das ist die Frage, ob zwei Graphen isomorph sind, gibt es eine Lösung für 3-fach zusammenhängende ebene Graphen, die zur Programmierung gut geeignet ist. Man siehe L. Weinberg [113].

1.12. Grundbegriffe für gerichtete Graphen In vielen praktischen Anwendungen der Graphentheorie muß man den Kanten eine Richtung zuweisen, weil die Relation /.wischen den Objekten, die durch den Graphen dargestellt wird, nicht symmetrisch ist. Objekten, die durch den Graphen dargestellt wird, nicht symmetrisch ist. Definition 1.12.1. Ein gerichteter Graph X ist eine Menge V = V(X) zusammen mit einer Menge E = E(X) von geordneten Paaren (x. y) verschiedener Elemente aus V. Es sind die entsprechenden Bezeichnungen üblich, wie sie nach Definition 1.1.1 eingeführt wurden. Für einige Begriffe der Graphentheorie ist die Richtung einer Kante ohne Bedeutung. Dies gilt etwa für: geometrischer Graph, plättbarer Graph, Färbungen. Andererseits unterscheidet sich die Theorie der gerichteten Graphen in vielen Punkten wesentlich von den ungerichteten Graphen. „Gerichteter Graph" werden wir stets durch „g. Graph" abkürzen. Wie bei Definition 1.1.1 erklärt die obige Definition eigentlich den schlichten g. Graphen. In vielen Fällen werden auch Schlingen, das sind Kanten (x, x), und Mehrfachkanten zugelassen. Dabei spricht man von einer Mehrfachkante, wenn eine Kante (x, y) in K(X) mehrfach auftritt. In diesem Falle ist E(X) keine Menge. Wenn nichts Anderes vorausgesetzt wird, betrachten wir zunächst nur schlichte g. Graphen.

40

1. Grundlagen der Graphentheorie

Beispiel 1.12.1. Betrachtet man ein Straßennetz mit Einbahnen, so kann dieses durch einen g. Graphen dargestellt werden. Dabei wird eine Straße, die keine Einbahn ist, durch die beiden Kanten (x, y> und symbolisiert. Solche Kanten nennt man entgegengesetzt parallel. Beispiel 1.12.2. In einer Gruppe von Menschen wird die Beziehung „Sympathie" untersucht. Man erhält einen g. Graphen, wenn jedem Mitglied der Gruppe ein Knoten zugeordnet wird und die Kante (x, y> in E(X) liegt, wenn x dem y sympathisch ist. Beispiel 1.12.3. Ist M eine Menge, so ist eine Relation R auf M eine Teilmenge des kartesischen Produktes M x M. Somit kann jede Relation auf M durch einen g. Graphen X mit V(X) = M und E(X) = {&> y)l(x, y) €= R} dargestellt werden, und umgekehrt erklärt jeder g. Graph X ohne Mehrfachkanten eine Relation auf V(X). Jedem g. Graphen X wird ein Graph X u zugeordnet durch V(X U ) = V(X) und E(X U )= { [ x , y l l < x , y > oder (y, x> ist in E(X)>. Man zeichnet g. Graphen, indem man die Richtung einer Kante durch einen Pfeil andeutet, der von x nach y weist. In Fig. 1.12.1 ist X u der zu X gehörige Graph.

Xu l;ig. 1.12.1

Ein g. Graph heißt symmetrisch, wenn mit (x, y) stets auch (y, x) in E(X) liegt. Die Klasse der symmetrischen g. Graphen entspricht der Klasse der Graphen, und oft werden die beiden Kanten und (y, x) durch die Kante [x, y] ersetzt, die gleichsam keiner Richtung den Vorzug gibt. Definition 1.12.2. Mit d + (x) wird die Anzahl der Kanten e = (x, y> e E(X) bezeichnet, mit d~(x) die Anzahl der Kanten e = 0 und (x, z) eine Kante von X, so erhält man einen Kreis, wenn z auf W liegt, oder einen g. Weg mit größerer Länge als W, wenn z nicht auf W liegt. Beides führt zu einem Widerspruch. Also ist d + (x) = 0. Ebenso erhält man d"(y) = 0, wobei y der erste Knoten von W ist. Algorithmus 1.14.1, Entscheidung, ob ein g. Graph azyklisch ist (vgl. C. Berge — A. Ghouila — Houri [5]). Man wendet solange wie möglich den folgenden Markierungsprozeß an: (i) Man markiere jeden Knoten x mit d + (x) = 0. (ii) Man markiere jeden Knoten x, für den alle Knoten y mit ( x , y ) G E ( X ) bereits markiert sind. Kann man auf diese Weise alle Knoten von V(X) markieren, so ist X azyklisch. Andernfalls gibt es in X einen g. Kreis. In a/yklisclicn g. Graphen kann man eine Basis besonders leicht bestimmen, wie der folgende Satz zeigt. Satz 1.14.3. Jeder azyklische g. Graph X besitzt genau eine Basis B. und zwar ist B = {x|d~(x) = 0 ^ . B e w e i s : Es sei B = 0 und es existiert ein y t mit fy], y> G E(X). Ist y, G B. so ist y von y, 6 B erreichbar. Wenn nicht, so ist d~(y,) > 0. und man kann den Schluß wiederholen. Nach endlich vielen Schritten muß man /u einem y n kommen mit yn 6 B, so daß dann y„ -* y gilt. Denn in der Folge der Knoten yi kann kein Knoten mehrmals a u f t r e t e n , weil es sonst in X einen g. Kreis geben würde. Wir bemerken, daß in der Basis B aus Satz 1.14.3 auch alle isolierten Knoten, d. h. Knoten mit d ( x ) = ü. liegen. Nach Folgerung 1.13.4 ist die Reduktion X r eines g. Graphen X ein azyklischcr Graph und wir können auf X r den Satz 1.14.3 anwenden.

1.15. Sat/ von Menger, K a n t e n b a s e n

45

Damit hat man ein Verfahren zur Bestimmung einer Basis in einem beliebigen g. Graphen X. Man bildet X r und bestimmt die Basis B r in X r . Dann wählt man in jeder starken Komponente K ä von X mit Kj E Br beliebig einen Knoten. Die Gesamtheit der so gewählten Knoten bildet eine Basis von X. Daraus ergibt sich, daß alle Basen eines g. Graphen dieselbe Anzahl von Knoten enthalten. Beispiel 1.14.1. Faßt man einen g. Graphen als ein Kommunikationsnetz auf, so entspricht eine Basis B einer minimalen Menge von Punkten, denen eine Information zugeführt werden muß, damit alle Punkte diese Information erhalten können. Beispiel 1.14.2. Im g. Graphen X der Fig. 1.14.1 bilden die Knoten l und 9 eine Basis

Fig. 1.14.1

1.15..Satz von Menger. Kantenbasen Wie bei ungerichteten Graphen kann man auch bei g. Graphen den Einfluß untersuchen, den das Wegnehmen von Knoten bzw. Kanten auf den Zusammenhang des Graphen hat. Allerdings werden diesbezügliche Untersuchungen dadurch kompliziert, daß es bei g. Graphen mehrere Arten des Zusammenhanges gibt. Alle Resultate bezüglich des Zusammenhanges von Graphen können analog fürxlcn schwachen Zusammenhang von g. Graphen formuliert werden, indem man X durch X11 ersetzt. Jedoch hat es auch Sinn. Knoten bzw. Knotenmcngen zu studieren, deren Wegnahme den starken Zusammenhang in einem g. Graphen stört. Solche Knoten müssen keineswegs im zugehörigen Graphen X u eine Artikulation bilden. Ferner kann es in einem nicht stark zusammenhängenden g. Graphen Knoten geben, durch deren Wegnahme ein stark zusammenhangender g. Graph entsteht. Wir werden hier nur ohne Beweis den Satz von Menger für g. Graphen anführen und verweisen für eine ausführliche Darstellung auf Harary. Norman und Cartwright [ 1 7 ] . Es seien und y zwei Knoten des g. Graphen X. Die VerbinduHgszahl oj(xTy) ist definiert als die maximale Anzahl von g. Wegen in X. die mit y verbinden und paarweise außer und y keinen Knoten

46

l. Grundlagen der Graphentheorie

gemeinsam haben. Mit ( , y) bezeichnen wir die maximale Anzahl von g. Wegen von nach y, die paarweise keine Karte gemeinsam haben. Ist (x, y>$ E(X), so bezeichne r(xty) die minimale Anzahl von Knoten, nach deren Wegnahme es keinen g. Weg von nach y gibt. Anders ausgedrückt ist r(xty) die minimale Anzahl von Knoten in einer Teilmenge TCV(X), so daß jeder g. Weg von nach y einen Knoten von T enthält. Entsprechend ist r (xf y) erklärt als die minimale Anzahl von Kanten, nach deren Wegnahme es keinen g. Weg von nach y gibt. Bei diesen Definitionen und im Satz 1.15.1 sind auch Mehrfachkanten zugelassen. Satz 1.15.1. (Satz von Menger für g. Graphen) Sind und y zwei Knoten mit (x, y>$E(X), so gilt r(xTy) = co(xty) Für je zwei Knoten x, y 6 V(X) gilt r(xTy) = Öj(xTy) Die zweite Aussage 7(xty) = ( , y) ist äquivalent mit dem Satz von Ford und Fulkerson (s. Kapitel 6) und man kann die beiden Sätze auseinander herleiten (s. etwa C. Berge [4]). Für einen Beweis von Satz 1.15.1 verweisen wir wieder auf die Arbeit von Dirac [59]. Definition 1.15.1. Eine Kante e = G E(X) heißt Basiskante, wenn e der einzige g. Weg von x nach y in X ist. Beispiel 1.15.1. Im Graphen der Fig. 1.15.1 sind etwa die Kanten mit den Nummern l und 2 Basiskanten.

Fig. 1.15.1

Dabei ist l zusätzlich noch eine Brücke, wenn man eine Kante (x, y) eine Brücke in X nennt, wenn [x, y] in X u eine Brücke ist. Definition 1.15.2. Eine Kantenmenge B C E(X) heißt eine Kantenbasis in X, wenn die Bedingungen (i) und (ii) erfüllt sind. (i) Gilt für x, y G V ( X ) x ^ y , so gilt x->y auch im g. Graphen Y = (V(X), B) (ii) Für jede Teilmenge B'C B ist (i) nicht mehr erfüllt. Satz 1.15.2. Jeder g. Graph hat eine Kantenbasis. Beweis: In jedem g. Graphen gibt es eine Kantenmenge, etwa E(X), die die erste Bedingung für eine Kantenbasis erfüllt. Daher gibt es eine minimale solche Menge, d. h. eine Menge die auch (ii) erfüllt.

1.16. Turniere

47

Ein einfacher Weg, eine Kantenbasis zu erhalten, besteht darin, nacheinander solche Kanten d-(x)},

Aus

R= {x | x 6 V(X), d+(x) = d'(x)> d+(x) = d"(x) erhält man xeV(X)

xGV(X)

[d+(x) - d-(x)J = [< ( )- + ( )1 xes XST Satz 1.17.2. Bezeichnet k den gemeinsamen Wert der beiden Seiten in (*)

k

der Gleichung (*), so ist E(X) = U E(Wj), wo die Wä k paarweise kani=l

tendisjunkte g. Kantenzüge sind, von denen jeder einen Knoten aus S mit einem Knoten aus T verbindet. Das Problem des Chinesischen Briefträgers läßt sich entsprechend für g. Graphen formulieren. Auch der Begriff der Hamilronschen Linie überträgt sich auf g. Graphen und damit das Problem des Handlungsreisenden, wobei jeder Kante noch zusätzlich eine positive Länge zugeordnet wird. Dieses Problem wird unter anderem behandelt in Dantzig, Fulkerson und Johnson [56] und Gonzales [73]. A. Ghouila-Houri [71 ] bewies den folgenden Satz: Ist für alle G VfX) stets d + (x) + d~(x)> |V(X)|, so besitzt X eine g. Hamiltonsche Linie. Abschließend ein Ergebnis von Camion 1 5 1 ]: Ein Turnier X besitzt genau dann eine g. Hamiltonsche Linie, wenn X stark zusammenhängend ist.

1.18. Arboreszenzen Ist X ein Baum und x 0 G V(X) beliebig, so erhält man eine Arboreszenz A oder einen Wurzelbaum mit der Wurzel x 0 , wenn man jede Kante [x. yj durch die g. Kante 3I'£(OUT»102) REO( if RtAO! INilODANF I E N D = ANF GOT012 CALL E X I T FORMATI ' E I N G A B E DER UNOTENANZAHL ».t FOKMAT 1 3 ' ) FORMAT ( 1 3 ) F O R M A T ( ' S O L L E N A L L E » ODER NJ9 E I N B E S T I M M T E R K N O T E N B E A R B E I T E T W E R 1 D E N ' » / · ' G E B E N S I E 0 OOLR D I E S U V M E R D E S K N O T E N E I N t·· F O R M A T 1 3 1 ) FORMAT(26I3)

F C R * A T < I H » / / / » 2 ΐ χ » * χ » ' A U S G A S T - S P U N K T K N O T E N1 ' » i 3 » / i i x i

F C R M A T I 1 H , 2 0 X t ' I ' » 6 X » ' I ' ·"*· ' I E R R E I C H T I ) FORMAT ( l u » 2 C X » ' I Κ\ΟΤΞ.Ν ". νίΜν^,ν j JEB^R i1) R E M A T C H » 2 C X . ' : ' . I 6 » 2 X · ' I ' · I 4 » 3 X t ' i ' »l 7 | 3 X . ' I ' ) cQ-'-MATt ".OLL_N S I E AU^-i-'f-^^iN ··· E I N G A B E = l1 » / » ' E I N E N ANDEREN KN 1 C T F · U . N ' t P S U C f E ' s ··· L l N G A B E l = Σ ' » / » " · ' I T N t U E N D A T E N W E I T E R R E C H N E N 2 . .. E l i - G A S E = 3 1 )

^c^vi* ι : i >

FC^'AT ( ' < \ C T L \ i , ' - ' - _ t p i G E B E N ··· F C R ^ A T 1 3 ' )

4.3. Der Algorithmus nach Warshall

C

C C C l

75

SUBROUTINE PERKR (GAMMAiDELTAiN ) I N T E G E R GAMMA ( 100 ) » D E L T A C O O ) COMMON M ( 100 1 100) I X » 32767 AEL'SSERE SCHLEIFE FUER B E R E I T S GEFUNDENE KNOTEN 20 2 I » l i N ISUV

r

0

A9 C RAGE 06 K N O T E N I IN GAMMA UND WENN JA U E B E R P R U E F E N OB NOCH KANTEN NACH AUSSERHALB VON GAMMA FUEHREN I F < G A * W A < I > > 2*2,1 I N N E R E S C H L E I F E SUCHT ANSCHLUSSKNOTEN

C

DC 3 J = I t N I F ( v i i i J ) ) 8,3,4IFICAWMAIJIJ θ,5»8 E R R E C H N E N DER W E G G R O E S S E IV = v < I , J ) + D E L T A I I ) SJCHE.N :-ER K L E I N E R E N GROESSE IFIIX-IV) 3,3,7 IX - IV iv . l JM - J GO TO 3 I S U M - ISUM * l A B F R A G E OB A L L E K A N T E N VON I N A C H GAMMA F U E H R E N ODER l E I N E N D K N O T E N IST W E N N J A i·· D E R E N T S P R E C H E N D E W E R T GAMV.A W I R D N E G A T I V I F ( I S ' J * - M 3,9 ι 9 G A i·"·1 A I I ) = - G A W M A H ) C NTK.UE CON T I r, JE AHF7AGE OB E I N E K L E I N E R E GROESSE GEFUNDEN WURDE 1^1 I X - 3 2 7 6 7 1 1 0 i l l . l l DET G E F J N D F N t " K N U T E N £ R H A E L T D E N K u E R Z E S T E N

10

DELTAlJV) = IX

C

ΑυΡί.·ΕΝΟ«··Ν«ΕΝ U N D E R H A t L T D I E

11

RETJRN ΕΓΟ

1 C 5 C 7

8 C C C 9 3 2 C

c t

C

zu i*-v P U E H R E N D E N W E R T Z U G E W I E S E N

DER XACTEN W I R D I N D I E MENGE DFR U N T E R S U C H T E N K N O T E N ZAHL JENES KNOTEN

„ E B E R D E N D I E K L E I N S T E GR ESSE Z U I H M F U i . H R T

Die im Schritt (iv) auszuf hrende ODER-Verkn pfung kann wegen wik G {0, l > numerisch etwa durch W(I. K) = ( l + W(I. K) + W(J. K))/2 programmtechnisch gel st werden, falls die ODER-Verkn pfung in der verwendeten Programmiersprache nicht implementiert ist und W ein Integer Feld ist. Programm zu Algorithmus 4.3.1. C

SUBROUTINE W E G M l G i W t N I WEGMATRIX W W I R D AUFGESTELLT

C C C C

W ( I » K ) » 1 GENAU DANN WENN WEG VON I 5CNST W ( I » K ) « 0 G IST A J A Z E N Z M A T R I X '! < . N O T E N A N Z A H L

NACH K E X I S T I E R T

INTEGER G150,50) » W ( 5 0 » 5 C ) DC1 I « 1 » N

D01 J » 1 , N

1 w j :t J i « G < i , j ) DC2 J - l i N CC2 : « 1 , N iriw!I«JJ)3»2i3 3 DO^t K- 1 » N

v : ( i » K i - ( w i ι ,κ i + n / i j , K ) - t - l ) / 2 C

-NUMERISCHE BEHANDLUNG DER ODER-VERKNUEPFUNG FUER 2 CONTINUE RETURN ESC

INTEGERS

76

4. Kürzeste Wege in einem Graphen

Wir verzichten auf einen Beweis des Algorithmus 4.3.1 (s. etwa Berztiss [6]), diskutieren jedoch Schritt (iv), um die verwendete Methode verständlich zu machen. Bei festem i und j wird durch (iv) die Größe Wy = l nicht mehr verändert, denn ist k = j, so erhält w ik = w ä j wegen der ODER-Verknüpfung unabhängig von Wj k wieder den Wert l. Nehmen wir also an, daß wy = l schon bestimmt ist und somit aussagt, daß ein Weg Wj von Xj nach Xj existiert. Damit existiert ein Weg W3 von x 4 nach x k genau dann, wenn w jk = l ist, oder wenn ein Weg W2 von Xj nach x k existiert, wobei im letzteren Fall W3 gebildet wird als W 3 Q. wi u W 2- Dieser Feststellung wird aber genau die ODER-Verknüpfung aus Schritt (iv) gerecht. Der Algorithmus von Warshall zur Bestimmung kürzester Wege ist im wesentlichen eine Verallgemeinerung von Algorithmus 4.3,1. unter Beachtung der Kantenlängen g((Xj. Xj>). Sei G = < j g i k ^ die bewertete Adjazenzmatrix des g. Graphen X gemäß 3.4., wobei < X j , x k > $ F ( X ) durch g j k = °° dargestellt ist. Zu Beginn des Algorithmus sei die Matrix M = {m ik } wie folgt definiert: m i k = k wenn g ik °° m i k - 0 wenn g ik - °° Aus den Anfangswerten der m i k laßt sich herleiten, daß der Knoten x k über Xj erreichbar ist. Nach Beendigung des Algorithmus enthält m i k = t den Index jenes Knoten, der unmittelbar auf einem kürzesten Weg W von X j nach x k auf Xj folgt. W = $ E(X) extern verwendet wurde.

4.4. Netzpläne Bewertete azyklische Graphen sind ein wichtiges Hilfsmittel zur Darstellung von zeitlichen Abläufen in Projekten. Ein solches Projekt kann z. B. die Planung und Errichtung eines Stahlwerkes sein. In diesem Zusammenhang tauchen Fragen hinsichtlich der frühest möglichen Fertigstellung auf, welche Tätigkeiten von der Beendigung anderer abhängen und zu welchem Zeitpunkt bestimmte Arbeiten begonnen werden müssen, so daß keine Terminverschiebung hinsichtlich der Beendigung des Gesamtprojektes eintritt. Die Netzplantechnik gehört zu den wichtigsten Anwendungen der Graphentheorie, und ihrer Bedeutung entsprechend sind eine Reihe von Softwarepaketen entwickelt worden. Die bekanntesten unter diesen sind CPM (Critical Path Method), PERT (Programm Evaluation and Review Technique). Der interessierte Leser sei zum genaueren Studium der Netzplantechnik auf [8, 10, 13,41, 129] und auf die einzelnen von den Herstellern gelieferten Softwarebeschreibungen verwiesen. Die einzelnen Tätigkeiten werden im Graphen X = (V(X), E(X)) durch die Kanten (x, y>€ E(X) dargestellt, wobei die Bewertung g((x, y>) die zur Beendigung einer Tätigkeit erforderliche Zeit angibt. Sind (x, y> und zwei Kanten in X, so bedeutet dies, daß die der Kante entsprechende Tätigkeit beendet wurde. Die Knoten x e V(X) stellen die Ereignisse im Projekt dar. Die Forderung, daß X = (V(X), E(X)) keine Zyklen enthalten darf, ergibt sich von selbst, denn sonst würde der paradoxe Fall eintreten, daß eine Tätigkeit erst dann begonnen werden darf, wenn sie schon beendet ist. Definition 4.4.1. Ein längster Weg vom Ausgangsereignis X j bis zum Endereignis x n heißt kritischer Weg. Ausgangsereignis und Endereignis entsprechen der Quelle bzw. Senke in einem allgemeinen Transportnetz (Kapitel 6). Die Länge des kritischen Weges ist die kürzeste Zeit, in der das gesamte Projekt ausgeführt werden kann. Da der Graph X azyklisch ist, bietet die Bestimmung der kritischen Wege keine Schwierigkeit, es können im Prinzip die in den vorangegangenen Paragraphen beschriebenen Methoden zur Berechnung kürzester Wege verwendet werden. Man hat nur statt nach dem Minimum jeweils nach dem Maximum zu suchen. Definition 4.4.2. Eine Tätigkeit heißt eine kritische Tätigkeit, wenn sie in einem oder in mehreren kritischen Wegen enthalten ist.

5. l . Minimalgerüste

79

Die oben genannten Methoden wie CPM, PERT oder Modifikationen davon sind hinsichtlich der Projektplanung noch weiter verfeinert, indem zusätzliche quantitative Gröikn wie der Aufwand an Arbeitskräften und an Geld bei der Planung berücksichtigt werden können. So werden bei PERT für jede Tätigkeit drei Zeitschätzungen,,,optimistisch", „wahrscheinlich" und „pessimistisch", durchgeführt und berücksichtigt.

5. Spannende Bäume und Minimalgerüste 5.1. Minimalgerüste In diesem Paragraphen behandeln wir spannende Bäume, die neben direkten praktischen Anwendungsmöglichkeiten eine bedeutsame Rolle in der algorithmischen Seite der Graphentheorie spielen. In 5.1 werden auch Mehrfachkanten zugelassen. Wir wiederholen zunächst die Definition (s. auch 1.6). Definition 5.1.1. Ist X = (V(X), E ( X ) ) ein zusammenhängender Graph und T ein Teilgraph von X, dann heißt der Graph T = (V(T). E ( T ) ) ein spannender Baum oder Gerüst von X. wenn V(T) = V ( X ) und T ein Baum ist. Beispiel 5.1.1. In Fig. 5.1.1 sind T , . T 2 spannende Bäume des Graphen X.

Es bleibe dem Leser überlassen, noch andere Gerüste zum obigen Graphen aus Fig. 5.1.1 /.u finden. NachSatz 1.6.1 ist ein spannender Teilgraph T eines zusammenhängenden Graphen X genau dann ein spannender Baum von X. wenn folgende zwei Bedingungen erfüllt sind: (i) T e n t h ä l t keinen Kreis. ( i i ) fügt man zu T eine Kante e C ^ ( ) - E ( T ) } > h i n / u , so enthält T einen Kreis.

80

5. Spannende Bäume und Minimalgerüste

Für ein Gerüst T wird auch oft die Bezeichnung Skeleton verwendet. Die Bedeutung der spannenden Bäume liegt insbesondere darin, daß auf dem programmtechnischen Sektor mit ihrer Hilfe oft ein Überprüfen aller kombinatorischen Möglichkeiten für ein bestimmtes Problem vermieden werden kann. Ein Beispiel dazu bietet das angegebene Programm zur Bestimmung der Blöcke und Artikulationen eines Graphen (s. 5.3). Wir wenden uns zunächst dem Problem des minimalen Gerüstes zu und setzen dazu voraus, daß der zusammenhängende Graph X bewertet ist, d. h., daß jeder seiner Kanten e eine Zahl g(e) zugeordnet ist. Man kann g(e) auffassen als die Länge von e oder als Kosten für die „Konstruktion" der Kante e. Definition 5.1.2. Ist X - (V(X), E(X)) ein Graph und ist jeder seiner Kanten e e E(X) eine reelle ZahJ g(e) zugeordnet, d. h. ist X ein bewerteter Graph, so heißt T = (V(T), E(T)) ein Minimalgerüst von X. wenn (i) T ein Gerüst von X und (ii) g(e) = Minimum ist. c-=K(T)

Minimalgerüste haben einen wichtigen Anwendungsbereich. Interpretiert man die Knoten von X als Relaisstation eines Kommunikationsnetzes, etwa eines Telefonnetzes, und die Kanten e e E(X) als mögliche Leitungen, die zwei Knoten miteinander verbinden, und sind g(e) die Kosten zur Errichtung einer solchen Verbindung, so liefert ein Minimalgerüst jenes Leitungsnet/,, das einerseits kostenminimal ist und andererseits die Kommunikation zwischen zwei beliebigen Relaisstationen gewährleistet Satz 5.1.1. Ist X = (V(X), E(X)) ein vollständiger Graph und sind die den Kanten e E E(X) zugeordneten Zahlen g(e) paarweise verschieden, dann hat das Problem des Minimalgerüstes eine eindeutige Lösung. Beweis: Das gesuchte Gerüst T = (V(T). E(T)) erhält man folgendermaßen: (i) Man nehme für e, die .,kürzeste Kante", d. h. gie,) F O R M A T ( / / / i IX t ' K O M P O N E N T E N 1 t / / l F O R M A T ! / / I X i " G R A P H IST Z U S A f M E N H A E N G E N D ' ) F O R ^ A T t IX 1 1 2 » '-Tf » t 2 X « 3 C I 3 » / t l X i 2 C l 3 ) F O ^ v A T ' . l X i ' K A N T E I ·, 2 * » M , ? » 1 ) ' l r CRVAT[3I3) END

maßen vorgegangen wird: In jedem Schritt betrachten wir den Graphen, der von den gewählten Kanten auf V(X) erzeugt wird. Zu Beginn des Algorithmus ist noch keine Kante ausgewählt, und daher zerfällt dieser Graph in N Komponenten K^ = , N = |V(X)|. DasHilfsfeld A(I) wird als Verzeichnis der Komponenten verwendet, die im jeweiligen Schritt vorliegen. Jede dieser Komponenten ist ein Baum, dessen Knoten im Feld A durch gleiche Markierung gekennzeichnet werden. Daher ist der Anfangswert für A gegeben durch (A(I) = 1. 1 = l, 2, . . ., N). Der allgemeine Schritt besteht darin, daß die Knoten jeder jeweils vorliegenden Komponente mit derselben Marke versehen werden. Aus der Formulierung des Algorithmus ist klar, daß bei jeder Anwendung von (ii) genau zwei der zu diesem Zeitpunkt vorhandenen Komponenten durch die neu hinzugefügte Kante zu einer Komponente verbunden werden. Eine noch nicht ausgewählte Kante e = [xj, Xj] bildet genau dann einen Kreis mit bereits gewählten Kanten, wenn Xj und Xj in derselben Komponente liegen, d. h. nach Konstruktion von A genau dann, wenn A(I) = A(J) gilt. Ist A(I) A(J), so bildet e keinen Kreis mit den schon ausgewählten Kanten und e kann nach P transferiert werden. Dabei werden zwei Komponenten KI und K2 zu einer einzigen verschmolzen, und man muß alle Xj aus diesen beiden Komponenten mit der gleichen Marke versehen. Ist AJ die Marke auf K I , d. h. für alle A(L) mit X L ^ K , ist A(L) = AJ und entsprechend AI die Marke auf K 2 , so setzt man alle A(L) mit A(L) = AJ gleich AI. Ist der Graph X zusammenhängend, so enthält die Matrix P nach Ausführung des Programmes jene Kanten, die zum ermittelten minimalen Gerüst von X gehören und es ist A(1) = A(I) für 1 = 2,3, . . . , N. Wendet man den Algorithmus auf einen unzusammenhängenden Graphen an, so wird für jede Komponente ein Gerüst bestimmt. Die Anzahl

84

5. Spannende Bäume und Minimalgerüste

der Komponenten von X kann man durch Bestimmen der verschiedenen Werte A(J) im Hilfsfeld A erhalten und die Knoten mit der gleichen Marke bilden je eine Komponente. Ist X nicht bewertet bzw. hat man alle G(I, 1) = l gesetzt, so liefert das Programm einen spannenden Baum bzw. einen spannenden Wald. Wir halten ausdrücklich fest: Wendet man den Algorithmus zusammen mit dem Feld A an, so ist X genau dann zusammenhängend, wenn beim Abbrechen des Algorithmus alle A(J) denselben Wert haben. Andernfalls bilden jeweils die Knoten eine Komponente von X, die denselben Wert A(J) erhalten haben. Das vorliegende Programm wurde auf einem Rechner mit der Wortlänge von 16 Bits getestet, woraus auch der Befehl MIN = 32767 resultiert. Zunächst werden die Knotenanzahl N und eine Steuervariable NH gelesen. Ist N H ^ O , so handelt es sich um einen unbewerteten Graphen und man kann sich das Sortieren der Kanten sparen. N < 0 liefert einen Monitorausgang durch den Aufruf der Systemroutine EXIT. Die Anzahl der Kanten, ITER wird durch Zählen beim Einlesen berechnet, wobei die Leseschleife durch ein G(K, 1) < 0 verlassen wird. Ein weiterer Algorithmus zur Bestimmung eines Minimalgerüstes wurde von Sollin [38, 1081 gegeben. Diese Methode bewährt sich vor allem, wenn das gesuchte minimale Gerüst mit der Hand bestimmt werden soll. Wir setzen für die Bewertungen der Kanten des zusammenhängenden Graphen X = (V(X), E(X)) wieder voraus, daß sie paarweise voneinander verschieden sind. Jede Kante ist daher eindeutig durch ihre Bewertung g(e) identifizierbar. Unter den mit Xj adjazenten Knoten \j gibt es dann stets einen solchen Knoten, für den die Kante [x i? Xj| die kleinste Bewertung hat. Dieses Xj bezeichnen wir als den nächsten Nachbarn von Xj. Dann lautet der Algorithmus folgendermaßen. Algorithmus 5.1.2. (Sollin [ 108J): Bestimmung eines Minimalgerüstes. (i) Setze U = 0. i - l und X t = X. (ii) Verbinde jeden Knoten aus V(Xj) mit seinem nächsten Nachbarn y in Xj. der laut Voraussetzung eindeutig bestimmt ist und fuge zu U die Bewertungen g(e) dieser Kanten e = [ x , y | hinzu. Es sei Ej die Menge der dabei verwendeten Kanten von Xj und YJ = ( V ( X j ) , Ej). ( i i i ) Es sei X i + 1 jener Graph, der dadurch entsteht, dai.s jede der durch die Ausführung von (ii) entstandenen Komponenten von YJ zu einem einzigen Knoten zusammengezogen wird. Zwei dieser Knoten werden genau dann durch eine Kante e verbunden, wenn es in Xj eine Kante zwischen den entsprechenden Komponenten von YJ gibt. Die Bewertung von e sei das Minimum der Bewertungen aller Kanten, die

5.1. Minimalgerüste

85

die beiden Komponenten in X{ verbinden. Offensichtlich genügt Xi4 j ebenfalls den Annahmen über Xj. (iv) Ergibt dieses „Verdichten" der Komponenten nur einen einzigen Knoten, so gehe man nach (v), andernfalls setze i = i + l und beginne wieder bei Schritt (ii). (v) U enthält die Bewertungen jener Kanten von X, die das Minimalgerüst bilden. Beweis: T sei der Teilgraph von X, der durch den Algorithmus bestimmt wird. Bei jeder Ausführung von Schritt (ii) besitzt jeder Knoten von Xj einen eindeutig bestimmten Nachbarn. Daher ist T zusammenhängend und V(X) = V(T), weil kein Knoten isoliert bleiben kann. Es sei S das Minimalgerüst von X. Dann muß S alle Kanten enthalten, die bei der ersten Anwendung von Schritt (ii) ausgewählt werden. Denn liegt eine dieser Kanten, etwa e , = [ x , y] nicht in E(S), so hat die Kante e 2 £ E(S), die mit inzident ist, eine größere Bewertung als e t . Da e [ . e 2 auf einem Kreis liegen, erhält man durch Ersetzen von e 2 durch e, ein Gerüst mit kleinerer Gesamtbewertung als S. Widerspruch! Wir nehmen an, daß alle Kanten von X, die bis einschließlich der i-ten Durchführung von Schritt (ii) ausgewählt werden, in S liegen. Von diesen Kanten wird ein Graph Zj auf V(X) bestimmt, dessen Komponenten K'j KJ.J seien. Der Graph X j + , entsteht aus Zj durch Zusammenziehen der Kj, j = l s s , wenn man nur die jeweils kürzeste Kante zwischen zwei der Komponenten als Kante beibehält. Diese Kante muß aber in S liegen, wenn es überhaupt eine Kante in S zwischen diesen beiden Komponenten gibt. Daraus ist ersichtlich, daß auch im nächsten Schritt ( i i ) nur Kanten aus S ausgewählt werden. Also muß E(T) £ E(S) gelten, und da T zusammenhängend ist. folgt E(T) = E(S). also T = S. Beispiel 5.1.2.

U = ^1.2.9) U = {1.2.9VU1 Fm. 5.1.2

Minimalgerüst

Von Kruskul |82] stammt auch noch das folgende Verfahren /.ur Konstruktion eines .Minimalgerüstes. Es seien wieder die Bewertungen der Kanten paarweise verschieden. Man streiche aus E ( X ) die längste K a n t e , nach

86

5. Spannende Bäume und Minimalgerüste

deren Wegnahme X zusammenhängend bleibt. Mit dem erhaltenen Graphen Xi verfahre man wieder so usw. bis keine Kante mehr gestrichen werden kann. Ist dies der Fall, so bilden die verbleibenden Kanten das Minimalgerüst. Der Nachweis dieser Behauptung wird dem Leser überlassen. Weitere Algorithmen wurden von Prim [100] (vgl. [38]) und Rosenstäehl [104] angegeben.

5.2. Bestimmung aller spannenden Bäume Im vorhergehenden Paragraphen wurden Methoden angeführt, die der Bestimmung eines spannenden Baumes in einem Graphen X dienen. In vielen Fällen ist es jedoch notwendig bzw. vorteilhaft alle spannenden Bäume zu kennen. Dafür werden verschiedene Algorithmen angegeben [52; 91; 93]. Wir beschränken uns auf den kurzen und leicht anzugebenden Algorithmus von M. Piekarski [98], Wir gehen aus von einer Inzidenzmatrix B des zusammenhängenden Graphen X mit n Knoten und m Kanten. Jede Zeile von B entspricht einem Knoten, jede Spalte einer Kante. Eine Zeile von B kann als Vektor im Raum der m-tupel aus 0 und l aufgefaßt werden und ist als solcher die Summe von Basisvektoren mit nur einem 1. Ordnet man die der i-ten Zeile entsprechenden Basisvektoren in Matrixform an (jeder Basisvektor bildet eine Zeile), so erhält man n Matrizen D;. Die Matrix Dj hat dabei d(xj) Zeilen. Wir betrachten die Matrizen D 1; . . ., Ds, s > 2 und alle Auswahlen von je einer Zeile aus jeder dieser Matrizen Dj (es gibt d(xj) · d(x 2 ) [ · · · · · ] d(x s ) solche Auswahlen). Für jede dieser Auswahlen bilden wir die Summe mod 2 der gewählten Vektoren, d. h. unter Beachtung der Vorschrift 1 + 1 = 0 , und bilden mit den erhaltenen Vektoren als Zeilen eine Matrix I!s. Aus II S erhält man nun eine reduzierte Matrix ^, indem man folgende Operationen durchführt: (i) (ii)

Man streicht aus Tls alle Zeilen, die weniger als s Einser enthalten. Man streicht alle Zeilen, die in gerader Anzahl in FIS auftreten.

Die Berechnung von \\[, s ^ 2 läßt sich stark vereinfachen. Dazu brauchen wir eine Bezeichnung. Sind D und D' zwei Matrizen mit gleich viel Spalten, deren Elemente nur 0 oder l sind, so ist D D eine Matrix, deren Zeilen alle möglichen Summen mod 2 von je einer Zeile von D und einer Zeile von D' sind. Dann gilt: II r s = {. .. [ ( D 1 X D 2 ) r X D 3 ] r X . . . X D s > r Man .,multipliziert" also Ol mit D 2 , reduziert I12, „multipliziert" = Hlj mit D 3 und so fort.

5.2, Bestimmung aller spannenden Bäume

87

Bildet man auf diese Weise die Matrix u^.j und faßt man jeden Zeilenvektor als den Teilgraphen von X auf, der genau die Kanten enthält, für die in dieser Zeile ein Einser steht, so gilt Satz 5.2.1. Die Zeilenvektoren von IIJ,.·, repräsentieren alle spannenden Bäume von X, und jeder spannende Baum tritt genau einmal als Zeilenvektor auf. Für die — einfache — Begründung dieses Verfahrens verweisen wir auf die Originalarbeit. Der wesentliche Schritt besteht darin zu zeigen, daß jede Zeile in £, s ==^2, die einem nicht kreislosen Teilgraphen entspricht, in gerader Anzahl auftritt. Die Programmierung des Algorithmus ist einfach durchzuführen. Bei „größeren" Graphen wird man allerdings wegen der auftretenden großen Matrizen oft einen externen Speicher verwenden müssen. Da die Programmierung externer Einheiten jedoch nicht genormt ist, verzichten wir auf die Angabe eines Programmes. Beispiel 5.2.1. Wir wenden das Verfahren auf den Graphen X der Fig. 5.2.1 an (D4 wird nicht benötigt). 2

B(X) = Fig. 5.2.1

D, =

D, =

0 0

0 0 0

0 0 0

0 1 0

0 0 0

l 10 \0

D2 =

0

0

0

0

1 0

0 1

0 0

0 0

0 0 l 0 0 0\ 0 0 0 0 1 0 ] . 0 0 0 0 0 l/

Um Platz zu sparen, werden schrieben.

"2 =

0 0 l/

/l /l 0 0 0 \0

l 0 1 0 0 0

l 0 0 1 0 0

0 0 1 0 0 1 1 1 0 0 0 0

^ und 11^ in transponierter Form ange1 0 0 0 0 l

0 0 l 0 0 l

0

\

0 0 ly

e2 e4

0 OJ

5. Spannende Bäume und Minimalgerüste

"i-

1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 1 0 1 l

0 1 1 0 0 l

0 1 0 0

0 0 1 0

l

Aus Ilß erhält man insgesamt 16 = 42 spannende Bäume im Einklang mit dem Satz von Cayley ( l .6).

5.3. Ein Algorithmus zur Bestimmung von Blöcken und Artikulationen Dieser von K. Paton [97] angegebene und äußerst effiziente Algorithmus ist ein eindrucksvolles Beispiel für die Anwendung von spannenden Bäumen. Es sei X ein zusammenhängender Graph und VfX) = { 1 , 2 . . . . . n}. Der Algorithmus geht davon aus, daß zwei Kanten genau dann in demselben Block B mit |B|^3 liegen, wenn in X ein Kreis existiert, der beide Kanten enthält. Zur Bestimmung solcher Kreise wird ausgehend von einer beliebig gewählten Wur/el r systematisch ein spannender Baum T konstruiert. T wird derart gespeichert, daß zu jedem Knoten i G V ( T ) sein eindeutig bestimmter Vorgänger p ( i ) auf dem Weg von r nach i angegeben wird. Gleichzeitig wird zu i auch die Entfernung d(i) von i zur Wurzel r berechnet. Bei jedem Rechenschritt wird die Knotenmenge von T als U U dargestellt. In sind die schon ..überprüften" Knoten enthalten und in U jene Knoten von T, die bezüglich der Existenz von Kreisen noch näher untersucht werden müssen. Dabei werden die Knoten in U gestapelt und immer das zuletzt hinzugekommene Element als erstes wieder entnommen. Die Menge R der noch nicht in T aufgenommenen Knoten von X ergibt sich als R = V - - U, wenn V für V(X) steht. Weiter wird im Algorithmus noch ein Boolesches n-Tupcl A. n = |V(X)|. verwendet, mit Hilfe dessen ein Markierungsprozeß gesteuert wird, der auf den Kanten |i. p ( i ) | € E(T) durch die Marken b ( i ) ausgeführt werden muß. Bricht der Algorithmus ab. so gilt b(i) = b(j) genau dann, wenn die Kanten [i. p(i)| und ( j . p ( j ) | dem gleichen Block angehören. Da sowohl fi. p(i)| als auch [j,p(j)| K a n t e n des Baumes sind, wird jeder einzelne Block durch Kanten von T aufgespannt, wodurch die Blockzugehörigkeit der anderen nicht in T enthaltenen Kanten leicht angegeben werden kann. Hat man einmal die Blöcke von X bestimmt, so ergeben sich die Artikulationen gemäß der Folgerung 1.3.1 aus Kapitel l : es sind jene Knoten. die mit Kanton verschiedener Blöcke inzidieren. Nach diesen Erläuterungen können wir den Algorithmus wie folgt formulieren.

5.3. Algorithmus zu Bestimmung von Blöcken

89

Algorithmus 5.3.1. (Paton [97]). Bestimmung von Blöcken und Artikulationen. SO:

Sei r G V beliebig gewählt und R = V - {r>.

Sl:

Setze b(i) = 0 für alle i und A(j) = FALSE für alle j. Weiter sei d(r) = 0,Y = 0 und U = {r}.

S2:

Ist U = 0 so gehe nach S6. Ist U 0, etwa U = (i,, i 2 , . . ., v>, so lösche das letzte zu U hinzugekommene Element v in U.

S3:

Das eben in U gelöschte Element v wird nun untersucht. S3A: Setze die Variable L = 0 als Anfangswert. L wird als Wert die Länge des längsten im Schritt S3 festgestellten Kreises vermindert um zwei erhalten. S3B: Gibt es Kanten [v, z] mit z E. R, so füge jede dieser Kanten zum Baum T hinzu. Transferiere alle diese z von R nach U. Definiere p(z) = v und d(z) = d(v) + l . Weiter setze b(z) = - z, um zu markieren, daß die Kante [z, p(z)] schon zum Baum T gehört. S3C: Suche alle Kanten [v, z] mit z G U und [v. z] $ T. Für jede dieser Kanten existiert ein Kreis, der durch die Kanten [v, z], [z. p(z)| und den Weg Q der Länge d(v) - d(p(z)) in T von v nach p(z) gebildet wird. Andere b(z) von seinem früheren Wert q auf b(z) = v. Ist q > 0, so setze A(q) = TRUF.. In diesem Fall liegt [z,p(z)| nämlich bereits auf einem früher gefundenen Kreis. Untersuche, ob die Länge L + 2 des gefundenen Kreises größer ist als die Länge der bei früher betrachteten z gefundenen Kreise, d. h. man ersetzt L durch L = max (L, (d(v) - d(p(z)).

S4:

Ist L = 0, dann wurden keine Kreise im Schritt S3 festgestellt und man gehe nach S5. Andernfalls muß folgender Markierungswechsel ausgeführt werden: S4A: Da L>0 war, geht ein Kreis durch alle Kanten auf dem Weg der Länge L in Richtung zur Wurzel r. Für jede Kante [k, p(k)] dieses Weges ändere man b(k) auf v. War der alte Wert q von b(k) größer Null, so wird A(q) = TRUI: gesetzt. S4B: Für alle Kanten [t. p < i ) | in T mit A ( b ( t ) ) = TRUE wird nun die Marke b ( t j ;iuf b ( t ) = v geändert. Damit erhalten alle Kanten von I , die mit einem der in S3C gefundenen Kreise eine Kante gemeinsam haben, die Marke v. Wir vermerken, daß A(v) = FALSE ist nach Schritt S4B.

S5:

Füge v zu

hinzu und gehe nach S2.

5. Spannende Bäume und Minimalgerüste

90 S6:

Alle Kanten [i, p(i)] mit demselben Wert von b(i) legen einen Block fest. Verschiedenen Werten von b(i) entsprechen verschiedene Blöcke. Hat b(i) den Wert - i erhalten, so ist die Kante [i, p(i)] ein Block, also eine Brücke von X. Die Artikulationen können wie eingangs erläutert worden ist, bestimmt werden.

C C C

INTEGER G ( 5 3 » 5 C ) » U ( 5 1 > » A ( 5 0 ) » f t ( 5 0 ) « D I 5 0 ) i P ! 5 0 l » B ! 5 1 ) CO^CN G » ' w i A » R O » P » B i N t I O U T » I N G IST DIE B E W E R T E T E A D J A Z E N Z . M A T R I X J IST DIE v = NGE DER KNOTEN AUS T » S O F E R N E SIE N I C H T B I E D E R DARAUS ALS LETZTES ELEMENT GELOESCHT WORDEN SIND

C

N K N O T E N A N Z A H L VON G

C C

D D I S T A N Z V E K T C R DER K N O T E N B M A R K I E R U N G DER K A N T E N GE"A£SS A L G O R I T H M U S

C C C C C

\ BOOLE-SCHER VEKTOR T R U E · l » F A L S E - 0 !CUT U N D I N S I N D S T E U E R V A R I A B L E F U E R P E R I P H c R G E R A E T E =30GRAvy E R S T E L L T IN ENGSTER A N L E H N U N G AN DIE VERBALE BESCHREIBUNG DES ALGORITHMUS. ST£pl ANFANGSBEDINGUNGEN HERSTELLEN I\«2 IOUT-3

c

p ( j ) E.\THAELT DEN V O R G A E N G E R DES K N O T E N j B E I M AUFBAU VON

C

8

SUBROUTINE GIN CALL GIN

FUER DATEN I N P U T

D01I 1 » N 3j I

DU All 1 R !I R!l D022 U !I

22

3t:

L' i i

0 I 0

= :· C 1

SA^wjRZEw ftiLLKJcRLlCH K N O T E N 1 S'EP 2 A N F A N G IF!«11!) 9»6»9 N A C ^ 6 G E i - E w E N N ,· B E R E I T S L E E R I S * 9 N „ E = w i N'J ) J ! N „·) = C JU'ENGSTES E L E V E N " NUE IN U GELCESC.-T NU-NJ-1 2

STEP 3 A N F A N G

L-0 >. I S ' Z V < L E N L A E N G E ^ I N t S Z ^ E i C A L L S T P 3 3 ( NL-E » N u ! CALL S T P 3 C ! w » N « E » N ^ ! S'E= 4 A N F A N G I P ! - ) 2 · 2 12 12 CA^L S * = f c A ( L i N ^ E l C-C T 0 2 S ' E = 6 1 S * E = -> A N r A N G A U S * E R T w N G 2ER E R G E B N I S S E 6 C A u L 5" = 6"^ 3C " C ? END

5.3. Algorithmus zu Bestimmung von Bl cken

C C C

SUBROUTINE STP3B(,NUE»NU) INTEGER G < 5 0 i 5 0 ) » U ( 5 1 ) i A ( 5 0 ) » R < 5 0 ) » D ( 5 0 ) » P I 5 0 l t B < 5 1 ) COMMON G » U i A t R » D i P » B i N » Ι Ο υ Τ ι Ι Ν E L E M E N T E VON R A U F S U C H E N D01I-2iN IF(RII) )2»1(2 K N O T E N I L I E G T IN R ABFRAGE»OB KANTE ( N U E t I ) E X I S T I E R T 2 IFIGINUEiI))3ili3 3 NU-NU+1 U(NU)«I RIII-C Pf I )-NUE 0(1 )-D(NUE)+l B(I)«I l CONTINUE RETURN END

TINi STP3C(LtN'JE.»S ) lN-i3E:iG(50i5C)»Ul51)tA(5C)iRI5C)»Ol5CliP!50)iBt5XI - SOC-EN

VCS 2 |OA\\ -0

C

11

12 17 1Θ

CALL X I N I X i N ) NU»1 STEP I I I L»0 NUE»U(NU) U(NU)·0 NU-NU-1 STEP IV IF17tl4»17 9(IZ;»1 L L » D ( N U E ) - 0 ( IZl-t-l I c ( L - L L ) 1β»18»14 L»LL

STEP V 16 I F l L ) 5 » 6 f 5 D019I-ltL 19 mit EP und y £ P bilden daher eine trennende Kantenmenge für a und b. Kapazität a(P, P) des Schnittes (P. P) bezeichnet man die Summe a(P. P ) = ( , ) mit e P, y G P Es gilt nun der folgende Satz. Satz 6.2.1. Der Wer! jedes zulässigen Flusses im Transportnetz N ist höchstens gleich der Kapazität jedes Schnittes in N.

102

6, Fl sse in Transportnetzen

Beweis: Es sei φ ein zul ssiger Flu und (P, P) ein Schnitt in N. Ist a die Quelle von N, so gilt wegen d"(a) = 0 Σ v>(a, x) - Σ φ(γ, a) = Σ φ(Ά, χ) = Φ(Η) x^a y^=a x=£a

und f r alle Knoten z ^ a in P gilt nach Definition eines Flusses von a nach b:

Σφ(ζ, χ)Daraus ergibt sich durch Summation Φ (a) = Σ ( Σ φ(ζ, χ) - Σ φ(γ, ζ)) = Σ φ(ζ, χ) + ζ ist, und ä(e) = d(x) wenn e = , P,) + «(?!, , { s } ) - ä ( P . P ) = d ( P 1 - ^. , ) * + d(P, n Q ) = d ( P , ) - a ( P 1 . P 1 ) < 0 wobei die letzte Ungleichung aus der Voraussetzung des Satzes folgt. Nach dem^atz von Ford und Fulkerson gibt es daher einen zulässigen Fluß c auf N von r nach s mit dem Wert ä(V(N) - {s}, ) = d(Q). Somit ist jede Kante verbunden sind. Dann ist für a, b in H d + (x) = d (x) und ferner

d+(a) - d'(a) = k = k, - für

i=l kt k. Dann ist \- ein Fluß von a nach b mit dem Wert m = k j -k. Daher ist nach Satz 6.4.2 mit entsprechenden Flüssen O{ n l ~

=

·,χ^Κ(Ν)

eK(N)

(χ,ν>£Ε(Ν)

- [ Σ φ(ν, χ) + Σ a(y. χ)| = Σ /(χ, y) + Σ /(χ, s) &Ι·:(Ν)

FI-:(N)

ίχ,νΧ-Κ(Ν)

(x.s)^K(N')

- [ Σ φ'(γ, χ) + Σ y ^'(r, χ)] - Σ ν-'(χ. y) - Σ ^'(y. χ) = Φ'(χ) - 0. s=K(N)

C.-E(N'·)

(e)) ei:· K (N)

minimal sind. Es muß dabei gelten: a(e) < a(e) < J3(e) < b(e). Für die Behandlung dieses Problems verwiesen wir auf [5; 10; 19]. Das oben behandelte Problem ergibt sich, wenn die Funktionen f e die linearen Funktionen f e (x) = ( ). sind. Ein wichtiger Spezialfall des Transportproblems ist das Hitchcock-Problem [75: 67]. Hier betrachtet man Knoten X j , . . . , x r mitgegebener Produktion a(xj) und Knoten ylt. . .,y s mitgegebenem Bedarf b(yj). Ferner ist jeder Knoten xj mit gewissen Knoten yj durch eine Kante (x-t, yj) verbunden, die mit Schranken versehen sein kann und der eine Zahl 7ij (Kostenfunktion) zugeordnet ist. Gesucht sind Zahlen Z j j ^ - 0 (Transportmengen) für i = l . 2, . . ., r. j = l . 2, . . ., s, so daß gilt: Zij = a(Xj), Zjj = b(yj) und

^ 7jj ist minimal.

7. Matching Notwendig für die Lösbarkeit ist offenbar die Gleichung

117 a(xj) =

b(Xj).

Wir führen das Problem auf ein Flußproblem zurück, indem wir das vorliegende Transportnetz N erweitern zu N' durch: V(N') = V(N)U {c, d l r , c , d $ V ( N ) , und E(N') = E(N) U { | i = l , . . . r > U {< yj , d> | j = l

s}.

Man erklärt Kapazitäten für die Kanten, die nicht in E(N) sind, durch a(c, Xj) = a(xj) und a(yj, d) = b(yj). Die Kosten auf diesen Kanten werden mit 0 angenommen. Dann ist in N' ein Fluß von c nach d gesucht. der die Kanten (y-}. d) sättigt (also maximal ist) und minimale Gesamtkosten besitzt. In vielen Fällen werden den Kanten die Schranken , U A U ( ), P = V(N) - P. Dann ist . P) = i V , l - |Ai + ( )! = |V,| - 5(X. V,), weil in N keine Kante von A nach 2 - ( ) führt. Somi^bleibt zu zeigen, daß a(P, P)> |V,| - ( , V,) für jeden Schnitt (P, P) gilt. Sei (P, P) ein beliebiger Schnitt in N. der a und b trennt. Wir setzen A = P H V j und B = P n V 2 . Gibt es in N eine Kante von A nach V2 - B C P, so ist (P, P) = °°. Gibt es keine solche Kante, so ist (A) in B enthalten, und daher gilt a(P. P) = IV, - IAI + IB! ^ iV,! - |A| + | ( )| = = l V , ! - 6 i A ) ^ ! V 1 | - 6 ( X . V,). Nach dem Sät/ von I ; ord-Fulkerson gibt es einen maximalen ganzzahligen Fluß von a nach b in N mit dem Wert \VV - ß(X, Vj). Wie bei Satz 7.2 konstruiert man daraus ein maximales Matching in X mit i V } ' - ^ ( X , V,) Kanten.

7. Matching

Definiert man analog

(B) für B C V2 und

121

( , V2) = max ( ), so B c V2 ist die Anzahl der Kanten in einem maximalen Matching auch gegeben durch |V 2 |-6(X,V 2 ). Satz 7.3 enthält auch die Aussage von Satz 7.2, weü 6(X, Vj) - 0 gleichbedeutend mit | ( )|^| | für alle A C Vj ist. Die Sätze 7.2 und 7.3 beinhalten einen einfachen Algorithmus zur Bestimmung eines vollständigen bzw. maximalen Matching im paaren Graphen X. Man konstruiere wie angegeben das Transportnetz N und in N mit dem Algorithmus von Ford und Fulkerson einen maximalen ganzzahligen Fluß. Die Kanten von V, nach V2, in denen der Fluß den Wert l hat, bestimmen ein maximales Matching. Man kann auch mit Satz 7.1 zum Ziel gelangen, indem man zu einem bereits konstruierten Matching M einen erweiternden Weg sucht (Ungarische Methode). Dazu vergleiche man [62,83]. Wir behandeln noch den Zusammenhang, der bei paaren Graphen zwischen Matching, Träger und Stabilitätskoeffizienten besteht. Definition 7.2. Ein Träger T des Graphen X ist eine Teilmenge T C V(X) derart, daß jede Kante von X mit einem Knoten aus T inzidiert. Die minimale Anzahl von Knoten in einem Träger wird mit a 0 (X) bezeichnet und ein Träger mit a 0 (X) Knoten ist ein minimaler Träger. Lemma 7.1. Jeder minimale Träger eines paaren Graphen X = (V,, V2; E) ist von der Form A U ^ - A) mit A C V t . Beweis: Sei T ein minimaler Träger und A = T n V j . Dann enthält T sicher keinen Knoten aus ( ) - A(Vj - A), weil T minimal ist. Andererseits muß aber auf jeder Kante von Vj - A nach ( ] - A ) ein Knoten von T liegen, so daß T - A = ( , - A) ist. Satz 7.4. Für einen paaren Graphen X = (V],V 2 ;E) ist a 0 (X)=|V 1 |-6(X.V 1 ). Beweis: Wir verwenden folgende Gleichungskette |V,| - ( , V,) = IVjl - max {|A| - | ( )|> A c V, - min {|V,| - IAI + | ( ) > = min {|B| + | ( , - B)|>, A C V1 B c V, wo man die letzte Gleichung mit B = V t - A, A C Vb erhält. Da einerseits jede Menge B U A(Vj - B) ein Träger von X ist und andererseits nach Lemma 7.1 jeder minimale Träger von dieser Form ist, steht somit rechts a0(X). Satz 7.4 ergibt zusammen mit Sät/ 7.3 den Satz 7.5. (König [25]). In einem paaren Graphen ist die maximale Anzahl von Kanten in einem Matching gleich der minimalen Anzahl von Knoten in einem Träger.

122

8. Gerichtete Graphen und Programme

Der Stabilitätskoeffizient a(X) eines Graphen X wurde in 1.5 eingeführt als die maximale Anzahl von Knoten in einer innen stabilen Menge. Für paare Graphen läßt sich o(X) leicht berechnen. Lemma 7.2. Das Komplement eines (minimalen) Trägers ist eine (maximale) innen stabile Knotenmenge in X und umgekehrt. Beweis: Ist T ein Träger, so können in V(X) - T keine zwei Knoten durch eine Kante verbunden sein, also ist V(X) - T innen stabil. Ist S eine stabile Knotenmenge, so muß für jede Kante aus E(X) mindestens ein Endknoten in V(X) - S liegen und V(X) - S ist daher ein Träger. Satz 7.6. Für einen paaren Graphen X = (V,, V 2 ; E) gilt

a(X) - |V2| + ( , V,) = |V,| + ( , V2). Beweis: Es bezeichne T einen beliebigen Träger und S eine beliebige stabile Knotenmenge in X. Dann erhall man mit Lemma 7.2 und Satz 7.4 die Gleichungskette

a(X) = max |S| = max |V(X) - T| = max {|V,| + |V2| - |T|> = = IV,t + |V2| - min IT| = |V,| + |V2| - r wobei gilt (i) (ii) (in) (iv)

Xjj = l wenn der logische Programmablauf vom Befehl Sj nach Sj führt, Xjj = 0 sonst. Xjj = 0 für alle i genau dann, wenn Sj e E. Xjj = 0 für alle j genau dann, wenn S j E A .

Definition 8.2. Der durch die Adjazenzmatrix M definierte gerichtete Graph heißt Strukturgraph des Programmes P. Die Knoten des Strukturgraphen entsprechen demnach den exekutierbaren Befehlen Sj G S. Die Interpretation der Eigenschaften (iii) und (iv) liefert die Forderung, daß jedes Programm mindestens einen wohldefinierten Eingang und mindestens einen Ausgang haben muß. In den Beispielen werden wir uns auf |E| = l beschränken. Definition 8.3. Ein Programm P heißt zulässig, wenn zu jedem Knoten Sj ein gerichteter Weg s,, s 2 , . . ., s; im Strukturgraphen existiert, so daß Sj e E, und ein gerichteter Weg von s; nach einem sr E A vorhanden ist. Es sei weiter festgehalten, daß jede DO-Anweisung erstens in eine Folge von Befehlen aufgelöst wird, die den Wert der Laufvariablen steuern, und zweitens in eine IF-Abfrage, ob die Laufvariable das in der DO-Anweisung definierte Intervall schon verlassen hat. Somit nehmen wir ohne Beschränkung der Allgemeinheit an, daß sowohl DO-Anweisungen als auch das CONTINUE nicht Elemente von S sind. Ein Unterprogrammaufruf werde wie eine einfache arithmetische Anweisung gehandhabt.

Beispiel 8.2. D01J=1,5 IF(A(J))2.1.2 l CONTINUISTOP 2A(J)=A(J)+1

J=l 3IF(A(J))2.1,2 1J=J+1 IF(J-5)3.3.4 4 STOP 2A(J)=A(J)+1

8. Gerichtete Graphen und Programme Beispiel 8.3. DIMENSION M(4,4) DO8I=1,4 D03J=1,4 3 M(I,J)=0 8 M(I,1)=1 STOP

125

DIMENSION M(4,4)

l 1=1 2J=1 3 M(I,J)=0 4J=J+1 5IF(J-4)3,3,6

END 71=1+1 8 IF(I-4)2,2,9 9 STOP

END

Fig. 8.3

Aus der Fig. 8.3 erkennt man sofort, daß das Programm von Beispiel 8.3 zulässig ist. Man erkennt an Hand der Fig. 8.4. daß vom Befehl s 1 2 zwar ein Weg zu s 2 1 G A führt, daß jedoch kein Weg von einem Befehl S; E E nach s, 2 existiert. Das Programm konnte afso höchstens dann zulässig sein, wenn mindestens einer der nicht angegebenen Befehle s j . s 2 s7 eine Verzweigung nach s 1 2 enthält. Die Anwendung von gerichteten Graphen zur Darstellung von Programmen eröffnet dem in der Graphentheorie bewanderten Informatiker ein weites Spektrum an Forschungsmöglichkeiten. Grundlegende Arbeiten auf diesem Gebiet stammen von Karp [77] und Allen [46]. Man vergleiche Berztiss [6] und die dort angeführte Literatur. Große Schwierigkeiten fal-

126

8. Gerichtete Graphen und Programme

Beispiel 8.4. Ausschnitt aus einem nicht zulässigen Programm: 8K=K+1 9IF(K-10)10,15,16 10D=A(1,1) 11 GO TO 15 12D=A(1,1)*A(2,2) 13D=D-A(2,1)*A(1,2) 14 GO TO 21 15L=(K/2)*2 16 1F(L-K)17,19,21 17D=1-D 18 GO TO 8 19D=1/D 20 GO TO 8 21 STOP END 18

17 Fig. 8.4

len insbesondere dann an, wenn man statt höherer Programmiersprachen maschinenorientierte, also Assembler-Sprachen, behandeln mufS. In solchen Sprachen besteht die Möglichkeit, während des Programmlaufes an den Anweisungen des Programmes Veränderungen vorzunehmen und /.. B. eine arithmetische Anweisung in eine Sprunganweisung umzuwandeln, wodurch eine neue Ver/weigung entsteht. Weber 1 1 12| unterscheidet daher /wischen Programmiersprachen mit festem Strukturgraphen und Programmiersprachen mil flexiblem Strukturgraphen. Einige wichtige Anwendungsbeispiele, be/ogen auf teste Sirukturgraphen. seien im folgenden skizziert. Fast jeder FORTRAN-Compiler bringt bei der nachstehenden Befehlsfolgc eine Fehlermeldung: GO TO 21 Ein Befehl nach einer GO TO oder IF-Anweisung kann nur dann von einem Weg von einem Eingang s f G H erreicht werden, wenn er eine statcmcntN'ummer trägt. Die 1,'mkehrung gilt jedoch n i c h t , so dal.S eine Fehlermeldung bei vielen Compilern nicht mehr erfolgt, wenn der un eine GO TO oder IF-Anweisung folgende Befehl willkürlich eine statement-Nummer erhält, ohne daft irgendwo im Programm ein entsprechender bedingter oder

8. Gerichtete Graphen und Programme

127

unbedingter Sprungbefehl steht. Solche Fehlerquellen können vom Programmierer dann nur mehr an Hand der Liste der nicht referierten Befehle eruiert werden: GO TO 21 2 2 X = X+ l

Fehler dieser Art können jedoch an Hand der zum entsprechenden Strukturgraphen gehörigen Weg-Matrix sofort festgestellt werden. Ähnliche Überlegungen können auch für das Auffinden gewisser Klassen von sogenannten unendlichen Programmschleifen gemacht werden. Hier handelt es sich um Befehlsfolgen, die durch unlogische Verwendung von Sprungbefehlen nicht mehr verlassen werden können, sobald sie während des Programmablaufes einmal betreten worden sind.

Beispiel 8.5. 4 5 6 7 8 9 10 11

IF(K)5,5.11 X=X+l IF(X-A)7.7.9 A = A/4. GO TO 5 = +A GO TO 5

20 STOP END Ist in diesem Programm s 2 o das einzige Ausgangssymbol, so erkennt man mittels der Weg-Matrix des Strukturgraphen sofort, daß z. B. für die Schleife s s . S6 s, 0 , ss kein Weg zum Ausgang s 20 existiert, und das Programm somit nicht zulässig ist. Eine weitere Verwendung von Strukturgraphen bietet sich bei der Untersuchung auf Syntaxfehler in DO-Schleifen an. Normalerweise ist das Hineinspringen in eine DO-Schleife unter Umgehung des Schleifeneingangs verboten.

128

8. Gerichtete Graphen und Programme

Beispiel 8.6. 11 GO TO 15

11 GO TO 15

13 DO17I=1,N,M 14 = 15 X = I

13 1 = 1 14 = 15 X = I

Fig. 8.6

16 I = I + M 17 IF(I-N)14,14,18 18

17 CONTINUE 18

Ist die zur Schleife gehörige Knotenfolge L = (s13, Sj 4 ,s i s , bestimmt, und existiert im Graph eine Kante mit und Sj s I3 , so liegt ein Verstoß gegen die Syntax der Sprache vor. Jeder Programmierer stand schon einmal vor der Tatsache, daß sich ein erstelltes Programm als zu groß in bezug auf die gegebene Hauptspeicherkapazität erwiesen hat. In solchen Fällen ist es wünschenswert, daß vom Betriebssystem des Rechners her versucht wird, eine Overlay-Struktur zu erzeugen, indem bestimmte Segmente des vorliegenden Programmes während seiner Exekution temporär auf einen externen Speicher gelegt und nur dann in den Hauptspeicher transferiert werden, wenn der Programmablauf die Benützung des entsprechenden Segmentes verlangt. Gleichzeitig müssen jedoch mindestens so viele andere momentan nicht benötigte Segmente aus dem Hauptspeicher entfernt werden, so daß das neu zu ladende Platz findet. Ständig benutzte Segmente bleiben core resident. Ebenso ist es wichtig, einen allzuhäufigen Transfer der Segmente (RollOut-Roll-In} durch geeignete Programmunterteilung zu vermeiden. Derartige Overlay-Strukturen lassen sich durch Strukturbäume darstellen, wobei das Wurzelsegment hauptspeicherresident bleibt. Strukturbäume sind gewisse Wurzelbäume. Jedem Segment des Programmes wird ein Knoten zugeordnet. Ferner sind zum Durchlaufen eines Segments alle jene Segmente im Hauptspeicher resident zu halten, die auf dem gerichteten Weg vom Wurzelsegment zu diesem Segment liegen. B

H Fig. 8.7

8. Gerichtete Graphen und Programme

129

Muß etwa das Programmsegment F durchlaufen werden, so ist es zu diesem Zeitpunkt nicht erforderlich, daß insbesondere die Segmente B, C, D, E im Hauptspeicher residieren. Zweckmäßigerweise werden vor dem Laden von F solange Teile des Astes über B, beginnend mit seinen Endknoten D und E, stufenweise auf einen externen Speicher gelegt, bis genügend Platz für F geschaffen wurde. Wird jedoch das Segment E benötigt, so müssen B und C ebenfalls geladen werden, und zur Platzgewinnung können etwa D, G, H, J, und wenn nötig auch F entfernt werden. Weiß der Programmierer schon bei der Erstellung eines Programmes, daß die Hauptspeicherkapazität nicht ausreichen wird, so kann er durch geschickte Programmierung bereits explizit zum Aufbau einer nicht zu zeitaufwendigen Overlay-Struktur beitragen. Problematisch wird der Fall jedoch bei Programmen mit dynamischem Hauptspeicherbedarf. Hier hängt die tatsächlich benötigte Hauptspeicherkapazität von den Daten zum Exekutionszeitpunkt ab und es kann sogar der extreme Fall eintreten, daß eine Überlappung nur in Sonderfällen notwendig wird. Dem Problem der automatischen Aufstellung einer Overlay-Struktur mit Hilfe geeigneter Segmentierung eines Programmes wird durch die Verwendung eines Strukturgraphen ein Teil seiner Schwierigkeit genommen. A = {Si,s 2 , s3} B = {s4, s s , s6, s 7 > C = {s, 0 ,s n , s 1 2 ,s, 3 } D=

Fig. 8.8

In Fig. 8.8 ist das vorhin Erläuterte schematisch festgehalten. Wesentlich komplexer wird das Problem, wenn die gesuchte Overlay-Struktur nicht mehr durch einen Baum beschreibbar ist, wie dies in Fig. 8.9 vereinfacht dargestellt ist.

=

E = {s n ,s 12 } > S 14>

, s 10 >

l-'ig. 8.9

Eine weitere Anwendung der Graphentheorie im Bereich der Programmierung wurde von Allen [46] behandelt, und zwar werden mit Hilfe des Strukturgraphen Methoden zur Programmoptimierung angegeben. Zum Beispiel kann der Programmabschnitt DO l I - 1,N K=4 l A(I)=A(I)*K verbessert werden auf DO l I = l ,N l A(I) = A(I)*K da in diesem Beispiel der Befehl K = 4 invariant innerhalb der Schleife ist. Ähnlich gelagert ist das Problem der Beseitigung von redundanten Instruktionen, die sich /.. B. bei der Auflösung des folgenden Befehles ergeben: DIMENSION 7 A( 10,10). B(10. 10) X = A(I,J)+B(U)

Literatur

131

normale Auflösung: optimierte Auflösung: L1=J-1 L1=J-1 L2=10*L1 L2=10*L1 L3 = L2+I L3 = L2+I L4 = J-1 X = A(L3)+B(L3) L5= 10*L4 L6 = L5+I X = A(L3)+B(L6) Die Befehle L4, L5 und L6 sind mit den vorangegangenen logisch äquivalent und somit redundant. Zur Behandlung von invarianten und redundanten Instruktionen wird der betreffende Strukturgraph in stark zusammenhängende Teilgraphen zerlegt und auf diese entsprechende Algorithmen angewandt. Der interessierte Leser sei diesbezüglich auf die Arbeiten von Allen [46] und Ersliov [63] verwiesen.

Literatur Im ersten Teil des Literaturverzeichnisses werden neben Standardwerken über Graphentheorie einführende Darstellungen der in diesem Buch erwähnten Gebiete aufgeführt. Der zweite Teil beschränkt sich auf die im Text zitierten Originalarbeiten. Für weiterführende Literaturstudien verweisen wir auf die umfassende Bibliographie von J. Turner in „Proof Techniques in Graph Theory" (Academic Press New York 1969), herausgegeben von F. Harary. 11J [2| |.i] 14) |5| |6) 17] [H| [9|

Arondo-Bodino, G.: Lconomic A p p l i c a t i o n s of the Theory of Graphs. London 1962. Reihnann. R., K. I.. Cookc and J. A. Locket!: Algorithm*. Graphs and Computers. New York 1970. fierce. (.'.: Theorie des Graphes et \o application*. Pari< 1958. Fngi. Üherset/ : The Theory of Graphs and its applications. London 1962. Berge. C.: Graphcs et hypergraphe·.. Paris 1970. Ber$e. C, und A. Ghouila-IIouri: Programme, Spick·. Tranvportm-t/e. L.eip/lii 1969. Berilis:;. A. T.: Data structures. London 1 9 7 1 . Busacker. R. G. and Th. /.. Saatv: F i n i t e G r a p h s and N e t w o r k s . N e w York 1965. But tier. G.: Netzwerkplanung. \Viirzhurg Wien 1968. Dantzig, G. B.: Lineare Programmierun» und Frweiteruneen. Berlin HeidelIXTL- New York 1966.

132 [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] ]22] [23] [24] [25] [26| [271 [28| [291 [30] [31] [32] [33] [34] [35] [36] [37] [38| [39] [40] [41] [42] [43| [44]

Literatur Elmaghraby, S. E.: Some Network Models in Management Science. BerlinHeidelberg-New York 1970. Flatnent, C.: Theorie des graphes et structures sociales. Paris 1968. Ford, L. R. and D. R. Fulkerson: Flows in Networks. Princeton, New Jersey 1963. Götzke, H.: Netzplantechnik. Leipzig 1969. Gross, M. und A. Lentin: Mathematische Linguistik. Berlin-Heidelbcrg-New York 1971. Harary, F.: Graph Theory. London 1969. Harary, F. (Ed.): A Seminar on Graph Theory. New York 1967. Harary, F., R. Z. Norman and D. Cartwright: Structural Models. New York 1965. Harris, B. (Ed.): Graph Theory and its applications. New York 1970. In, M.: Network Flow, Transportation and Scheduling. New York 1969. Jacobs, K.: Selecta Mathematica I. Berlin-Heidelberg-New York 1969. Kaufmann, A.: Introduction a la combinatoriquc en vue des applications. Paris 1968. Kaufmann, A. et D. Coster: Exercises de combinatorique avec solution II. Paris 1970. Kaufmann, A.: Graphs, Dynamic Programming and Finite Games. New York 1967. Knödel, W.: Graphen theoretische Methoden und ihre Anwendungen. BerlinHeidelberg-New York 1969. König, D.: Theorie der endlichen und unendlichen Graphen. New York 1950. Laue, R.: Graphentheorie und ihre Anwendung in den biologischen Wissenschaften. Braunschweig 1971. Liu, C. L.: Introduction to Combinatorial Mathematics. New York 1968. Maurer, H.: Theoretische Grundlagen der Programmiersprachen. Mannheim 1969. MC Daniel, H.: An Introduction to Decision Logic Tables. New York 1968. Moon, J. W.: Topics on Tournaments. New York 1968. Müller-Merbach, H.: Operations Research. Berlin Frankfurt 1970. Müller-Merbach, H.: Optimale Reihenfolgen. Berlin-Heidelberg- New York 1970. Ore, O.: Theory of Graphs, American Mathematical Society 1962. Ore, O.: The Four-Colour Problem. New York 1967. Ore. O.: Graphs and Their Uses. New York 1963. Ringel. G.: Färbungsprobleme auf Flüchen und Graphen. Berlin 1959. Roy, B.: Algebre moderne et theorie des graphes I. Paris 1969. Roy. B.: Algebre moderne et theorie des graphes II. Paris 1970. Sachs, H.: Einführung in die Theorie der endlichen Graphen I. Leipzig 1970. Seslni. S. and M. Reed: Linear Graphs and Electrical Networks. Mass. 1961. Thumb. N.: Grundlagen und Praxis der Netzplantechnik. München 1968. Tutte, W. T.: Connectivity in Graphs. 1966. Tutte, W. T. (Ed.): Recent Progress in Combinatorics. London 1969. Wagner. K.: Graphentheorie. Mannheim 1970.

Literatur

[45]

133

Zykov, A. A.: Theorie der endlichen Graphen (russisch). Nowosibirsk 1969.

Zeitschriftenliteratur [46] [47] [48] [49| [50| [511 [52] [531 [54| [551 [56] [57] [58] [59] [60] [611 [621 [631 [641 [651

[66[ [67)

Allen, F. E.: Program optimization. Ann. Rev. Automatic Programming 5, 239-307(1969). Arona, S. R. and W T. Dent: Randomized binary search technique. Comm. ACM 12, 77-80(1969). Balinski, M. L.: Integer Programming: Method, uses, computation. Management Sei. 12, 253-313(1965). Beümore, M. and G. L. Nemhauser: The traveling salesman problem: A survey. Operations Res. 16,538-558(1965). Booth, A. D. and A. J. T. Colin: On the efficiency of a new method of dictionary construction. Information and Control 3, 327- 334 (1960). Camion, P.: Chemins et circuits hamiltoniens des graphics complets. C. R. Acad. Sei. Paris 249. 2 1 5 1 - 2 1 5 2 ( 1 9 5 9 ) . Char, J. P.: Generation of Trees, Two-Trees and Storage of Master Forests. IEEE Trans. Circuit Theory 12. 181-185(1965). Char, J. P.: Edge numbering convention for setting up circuit and cut-set matrices. Proc. IKK 114, 1241-1243(1967). Dantzig, G. B.: Discrete-Variable Extremum Problems. Operations Res. 5. 266-270(1957). Dantzig. G. B.: On the shortest route through a network. Management Sei. 6. 187 190(1959). Dantzig, G. B., D. R. Fulkcrson and S. Johnson: Solution of a Large-Scale Traveling Salesman Problem. Operations Res. 2. 393 410(1954). Dijkstra, E.: On two problems in connection with graphs. Numcr, Math. 1. 269- 271 (1959). Dirac. G. A.: Paths and circuits in graphs, extreme cases. Acta Math. Acad. Sei. Hungar. 10,357 361 (1959). Dirac, G. A.: Short Proof of Monger's Graph Theorem. Mathematika 13. 269 271 (1959). Edmond. J.: Paths, trees and flowers. Canad. J. Math. 17. 449 467 (I960). Edmonds, J.: Maximum Matching and a Polyhedron With 0,1-vertices. J. Res. Nat. Bur. Standards Sect. B 69. 1 2 5 - 1 3 0 « 1965). Kgc'rvarr, E.: Matrixok kombinatorius tulajdonsagairol. M a t . Fiz. I.apok 38 (1931).' Ershov, A. P.: Theory of Program Schemata. Proc. IFIP-Concress 1971 (Ljubljana). L 144 163. Fary,./.-' On straight line representations of planar graphs. Acta Sei. Math. (Szeged) 11. 229 233(1948). Fisher. G. J, and 0. Wing: Computer R '>cnition and Extraction of Planar Graphs from the Incidence Matrix. I I . ' F Trans. Circuit Theory 13, 154 163 (1966). Ford, L. R. and D. R. Fulkerson: Maximal How through a network. Canad. J. Math. 8. 399-404(1956). Ford, I.. R. and D. R. Fulkcrson: Solving the Transportation Problem. Management Sei. 3. 24 3 2 ( 1 9 5 6 ) .

134 [68]

Literatur

Ford, L. R. and D. R. Fulkerson: A simple algorithm for finding maximal network flows and an application to the Hitchcock problem. Canad. J. Math. 9, 210-218(1957). (69) Fulkerson, D. R.: An out-of-kilter method for minimal-cost flow problems. SIAM J. Appl. Math. 9, 18-27(1961). [70] Gale, D.: A Theorem on Flows in Networks. Pacific J. Math. 7. 1073-1082 (1952). [71] Ghouila-Houri, A.: Une condition süffisante d'existancc d'un circuit hamiltonien. C. R. Acad. Sei. Paris 251, 495-497 (1960). [72] Gibbs, N. E.: A cycle generating algorithm for finite undirected linear graphs. J. Assoc. Comput. Mach. 16. 564-568(1969). [73] Gonzales, R.: Solution of the Salesman Problem by Dynamic Programming on the Hypercube. MIT Op. Res. Ctr. Tech. Rpt. 18 (1962). [74] Hall, P.: On Representatives of Subsets. J. London Math. Soc. 10, 2 6 - 3 0 (1935). [75] Hitchcock, /·". /,.: The distribution of a product from several sources to numerous localities. J. Math, and Phys. 2, 2 2 4 - 2 3 0 (1941). [76] Hoffmann. A. J.: Some Recent Applications of the Theory of Linear Inequalities to lixtremal Combinatorial Analysis. Proc. Symposia on Appl. Math. 10 (1960). [77] Karp, R. M.: A note on the application of graph theory to digital computer programming. Information and Control 3. 179-! 90 (1960). [78] Klemm, U.: Kin algoriMimisches Planaritätskriterium I. Computing 3, 194- 204(1968). [79] Klemm, U.: Ein algorithmisches Planarilätskriteriu.m II. Computing 3. 245 257(1968). 180] König, A.: Beitrag zur Theorie der endlichen gerichteten Graphen. Wiss. Z. Martin-L.uther-Univ. Halle-Wittcnhcrg Math.-Natur. Reihe K), 118 129 (1961). |81] Kreu: berget, H.: F.ine Methode zur Bestimmung mehrerer Lösungen für das ZiiordiniRPsproblem. Angewandte Informatik 9, 407 4 14 ( 1 9 7 l ) . (82| Kruskal. J. B.: On the shortest spanning subtree of a graph and the traveling salesman problem. Proc. Amer. Math. Soc. 71. 48 - 5 0 ( 1956). [831 Kühn. H. W,: The Hungarian method for solving the assignment problem. Naval Res. l.ogist. Quart. 2. 83 97 t 1955). (84| Kutin. H. W.: Variants of the Hungarian method for assignment problems. Naval Rev l.ogist. Quart. 3. 253 258 (1956). [851 Kuraiowsky, (!.: Sur le probleme des v-ourhcs (ranches en topoloiMO. l und. Math. 15. 271 283 ( 1930). [86| Kwan. M.: Graphic Programming L'sine Odd or liven Points. Chinese . 1. 273- 2 7 7 ( 1 9 6 2 ) . 187] l.itschmann. A.: Dekomposilionsmelhoden linearer und d y n a m i s c h e r Optimierun.ssnicthoden. D i p l o m a r b e i t . Hoelischule für Sozial- und Wirtschaftswissenschaften. L hu, 1971. [881 Linie, J. D. C., K. (i. Murty, D. W. Sweeney and C Kare/: An algorithm for the traveling salesman problem. Operations Res. 1 1, 972 989 ( 1963). [89] Mac l.a>is. S.: combinatorial coi:diiion Tor planar graphs, F u n d . .Math. 28, 22 3 2 ( 1 9 3 7 i .

Literatur

135

[90) Maghout, K.: Applications de l'Algebre de Boole a la theorie des graphes. Cahiers du Centre d'F.tudes de Recherches Operationelles (Bruxellcs) 5 (1963) (91) Mayeda, M. and 5. Seshu: Generation of trees without duplication. IEEE Trans. Circuit Theory 12, 181-185(1965). [92] Menger, K.: Zur allgemeinen Kurventheoric. Fund. Math. 10, 96-115 (1927). [93] Minty, G. J.: A simple Algorithm for Listing All the Trees of a Graph. IEEE Trans. Circuit Theory 12, 120 (1965). [94] Munkres, J.: Algorithms for the assignment and transportation problems. SIAM J. Appl. Math. 5, 32-38(1957). [95] Ore, O.: Graphs and matching theorems. Duke Math. J. 22, 625-639(1955). |96| Pope, U.: Eine Bibliographic zu ,,Kürzeste Weglängen und Wege in Graphen". Elektronische Datenverarbeitung 6, 271-274 (1969). [97] Paton, K.: An Algorithm for the Blocks and Cutnodes of a Graph. Comm. ACM 14,468-475(1971). [98] Piekarski, M.: Listing of All Possible Trees of a Linear Graph. IEEE Trans. Circuit Theory 12, 124-125(1965). [99] Posa. I..: A theorem concerning Hamilton lines. Magyar Tud. Akad. Mat. Fiz. Oszt. Közl. 7, 225-226(1962). 1100] Prim, R. C.: Shortest connection networks and some generalization. Bell System Tech. J. 36, 1389-1401 (1957). [101] Redd, 1..: Über die Kantcnbasen für endliche vollständige gerichtete Graphen. Acta Math. Acad. Sei. Hungar. 5, 17-25 (1954). [ 102] Reinwald, L. T. and R. M. Solana: Conversion of limited-entry decision tables to optimal computer programs I: Minimum average processing time. J. Assoc. Comput. Mach. 13, 339--358 (1966). (103| Reinwald, L. T. and/?. M. Solana: Conversion of limited-entry decision tables to optimal computer programs II: Minimum storage requirement. J. Assoc. Comput. Mach. 14. 742-755 (1967). 1104] Rosenstiehl, P.: L'arbre minimum d'un graphe. Theorie des Graphes, Journees Internationales dT'tude Rome. Paris 1966. [ 1051 Ross. D. T.: A generalized technique for symbol manipulation and numerical calculation. Comm. ACM 4. 147-1501 1961). 11061 Scidmore, A. K. and B. L. Weinberg: Storage and search properties of a treeorganized memory system. Comm. ACM 6, 28-31 (1963). [ 1 0 7 ] Shannon, C. K.: The zero-error capacity of a noisy chanal. Trans. 1956 Symp. Inform. Theory. IRF. II-2. 8-12. [ 108] Sollin, M: I.e tracv des canalisations. Paris ( u n v e r ö f f e n t l i c h t ) . [109] Suxsenguth. K. II.: Use of tree structures for processing files. Comm. ACM 6. 272 2 7 9 ( 1 9 6 3 ) . |1 10] Tune, W. T.: The dissection of equilateral triangles into equilateral triangles. Proc. Cambridge Philos. Soc. 44, 463 1X2 (1948). [ I l l ] Marshall, S.: A theorem on Boolean '.airices. J. As>;oc. Comput. Much. 9, N - I 2 ( 1962). [ 1 1 2 ] Weber, R.: Strukturuntersuchungen an Programmen. Diplomarbeit, Technische Hochschule Wien 1971. 1 1 13] Weinberg. L.: A Simple and Efficient Algorithm for Determining Isomorphism of Planar Triply Connected Graphs. IEEF. Trans. Circuit Theory 1 3. 142 148 (1966).

136

Literatur

[114] Weinberg, L.: Two new characterizations of planar graphs. Fifth Allerton Conference on Circuit and Systems Theory. University of Illinois. [115] Whitney, H.: Nonseparable and planar graphs. Trans. Amer. Math. Soc. 34, 339-362(1932). [116] Whitney, H,: Congruent graphs and the connectivity of graphs. Amer. J. Math. 54, 150-168(1932). [117] Whitney, H.: A set of topological invariants for graphs. Amer. J. Math. 55, 231-235(1933). [118] Whitney, H.: 2-isomorphic graphs. Amer. J. Math. 55, 245-254 (1933). [119] Yen,J. Y.: Finding the k shortest loopless paths in a network. Management Sei. 17, 712-716(1971). Nachtrag zum Literaturverzeichnis [120] [121] [122] [123] [124] [125] [126] [127] [128] [129]

Anderson, S. S.: Graph theory and finite combinatorics. Chicago 1970. Chen, W. K.: Applied Graph Theory. Amsterdam 1971. Marshall, C. W.: Applied Graph Theory. New York 1971. Mir sky, L.: Transversal Theory. New York 1971. Picard, C. F.: Graphes et Questionaires I und II. Paris 1972. Czayka, L.: Die Bedeutung der Graphentheorie für die Forschungsplanung. Berlin 1971. Mayeda, W.: Graph Theory. New York 1972. Harary, F., Wilf, H. S. (Ed.): Mathematical Aspects of Electrical Network Analysis. Providence 1971. Behzad, M. and Chartrand, G,: Introduction to the Theory of Graphs. Boston 1971. Zimmermann, H. J.; Netzplantechnik. Berlin-New York 1971.

Algorithmen Berechnen des Zentrums eines Baumes 24 Konstruktion einer Eulerschen Linie 31 Bestimmung der starken Komponenten 42 Entscheidung ob ein g. Graph azyklisch ist 44 Berechnung der kürzesten Wege - (Dantzig) 72 - (Warshall) 76 Erstellung der Wegmatrix 73 Bestimmung des Minimalgerüstes - (Kruskal) 81 (Sollin) 84 Bestimmung aller spannenden Bäume (Piekaiski) 86 Bestimmung von Blöcken und Artikulationen (Paton) 89 Bestimmung von Brücken 95 Aufsuchen von g. Kreisen 97 Berechnung eines maximalen Flusses (Ford-Fulkerson) 103 Erstellung eines maximalen Matching 121

Sachvereeichnis Ableitung 51 Ableitungsbaum 51 Abstand 10,41 adjazent 7 Adjazenzmatrix 57, 58, 67 äußeres Gebiet 36 Alphabet 51 alternierender Weg 118 Arboreszcnz 50 Artikulation 12 aufspannend 8 Ausgang 124 außen stabü 20, 21 Automorphismus 17 azyklisch 44 Bahn 41 Basis 43 Basiskante 46 Basiszeichen 46 Baum 21 Bedarf 106 beschränkt 108 bewerteter g. Graph 67 bichromatisch 34 binäre Arboreszenz 50 bit 63 Block 12 Boolesche Matrix 57 Brücke 15.46 Chinesischer Briefträger, Problem des 31,49

chromatische Zahl 33 Clique 20 Computerprogramm l 24 core resident l 28 CPM 78 Critical Path Method 78 Dantzig, G. B. 72 Durchgangsknoten 100 Durchschnitt 9 ebener Graph 35 Eingang l 24

Endknoten 9, 50 Endpunkt 7 entgegengesetzt parallel 40 Entscheidungsbaum 54 Entscheidungstafel 54 Ereignisse 78 erfüllbar 106 Ergiebigkeit 100 erreichbar 43 erweiternder Weg l ] 8 Eulersche Linie 30, 48 Eulersche Polyederformel 37 Eulerscher Graph 30, 48 Exzentrizität 24 Färbung 33 Fary, J. 35 Muß 100 Ford, L. R.-Fulkerson, D. R. 103 Fundamentalsystem - von Kreisen 27 von Kokreisen 60 Gale, D. 107 Ganzzahliger Fluß 99 Gebiet 35 geometrische Realisierung 17 geometrischer Graph 7 gerichtete Kantcnfolge 41 gerichteter Graph 39 gerichteter Kantenzug 4 l Gerüst 25, 2 7 , 7 9 , 8 0 gesättigte Kante 101 gesättigter Knoten 11 7 gesättigter Teilgraph 8, 4 l Gesamtkosten 1 1 5 , 1 1 6 Grad 8,40 Hall, P. 119, 120 Hamiltonscher Graph 32 Handlungsrcisender, Problem des 32. 50 Hitchcock Problem l 16 Index sequentielle Spcicherm et hode 68 innen stabil 18 invariant 130, 131

Sachverzeichnis inzident 7 Inzidenzmatrix 55, 56 isolierter Knoten 8 Isomorphieproblem 39 Isomorphismus 16 Kante 7 -.gesättigte 101 Kantenfolge 9 Kantenmenge, trennende 16, 60 Kantenspeicherung 70 Kantenzug 9 Kantenzusammenhangszahl 16 Kapazität 20 - eines Schnittes 101 Kirchhoff-Trent 57 Knoten 7 --, gesättigter 17 -, isolierter 8 Knotenbasis 43 knotendisjunkt 14 Knotentnenge, trennende 14, 16 Koeffizient der inneren Stabilität 18 der äußeren Stabilität 20 König, D. 119, 120 Königsberger Brückenproblem 29 Kokreis 60 Kokreismatrix 60 Komplement 20 Komponente 1 0 . 1 1 , 4 1 konvexe Funktion 116 Kosten 115 Kreis 9.41 Kreismatrix, fundamentale 60 kritische Tätigkeit 78 kritischer Weg 78 Kruskal, J. B. 81 kürzester Weg 7 l , 72, 76 Kuratowski. G. 38 Kuratowski-Graph 37 labeled graph 55 Länge 41 einer Kantenfolge 10 eines Weges 71 Lateinische Matrix 57 Listendarstellung 63 Matching 117 Matrix . Adjazenzmatrix 57, 58 , Inzidenzmatrix 55

-, Kokreismatrix 60 -, Kreismatrix 60 -, Lateinische 57 -, Wegmatrix 59 Maximaler Ruß 101 maximales Matching 118 Mehrfachkante 8, 39 Menger, K. 14,46 minimale Kantenbasis 47 minimaler Träger 121 Minimalgerüst 80 Netzplantechnik 78 Netzwerk 99 n-fach zusammenhängend 15 Niveau 50 offen 9,41 Ovevlay-Struktur 128 Ore, O. 32, 120 paar 34 parallel 8 Paton, K. 89 PHRT 78 Piekarski, M. 86 platt bar 35 Polnische Notation 52 Präfix Notation 52 Produkt, starkes 19 Programmoptimierung 130 Quasikreis 28 Quelle 100 Radius 124 Redei, L. 48 reduzierter g. Graph 43 regulär 8 Relation 40 Roll-Qut-Roll-In 128 Rückführkante 101 schlichter Graph 39 - g. Graph 39 Schlinge 8. 39 Schnitt 101 schwach zusammenhängend 41 Sehne 26 Senke 100 separabel l 2 Skeleton 79 r 80 Sollin. M. 84 spannender Baum 25. 27, 79. 80 Teilgraph 8, 41

139

140

Sachverzeichnis

Speicherabbildungsformel 68 Sprache 51 Stabilität 18 Stabilitätskoeffizient 18 stark zusammenhängend 41 starkes Produkt 19 Streichen von Kanten 11 Strom 100 Strukturbaum 128 Strukturgraph 123,124,126 Summe 27 symmetrische Differenz 27 symmetrischer g. Grapli 40 Tätigkeit, kritische 78 Teilgraph 8,41 Träger 121 Transportnctz 78, 99, 101 Transportproblem, allgemeines 116 Traveling Salesman Problem 32 trennende Kantenmenge 16,60 Knotenmenge 14, 16 Trennungszahl 14 Turnier 48 Umgebungsunabhängige Grammatik 51 Ungarische Methode 121 unger ich teter Graph 7 ungesättigter Knoten 118 Unterteilung einer Kante 38

Variable 51 Verbindungszahl 45 Verbrauch 100 Vereinigung zweier Graphen 8 Vier-Farben-Problem 39 vollständig 9 vollständiges Matching 118 Wald 121 Warshall, S. 76 Weg 9 , 4 1 -, alternierender 118 -, erweiternder 118 -.kritischer 78 -, kürzester 71 Wegmatrix 59 Wert eines Flusses 100 Wort 51 Wurzel 49, 50 Wurzelbaum 49 Zeichnung eines Graphen 7 xentraler Knoten 24 zulässig 33, 101, 109, 124 Zuordnungsproblem 11 7 Zusammenhangszahl 15 zusammenhängend 10,41 Zuwachsgraph 1 1 1 , I I 5 zyklomatische Zahl 26

de Gruyter

W DE

G

Berlin Operations Research Herausgegeben von II. J. Zimmermann

H. Völzgcn

Stochastische Netzwerkverfahren und deren Anwendungen Gr.-Okt. 105 S. Mit 63 Abb. 1971. Geb. DM 32, - ISBN 3 11 003560 X

II. Fränkel

Diskrete optimale Steuerungsprobleme und konvexe Optimierung Gr.-Okt. 102 S. Mit 11 Abb. u. l Tabelle. 1971. Geb. DM 28, - ISBN 3 11 003575 8

G. Ncuvi-ans

Dynamische Bestands- und Produktionsplanung bei einstufiger Fertigung Gr.-Okt. 123 S. 1971. Geb. DM 44,ISBN 3 11 003731 9

E. Müller

Simultane Lagerdisposition und Fertigungsablaufplanung bei mehrstufiger Mehrproduktfcrtigung Gr.-Okt. 127 S. Mit 55 Abk. 1972. Geb. DM 56,- ISBN 3 11 003926 5

R. l lahn

Produktionsplanung bei Linienfertigung Gr.-Okt. 194 S. 1972. Geb. DM 58,ISBN 3110038404

T. Gal

Betriebliche Entscheidungsproblemc, Sensitivitätsanalyse und parametrischc Programmierung Gr.-Okt. Etwa 240 S. 1973. Geb. etwa DM 64, ISBN 3 11 003844 7

W DE

G

Wilter de Gruyter BerlinSammlung Göschen Klein-Oktav. Kartoniert 7« l "orbereitung:

Karl Oettl

Datenübertragung und -Fernverarbeitung Etwa 130 Seiten. 1973. Etwa DM 9,80 ISBN 3 11 004044 l

Klaus Albcr

Formale Beschreibung von Programmiersprachen Etwa 130 Seiten. 1973. Etwa DM 9,80 ISBN 3 11 004207 X

Hans-Joachim Hoffmann

Theorie und Praxis des Übersetzercntwurfs Etwa 160 Seiten. 1973. Etwa DM 12,80 ISBN 311 0041472

E. J. Neuhold

Betriebssysteme l Etwa 160 Seiten. 1973. Etwa DM 12,80 ISBN 3 11 0043203

Paul Caspcrs

Betriebssysteme II Etwa 160 Seiten. 1973. Etwa DM 12,80 JS13N 311 004321 l

Otto Simmler

Information Retrieval Etwa 160 Seiten. 1973. Etwa DM 9,80 ISBN 3 11 0042088

Einführung in Teilgebiete der Informatik II Etwa 160 Seiten. 1973. Etwa DM 9,80

W DE G

Walter de Gruyter Berlin-Newark de Gruyter Lehrbuch

Georg Bayer

Einführung in das Programmieren in ALGOL 2., verbesserte Auflage. Groß-Oktav. 172 Seiten mit 26 Abbildungen. 1971. Plastik flexibel DM 12,- ISBN 3 11 006433 2

Georg Bayer

Programmierübungen in ALGOL 60 unter Mitarbeit von Lothar Potratz und Siegfried Weiß Groß-Oktav. 90 Seiten. 1971. Plastik flexibel DM 10,- ISBN 3 11 003562 6

Georg Bayer

Einführung in das Programmieren Teil 2: Programmieren in einer Assemblersprache Groß-Oktav. 134 Seiten. Mitzahlr. Abbildungen. 1970. Plastik flexibel DM 12,ISBN 311 0009269

Gerhard Niemcyer

Einführung in das Programmieren in

ASSEMBLER Systeme IBM 360, IBM 370, Siemens 4004, Uni vac 9000 Groß-Oktav. Etwa 144 Seiten. 1973. Plastik flexibel etwa DM 18,- ISBN 3 11 004310 6 Wolfgang E. Spiess — Friedrich G. Rheingans

Einführung in das Programmieren in FORT R \ N 3., verbesserte Auflage. Groß-Oktav. 216 Seiten. Mit 19 Abbildungen und 13 Tabellen. 1972. Plastik flexibel DM 18,- ISBN 3 11 003914 l

W DE G

Wilter de Gruyter Berlin -New^brk Sammlung Göschen Klein-Oktav. Kartoniert

Hartmut Noltcmeier

Datenstrukturen und höhere Programmiertechniken 86 Seiten. 1972. DM 9,80 ISBN 3 11 003947 8 (Bd. 5012)

Einführung in Teilgebiete der Informatik I von W. Dirlewanger, K.-U. Dobler, L. Hieber, P. Roos, H. Rzehak, H.-J. Schneider, C. Unger. 136 Seiten. 37 Abbildungen. 1972. DM 9,80 ISBN 3 11 003910 9 (Bd. 5011) Angewandte Informatik Herausgegeben von Peter Mcrtcns 198 Seiten. 1972. DM 9,80 ISBN 3 11 004112 X (Bd. 5013) Clemens Hackl

Schaltwerk- und Automatentheorie I 164 S. 1972. Kart. DM 12,80 ISBN 3 11 003948 6 (Bei. 6011) In Vorbereitung:

Clemens Ilackl

Schaltwerk- und Automatentheorie Etwa 160 Seiten. 1973. Etwa DM 9,80 ISBN 3 11 0042134

Fran/. Pichler

Mathematische Systemtheorie Etwa 160 Seiten. 1973. Etwa DM 9,80 ISBN 3110039095

Günther Gcnsch

Analog- und Hybridrechner Etwa 130 Seiten. 1973. Etwa DM 9,80 ISBN 3 11 0041367