Theoretische Informatik 1 - Institut für Grundlagen der

Werbung
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))
Herunterladen