Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Theoretische Informatik 1 Bernhard Nessler Institut für Grundlagen der Informationsverabeitung TU Graz SS 2009 Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Übersicht 1 Allgemein Administratives zur LV Gebiete der Informatik ohne Theoretische Grundlagen 2 Grundidee der Theoretischen Informatik Fragen an die Theoretische Informatik intuitive Berechenbarkeit 3 Beispiele Reachability Maximum Flow 4 Notationen Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Administratives zur LV Gebiete der Informatik ohne Theoretische Grundlagen Durchführung und Beurteilung 2 SSt VO: Fr 11:15-12:45 1 SSt KU: Fr 13:15-14:00 Benotung: KU: 2 Aufgabenblätter, Ausarbeitung ist schriftlich abzugeben. Gruppenarbeit erlaubt (max. 4er Gruppen). Gesamtpunkteanzahl: 50 bis 60 Punkte. >50% ist positiv. VO: schriftliche Prüfung ohne Unterlagen. 100 Punkte erreichbar. Bonuspunkte aus der KU werden angerechnet. Bonuspunkte: erreichte KU-Punkte - 50% der erreichbaren KU-Punkte. Extra-∗-Punkte. aus KU und VO zählen wie Übungspunkte. Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Administratives zur LV Gebiete der Informatik ohne Theoretische Grundlagen Theoretische Informatik 1 Inhalte Intuitive und formale Berechenbarkeit Registermaschinen (RAM) und Turingmaschinen Zeitkomplexität P, NP, NP-vollständig Probabilistische Algorithmen, BPP,ZPP Maschinelles Lernen: probably approximative correct (PAC) learning Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Administratives zur LV Gebiete der Informatik ohne Theoretische Grundlagen Infos zur LV Homepage http://www.igi.tugraz.at/lehre/ Newsgroup news://news.tu-graz.ac.at:119/tu-graz.lv.ti1 Literatur: Ch.Papadimitriou, Computational complexity, Addison-Wesley, 1994 M. Sipser, Introduction to the Theory of Computation, PWS Publishing, Boston, 1997 A.Asteroth, Ch. Baier, Theoretische Informatik, Pearson Studium, München, 2003 Tom M. Mitchell, Machine Learning, McGraw-Hill, 1997 Internet: Wikipedia, Google. z.B.”Quantenalgorithmen” Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Komplexitätstheorie Administratives zur LV Gebiete der Informatik ohne Theoretische Grundlagen Datenstrukturen Sprachen & Semantik Logik & Berechenbarkeit Automatentheorie Programmiersprachen Algorithmen Theoretische Informatik SoftwareTechnik Praktische Informatik KI & Maschinelles Lernen Betriebssysteme Informatik (integr.) Schaltkreise Technische Informatik Automatisierungstechnik Netzwerke Protokolle Angewandte Informatik Robotik RechnerArchitektur Bernhard Nessler WWW & Internet Geoinformatik Medizintechnik Theoretische Informatik 1 Databases Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Administratives zur LV Gebiete der Informatik ohne Theoretische Grundlagen Softwaretechniker ohne Theoretische Informatik Nach langer Tüftellei hast Du ein Programm für das Problem XY geschrieben. Der erste Test mit Testdaten (einige 100 Datensätze) hat endlich funktioniert. Der Chef kommt und verlangt eine Demonstration auf realitischen Daten, also ca.100.000 Datensätzen. Das Programm rechnet, und rechnet, und rechnet ....und Du stehst ratlos daneben. Nach ein Stunde Rechenzeit ohne Ergebnis beschließt der Chef, das Problem einem Mitarbeiter zu übertragen, der sich in Informatik auskennt. Und DU ... ? Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Fragen an die Theoretische Informatik intuitive Berechenbarkeit Fragen an die Theoretische Informatik Was sind die grundsätzlichen Fähigkeiten eines Computers? Wo liegen die Grenzen von Computern? Etwas konkreter: Was ist ein Berechnungsverfahren? Gibt es zum Probelm XY einen Berechnungsverfahren? Was ist überhaupt ein Problem? Warum sind Probleme verschieden schwer zu lösen? Ist das lösbare Problem XY auch effizient lösbar? Was heißt effizient? Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Fragen an die Theoretische Informatik intuitive Berechenbarkeit Verschiedene Probleme Erstelle ein sortiertes Telefonbuch! Erstelle einen Stundenplan für jede Schule, sodaß sowohl für Lehrer wie Schüler keine Lücken enstehen! Optimiere die Produktionsplanung von Opel! Optimiere den Auslieferweg eines Zustelldienstes! Wie wird das Wetter morgen? Hat an + bn = c n ganzzahlige Lösungen mit n ≥ 3? Der Computer reagiert nicht. Hat es Sinn zu warten? Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Fragen an die Theoretische Informatik intuitive Berechenbarkeit Intuitive Berechenbarkeit Jeder von uns hat eine gewisse Vorstellung davon, was prinzipiell berechenbare Probleme sind, und ob sie eher ’leicht’ sind oder eher ’schwer’ bzw. ’mühsam’. Händische Addition ist ’leicht’ Matrizenmultiplikation ist deutlich mehr Arbeit. Stundenpläne werden händisch durch ’probieren’ und mit viel Erfahrung erstellt, also sehr ’mühsam’. Mathematische Beweise sind i.A. nicht berechenbar1 Es gibt auch Probleme, bei denen wir (noch) nicht wissen, ob sie durch ein Berechnungsverfahren gelöst werden können. 1 Sonst hätte der Beweis von Fermats letzem Satz ∀n ≥ 3 : 6 ∃a, b, c ∈ N : an + bn = c n wohl nicht fast 400 Jahre gebraucht. Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Fragen an die Theoretische Informatik intuitive Berechenbarkeit Intuitive Berechenbarkeit, algorithmische Lösbarbkeit1 Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow Graph Reachability2 Gegeben sei ein (gerichteter) Graph G = (V , E) mit n Knoten. Gibt es einen Pfad von Knoten 1 zu Knoten n? Entscheidungsproblem REACH ist ein Basisproblem der TI, denn: Jedes lösbare Entscheidungsproblem kann als DAG dargestellt werden. viele mögliche Lösungsalgorithmen (Suche, Matrixmultiplikation, ...) 2 Papadimitriou, Chapter 1 Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow REACH Search Algorithmus: S = {1} Markiere Knoten 1 Solange S nicht leer ist: wähle ein i ∈ S und entferne i aus S für alle Kanten (i, j) ∈ E, wenn j nicht markiert: füge j zu S hinzu und markiere j Wenn Knoten n markiert ist antworte JA, sonst NEIN Beweis der Korrektheit Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow REACH - Korrektheit, formaler Beweis Wähle in jedem Schleifendurchgang ein i ∈ Sn : X = {j ∈ V \ Mn |i − → j} Sn+1 = Sn \ {i} ∪ X Mn+1 = Mn ∪ X Schleifeninvariante P(n) (Beachte: Sn ⊆ Mn ): ∗ + ∀k ∈ V : 1 − → k ⇐⇒ k ∈ Mn ∨ ∃h ∈ Sn : h −−−→ k V \Mn Beweise P(0), wobei S0 = {1}, M0 = {1}: ∗ + ∀k ∈ V : 1 − → k ⇐⇒ k = 1 ∨ 1 −−−−→ k V \{1} + ∗ P(0) ist erfüllt lt. Def. von − → und − → als transitive bzw. reflexiv-transitive Hülle von − →. Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow REACH - Korrektheit, formaler Beweis Zeige P(n) ⇒ P(n + 1): ∗ + P(n) ≡ ∀k ∈ V : 1 − → k ⇐⇒ k ∈ Mn ∨ ∃h ∈ Sn : h −−−→ k V \Mn + + ⇐⇒ k ∈ Mn ∨ ∃h ∈ Sn \ {i} : h −−−→ k ∨ i −−−→ k V \Mn V \Mn ∗ ⇐⇒ . . . ∨ . . . ∨ ∃j ∈ V \ Mn : i − → j −−−−−→ k V \M n+1 ∗ ⇐⇒ . . . ∨ . . . ∨ ∃j ∈ X : j −−−−−→ k V \Mn+1 + ⇐⇒ . . . ∨ . . . ∨ k ∈ X ∨ ∃j ∈ X : j −−−−−→ k V \Mn+1 + ⇐⇒ k ∈ Mn ∪ X ∨ ∃h ∈ Sn \ {i} ∪ X : h −−−−−→ k ≡ | {z } {z } | V \Mn+1 =Mn+1 =Sn+1 P(n + 1) Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow REACH - Korrektheit, formaler Beweis Schleifenabbruch bei Sn = {}: P(n) ∧ Sn = {} =⇒ ∗ =⇒ ∀k ∈ V : 1 − → k ⇐⇒ k ∈ Mn ∨ ∃h ∈ {} : . . . ∗ =⇒ ∀k ∈ V : 1 − → k ⇐⇒ k ∈ Mn Die gegebene JA-NEIN-Antwort ist daher korrekt. Der Algorithmus terminiert, da jeder der (endlich vielen) Knoten höchstens einmal markiert und zu S hinzugefügt werden kann und bei jedem Durchgang mindestens ein Knoten aus S entfernt wird. Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow REACH Bemerkungen zum Algorithmus: Genaue Spezifikation der Darstellung von G war nicht notwendig. Annahme: Random Access auf E Wie wird i aus S ausgewählt? Zeitbedarf: O(n2 ) Speicherplatzbedarf: O(n) ⇒ REACH kann effizient gelöst werden Beweis hiermit durch Konstruktion erbracht. Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow Maximum Flow Netzwerk N = (V , E, s, t, c): Graph (V , E), Quelle s, Senke t Kapazität c(i, j) ∈ N für (i, j) ∈ E Ein Flow f im Netzwerk N ist eine Zuweisung eines Flusses f (i, j) zu jeder Kante (i, j) ∈ E mit 0 ≤ f (i, j) ≤ c(i, j) sodaß in allen Knoten außer s und t die Summe des ein- und ausfließenden Flusses gleich 0 ist. Der Wert eines Flows ist gleich der Summe des von s abgehenden (bzw. bei t eingehenden) Flusses. Optimierungsproblem MAX-FLOW(N): Gegeben Netzwerk N: suche Flow f mit maximalem Wert. Entscheidungsproblem MAX-FLOW(N,k): Gibt es im Netzwerk N einen Flow mit mindestens dem Wert k ? Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow MAX-FLOW Theorem (max-flow min-cut theorem) Gegeben ein Netzwerk N = (V , E, s, t, c) und ein Flow f (i, j). Falls ein Flow f 0 existiert, der größeren Wert als f hat, so gilt: ∆f = f 0 − f ist ebenfalls ein Flow mit positivem Wert aber möglicherweise negativen Flüssen entlang einelner Kanten, wobei −f (i, j) ≤ ∆f (i, j) ≤ c(i, j) − f (i, j). ∆f ist ein echter Flow im abgeleiteten Netzwerk N(f ). Das abgeleitete Netzwerk N = (V , E 0 , s, t, c 0 ) wird gebildet, indem alle Kanten (i, j) von f als “reverse” Kanten mit Kapazität c 0 (j, i) = f 0 (i, j) zu G hinzugefügt werden und ansonsten c 0 (i, j) = c(i, j) − f (i, j). Kanten mit c(i, j) = 0 werden aus E’ entfernt. Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow MAX-FLOW Entscheidungsproblem MAX-FLOW(N,f): Ist der Flow f im Netzwerk N maximal? Frage: Gibt es einen Pfad von s nach t in N(f ). MAX-FLOW(N,f) ist reduzierbar auf REACH. Lösungsidee für das Optimierungsproblem: addiere gefundenen Pfad zum aktuellen Flow. Zeitbedarf: ?? Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow MAX-FLOW Lösungen: Ford-Fulkerson algorithm: Zeitbedarf: O(n3 C), wobei C = max c(i, j), also exponentiell in der Länge von C. i,j Edmonds-Karp algorithm: Zeitbedarf O(n5 ) Platzbedarf bei beiden: O(n2 ) (für f ) Nächstes aufbauendes Problem: BIPARTITE MATCHING2 2 Papadimitriou, Fig. 1.6 Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Reachability Maximum Flow Beweis durch Induktion??? Zeige: In einem Stall mit n Pferden haben alle die gleich Farbe.(A(n)) Beweis durch Induktion über die Anzahl n der Pferde. A(1):Wenn nur ein Pferd im Stall ist, haben alle Pferde im Stall dieselbe Farbe. Trivial. A(n) ⇒ A(n + 1): Entferne aus dem Stall mit n + 1 Pferden ein Pferd. Es bleiben n Pferde, diese haben lt. I.V. alle dieselbe Farbe. Stelle das entfernte Pferd zurück und entferne ein anderes. Wieder bleiben genau n Pferde, die lt. I.V. alle dieselbe Farbe haben, darunter ist auch das zuerst entfernte, womit gezeigt ist, daß alle n + 1 Pferde dieselbe Farbe haben. Damit ist gezeigt, daß in jedem Stall alle Pferde dieselbe Farbe haben müssen, oder? Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Elemente formaler Notationen 2, 5, ⊥, ∞, a, bi , X , Z , T , R, α, κ, Σ, . . . Operationssymbole: +, −, ·, ×, ∩, ∪, \, ∈, ∨, ∧, →, . . . Relationssymbole: =, <>, ∈, ⊆, ⇐⇒, ⇒, . . . Quantoren: ∀, ∃ Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Elemente formaler Notationen Mengen: A = {7, 5, 13}, B = x ∈ N| ∃y ∈ N : x = y 2 ∧ y < 3 Sequenzen, Tuples, Paare: (11, 13, 17, 13) , (2, 7) Mengenprodukt: A × B = {(7, 1), (7, 4), (5, 1), (5, 4), (13, 1), (13, 4)} Potenzmenge: 2N = {{}, {1}, {2}, {1, 2}, {1, 3}, {1, 2, 3, 4}, {2, 4}, . . .} Funktionen: f : A → B : f (a) = b, g : N × N → N : g(x, y ) = x 2 + y 2 Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Wörter und Sprachen Alphabet: eine nichtleere, endliche Menge von Symbolen Σ1 = {0, 1}, Σ2 = {a, b, c, . . . , z}, Γ = {0, 1, #} Wort (string): endliche Sequenz von Symbolen u = 10101, v = amalia, w = 11#101#100 das leere Wort: x = x1 x2 · · · xm , y = y1 y2 · · · yn , xi , yj ∈ Σ Concatenation: xy = x1 · · · xm y1 · · · yn Sprache: endliche oder unendliche Menge von Wörten A = {anna, lagerregal, otto, . . .} B = w ∈ {0, 1}∗ |∃y ∈ N : w = bin(y 2 ) Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Landau Notation Definition (Landau O) Alle Funktionen f , deren asymptotisches Wachstum in der Größenordnung durch g(n) beschränkt ist: O(g) = {f : N 7→ R : ∃c, n0 : ∀n > n0 : f (n) ≤ c · g(n)} Definition (Landau Θ) Alle Funktionen f , deren asymptotisches Wachstum genau in der Größenordnung von g(n) liegt: Θ(g) = {f : N 7→ R : ∃c1 , c2 , n0 : ∀n > n0 : c1 · g(n) ≤ f (n) ≤ c2 · g(n)} Verkürzte Schreibweise: f (n) = O(g(n)) bzw. f (n) = Θ(g(n)) Bernhard Nessler Theoretische Informatik 1 Allgemein Grundidee der Theoretischen Informatik Beispiele Notationen Landau Notation Definition (Landau O) f ∈ O(g) ⇐⇒ f (n) 0 ≤ lim sup g(n) <∞ n→∞ Definition (Landau o) f ∈ o(g) ⇐⇒ f (n) lim g(n) =0 n→∞ Definition (Landau Θ) f ∈ Θ(g) ⇐⇒ f (n) f (n) 0 < lim inf g(n) ≤ lim sup g(n) < ∞ n→∞ Bernhard Nessler n→∞ Theoretische Informatik 1