Theoretische Informatik 1 - Institut für Grundlagen der

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