Graphen und Probleme W. Conen

Werbung
Graphen und Probleme
W. Conen
Version 1.0
Graphen und Graphprobleme
●
Grundlegende Begriffe
●
Ausgewählte Probleme
●
Literaturempfehlungen
Graphen: Knoten, Kanten, Gewichte, gerichtet
●
●
Graphen bestehen aus
●
Knoten (English: vertices), gegeben als Menge V
●
Kanten (English: edges), gegeben als Menge E
Die Kanten haben manchmal Gewichte (English: weights)
35
GE
DO
und/oder eine Richtung (dann heißen sie: gerichtete
Kanten ;)
DO
Meister
Graphen: Multikanten, Schleifen
●
Ein Paar von voneinander verschiedenen Knoten kann
manchmal auch durch mehrere Kanten verbunden sein
35
GE
DO
45
●
Ein Knoten kann auch ein- oder mehrmals mit sich selbst
verbunden sein (Schleife, english: loop)
GE
GE
Graphen: Einfache Graphen, Multigraphen
●
●
●
Einfache Graphen: Graphen mit nur höchstens einer Kante
zwischen den Knoten jedes Knotenpaars und ohne Schleife
Graphen, in denen mehr als eine Kante zwischen
Knotenpaaren erlaubt sind (und meist auch Loops) nennt
man manchmal auch „Multigraph“ (und „Graph“ steht dann
meist für einfache Graphen)
MERKE: Die Begrifflichkeit ist in Büchern, auf Webseiten
usw. alles andere als einheitlich! Am besten immer genau
die jeweils angegebenen Definitionen anschauen!
GE
35
45
DO
Graph bzw.
Multigraph
Graphen
●
Gerichtete einfache Graphen, manchmal auch mit
Schleifen, können sehr, sehr gut binäre (also zweistellige)
Relationen repräsentieren:
Lisa mag Karl
Lisa mag Eugen
Lisa mag Franz
Franka mag Karl
Eugen mag Lisa
Karl mag Franz
Franz mag Franka
Eugen mag sich selbst
Karl
Lisa
Eugen
Franka
Franz
Knotenmenge V = {Lisa, Franka, Karl, Eugen, Franz }
Graphen
●
Frage: Können wir den unten stehenden Graphen auch so
zeichnen, dass sich keine Kanten schneiden?
Karl
Lisa
Eugen
Franka
Franz
Graphen
●
Antwort: JA!
Franka
Karl
Eugen
Franz
Lisa
Graphen
●
Geht das auch für diesen Graphen?
Hier verwenden wir eine symmetrische Relation, „kennen“,
die wir mit ungerichteten Kanten repräsentieren können
(und so jeweils zwei symmetrische Paare der Relation
zusammen darstellen können)
Lisa kennt Karl
Karl kennt Lisa
Lisa kennt Eugen
Eugen kennt Lisa
Lisa kennt Franz
Franz kennt Lisa
-Franka kennt Karl
Karl kennt Franka
Franka kennt Eugen
Eugen kennt Franka
Franka kennt Franz
Franz kennt Franka
Ulla kennt Karl
Karl kennt Ulla
Ulla kennt Eugen
Eugen kennt Ulla
Lisa
Karl
Franka
Eugen
Ulla
Franz
Graphen
●
Ja!
Karl
Lisa
Eugen
Lisa kennt Karl
Karl kennt Lisa
Lisa kennt Eugen
Eugen kennt Lisa
Lisa kennt Franz
Franz kennt Lisa
-Franka kennt Karl
Karl kennt Franka
Franka kennt Eugen
Eugen kennt Franka
Franka kennt Franz
Franz kennt Franka
Franz
Franka
Ulla kennt Karl
Karl kennt Ulla
Ulla kennt Eugen
Eugen kennt Ulla
Ulla
Graphen
●
Noch etwas anders gezeichnet:
Lisa
Eugen
Lisa kennt Karl
Karl kennt Lisa
Lisa kennt Eugen
Eugen kennt Lisa
Lisa kennt Franz
Franz kennt Lisa
-Franka kennt Karl
Karl kennt Franka
Franka kennt Eugen
Eugen kennt Franka
Franka kennt Franz
Franz kennt Franka
Franz
Ulla
Franka
Ulla kennt Karl
Karl kennt Ulla
Ulla kennt Eugen
Eugen kennt Ulla
Karl
Graphen
●
Wie ist es mit diesem Graphen?
Lisa kennt Karl
Karl kennt Lisa
Lisa kennt Eugen
Eugen kennt Lisa
Lisa kennt Franz
Franz kennt Lisa
-Franka kennt Karl
Karl kennt Franka
Franka kennt Eugen
Eugen kennt Franka
Franka kennt Franz
Franz kennt Franka
Ulla kennt Karl
Karl kennt Ulla
Ulla kennt Eugen
Eugen kennt Ulla
Ulla kennt Franz
Franz kennt Ulla
Lisa
Karl
Franka
Eugen
Ulla
Franz
Graphen
●
Hm, so nicht...
Lisa
Eugen
Lisa kennt Karl
Karl kennt Lisa
Lisa kennt Eugen
Eugen kennt Lisa
Lisa kennt Franz
Franz kennt Lisa
-Franka kennt Karl
Karl kennt Franka
Franka kennt Eugen
Eugen kennt Franka
Franka kennt Franz
Franz kennt Franka
Franz
Ulla
Franka
Ulla kennt Karl
Karl kennt Ulla
Ulla kennt Eugen
Eugen kennt Ulla
Ulla kennt Franz
Franz kennt Ulla
Karl
Graphen
●
Hm, so nicht...
Lisa
Eugen
Lisa kennt Karl
Karl kennt Lisa
Lisa kennt Eugen
Eugen kennt Lisa
Lisa kennt Franz
Franz kennt Lisa
-Franka kennt Karl
Karl kennt Franka
Franka kennt Eugen
Eugen kennt Franka
Franka kennt Franz
Franz kennt Franka
Franz
Ulla
Franka
Ulla kennt Karl
Karl kennt Ulla
Ulla kennt Eugen
Eugen kennt Ulla
Ulla kennt Franz
Franz kennt Ulla
Karl
Graphen
●
●
●
●
●
Es kann gar nicht gehen!
Den „Kreis“
Lisa-Eugen-UllaKarl-Franka-FranzLisa
gibt es nun mal
Lisa
Eugen
Franz
plus eine Kante im
Kreis
plus eine Kante
aussenrum
Ulla
Franka
Karl
Da ist kein Platz mehr für die Kante von Ulla zu Franz!
Graphen: Bipartit
●
Die Relation von eben (auch die davor) zerlegt die Menge
der Knoten in zwei Teilmengen:
●
{Lisa, Franka, Ulla} (die Mädels)
●
{Karl, Eugen, Franz} (die Jungs)
Lisa kennt alle Jungs
Franka kennt alle Jungs
Ulla kennt alle Jungs und untereinander kennen sie
sich nicht!
Karl kennt alle Mädels
Eugen kennt alle Mädels
Franz kennt alle Mädels und untereinander kennen sie
sich nicht!
Lisa
Karl
Franka
Eugen
Ulla
Franz
Mädels
Jungs
Graphen: Bipartit
●
●
Solche Graphen nennt man bipartit (English: bi-partite)
Ein Graph wird bipartit genannt, wenn sich zwei Mengen A,B
finden lassen, so dass V = A ∪ B und für jede Kante e aus E gilt:
ein Endpunkt liegt in A und der andere in B.
Lisa kennt alle Jungs
Franka kennt alle Jungs
Ulla kennt alle Jungs und untereinander kennen sie
sich nicht!
Karl kennt alle Mädels
Eugen kennt alle Mädels
Franz kennt alle Mädels und untereinander kennen sie
sich nicht!
Lisa
Karl
Franka
Eugen
Ulla
Franz
Mädels
Jungs
Graphen: Bipartit
●
Wir könnten bipartite Graphen auch so definieren:
Der Knoten des Graphen lassen sich so mit zwei Farben färben,
dass für jede Kante gilt: sie verbindet Knoten unterschiedlicher
Farbe.
Lisa
Karl
Franka
Eugen
Ulla
Franz
Mädels
Jungs
Graphen: Bipartit
●
... oder wir geben den Knoten unterschiedliche Formen und
ändern die Bedingung entsprechen.
Lisa
Karl
Franka
Eugen
Ulla
Franz
Denken Sie daran: ein Graph hat die Eigenschaft „pipartit“, wenn wir die Knoten
entsprechend der Kantenbedingung umfärben oder anders formen könnten,
wenn ich danach fragen, ob ein Graph bipartit ist, müssen sie nach solch
einer Aufteilung bzw. Färbung bzw. Formänderung suchen und diese angeben!
Graphen: Planarität
●
Schauen wir uns noch einen Graphen an, läßt dieser Graph
sich ohne Kreuzungen zeichnen?
Lisa
Eugen
Ulla
Karl
Franz
Graphen: Planarität
●
Ja!
Lisa
Eugen
Ulla
Karl
Franz
Graphen: Planarität
●
Wenn allerdings jeder hier jeden kennen würde...
Lisa
Eugen
Ulla
Karl
Franz
Graphen: Planarität
●
...geht es leider nicht mehr.
Lisa
Eugen
Ulla
Karl
Franz
Graphen: Planarität
●
●
Der letzte Graph ist ein sogenannter vollständiger Graph
man bezeichnet in mit K5 (für 5 Knoten)
Der bipartite Graph war ein vollständiger bipartiter Graph,
man bezeichnet in mit K3,3 (er setzt 3 Knoten mit 3 anderen
Knoten in vollständig in Beziehung)
Lisa
K5
Eugen
Ulla
K 3,3
Karl
Franz
Lisa
Karl
Franka
Eugen
Ulla
Franz
Graphen: Planarität
●
Klar sollte sein: wenn sie in einem Graph K5 oder K3,3 als
Teilstruktur (sogenannter Teilgraph) finden, dann können
sie den Graph nicht kreuzungsfrei zeichnen.
K 5 als Teilgraph
Eugen
Ulla
Lisa
Karl
Franz
Graphen: Kontraktion/Zusammenziehen
●
Wir werden nun Graphen „zusammenziehen“, in dem wir
Kanten entfernen und ihre beiden Endpunkte zu einem
Knoten zusammenfassen:
schrumpft z.B zu
schrumpft z.B. zu
Graphen: Planare Graphen
●
●
●
●
Es gilt: sie können einen Graph GENAU DANN kreuzungsfrei
zeichnen, wenn sie ihn nicht so schrumpfen können, dass
sie K3,3 oder K5 finden würden (Nichtstun zählt ok)!
Graphen, die man kreuzungsfrei (in der Ebene) zeichnen
kann, nennt man planare Graphen.
Wenn sie einen Graphen so schrumpfen können, dass er
K3,3 oder K5 als Teilgraph enthält, dann lässt er sich nicht
kreuzungsfrei zeichnen – sonst schon!
Es gibt effiziente Algorithmen (d.h. mit polynomialem
Aufwand, sie können dann den Aufwand durch ein Polynom
abschätzen, er ist also NICHT exponentiell), die prüfen
können, ob ein Graph planar ist!
Graphen: Petersen-Graph
●
Wenden wir das einmal auf den sogenannten PetersenGraph an:
wird zu K
5
Der Petersen-Graph ist also nicht planar, klar!
Graphen: Nachbarschaft, Inzidenz
●
Bevor wir weitere Fragestellungen angehen können,
brauchen wir ein wenig Begrifflichkeit:
u
v
w
●
Knoten: u,v,w
●
Kanten: {u,v},{v,w}, kurz auch: uv, vw
●
Die Knoten u und v sind benachbart, ebenso v und w
●
Die Kanten uv und vw sind benachbart (adjazent)
●
Man sagt: uv geht ein in u und v (ist inzident zu u und v)
Graphen: Grad, „Händeschütteln“
u
●
●
w
Grad (Engl.: degree) eines Knoten: die Zahl der Kanten, die
in ihn eingehen (also inzident zu ihm sind). Loops zählen 2
(man zählt also eigentlich die Endpunkte, die den Knoten
berühren)
●
●
v
u und w haben den Grad 1, v hat den Grad 2
Für gerichtete Graphen kann man zwischen In- und OutDegree (Grad) unterscheiden: eingehende und ausgehende
Pfeile
„Satz des Händeschüttelns“: In jedem Graph ist die Summe
der Grade aller Knoten gerade (Euler, 1735)
Graphen: Walk, Kantenzug, Länge
u
●
w
x
y
Walk: uv,vv,vw,wx,xy,yw ist ein „Kantenzug“ bzw. eine
„Wanderung“ von u nach w
●
●
●
v
uv,vv,vw oder uv,vw oder uv,vw,wy,yw oder ...
sind ebenfalls Wanderungen
Startknoten ist jeweils u, Endknoten ist w,
aufeinanderfolgende Kanten im Kantenzug müssen im
Graph benachbart sein
Die Anzahl der Kanten im Kantenzug ist seine Länge.
●
uv,vv,vw,wx,xy,yw hat die Länge 6.
Graphen: Kantenzug
u
●
●
v
w
x
y
Wir können den Kantenzug auch als Folge der Knoten, die
besucht werden, angeben (natürlich in der Reihenfolge
ihres Besuchs, auch oft ohne Klammern):
●
(u,v,v,w,x,y,w) für uv,vv,vw,wx,xy,yw
●
(u,v,v,w) für uv,vv,vw
●
(u,v,w) für uv,vw
●
(u,v,w,y,w) für uv,vw,wy,yw
Oder so: z.B. u → v → v → w für uv,vv,vw
Graphen: Trail, Path
u
●
●
v
w
x
y
Eine Wanderung, in der sich keine Kanten wiederholen,
heißt Trail (Spur)
Ein Trail, in dem sich keine Knoten wiederholen (nur Startund Endpunkt dürfen gleich sein), heißt Path (Pfad, Weg)
●
uv,vv,vw,wx,xy,yw ist ein Trail, aber kein Pfad
●
uv,vv,vw ist ebenfalls Trail, aber nicht Pfad
●
uv,vw ist ein Pfad
●
uv,vw,wy,yw ist nur Kantenzug, nicht Trail oder Pfad
Graphen: Geschlossenheit, Zyklen
u
●
v
w
x
y
Kantenzug, Trail bzw. Pfad heißen geschlossen, wenn Startund Endpunkt identisch sind.
●
v,v und w,x,y,w und v,w,v sind geschlossene Kantenzüge
(hier und unten als Knotenliste ohne Klammern angegeben, s. Folie 32)
●
●
●
v,v und w,x,y,w sind auch geschlossene Pfade
●
u ist ein geschlossener Kantenzug (ohne Kante ;)
Ein geschlossener Pfad, der mindestens eine Kante enthält,
wird Cycle (Kreis,Zyklus) genannt.
Hinweis: Geschlossene Kantenzüge nennt man manchmal
auch schon Kreis in der Literatur.
Graphen: Bipartite Graphen
●
Zurück zu der Frage, ob ein Graph bipartit ist oder nicht.
Ist der folgende Graph bipartit?
Bitte, probieren sie es aus!
Graphen: Bipartite Graphen
●
Ist der folgende Graph bipartit?
Ja!
v
b
c
a
u
w
d
a
u
b
v
c
w
d
Graphen: Bipartite Graphen
●
Wie kann ich prüfen, ob ein Graph bipartit ist?
Satz: Ein Graph G ist genau dann bipartit, wenn jeder Cycle
in G eine gerade Länge hat.
v
b
c
a
u
w
d
Wieviele Cyclen (also geschlossene Pfade) hat der Graph?
Graphen: Bipartite Graphen
●
Satz: Ein Graph G ist genau dann bipartit, wenn jeder Cycle
in G eine gerade Länge hat.
7 Cyclen, 3 der Länge 4, 4 der Länge 6, alle gerade => bipartit
Graphen: Bipartite Graphen
●
Satz: Ein Graph G ist genau dann bi-partit, wenn jeder Cycle
in G eine gerade Länge hat.
usw.
usw.
Der Graph hat Cyclen mit gerader Länge, aber auch welche
mit ungerader Länge! Er ist nicht bi-partit!
Graphen: Verbundene Graphen
u
●
●
●
w
x
y
Ein (ungerichteter) Graph heißt verbunden (connected)
bzw. zusammenhängend, wenn es von jedem Knoten einen
Weg zu jedem anderen Knoten gibt.
●
●
v
Der obige Graph mit den Knoten u,v,w,x,y und den
eingezeichneten Kanten ist nicht verbunden.
Fügt man die Kante vw wieder hinzu, ist er verbunden.
Maximale verbundene Teilgraphen nennt man
Komponenten, oben gibt es zwei Komponenten.
Alle Komponenten gemeinsam ergeben den Graph.
Graphen: Eulersche Graphen
u
●
w
x
y
Ein (ungerichteter) verbundener Graph heißt eulersch,
wenn er einen geschlossenen Kantenzug enthält, an dem
jede Kante genau einmal teilnimmt (damit ist es ein Trail)
●
●
●
v
Der linke Graph oben ist nicht eulersch
Der rechte ist eulersch: wy,yy,yx,xw ist ein geschlossener
Trail, in dem alle Kanten vorkommen
Ein nicht-eulerscher Graph ist semi-eulersch, wenn es einen
(nicht-geschlossenen) Trail gibt, der alle Kanten enthält. Der
linke Graph ist semi-eulersch.
Graphen: Eulersche Graphen
●
●
Das Haus vom Nikolaus ist ein semi-eulerscher Graph!
Genau dann (d.h. dann und NUR dann), wenn ein Graph
eulersch oder semi-eulersch ist, gibt es eine Möglichkeit,
ihn ohne Absetzen und ohne mehrfaches Abfahren einer
Kante zu zeichen.
Graphen: Eulersche Graphen
●
Das Boot vom Nikolaus ist sogar eulersch!
PS: Das Boot ist im Winterlager eingelagert, deshalb steht es hochkant.
Graphen: Eulersche Graphen
●
●
Satz: Ein zusammenhängender Graph ist genau dann
eulersch, wenn er nur Knoten mit einem geraden Grad
enthält – ein sehr einfach zu prüfendes Argument!
Zumindest die Richtung „Eulersch“ => „gerader Grad“ ist
leicht einzusehen:
–
Wann immer der Trail durch einen „inneren“ Knoten läuft,
geht eine Kante hinein und eine hinaus (das erhöht den
...
...
Knotengrad um 2)
–
Kommt ein Knoten (auch) als Start/Endknoten vor, geht die
erste Kante des Trails hinaus, die letzte hinein, also erhöhen
sie gemeinsam den Grad diese Knotens um 2
–
Insgesamt ist die Gradzahl eines jeden „inneren“ Knotens also
„Anzahl Auftreten im Trail“ * 2, für Start/End-Knoten kommen
noch 2 hinzu.
Graphen: Semi-Eulersche Graphen
●
●
Satz: Ein zusammenhängender Graph ist genau dann semieulersch, wenn er genau zwei Knoten mit einem ungeraden
Grad enthält!
Auch sehr einfach zu prüfen. Hier das Haus vom Nikolaus
mit den Gradzahlen an den Knoten:
c
2
4 d
b
e
a
3
4
3
Trail dazu: a → b → c → d → e → b → d → a → e
Graphen: Eulersche Graphen
●
Was noch fehlt, ist ein Algorithmus hierzu, der einen semieulerschen Graphen korrekt abfährt. Mögliche Idee:
Wir löschen von jedem ungeraden Knoten eine Kante zu einem geraden
Knoten, merken uns ihre Orientierung (zum Endknoten, vom Startknoten
weg), reduzieren die Gradzahl der beteiligten Knoten um 1 und
wiederholen. Hierbei dürfen die gewählten Kanten nur im gleichen Knoten
enden, wenn es gar nicht anders geht.
2
2
1
0
4
4
3
3 2
2
1
2
3
3
2
2 2
1
1
0
Treffpunkt der
Teil-Trails
Graphen: Eulersche Graphen
●
●
●
●
Geht es wirklich so einfach oder kann der kleine Algo in
Situationen geraten, in denen es nicht weiter geht (obwohl
es einen Trail gäbe...)? Probieren Sie!
Aber zumindest kann man auf diese Art sicher alle
„Lösungskandidaten“ erzeugen (wenn man ihn auf jede
mögliche Art und Weise anwendet, also alle Alternativen
ausprobiert) – die richtige Lösung muss dabei sein!
Wie man es tatsächlich macht, werden wir in ADS sehen.
Aber wir halten schon einmal fest: Es gibt effiziente
Algorithmen zur Prüfung, ob ein Graph eulersch ist und zur
Erzeugung einer Euler-Tour (die alle Kanten abläuft – wenn
dies möglich ist)
Graphen: Hamiltonische Graphen
u
●
●
●
w
x
y
Ein Zyklus, der jeden Knoten (genau einmal) durchläuft,
wird hamiltonischer Zyklus (hamiltonian cycle) genannt.
●
●
v
Das „genau einmal“ ist eine Konsequenz aus der Definition eines Zyklus
(Weg!), das hätten wir also auch weglassen können
Ein Graph, der einen hamiltonischen Zyklus enthält, wird
hamiltonischer Graph genannt.
Ein nicht-hamiltonischer Graph, der einen Pfad enthält, der
alle Knoten durchläuft, wird semi-hamiltonisch genannt.
Links: semi-hamiltonisch; Mitte: hamiltonisch; Recht: nichts
Graphen: Hamiltonische Graphen
●
●
●
●
Die Fragen, ob es einen geschlossenen Trail, der alle Kanten
verwendet, gibt oder ob es einen geschlossenen Pfad gibt,
der alle Knoten besucht, sehen sehr ähnlich aus.
Aber: Es ist kein effizienter Algorithmus bekannt, um
festzustellen, ob ein Graph hamiltonisch ist.
Nimmt man in vollständigen Graphen Kantengewichte
hinzu und fragt nach einem hamiltonischen Zyklus
minimaler Länge (es kann ja mehrere geben!), so hat
man ein Traveling Salesman Problem (TSP) vor sich.
Auch für das TSP sind keine effizienten Algorithmen
bekannt.
Graphen: TSP
Diese und die folgende Abbildung stammen aus
Kombinatorische Optimierung I, Marcus Porembski, 2003, möglicherweise ist das
nicht die Originalquelle.
Graphen: TSP
Sehr schöne Quelle für weitere Informationen zum TSP:
Martin Grötschel: Vortrag The Travelling Salesman Problem and its applications
auf dem internationalen Workshop Combinatorial Optimization at Work II
Graphen: TSP
●
●
Übrigens ist das Bohr-Beispiel so möglicherweise nicht ganz
so praxisrelevant, wie es auf den ersten Blick aussieht:
Wenn wir unterstellen, dass es nur eine gewisse Anzahl m
von horizontalen oder vertikalen Linien gibt, auf denen sich
Bohrungen befinden können und nun m fixe Bohrer, die wir
unabhängig heben und senken können, nebeneinander
installieren und parallel über die Platine fahren, dann
können wir die Platine in einer Zeit proportional zur Höhe
oder Breite der Platine bohren – unabhängig von der
Tourlänge - und viel schneller als der Einzelbohrer, der
„fahren“ muss (oder die Platine „unter ihm“) und Zeit
proportional zur Tourlänge braucht!
Graphen: TSP
●
●
Weitere Infos zum TSP: http://www.tsp.gatech.edu/
Genau genommen haben wir übrigens stillschweigend
sogenannte symmetrische TSPs betrachtet: zwischen jedem
Knotenpaar gab es genau eine ungerichtete Kante (Rückund Hinreise sind damit gleich teuer). Mit Hin- und
Rückkante mit möglicherweise unterschiedlichen
Gewichten wird das nicht unbedingt leichter...
(asymmetrische TSPs)
Graphen: Chinese Postman Problem
●
Beim Chinese-Postman-Problem wird nach einer Reise
gesucht, die den Postmann vom Start zum Ausgangspunkt
zurückführt, alle Kanten mindestens einmal abläuft und
möglichst wenig zusätzliche Strecke zurücklegt.
●
Für nicht-negative Gewichte ist ein effizienter
Algorithmus bekannt (man kann gewisse Kanten
hinzunehmen und nach einer Euler-Tour suchen).
Graphen: Weitere Probleme
●
●
●
Kürzeste Wege finden (Dijkstra, Moore-Bellman-Ford, FloydWarshal)
Kritische Pfade bestimmen, Minimale Spannbäume finden
Topologische Sortierung, Färbungen, Matchings
(„Heiratsproblem“)
●
Maximale-Flüsse/Minimale-Schnitte bestimmen
●
...
●
mit zahllosen Anwendungen in der Praxis.
●
Einiges hierzu wird Ihnen in ADS begegnen!
Graphen: Literatur
●
●
●
●
Begrifflichkeit hier angelehnt an „Introduction to Graph
Theory“ von Robin J. Wilson, Pearson 2010
Diverse Probleme und Resultate werden knapp und gut in
„Ideen der Informatik“ von U. Schöning; Oldenbourg
vorgestellt
Ein schönes einführendes Buch in das Problemlösen mit
Graphen ist „Das Geheimnis des kürzesten Wegs“,
Gritzmann, Brandenberg; Springer
Eine präzise akademische Perspektive (und viele weitere
Literaturverweise) finden sie z.B. im Skript
Graphen- und Netzwerkalgorithmen von M. Grötschel, ZIB
(einer der herausragenden Experten zum Thema
kombinatorische Optimierung)
Graphen: Aufgaben
●
●
●
●
Gegeben: eine Relation. Zeichnen sie den Graphen mit
möglichst wenigen Kreuzungen (wenn er planar ist: ohne
Kreuzungen). Ist er bipartit? Wenn ja, wie sieht eine
entsprechende Zerlegung/Färbung der Knoten aus?
Gegeben: ein kleiner verbundener Graph. Finden sie alle
Zyklen. Ist der Graph planar? Ist er eulersch? Ist er semieulersch? Ist er hamiltonisch? Ist er semi-hamiltonisch?
Gegeben ein eulerscher Graph, finden Sie eine Euler-Tour.
Gegeben ein hamiltonischer Graph, finden sie eine
hamiltonische Rundtour.
Gegeben: ein (kleiner) vollständiger Graph (vorgegeben z.B.
als Dreiecksmatrix), finden Sie eine optimale TSP-Rundtour.
Herunterladen