Übung Grundbegriffe der Graphentheorie 1

Aus ProgrammingWiki
Archivierte Version vom 2015-11-02T20:11:43+00:00. Aktuelle Version

Inhaltsverzeichnis

Datenstrukturen für Graphen

  • Gegeben ist folgendes IGraph Interface mit einer Hilfsklasse Edge zur einfacheren Behandlung von Kanten

Aufgabe

  • Erstelle 2 Klassen die das IGraph Interface implementieren
    1. als Adjazenzmatrix
    2. als Adjazenzliste
  • Analysiere empirisch die Effizienz dieser beiden Datenstrukturen hinsichtlich
    1. Speicherbedarf
    2. Ermittlung des Knotengrades
    3. Prüfung auf Adjazenz zweier Knoten

Hilfestellung

  • Es wird ein Graph-Generator bereitgestellt, der das IGraph Interface benutzt um zufällige Graphen zu erzeugen
  • Mit generate werden dem Graph g eine entsprechende Menge von Knoten (cntVertex) und Kanten (cntEdges) zur Initialisierung übergeben
  • Die richtige Umsetzung der Speicherung wird mit den Funktionen getVertices und getEdges automatisch geprüft
  • Deine implementierte Klasse YourGraph könnte also folgendermaßen mit einem Zufallsgraphen getestet werden
Lösungen

RaZ_GraphAdjMatList.zip
RaZ_Effizienz.png

Grundbegriffe

Ghx8 ;_FFahrrad.png

Aufgabe - Zuordnung

KnotenKantenzuggeschlossener Kantenzugeinfacher WegWegeinfacher KreisKreis
{A,B,C}
Details

nein

Details

nein

Details

ja

Details

ja

Details

nein

Details

nein

{M,G,H,M}
Details

nein

Details

nein

Details

nein

Details

nein

Details

ja

Details

ja

{L,M,G,H,M,L}
Details

nein

Details

ja

Details

nein

Details

nein

Details

nein

Details

nein

{Q,O,N,P,Q,M}
Details

nein

Details

nein

Details

nein

Details

ja

Details

nein

Details

nein

{G,E,D,G,F,D,G,E}
Details

ja

Details

nein

Details

nein

Details

nein

Details

nein

Details

nein

{L,H,G,E,D,G,M,L}
Details

nein

Details

nein

Details

nein

Details

nein

Details

nein

Details

ja

Aufgabe - Strukturelle Umformungen

a) Finde mindestens zwei Artikulationen.

Konten {J} und {L}


b) Finde mindestens zwei Brücken.

Kanten {Q,M} und {J,K}


c) Führe eine Kontraktion mit K durch.

Ergebnis: Kante {J,K} und Knoten {K} werden entfernt, sodass ein Fahrrad ohne Lenkrad übrigbleibt

Aufgabe - Teilgraphen

a) Finde zwei Untergraphen

Ghx8 ;_RadUntergraph.png Ghx8 ;_RadUntergraphB.png


b) Skizziere aus einem Untergraphen verschiedene Teilgraphen

Ghx8 ;_RadinduzteilgraphB.png Ghx8 ;_RadTeilgraphA.png Ghx8 ;_RadTeilgraphB.png

c) Erstelle einen induzierten Teilgraphen aus einem Rad

Ghx8 ;_RadUntergraphB.png


d) Erstelle einen spannenden Teilgraphen aus einem Rad

Ghx8 ;_RadinduzteilgraphB.png

Aufgabe

Stell den Punkt I auf G um (gedanklich). Führe folgende Operationen durch:

a) Vereinigung

b) Durschnitt

c) Differenz

d) Erstelle aus einem Rad den Komplementärgraph