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

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

Embed Size (px)

Citation preview

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

Proseminar „Algorithmen auf Graphen“

Zufälliges Erzeugen von Graphen und Bayes-Netzen

Björn Schapitz, CV04, 20.06.2006

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

2

Gliederung

(1) Einleitung

(2) Geschichtliches

(3) Algorithmen / Beispiele(1) Anschauliches Vorgehen

(2) Zufällige Adjazenzmatrix

(3) Zufällige Kantenanordnung

(4) Rekursive Erzeugung

(5) One-Pass-Algorithm

(4) Zufällige Bayes-Netze

(5) Zusammenfassung

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

Einleitung3

Gründe zur Beschäftigung mit zufälligen Graphen

1. Beweise führen (Nachweise der Existenz von Graphen mit bestimmten Eigenschaften)

2. Modellierung von großen, unüberschaubaren Strukturen (z.B. Netzwerke, Internet)

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

4

Arten zufälliger Graphen

echt zufällige Graphen Oft bestimmte Eigenschaften benötigt:

– Begrenzt maximale Cliquen– Verhältnis Kanten/Knoten (Dichte)– Zusammenhängend ?

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

5

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.“

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

6

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:

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

7

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

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

8

Beispiel 1

Zufallsgraph mit 5 Knoten 5 x 5 Matrix erzeugen

n1 n2 n3 n4 n5

n1 0 0 0 0 0

n2 0 0 0 0 0

n3 0 0 0 0 0

n4 0 0 0 0 0

n5 0 0 0 0 0

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

9

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

n1 0 1 0 1 1

n2 0 0 1 1 0

n3 0 0 0 0 1

n4 0 0 0 0 1

n5 0 0 0 0 0

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

10

Beispiel 1

Graph anhand Adjazenzmatrix aufbauen

n1 n2 n3 n4 n5

n1 0 1 0 1 1

n2 0 0 1 1 0

n3 0 0 0 0 1

n4 0 0 0 0 1

n5 0 0 0 0 0

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

11

Eigenschaften so erzeugter Graphen

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

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

12

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

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

13

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

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

14

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

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

15

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)

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

16

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

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

17

Rekursive Erzeugung - Algorithmus

- Umkehrung der Berechnungsformel zur Berechnung eines Graphen (benötigt Knotenmenge V und Wurzelanzahl k)

1. Zufällig k Wurzeln wählen: K V, |K| = k

2. Zufällig s aus 1..(n-k) wählen, dabei beachten:

(s wird für die Erzeugung von S V\K benötigt)

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

18

Rekursive Erzeugung - Algorithmus

3. Wähle zufällig und unabhängig voneinander s nichtleere Teilmengen aus K Eltern für jedes Element aus S

4. 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

5. 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.

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

19

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)

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

20

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

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

21

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

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

22

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)

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

23

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

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

24

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})

Für i=r bis n-1:– Solange p(vi) ≥ 1 wiederhole:

Kante von x zu vi setzen (x {vj | 0 ≤ j ≤ i-1, (vj,vi) є E})

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

25

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

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

26

Beispiel 3

1. emax = m(n-r) = 62. e=6

3. d-(n0)=0, d-(n1 )=04. 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

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

27

Beispiel 3

6. i=2 bis 4– nj ni, j[1,1] n1 n2

– nj ni, j[1,2] n1 n3

– nj ni, j[1,3] n1 n4

7. i=0 bis 0– Kante von ni zu x, wobei

x={nj | p(nj)≥1} n0 n2

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

28

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, n0n3

- p(n4) ≥ 1 ? ja, x zu n4, x {nj | 0 ≤ j ≤ 3, (nj,n4) nicht Element von E nj=n0, n0n4

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

29

Bayes-Netze

Bayessches Netz:– Gerichteter azyklischer Graph– Jeder Knoten besitzt Variable mit Angabe über

ihre statistische Verteilung– Meistens zusammenhängend

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

30

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)

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

31

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

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

32

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