Theoretische Informatik Sommersemester 2016 Steffen Lange 0/1, Folie 1 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Literatur S. Lange, M. Margraf, Theoretische Informatik, Lehrmaterial für den Bachelorstudiengang Informatik/IT-Sicherheit, 2016. (online verfügbar) J.E. Hopcroft, R. Motwani, J.E. Ullmann, Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie, Addison Wesley, Bonn, 2002. U. Schöning, Theoretische Informatik kurz gefaßt, Spektrum Akademischer Verlag, Heidelberg, 1997. J. Hromkovic, Theoretische Informatik, Teubner Verlag, Stuttgart, 2002. 0/1, Folie 2 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Organisatorisches u Vorlesung zwei Vorlesungen pro Woche (Folien online) u Übungen eine Übung pro Woche (Übungsblätter online), die dazu dient, dass Sie Ihre Lösungen vorstellen und Feedback bekommen Sie Fragen zu Vorlesung stellen können und diese beantwortet bekommen 0/1, Folie 3 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Organisatorisches u Prüfungsvorleistung (PVL) Abgabe der Lösungen für das aktuelle Übungsblatt Termin: jeweils Montag bis 14:00 Uhr Wie: PDF-File an die PVL ist erbracht, wenn Sie sebastian.r.gaertner@stud.h-da.de jede Woche eine nicht leere Lösung für das aktuelle Übungsblatt abgegeben haben und in Summe 50 % der korrigierten Aufgaben korrekt gelöst haben (/* es wird nur stichpunktartig korrigiert */) im Rahmen der Übung gezeigt haben, dass Sie mindestens eine Aufgabe korrekt lösen und erklären können 0/1, Folie 4 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Inhaltliche Einordnung u zentrales Ziel... Analyse der in der Informatik auftretenden Probleme und Strukturen mit mathematischen Methoden u einige wichtige Fragestellungen Wie kann man in der Informatik auftretende Problem sinnvoll modellieren? Wie kann man Algorithmen zur Lösung eines Problems finden? Wie kann man Algorithmen mit Blick auf die Aspekte Korrektheit und Effizienz analysieren? Gibt es Probleme, die sich nicht algorithmisch lösen lassen bzw. nicht effizient lösen lassen?... 0/1, Folie 5 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein größeres Beispiel u Fokus dieses Beispiels es stehen die folgende Aspekte im Mittelpunkt Modellierung relevante Begriffe relevante algorithmische Probleme 0/1, Folie 6 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein größeres Beispiel u Ausgangsituation es geht darum, bei einer signalgesteuerten Verkehrskreuzung die auftretenden Verkehrsströme sinnvoll zu regeln, d.h. es dürfen keine Kollisionen auftreten (/* keine Unfälle provozieren */) die Verkehrsströme sollen möglichst gut bedient werden (/* wenig Wartezeit, hohe Durchlässigkeit, Fairness */) 0/1, Folie 7 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein größeres Beispiel u konkrete Verkehrskreuzung mit Verkehrsströmen... offenbar kann man jeden Verkehrsstrom S i allein auf grün schalten und alle Verkehrsströme nacheinander zyklisch bedienen (/* die Kapazität der Kreuzung wird dabei allerdings nur unzureichend genutzt */) 0/1, Folie 8 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein größeres Beispiel u auf dem Weg zu einer besseren Lösung man verwendet einen ungerichteten Graphen G, um die Beziehungen zwischen den möglichen Verkehrsströmen zu modellieren, dabei gilt: der Graph G enthält für jeden Verkehrsstrom S i einen Knoten zwischen zwei Knoten gibt es genau dann eine Kante, wenn die zugehörigen Verkehrsströme gemeinsam und zwar kollisionsfrei auf grün geschaltet werden können 0/1, Folie 9 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein größeres Beispiel u Illustration S 2 S 1 S 3 S 8 S 4 S 7 S 5 S 6 0/1, Folie 10 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein größeres Beispiel S 2 u Analyse des zugehörigen Graphen S 1 S 3 im ungerichteten Graphen findet man u.a. die folgenden Cliquen, d.h. Teilmengen der Knotenmenge, in denen je zwei verschiedene Knoten mit einer Kante verbunden sind: C 1 = { S 1,S 2,S 6 }; C 2 = { S 2,S 5,S 6 } ; C 3 = { S 3,S 5,S 6 } C 4 = { S 4,S 5,S 6 }; C 5 = { S 4,S 6,S 8 } ; C 6 = { S 7,S 8 } S 8 S 4 S 7 S 5 S 6... zwischen den Verkehrsströmen in einer Clique gibt es keine Kollisionen 0/1, Folie 11 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein größeres Beispiel u Konsequenzen die Verkehrsströme in einer Clique können gemeinsam auf grün geschaltet und bedient werden eine Folge von maximalen Cliquen, in denen alle Verkehrsströme vorkommen, kann nun zyklisch benutzt werden, um die an der Kreuzung auftretenden Verkehrsströme zu regeln in unserem Beispiel etwa: 1. Grünphase: C 1 = { S 1,S 2,S 6 } 2. Grünphase: C 3 = { S 3,S 5,S 6 } 3. Grünphase: C 5 = { S 4,S 6,S 8 } 4. Grünphase: C 6 = { S 7,S 8 }... auf diese Weise können die Verkehrsströme besser bedient werden 0/1, Folie 12 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein wenig formaler... u Relevante Grundbegriffe ungerichteter Graph G, d.h. ein geordnetes Paar (V,E) mit einer Knotenmenge V und einer Kantenmenge E { { u,v } u,v V } Clique C in einem ungerichteten Graphen G = (V,E), d.h. C ist eine Teilmenge von V, wobei für je zwei verschiedene Knoten u, v C gilt, dass die Kante { u,v } zu E gehört Größe einer Clique C, d.h. die Anzahl der Elemente in C maximale Clique C* in einem ungerichteten Graphen G = (V,E), d.h. C* ist eine Clique in G und es gibt keine Clique C in G, die mehr Elemente als C* hat 0/1, Folie 13 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein wenig formaler... u Beispiel a ungerichteter Graph G = (V,E) mit V = { a,b,c,d,e } E = { {a,b},{a,c},{a,e},{b,c},{b,d},{c,e},{d,e} } b d c e in diesem Graphen gibt es zwei Cliquen der Größe 3 und keine größeren Cliquen a a b c b c d e d e 0/1, Folie 14 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein wenig formaler... u Relevantes algorithmisches Problem zulässige Eingaben: ein ungerichteter Graph G = (V,E) zulässige Ausgaben: eine maximale Clique C* im Graphen G... hierbei handelt es sich um ein so genanntes Optimierungsproblem, speziell um ein Maximierungsproblem, d.h. es geht darum: eine Lösung (eine Clique) zu konstruieren und zwar eine, die unter allen infrage kommenden Lösungen (d.h. unter allen Cliquen) maximal ist 0/1, Folie 15 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein wenig formaler... u Relevante Fragestellungen Kann man dieses Optimierungsproblem überhaupt algorithmisch lösen? Kann man dieses Optimierungsproblem effizient lösen?... die erste Frage kann man ganz klar mit Ja beantworten (/* siehe nächste Folie */)... die Antwort auf die zweite Frage kennt man nicht (/* man vermutet, dass die Antwort Nein ist */) 0/1, Folie 16 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Ein wenig formaler... u Begründung für die Antwort auf die erste Frage um eine maximale Clique zu bestimmen, genügt es systematisch für jede Teilmenge der Knotenmenge zu testen, ob sie eine Clique ist b a c mit Blick auf die Zweiermengen stellt man fest, dass nur { a,b }, { a,c }, { b,c }, { b,d }, { c,e } und { d,e } Cliquen sind (/* reduziert die Anzahl der zu testenden Dreiermengen */) d e mit Blick auf die Dreiermengen stellt man fest, dass nur { a,b,c } eine Clique ist (/* reduziert die Anzahl der zu testenden Vierermengen */) mit Blick auf die Vierermengen stellt man fest, dass { a,b,c,d } und { a,b,c,e } keine Cliquen sind 0/1, Folie 17 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Diskussion u Anmerkungen in der theoretischen Informatik liegt unser Augenmerk auf andersartigen algorithmischen Problemen wir werden uns mit so genannten Entscheidungsproblemen beschäftigen (/* u.a. anstelle von Optimierungsproblemen */) statt uns uns darum zu kümmern, wie man algorithmisch Lösungen mit bestimmten Eigenschaften konstruieren kann, kümmern wir uns darum, wie man algorithmisch entscheiden kann, ob es überhaupt Lösungen mit bestimmten Eigenschaften gibt 0/1, Folie 18 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Diskussion u Anmerkungen (cont.) das machen wir, weil man Entscheidungsprobleme einfacher beschreiben und analysieren kann so einfacher zu Antworten auf die folgende zentrale Frage kommt: Gibt es Probleme, die sich nicht algorithmisch lösen lassen bzw. nicht effizient lösen lassen? außerdem lassen sich die für Entscheidungsprobleme gewonnenen Erkenntnisse bspw. recht einfach in die Welt der Optimierungsprobleme übertragen... den letzten Punkt schauen wir uns ein wenig genauer an 0/1, Folie 19 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Optimierungsproblem zulässige Eingaben: ein ungerichteter Graph G = (V,E) zulässige Ausgaben: eine maximale Clique C* im Graphen G u zugehöriges Entscheidungsproblem zulässige Eingaben: ein ungerichteter Graph G = (V,E) eine natürliche Zahl k zulässige Ausgaben: Antwort auf die Frage, ob es im Graphen G eine Clique der Größe k gibt 0/1, Folie 20 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Beziehungen zwischen den beiden Problemen es gelten die folgenden Zusammenhänge: 1) Jeder Lösungsalgorithmus für das Optimierungsproblem kann verwendet werden, um das Entscheidungsproblem zu lösen. 2) Jeder Lösungsalgorithmus für das Entscheidungsproblem kann verwendet werden, um das Optimierungsproblem zu lösen. 0/1, Folie 21 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Begründung für Aussage 1) sei A ein Lösungsalgorithmus für das Optimierungsproblem der folgende Algorithmus B löst offenbar das Entscheidungsproblem Eingabe: ein ungerichteter Graph G = (V,E) und eine natürliche Zahl k Ausgabe: entweder die Antwort Ja oder die Antwort Nein benutze den Lösungsalgorithmus A, um eine maximale Clique C* im Graphen G zu konstruieren überprüfe, ob C* mindestens k Elemente hat falls ja, so gib die Antwort Ja aus andernfalls, gib die Antwort Nein aus 0/1, Folie 22 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Konsequenzen... wenn der Lösungsalgorithmus A für das Optimierungsproblem f( G ) viele Rechenschritte benötigt, um für einen gegebenen Graphen G eine maximale Clique zu konstruieren, so gilt: der vorgestellte Algorithmus B benötigt höchstens c* f( G ) viele Rechenschritte, um zu entscheiden, ob es in G eine Clique gibt, die mindestens die Größe k hat... G bezeichnet die Größe des Graphen G 0/1, Folie 23 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Begründung für Aussage 2) sei B ein Lösungsalgorithmus für das Entscheidungsproblem der folgende Algorithmus A löst das Optimierungsproblem Eingabe: ein ungerichteter Graph G = (V,E) Ausgabe: eine Teilmenge C* von V (1) benutze den Lösungsalgorithmus B, um zu bestimmen, wie viele Elemente eine maximale Clique im Graphen G hat (/* es sei z diese Zahl */) (2) benutze den Lösungsalgorithmus B, um im Graphen G eine Clique C* der Größe z zu konstruieren 0/1, Folie 24 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Details für Schritt (1) o.b.d.a. sei V = { 1,..., n } es wir z = 1 gesetzt für k = 2,..., n wird wie folgt vorgegangen: mit Hilfe von Lösungsalgorithmus B wird überprüft, ob es in G eine Clique gibt, die die Größe k hat falls die Antwort Ja ist, so wird z = k gesetzt andernfalls, wird die Schleife beendet es wird z ausgegeben 0/1, Folie 25 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Ideen für Schritt (2) 1 maximale Cliquen in diesem Graphen haben die Größe 3 2 3 wenn wir den Knoten 1 und alle Kanten zum Knoten 1 streichen, ergibt sich ein Graph G, in dem maximale Cliquen ebenfalls die 4 5 Größe 3 haben Konsequenz: man muss den gestrichenen Knoten 1 nicht in die gesuchte maximale Clique C* aufnehmen und konstruiert einfach im Graphen G eine Clique der Größe 3 G : 2 3 4 5 0/1, Folie 26 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Ideen für Schritt (2) (cont.) 1 maximale Cliquen in diesem Graphen haben wieder die Größe 3 2 3 wenn wir den Knoten 1 und alle Kanten zum Knoten 1 streichen, ergibt sich ein Graph G, in dem maximale Cliquen nicht mehr die 4 5 Größe 3 haben Konsequenz: man muss den gestrichenen Knoten 1 in die gesuchte maximale Clique C* aufnehmen und konstruiert einfach im folgenden Teilgraphen G von G eine Clique der Größe 2 G : 2 3 G : 2 3 4 5 5 0/1, Folie 27 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Beispiel für Schritt (2) 1 G: 2 3 4 5 G : 2 3 4 5 Größe einer maximalen Clique C*: 3 Größe einer maximalen Clique C*: 2 G : 2 3 5 mit diesem Graphen geht es weiter (/* C* muss den Knoten 1 enthalten */) 0/1, Folie 28 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Beispiel für Schritt (2) (cont.) G: 2 3 5 G : 3 5 Größe einer maximalen Clique C*: 2 Größe einer maximalen Clique C*: 2 3 G : 5 mit diesem Graphen geht es weiter (/* C* muss den Knoten 1 enthalten */) 0/1, Folie 29 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Beispiel für Schritt (2) (cont.) G: 3 5 G : 5 Größe einer maximalen Clique C*: 2 Größe einer maximalen Clique: 1 G : 5 mit diesem Graphen geht es weiter (/* C* muss die Knoten 1 und 3 enthalten */) 0/1, Folie 30 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Details für Schritt (2) o.b.d.a. sei wieder V = { 1,..., n } setze C* = und i = 1 solange C* weniger als z Elemente hat, gehe wie folgt vor: bilde den Teilgraphen G = (V,E ) von G (/* durch Streichen von Knoten i und aller Kanten zum Knoten i */) bestimme wie in Schritt (1) die Größe z einer maximale Clique im Teilgraphen G falls z = z ist, so setze i = min(v ) und G = G andernfalls, gehe wie folgt vor: setze C* = C* { i } und z = z-1 bilde den Teilgraphen G = (V,E ) von G (/* durch Streichen aller Knoten, die keine Kante zum Knoten i haben, und aller Kanten zu diesen Knoten */) setze i = min(v ) und G = G 0/1, Folie 31 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Konsequenzen... wenn der gegeben Lösungsalgorithmus B für das Entscheidungsproblem f( G ) viele Rechenschritte benötigt, um für einen Graphen G zu entscheiden, ob es in G eine Clique der Größe k gibt, so gilt: um eine maximale Clique in G zu konstruieren, benötigt der vorgestellte Algorithmus A in Schritt (1) höchstens f 1 ( G ) = c 1 * G *f( G ) viele Rechenschritte in Schritt (2) höchstens f 2 ( G ) = G *(c 2 * G +f( G )) viele Rechenschritte... G bezeichnet die Größe des Graphen G 0/1, Folie 32 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Optimierungs- und Entscheidungsprobleme u Zwischenfazit das betrachtete Optimierungsproblem und das zugehörige Entscheidungsproblem sind im folgenden Sinne äquivalent: für beide Probleme gibt es Lösungsalgorithmen die Rechenzeit der Lösungsalgorithmen unterscheidet sich nicht signifikant, d.h. es gilt: wenn es für eines dieser beiden Probleme einen effizienten Lösungsalgorithmus gibt, so gibt es auch für das andere Problem einen effizienten Lösungsalgorithmus wenn es für eines dieser beiden Probleme keinen effizienten Lösungsalgorithmus gibt, so gibt es auch für das andere Problem keinen effizienten Lösungsalgorithmus 0/1, Folie 33 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Entscheidungsprobleme und Wortprobleme u Anmerkungen in der theoretischen Informatik werden wir häufig die interessierenden Entscheidungsprobleme auf eine andere Art beschreiben dabei werden folgende Begriffe eine Rolle spielen: Alphabet, Wörter formale Sprache Wortproblem für eine Sprache... die relevanten Details schauen wir uns in der nächsten Vorlesung an und diskutieren jetzt nur zwei Beispiele 0/1, Folie 34 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Das Primzahlproblem u Problemstellung wir interessieren uns für folgendes Entscheidungsproblem: zulässige Eingaben: eine natürliche Zahl k zulässige Ausgaben: Antwort auf die Frage, ob k eine Primzahl ist 0/1, Folie 35 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Das Primzahlproblem als Wortproblem u Bezeichnungen... offenbar kann man jede natürliche Zahl eineindeutig mit Hilfe eines Wortes beschreiben, das nur aus Nullen und Einsen besteht es sei also Σ = { 0,1 } das zugrunde liegende Alphabet und Σ* die Menge aller Wörter über diesem Alphabet ferner sei L prim die Menge aller Wörter in Σ*, die eine Primzahl beschreiben 0/1, Folie 36 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Das Primzahlproblem als Wortproblem u Konsequenzen dann kann das Primzahlproblem wie folgt als Wortproblem für die Sprache L prim beschrieben werden: zulässige Eingaben: ein Wort w Σ* zulässige Ausgaben: Antwort auf die Frage, ob w L prim gilt 0/1, Folie 37 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Das k-cliquenproblem u Problemstellung wir interessieren uns für folgendes Entscheidungsproblem: zulässige Eingaben: ein ungerichteter Graph G = (V,E) zulässige Ausgaben: Antwort auf die Frage, ob es im Graphen G eine Clique der Größe k gibt 0/1, Folie 38 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Das k-cliquenproblem als Wortproblem u Vorüberlegung (/* Beschreibung von Graphen */) b a 1 2 c 3 4 e d Anzahl der Kanten Ecken von Kante a Ecken von Kante c Ecken von Kante e 11111 0 1111 0 1100 1010 1001 0101 0011 Anzahl der Knoten Ecken von Kante b Ecken von Kante d 0/1, Folie 39 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Das k-cliquenproblem als Wortproblem u Bezeichnungen... wie wir gesehen haben, kann man jeden ungerichteten Graphen eineindeutig mit Hilfe eines Wortes beschreiben, das nur aus Nullen und Einsen besteht es sei also wieder Σ = { 0,1 } das zugrunde liegende Alphabet und Σ* die Menge aller Wörter über diesem Alphabet ferner sei L k-clique die Menge aller Wörter in Σ*, die einen ungerichteten Graphen beschreiben, in dem es eine Clique der Größe k gibt 0/1, Folie 40 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik
Das k-cliquenproblem als Wortproblem u Konsequenzen dann kann das k-cliquenproblem wie folgt als Wortproblem für die Sprache L k-clique beschrieben werden: zulässige Eingaben: ein Wort w Σ* zulässige Ausgaben: Antwort auf die Frage, ob w L k-clique gilt 0/1, Folie 41 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik