Grundbegriffe der Graphentheorie 2

Aus ProgrammingWiki
Archivierte Version vom 2015-10-29T16:55:11+00:00. Aktuelle Version

Inhaltsverzeichnis

Maik Geier, Anna Bremensztul

Ich:
- Die Einführung und eine kleine Wiederholung
- Bipartiter Graph
- Baeume + Waelder

Maik :
-Gerichtete Graphen und Multigraphen
- Bewertete Graphen
- Gozinto-Graphen

Zusammen:
- Zusammenfassung
- Uebung


Die Einführung und eine kleine Wiederholung

  • Die Graphentheorie ist ein Teilgebiet der Mathematik, das die Eigenschaften von Graphen und ihre Beziehungen zueinander untersucht.
  • Ein Graph besteht aus einer Menge von Punkten (Knoten,Ecken) zwischen denen Linien(Kanten, Bögen) verlaufen.
  • Der Grad eines Knotens ist die Summe der Kardinalitäten der Mengen von geordneten Paaren, welche in E enthalten sein müssen, die diesen Knoten als erstes oder zweites Paarelement haben.
  • Isomorphie --> Gleichstrukturiertheit von Graphen G∼G′


S3anbrem_1.png


Wo können wir die verschiedene Graphen benutzen?

„In der Mathematik ist die Kunst des Fragestellens öfter gebräuchlich als die des Lösens!“

  • Verkehrswege zwischen Städten – kürzeste Wege
  • Transportwege mit Kapazitäten – maximale Flüsse
  • Zugmöglichkeiten in Spielen – Gewinnstrategien
  • Beispiele dafür sind auch die Netzwerke(Verkehr, Daten), Datenstrukturen oder Rechnerarchitektur.


Wir können verschiedene Darstellungen von Graphen benutzen:
1. Darstellung als Zeichnung:
S3anbrem_Darstellung1.JPG
2. Darstellung als Adjazenzmatrix
Jedem Knoten wird eine Zeile und eine Spalte zugeordnet und der Eintrag in der Zeile von u und der Spalte von v wird 1 gesetzt, wenn {u, v} eine Kante des Graphen ist (sonst 0):

S3anbrem_Darstellung2.JPG

3. Darstellung als Adjazenzliste.
Für jeden Knoten wird die Liste seiner Nachbarn angegeben (Liste von Listen):
1 : 2; 2 : 1, 4, 5; 3 : 4, 5; 4 : 2, 3, 5; 5 : 2, 3, 4; oder mit anderer Syntax (2),(1, 4, 5),(4, 5),(2, 3, 5),(2, 3, 4)

4. Darstellung als Inzidenzmatrix. Jedem Knoten wird eine Zeile und jeder Kante eine Spalte zugeordnet und der Eintrag in der Zeile von u und der Spalte von e wird 1 gesetzt, wenn u eine Ecke der Kante e ist (sonst 0):

S3anbrem_Darstellung3.JPG

Für die Behandlung algorithmischer Probleme sind oft Adjazenzlisten die Datenstruktur der Wahl, weil sie die wahre Größe eines Graphen (Anzahl der Kanten) widerspiegeln.


Dagegen möchten wir heute andere Typen von Graphen vorstellen.
1. Bipartite Graphen.
2. Gerichtete Graphen und Multigraphen
3. Bewertete Graphen
4. Bäume und Wälder
5. Gozinto-Graphen

Bipartite Graphen

Ein bipartiter oder paarer Graph ist ein mathematisches Modell für Beziehungen zwischen den Elementen zweier Mengen.

Definitionen

Bipartiter Graph
Ein Graph G = (V,E) (V Menge der Knoten, E Menge der Kanten) heißt bipartit, wenn man seine Knoten so in zwei Teilmengen S und T aufteilen kann, das gilt:

  • S und T besitzen keine gemeinsames Element (disjunkt) und ergeben zusammen alle Knoten
  • Kanten verlaufen immer nur von einer Teilmenge zur Anderen.

    Zwischen den Knoten, innerhalb beider Teilmengen, verlaufen keine Kanten

S3anbrem_1234.JPG

Vollständig Bipartit

Der Graph G heißt vollständig bipartit, wenn jeder Knoten aus S mit jedem Knoten aus T verbunden ist. Einen solchen Graphen bezeichnet man auch als K{m,n}, wobei m und n jeweils die Anzahl der Knoten von S und T sind. Die Kantenanzahl des vollständigen bipartiten Graphen lässt sich mit folgender Formel berechnen:

