Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Theoretische Informatik 1 Intuitive Berechenbarkeit David Kappel Institut für Grundlagen der Informationsverarbeitung Technische Universität Graz 13.03.2015 Zusammenfassung Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Organisation der Vorlesung 2 SSt VO: Fr 11:15-12:45 1 SSt KU: Fr 13:15-14:00 Seit diesem Semester gibt es 2 Vorlesungen: • Theoretische Informatik I (2 VO 708.243, 1 KU 708.244): Studium 521 Informatik • Theoretische Informatik 1 (2 VO MAT.387, 1 KU MAT.388): Studium 201 Technische Mathematik Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Durchführung und Beurteilung 2 SSt VO: Fr 11:15-12:45 1 SSt KU: Fr 13:15-14:00 Benotung: • KU: 9 Aufgabenblätter, Ausarbeitung schriftlich - Gruppenarbeit erlaubt (max. 3er Gruppen) - Eine Abgabe pro Gruppe - 100 Punkte durch Rechenbeispiele - Extra-∗-Punkte (schwere/aufwändige Beispiele) zusätzlich • VO: schriftliche Prüfung ohne Unterlagen - max. 100 Punkte Zusammenfassung Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Zitierregeln und Plagiate • Bei der Übung sind die üblichen wissenschaftlichen • • • • • • Zitierrichtlinien einzuhalten (siehe z.B.: http://de.wikipedia.org/wiki/Zitat)! Wenn Quellen außer dem Skriptum verwendet wurden sind diese in der Abgabe anzugeben. Wörtlich zitierte (kurze!) Textstellen müssen entsprechend erkennbar gemacht werden. Kopieren von anderen Gruppen (auch aus den Vorjahren) ist natürlich nicht erlaubt! Längere Textpassagen, die 1:1 kopiert wurden können nicht gewertet werden, auch wenn sie entsprechend mit Quellenangaben versehen wurden! Abgaben, die deise Regeln nicht einhalten werden mit 0 Punkten bewertet. Bei schweren Verstößen können zusätzlich Punkte abgezogen werden. Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Infos zur LV • Homepage: http://www.igi.tugraz.at/lehre/TI1/ • Newsgroup: news://news.tu-graz.ac.at:119/tu-graz.lv.ti1 • Skriptum: LATEX-Projekt, von Studenten erstellt - digital auf Homepage erhältlich - Mitarbeit am Skriptum auch dieses Jahr möglich Literatur: • M. Sipser, Introduction to the Theory of Computation, PWS Publishing, Boston, 2012 • Ch.Papadimitriou, Computational complexity, Addison-Wesley, 1994 • A.Asteroth, Ch. Baier, Theoretische Informatik, Pearson Studium, München, 2003 Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Theoretische Informatik 1 Inhalt • Intuitive und formale Berechenbarkeit • Turingmaschinen • Zeitkomplexität, Platzkomplexität • Reduktionen • Komplexitätsklassen P, NP, ... • Vollständige Probleme • Randomisierte Algorithmen für NP-Vollständige Probleme Administratives Einführung Notationen und formale Werkzeuge Übersicht Administratives Administratives zur LV Einführung Fragen an die Theoretische Informatik Intuitive Berechenbarkeit Notationen und formale Werkzeuge Landau Notation Probleme in Graphen Graph Erreichbarkeit Graph Erreichbarkeit Komplexität von REACH Zusammenfassung Graph Erreichbarkeit Zusammenfassung Administratives Einführung Komplexitätstheorie Notationen und formale Werkzeuge Graph Erreichbarkeit Datenstrukturen Sprachen & Semantik Logik & Berechenbarkeit Automatentheorie Programmiersprachen Algorithmen Theoretische Informatik Zusammenfassung SoftwareTechnik Praktische Informatik KI & Maschinelles Lernen Betriebssysteme Informatik (integr.) Schaltkreise Technische Informatik Angewandte Informatik Robotik Automatisierungstechnik Netzwerke Protokolle RechnerArchitektur Databases WWW & Internet Geoinformatik Medizintechnik Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Motivation: Softwareentwicklung ohne Theoretische Informatik • Nach langer Tüftelei hast Du ein Programm für das Problem XY geschrieben. • Der erste Test mit Testdaten (einige 100 Datensätze) hat endlich funktioniert. • Nun probierst du das Programm auf realistischen Daten, also ca. 100.000 Datensätzen. • Das Programm rechnet, und rechnet, und rechnet... • Was ist schief gegangen? • Existiert ein schnellerer Algorithmus? Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Fragen an die Theoretische Informatik • Was sind die grundsätzlichen Fähigkeiten eines Computers? • Wo liegen die Grenzen von Computern? Etwas konkreter: • Was ist überhaupt ein Problem? • Was ist ein Berechnungsverfahren? • Gibt es zum Problem XY einen Berechnungsverfahren? • Warum sind Probleme verschieden schwer zu lösen? • Ist das lösbare Problem XY auch effizient lösbar? • Was heißt effizient? Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Was ist ein Problem? • Erstelle ein sortiertes Telefonbuch! • Erstelle einen Stundenplan für jede Schule, sodass sowohl für Lehrer wie Schüler keine Lücken entstehen! • Optimiere den Auslieferweg eines Zustelldienstes! • Wie wird das Wetter morgen? • Hat an + b n = c n ganzzahlige Lösungen mit n ≥ 3 (“großer fermatscher Satz”)? • Der Computer reagiert nicht. Hat es Sinn zu warten? Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung 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’. • Stundenpläne werden händisch durch ‘probieren’ und mit viel Erfahrung erstellt, also sehr mühsam. • Sortieren ist vergleichsweise einfach. • Grundrechenarten (+,−,∗,/) sind einfach berechenbar. • Mathematische Beweise sind i.A. nicht berechenbar (z.B.: Beweis von “großem fermatschem Satz” dauerte fast 400 Jahre) Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Intuitive Berechenbarkeit, algorithmische Lösbarkeit1 1 Grafik aus: Asteroth, Baier: Theoretische Informatik, Pearson Studium Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Formaler Berechenbarkeitsbegriff Wir sind auf der Suche nach einem formalen Berechenbarkeitsbegriff, der... • präzise definiert ist • konzeptionell möglichst einfach und intuitiv • unabhängig von konkreten Einschränkungen wie Hardware, Programmiersprache... Zusammenfassung Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Abschätzen von Komplexität: Landau Notation • Formales Werkzeug zur Beschreibung des asymptotischen Verhalten von Funktionen • Relation zwischen einer Funktion f (n) und einer Referenzfunktion g(n) • “f (n) verhält sich so ähnlich wie g(n)” Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung 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 → R | ∃c > 0, n0 : ∀n > n0 : f (n) ≤ c · g(n)} Schreibweise: f (n) ∈ O(g(n)) oder f (n) = O(g(n)) Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Landau Notation Definition (Landau Ω) Alle Funktionen f , deren asymptotisches Wachstum in der Größenordnung durch g(n) beschränkt ist: Ω(g) = {f : N → R | ∃c > 0, n0 : ∀n > n0 : f (n) ≥ c · g(n)} Schreibweise: f (n) ∈ Ω(g(n)) oder f (n) = Ω(g(n)) Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Landau Notation Definition (Landau Θ) Alle Funktionen f , deren asymptotisches Wachstum genau in der Größenordnung von g(n) liegt: Θ(g) = {f : N → R | ∃c1 > 0, c2 > 0, n0 : ∀n > n0 : c1 · g(n) ≤ f (n) ≤ c2 · g(n)} c1 g(n) f(n) c2 g(n) Schreibweise: f (n) ∈ Θ(g(n)) oder f (n) = Θ(g(n)) n0 Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Formal beschreibbare Probleme Ebenso benötigen wir einen formalen Begriff für Berechnungsprobleme. In der Vorlesung beschränken wir uns auf: • Probleme in Graphen • Probleme in booleschen Schaltkreisen • Formale Sprachen Zusammenfassung Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Graph Definition (Graph) Ein Graph G ist ein Tupel (V , E), wobei V eine Menge von Knoten und E eine Menge von Kanten bezeichnet. Definition (Kante) Ein Kante E ist ein Tupel (v1 , v2 ) von Knoten v1 , v2 ∈ V , wobei v1 den ausgehenden und v2 den eingehenden Knoten repräsentiert. Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Beispiel: Graph • Gerichteter Graph: G = (V , E) • Knoten: V = {1, 2, 3, 4, 5} • Kanten: E = { (1, 2), (1, 3), (2, 3), (3, 1), (3, 5), (4, 3), (4, 5) } • Anzahl der Knoten: |V | • Anzahl der Kanten: |E| Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Graph-Erreichbarkeit (REACH oder STCON, PATH)2 Gegeben sei ein (gerichteter) Graph G = (V , E) mit n Knoten (n = |V |). Gibt es einen Pfad von Knoten 1 zu Knoten n? • Entscheidungsproblem (‘ja’/‘nein’) • REACH ist ein Basisproblem der TI, denn: • Jedes lösbare Entscheidungsproblem kann als gerichteter Graph dargestellt werden. • viele mögliche Lösungsalgorithmen 2 Papadimitriou, Chapter 1 Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Entscheidungsprobleme Für das Grapherreichbarkeitsproblem gibt es verschiedene Antworten: • Ja/Nein Weg existiert/existiert nicht (‘ja’/‘nein’) • Liste alle Wege auf • Gib einen bestimmten Weg aus (Kürzester) In der Komplexitätstheorie beschäftigen wir uns nur mit Entscheidungsproblemen (‘ja’/‘nein’) • Grund: Aussage soll unabhängig von Kodierung der Antwort sein • Keine Einschränkung! Alle relevanten Probleme lassen sich als Entscheidungsproblem darstellen Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Lösungs-Algorithmus für REACH Idee für Algorithmus (Search): Starte bei Knoten 1. Laufe rekursiv über alle ausgehenden Kanten. Markieren alle besuchten Knoten. Am Ende Antworten ‘ja’, wenn Knoten n markiert ist, sonst ‘nein’. S = {1} markiere Knoten 1 solange S 6= {} : wähle ein i ∈ S und entferne i aus S ∀ Kanten (i, j) ∈ E, wenn j nicht markiert: füge j zu S hinzu und markiere j Wenn Knoten n markiert ist, antworte mit ‘ja’, sonst mit ‘nein’ Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Komplexität von REACH • Beweis der Korrektheit → Übung • Ressourcenbedarf: Zeitbedarf und Platzbedarf • Zeitbedarf: Jeder Knoten wird maximal einmal besucht • Im schlimmsten Fall muss jede Kante einmal untersucht werden • ⇒ T (n) = O(n2 ) • Speicherplatzbedarf: Im schlimmsten Fall werden alle Knoten markiert • ⇒ S(n) = O(|V |) Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Komplexität von REACH • 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 des Algorithmus Search erbracht Administratives Einführung Notationen und formale Werkzeuge Graph Erreichbarkeit Zusammenfassung Zusammenfassung • Jeder hat eine intuitive Vorstellung von der Schwierigkeit von Problemen • Komplexitätstheorie: Formaler Ansatz für Komplexitätsbegriff • Landau Notation: Asymptotische Schranken für Ressourcenbedarf • Konkretes Beispiel eines Problems: Graph Erreichbarkeit (REACH) • REACH ist effizient lösbar (Zeitbedarf: O(n2 ) Platzbedarf: O(n))