Handout - Institut für Theoretische Informatik - Technische ...
Handout - Institut für Theoretische Informatik - Technische ... Handout - Institut für Theoretische Informatik - Technische ...
6. Komplexität von Algorithmen 6.1 Beispiele effizienter Algorithmen Definition Einer topologischen Sortierung eines gerichteten Graphen G = 〈V , E〉 mit n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der Eigenschaft 〈u, v〉 ∈ E impliziert ord(u) < ord(v) Beispiel •1 •0 •3 •4 •2 Die neue Kante von 4 nach 1 zerstört die topologische Sortierbarkeit. Allgemein kann ein gerichteter Graph genau dann topologisch sortiert werden, wenn er keine Zyklen hat (Test für die Existenz von Zyklen). Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS 2012 108 / 215
6. Komplexität von Algorithmen 6.1 Beispiele effizienter Algorithmen Beispiel (Naiver Algorithmus für Topologisches Sortieren) Eingabe: Gerichteter Graph G = (V , E) mit n Knoten und k Kanten Ausgabe: Topologische Sortierung V ord n, falls G azyklisch 1: {(0) Initialisierung} 2: i := 0 { i : die Zahl, die ord zuweisen soll} 3: W := V { W : die Menge der noch nicht bearbeiteten Knoten} 4: {(1) Rekursionsschritt} 5: while ein Knoten x ∈ W ohne Vorgänger in W existiert do 6: ord(x) := i 7: i := i + 1 8: W := W − {x} 9: end while {Zyklus falls W ≠ ∅ , sonst topologische Sortierung} Korrektheit: klar. Laufzeit: (unter Verwendung von Adjazenzmatrizen) Die Befehle in Zeilen 3,2,6,7 und 8 benötigen konstante Zeit A . Schleife 5 wird m 2 -mal durchlaufen, mit m = n, . . . , 1 , da W schrumpft; in der Rest-Matrix über W ist eine 0-Spalte zu finden, in Zeit K . n∑ n∑ T (n) = 2A + (Km 2 + 3A) = 2A + K m 2 + 3An ∈ O(n 3 ) m=1 m=1 Jürgen Koslowski (TU-BS) Theoretische Informatik 2 SS 2012 109 / 215
- Seite 57 und 58: 4. Church-Turing-These 4.1 RAM Bewe
- Seite 59 und 60: 4. Church-Turing-These 4.2 Rekursiv
- Seite 61 und 62: 4. Church-Turing-These 4.2 Rekursiv
- Seite 63 und 64: 4. Church-Turing-These 4.2 Rekursiv
- Seite 65 und 66: 4. Church-Turing-These 4.2 Rekursiv
- Seite 67 und 68: 4. Church-Turing-These 4.2 Rekursiv
- Seite 69 und 70: 4. Church-Turing-These 4.2 Rekursiv
- Seite 71 und 72: 4. Church-Turing-These 4.2 Rekursiv
- Seite 73 und 74: 4. Church-Turing-These 4.2 Rekursiv
- Seite 75 und 76: 4. Church-Turing-These 4.2 Rekursiv
- Seite 77 und 78: 5. Unentscheidbare Probleme Kapitel
- Seite 79 und 80: 5. Unentscheidbare Probleme 5.1 Uni
- Seite 81 und 82: 5. Unentscheidbare Probleme 5.1 Uni
- Seite 83 und 84: 5. Unentscheidbare Probleme 5.1 Uni
- Seite 85 und 86: 5. Unentscheidbare Probleme 5.2 Das
- Seite 87 und 88: 5. Unentscheidbare Probleme 5.2 Das
- Seite 89 und 90: 5. Unentscheidbare Probleme 5.3 Wei
- Seite 91 und 92: 5. Unentscheidbare Probleme 5.3 Wei
- Seite 93 und 94: 5. Unentscheidbare Probleme 5.3 Wei
- Seite 95 und 96: 5. Unentscheidbare Probleme 5.3 Wei
- Seite 97 und 98: 5. Unentscheidbare Probleme 5.4 Sat
- Seite 99 und 100: 5. Unentscheidbare Probleme 5.4 Sat
- Seite 101 und 102: 6. Komplexität von Algorithmen Kap
- Seite 103 und 104: 6. Komplexität von Algorithmen 6.0
- Seite 105 und 106: 6. Komplexität von Algorithmen 6.0
- Seite 107: 6. Komplexität von Algorithmen 6.1
- Seite 111 und 112: 6. Komplexität von Algorithmen 6.1
- Seite 113 und 114: 6. Komplexität von Algorithmen 6.1
- Seite 115 und 116: 6. Komplexität von Algorithmen 6.1
- Seite 117 und 118: 6. Komplexität von Algorithmen 6.1
- Seite 119 und 120: 6. Komplexität von Algorithmen 6.1
- Seite 121 und 122: 6. Komplexität von Algorithmen 6.2
- Seite 123 und 124: 6. Komplexität von Algorithmen 6.2
- Seite 125 und 126: 6. Komplexität von Algorithmen 6.2
- Seite 127 und 128: 6. Komplexität von Algorithmen 6.2
- Seite 129 und 130: 6. Komplexität von Algorithmen 6.3
- Seite 131 und 132: 6. Komplexität von Algorithmen 6.3
- Seite 133 und 134: 6. Komplexität von Algorithmen 6.4
- Seite 135 und 136: 6. Komplexität von Algorithmen 6.4
- Seite 137 und 138: 6. Komplexität von Algorithmen 6.4
- Seite 139 und 140: 6. Komplexität von Algorithmen 6.4
- Seite 141 und 142: 6. Komplexität von Algorithmen 6.4
- Seite 143 und 144: 6. Komplexität von Algorithmen 6.5
- Seite 145 und 146: 6. Komplexität von Algorithmen 6.5
- Seite 147 und 148: 6. Komplexität von Algorithmen 6.6
- Seite 149 und 150: 6. Komplexität von Algorithmen 6.6
- Seite 151 und 152: 6. Komplexität von Algorithmen 6.7
- Seite 153 und 154: 6. Komplexität von Algorithmen 6.7
- Seite 155 und 156: 6. Komplexität von Algorithmen 6.7
- Seite 157 und 158: 6. Komplexität von Algorithmen 6.7
6. Komplexität von Algorithmen 6.1 Beispiele effizienter Algorithmen<br />
Definition<br />
Einer topologischen Sortierung eines gerichteten Graphen G = 〈V , E〉 mit<br />
n Knoten ist eine Funktion V ord n = {0, . . . , n − 1} mit der<br />
Eigenschaft<br />
〈u, v〉 ∈ E impliziert ord(u) < ord(v)<br />
Beispiel<br />
•1 •0<br />
•3<br />
•4 •2<br />
Die neue Kante von 4 nach 1 zerstört die topologische Sortierbarkeit.<br />
Allgemein kann ein gerichteter Graph genau dann topologisch sortiert<br />
werden, wenn er keine Zyklen hat (Test <strong>für</strong> die Existenz von Zyklen).<br />
Jürgen Koslowski (TU-BS) <strong>Theoretische</strong> <strong>Informatik</strong> 2 SS 2012 108 / 215