Proseminar „Algorithmen auf Graphen“

Slides:



Advertisements
Ähnliche Präsentationen
Schnelle Matrizenoperationen von Christian Büttner
Advertisements

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Frozen Development in Graph Coloring
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Ziele der Analyse sozialer Netzwerke in den Sozialwissenschaften
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
Sortierverfahren Richard Göbel.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Algorithmen und Datenstrukturen
Lösung linearer Gleichungssysteme
WS 02/03 Netzwerkevon B. Frielinghaus Netzwerke Erzeugung und Änderung.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Algorithmen des Internets 2005 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität 1 Materialien zu Übung 9 Bälle in Körbe Ranged.
Schiller-Gymnasium Hof Manuel Friedrich OStR,
Vortrag über Graphen Von Jörg Hendricks.
Wie Google Webseiten bewertet
Datenverteilung in Ad-hoc Netzen 1/24 Adaptive Datenverteilung in mobilen Ad-hoc Netzen unter Verwendung des Area Graph basierten Bewegungsmodells S. Bittner,
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Effiziente Algorithmen
Effiziente Algorithmen
Chromatische Zahl.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Graphen Kombinatorik, Zufall, Algorithmen Konstantinos Panagiotou muenchen.de/~kpanagio/GraphsSS12.php.
Einführung in die Matrizenrechnung
Institut für Theoretische Informatik
Institut für Theoretische Informatik
K-SAT: Ein heuristischer Algorithmen- Vergleich Kann man den Brute Force Search Algorithmus schlagen?
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Graphen und Bäume.
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Peer-to-Peer-Netzwerke
Analyse der Laufzeit von Algorithmen
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VIII Christian Schindelhauer
Eine kurze Geschichte der Graphentheorie
HEINZ NIXDORF INSTITUT Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Algorithmische Probleme in Funknetzwerken XIII Klaus.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken VI Christian Schindelhauer
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Anwendung der Ellipsoidmethode in der Kombinatorischen Optimierung
Binärer Baum, Binärer Suchbaum I
Gliederung Grundlagen (Polytope) Platonische Körper (1. Beweis)
Stabile Hochzeiten, Zuweisungsspiele und beides gleichzeitig
Färben der Knoten von Graphen
Matchings (Paarungen) in Graphen
Gliederung der Vorlesung
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
 Präsentation transkript:

Proseminar „Algorithmen auf Graphen“ Zufälliges Erzeugen von Graphen und Bayes-Netzen Björn Schapitz, CV04, 20.06.2006

Gliederung Einleitung Geschichtliches Algorithmen / Beispiele Anschauliches Vorgehen Zufällige Adjazenzmatrix Zufällige Kantenanordnung Rekursive Erzeugung One-Pass-Algorithm Zufällige Bayes-Netze Zusammenfassung

Gründe zur Beschäftigung mit zufälligen Graphen Beweise führen (Nachweise der Existenz von Graphen mit bestimmten Eigenschaften) Modellierung von großen, unüberschaubaren Strukturen (z.B. Netzwerke, Internet) Einleitung

Arten zufälliger Graphen echt zufällige Graphen Oft bestimmte Eigenschaften benötigt: Begrenzt maximale Cliquen Verhältnis Kanten/Knoten (Dichte) Zusammenhängend ?

Geschichtliches Paul Erdös ungarischer Mathematiker * 26.03.1913, † 20.09.96 Entwickelte die „Probabilistische Methode“ zum Beweis seines Satzes: „Es gibt Graphen, die gleichzeitig beliebig hohe Taillenweite und beliebig hohe chromatische Zahl haben.“

Anschauliches Vorgehen Leeren Graphen mit n Knoten erzeugen Wahrscheinlichkeitszahl p mit 0 ≤ p ≤ 1erzeugen Für jedes Tupel (n1,n2) mit (n1≠n2) entscheiden, ob Kante gesetzt wird Beispiel:

Zufällige Adjazenzmatrix n Knoten: n x n Matrix erzeugen Mit Nullen füllen Wahrscheinlichkeitszahl p erzeugen: 0 ≤ p ≤ 1 Für jedes Element der oberen Dreiecksmatrix (ohne Hauptdiagonale): Zufallszahl x erzeugen: 0 ≤ x ≤ 1 Wenn x > p, Element auf 1 setzen