S3anbrem_Bip3.jpg

Ein vollständig bipartiter Graph, bei dem m=1 oder n=1 ist, heißt Sterngraph.


n-partit

Ein n- partiter Graph G = (V,E) ist ein Graph, dessen Knotenmenge in n Teilmengen unterteilt werden kann, sodass es keine Kante zwischen zwei Knoten der selben Teilmenge gibt. Einen n-partiten Graph mit maximal möglicher Kantenzahl nennt man ebenfalls vollständig n-partit und bezeichnet ihn mit K{r...rn}

S3anbrem_Bip1.JPG


Matchings

Eine Menge M von unabhängigen Kanten in einem Graphen G = (V,E) nennt man ein Matching. Man nennt M ein Matching von U V, wenn jeder Knoten aus U mit einer Kante aus M inzident ist.

Sei G = (V,E) bipartit mit V = S u T

  1. Ein Matching (oder Paarung) ist eine Teilmange E0 gehoert zu E der Kantenmenge, so dass jeder Knoten mit maximal einer Kante aus E_0 inzident ist.
  2. Ein Matching heisst maximal, wenn es kein anderes Matching gibt, das mehr Kanten enthält.
  3. Eine vollständige Paarung ist ein maximales Matching E0 und defniert eine bijektive Abbildung (1:1-Zuordnung) S->T, so dass jeder Knoten mit einer Kante aus E0 inzident ist. Nur möglich wenn |S|==|T|.

S3anbrem_Matching0.JPG


Abbildung: Benutzung des Flusses in einem Netzwerk zur Bestimmung einer maximalen Paarung in einem bipartiten Graph.

S3anbrem_Ab.gif

Eigenschaft 34.1 Eine maximale Paarung in einem bipartiten Graph kann in O(V3) Schritten gefunden werden, falls der Graph dicht ist, oder in O(V(E + V) log V) Schritten, wenn der Graph licht ist.

Eigenschaften

  • Ein Graph ist genau dann bipartit, wenn es keinen aus einer ungeraden Anzahl von Kanten bestehenden geschlossenen Weg gibt.
  • Bei einem zusammenhaengenden bipartiten Graphen ist die Zerlegung V=S u T eindeutig bestimmt.
  • Ist G=(V,E) bipartit mit V = S u T , so gilt:

    Bei einem aus einer geraden Anzahl von Kanten bestehenden Weg gehoeren Start- und Endpunkt zur selben Menge S oder T, bei einem aus einer ungeraden Anzahl von Kanten bestehenden Weg gehoeren Start- und Endpunkt zu verschiedenen Mengen.


Anwendung (Vorzeigen)

Biparität eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen (Optimierungsproblem). Des Weiteren lassen sich für bipartite Graphen viele Grapheneigenschaften mit deutlich weniger Aufwand berechnen als dies im allgemeinen Fall möglich ist.


Beispiel zu Bipartität In einem Dorf gibt es drei Häuser und drei Brunnen. Jedes der Häuser soll nun mit jedem der Brunnen durch einen Weg verbunden werden. Modelliert man dieses Problem mithilfe eines Graphen.

S3anbrem_Bip2.jpg

  • Dieser Graph kommt auch als sogenannter GEW-Graph vor. Dieser Name basiert auf einer äquivalenten Realisierung des Problems mit drei Häusern und Werken für Gas, Elektrizität und Wasser.
  • Die Menge der 6 Knoten lässt sich in 2 Teilmengen einteilen: die Häuser und die Brunnen. Dazwischen werden Kanten gezeichnet, aber innerhalb der Teilmengen finden sich keine Kanten: Kein Haus soll etwa mit einem anderen verbundenwerden.

Beispiel: Konstruktion maximale Matchings Algorithmus vorstellen und vorzeigen

Übung

Wie viele Zusammenhangskomponenten hat der Graph


Ist der Graph bipartit?:

Konstruktion einer Zerlegung V = S u T (evtl als Übung)