Beispiel 1 Zufallsgraph mit 5 Knoten 5 x 5 Matrix erzeugen n1 n2 n3 n4

Beispiel 1 Wahrscheinlichkeit p erzeugen p = 0.5 Für jedes Element oberhalb der Hauptdiagonalen Zufallszahl x erzeugen falls x > p, Matrixelement anpassen n1 n2 n3 n4 n5 1

Beispiel 1 Graph anhand Adjazenzmatrix aufbauen n1 n2 n3 n4 n5 1

Eigenschaften so erzeugter Graphen Erzeugt echt zufällige Graphen Anzahl der Kanten über p beeinflussbar Nicht immer zusammenhängend Komplexität: O(n2)

Zufällige Kantenanordnung Leeren Graphen mit n Knoten erzeugen Anzahl der Kanten e zwischen 0 und emax wählen 1 bis e mal: p und q von 1..n wählen, so dass p<q Kante von p nach q erzeugen

Beispiel 2 Leeren Graph mit 5 Knoten erzeugen emax = 10 (max. Anzahl Kanten ohne Loops = (n(n-1))/2 e zufällig aus 1 bis 10: e = 8

Beispiel 2 1 bis 8 mal p und q aus 1..n wählen (mit p<q): p=2 q=3; p=4 q=5; p=1 q=2; p=1 q=3; p=1 q=4; p=3 q=5; p=1 q=5; p=2 q=5; Kante von np nach nq setzen

Eigenschaften so erzeugter Graphen gezieltes Setzen von e = feste Kantenanzahl Durch geeignete Wahl von p und q kann die max. Anzahl der Eltern und Kinder beeinflusst werden Sind nicht immer zusammenhängend Laufzeit: abhängig von e Komplexität: bis zu O(n2)

Rekursive Erzeugung Basiert auf der Formel von R.W. Robinson, Anzahl möglicher Graphen mit n Knoten und k Wurzeln ist an(k), mit Wiederholte rekursive Zerlegung in Wurzeln und Rest-Knoten Für alle möglichen Wurzel-Anzahlen s des Teilgraphen alle Kombinationen aufsummieren

Rekursive Erzeugung - Algorithmus Umkehrung der Berechnungsformel zur Berechnung eines Graphen (benötigt Knotenmenge V und Wurzelanzahl k) Zufällig k Wurzeln wählen: K V, |K| = k Zufällig s aus 1..(n-k) wählen, dabei beachten: (s wird für die Erzeugung von S V\K benötigt)

Rekursive Erzeugung - Algorithmus Wähle zufällig und unabhängig voneinander s nichtleere Teilmengen aus K  Eltern für jedes Element aus S Wähle zufällig und unabhängig voneinander (n-k-s) Teilmengen (dürfen leer sein) aus K  Eltern für Elemente aus V\K\S Benutze diesen Algorithmus rekursiv, um aus V \ K als Knotenmenge und s als Anzahl der Wurzeln einen azyklischen Graphen mit den Wurzel-Knoten S zu erzeugen Bei zufälliger Bestimmung von k muss P(k)=an(k)/an gelten.

Rekursive Erzeugung - Eigenschaften Vorteile: Variation von k und s  hoher/breiter Graph Rekursive topologische Aufspaltung  einfacheres Ermitteln von Attribut-Abhängigkeiten Nachteile: Nicht immer zusammenhängend an(k) müssen für alle Kombinationen von k und n berechnet und zwischengespeichert werden (a1=1, a2=3, a3=25, … , a7=1.138.779.265!!!) Komplexität: O(n2)

One-Pass-Algorithm Erzeugt in einem Schritt einen zusammenhängenden Graphen Anzahl Knoten n und Wurzeln r muss bekannt sein Maximaler Eingangsgrad m ist begrenzt

One-Pass-Algorithm Notwendige Bedingungen: n ≥ 2  sinnvoller Graph muss mindestens 2 Knoten haben 1 ≤ r < n  mindestens eine Wurzel 1 ≤ m < n  zusammenhängender Graph

One-Pass-Algorithm Einschränkungen von n, r und m: wenn r ≥ m, dann m(n-r) ≥ n-1 sonst m(n-r) + m(m-1)-r(r-1) ≥ n-1 2 Eingabe: Knoten n, Wurzeln r und maximaler Eingangsgrad m Ausgabe: zusammenhängender azyklischer gerichteter Graph Komplexität: O(mn)

One-Pass-Algorithm Maximale Kantenanzahl berechnen: emax = m(n-r) falls r ≥ m emax = m(n-r)+½(m(m-1)-r(r-1)) sonst Kantenanzahl e zufällig aus Intervall [n, emax] bestimmen Für alle Wurzelknoten (v0…vr-1) Eingangsgrad d-(vi)=0 setzen Für restliche Knoten d-(vi) = [1,min(i,m)] setzen  dabei beachten, dass ∑i=r d-(vi)=e sein muss

One-Pass-Algorithm Für alle Knoten Anzahl zu verbindender Eltern p(vi)=d-(vi) Für i=r bis n-1: Kante von vj zu vi setzen (j  [r-1,i-1]) Für i=0 bis r-2 Kante von vi zu x setzen (x  {vj | p(vj)≥1}) Solange p(vi) ≥ 1 wiederhole: Kante von x zu vi setzen (x  {vj | 0 ≤ j ≤ i-1, (vj,vi) є E})

Beispiel 3 Graph mit 5 Knoten, 2 Wurzeln und maximalem Eingangsgrad 2 Bedingungen: n ≥ 2  erfüllt 1 ≤ r < n  erfüllt 1 ≤ m < n  erfüllt Einschränkung: da r ≥ m, muss m(n-r) ≥ n-1 gelten  2(5-2) ≥ 5-1  6 ≥ 4

Beispiel 3 1. emax = m(n-r) = 6 2. e=6 3. d-(n0)=0, d-(n1 )=0 4. restliche Knoten: n2=[1,min(2,2)]=2 n3=[1,min(3,2)]=2 n4=[1,min(4,2)]=2 5. p(n2)=2 p(n3)=2 p(n4)=2

Beispiel 3 6. i=2 bis 4 7. i=0 bis 0 nj  ni, j[1,1]  n1 n2 Kante von ni zu x, wobei x={nj | p(nj)≥1}  n0  n2

Beispiel 3 8. i=2 bis 4 - p(n2) ≥ 1 ? nein - p(n3) ≥ 1 ? ja, x zu n3, x  {nj | 0 ≤ j ≤ 2, (nj,n3) nicht Element von E  nj=n0, n0n3 - p(n4) ≥ 1 ? ja, x zu n4, x  {nj | 0 ≤ j ≤ 3, (nj,n4) nicht Element von E  nj=n0, n0n4

Bayes-Netze Bayessches Netz: Gerichteter azyklischer Graph Jeder Knoten besitzt Variable mit Angabe über ihre statistische Verteilung Meistens zusammenhängend

Erweitern zum Bayesschen-Netz Jedem Knoten vi Variable Vi zuordnen Anzahl der möglichen Zustände für Vi bestimmen: Ni=|Vi| Für jeden Wurzelknoten: Ni Zufallswerte erzeugen und zu ∑=1 normieren Für alle anderen Knoten in topologischer Reihenfolge: für jede Belegung der Elternknoten Ni Zufallswerte erzeugen und zu ∑=1 normieren Bei Bedarf beliebig viele Einzelbelegungen des Netzes entsprechend den Verteilungen erzeugen Komplexität: abhängig von Elternknoten-Anzahl, ≈ O(mn)

Zusammenfassung Zufällige Graphen verwendet zur Beweisführung und zur Modellierung unübersichtlicher Strukturen Algorithmen: Zufällige Adjazenzmatrix: kaum Variationen möglich Zufällige Kantenzuordnung: Variationen bedingt über Parameter möglich Rekursive Erzeugung: Struktur variierbar, aber komplex und langsam One-Pass-Algorithm: zusammenhängend, wenige Kanten  gut für Bayessche-Netze Bayessche Netze: Erweiterungen obiger Algorithmen mit Zustandsvariablen für Knoten

Quellen Reinhard Diestel: „Graphentheorie“, 1996, Springer Svante Janson, Tomasz Luczak, Andrzej Rucinski: „Random Graphs“, 2000, John Wiley & Sons Inc. Lothar Wenzel: „Wie klein ist doch die Welt“, in: Toolbox, Ausgabe 6/2002, S. 6 ff. Ansgar Voigt: „Mathe-Tricks in der Biologie“, in: RUBIN, 2003 Peter Eichelsbacher: „Die Steinsche Methode“, 2003