- durch Markierung der Knoten eines zusammenhängenden (ungerichteten) Graphen:

  1. Markiere einen (beliebigen) Startknoten mit s.
  2. Markiere alle Nachbarknoten des Startknotens mit t.
  3. Markiere alle noch unmarkierten Knoten, die einen mit t markierten Nachbarknoten haben, mit s, sowie alle noch unmarkierten Knoten, die einen mit s markierten Nachbarknoten haben, mit t.
  4. Wiederhole Schritt 3 so lange, bis entweder

- alle Knoten markiert sind oder
- zwei benachbarte Knoten die gleiche Markierung haben.In diesem Fall ist der Graph nicht bipartit und der Algorithmus kann abgebrochen werden.

Kantenanzahl des vollständigen bipartiten Graphen

S3anbrem_Bip3.jpg

Die Anzahl der Graphen mit n = 1,2,,... Knoten betragt 1, 2, 3, 7, 13, 35, 88, 303
S3anbrem_BipartiteGraphs.gif

Die Anzahl der Verbindung für n = 1,2,... betragt 1,1,1,3,5,17,44.

S3anbrem_BipartiteGraphs2.JPG

S3anbrem_1b2.jpg S3anbrem_11.jpg

Gerichtete Graphen und Multigraphen




Bewertete Graphen





Bäume und Wälder

Ein (ungerichteter) Graph ist ein Baum, wenn er zusammenhängend ist und keinen Kreis enthält.

S3anbrem_Baum01.JPG

Die Abbildung zeigt drei Bäume, die zusammen einen Wald bilden. Also ein (ungerichteter) Graph, dessen Zusammenhangskomponenten Bäume sind, wird ein Wald genannt, d.h. jeder kreisfreie Graph ist ein Wald.

Satz: Sei G = (V, E) ein Graph, dann sind die folgenden drei Bedingungen aquivalent:
1. G ist ein Baum.
2. Je zwei Ecken von G sind durch genau einen Weg verbunden.
3. G ist zusammenhängend und |E| = |V| − 1


  • Für den Informatiker sind Bäume ein sehr wichtiges Werkzeug.
  • Dabei stellt die Tatsache, daß sich eine Reihe praktischer Problemstellungen auf die Konstruktion von aufspannenden Bäume (bzw. Wäldern)zurückführen lassen, nur einen Teilaspekt des gesamten Anwendungsspektrums dar.
  • In der theoretischen Informatik dienen

    sogenannte Entscheidungsbäume als Modell für Berechnungen.

  • Schließlich spielen

    Bäume als Datenstruktur für Such- und Sortierprozesse eine wichtige Rolle

Beispiel 1

Die folgende Abbildung zeigt einen aus vier Baeumen bestehenden Wald.


Beispiel 2

Die folgende Abbildung zeigt die Liste aller Baume mit 6 Knoten

Gozinto-Graphen





Zusammenfassung

Ein Graph besteht aus 
– Knoten
– Kanten
Knoten sind einfache Objekte mit Namen. 
Sie können Werte, Eigenschaften, etc. beinhalten.
Sie werden meist als Kreise dargestellt.
Kanten sind Verbindungen zwischen Knoten.
Sie werden durch Pfeile dargestellt.
Multigraph: Es kann mehr als eine Kante zwischen denselben Knoten geben.
Existiert für mind. ein Paar (x,y) kein Paar (y,x),so nennt man den Graphen gerichtet.
Bei einem  bewerteten Graphen ist jeder Kante ein Wert  zugeordnet. 
Existiert für jedes Paar (x,y) auch ein Paar (y,x), so nennt man den Graphen ungerichtet.

Bibliografie

André Krischke, Helge Röpcke - Graphen und Netzwerktheorie

http://www.uni-protokolle.de/Lexikon/Typen_von_Graphen_in_der_Graphentheorie.html#Wichtige_spezielle_Graphen

https://de.wikipedia.org/wiki/Graphentheorie
http://www2.cs.uni-paderborn.de/cs/ag-klbue/de/courses/ws09/model/folien/kb-graphen.pdf
http://wvsg.schulen2.regensburg.de/joomla/images/Faecher/Informatik/Informatik_11/informatik_11_3_1_Einfache%20Graphen.html
http://www14.in.tum.de/lehre/2010WS/ds/2011-02-01.pdf
https://www2.informatik.hu-berlin.de/alkox/lehre/lvss03/ti03/vl1507.pdf http://www.stefan-enderle.de/SS08/GrundlagenDerInformatik-II-3-Graphen.pdf

http://mathworld.wolfram.com/BipartiteGraph.html