Algorithmen II Vorlesung am

Ähnliche Dokumente
Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik. Vorlesung am 02. November INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik

2. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

Algorithmen II Vorlesung am

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

Effizienter Planaritätstest Vorlesung am

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

Grundbegriffe der Informatik Tutorium 10

Algorithmen II Vorlesung am

Reguläre Sprachen und endliche Automaten

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 13

Algorithmen II Vorlesung am

Theoretische Grundlagen der Informatik

Vorlesung Theoretische Informatik (Info III)

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Grundbegriffe der Informatik Tutorium 11

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2014/2015

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

FORMALE SYSTEME. 10. Vorlesung: Grenzen regulärer Sprachen / Probleme für Automaten. TU Dresden, 14. November 2016.

Theoretische Grundlagen der Informatik

DisMod-Repetitorium Tag 4

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Algorithmen II Vorlesung am

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Theoretische Grundlagen der Informatik

Musterlösung Informatik-III-Klausur

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

1. Klausur zur Vorlesung Informatik III Wintersemester 2004/2005

Teil III. Komplexitätstheorie

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2016/2017

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

2.2 Reguläre Sprachen Endliche Automaten

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Algorithmische Methoden für schwere Optimierungsprobleme

Abschlusseigenschaften

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Informatik III - WS07/08

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

Algorithmen II Vorlesung am

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

Grundbegriffe der Informatik Tutorium 33

1.8 Shift-And-Algorithmus

Das Problem des minimalen Steiner-Baumes

Grundlagen der Theoretischen Informatik

Zeitkomplexität (1) Proseminar Theoretische Informatik. Proseminar Theoretische Informatik: Lisa Dohrmann 1

Formale Systeme. Endliche Automaten. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

abgeschlossen unter,,,, R,

Formale Systeme. Endliche Automaten. Prof. Dr. Bernhard Beckert, WS 2015/ KIT I NSTITUT F U R T HEORETISCHE I NFORMATIK

Kapitel 9: Lineare Programmierung Gliederung

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung

subexponentielle Algorithmen (d.h. Laufzeiten wie z. B. 2 n oder

Approximationsalgorithmen

Algorithmen II Vorlesung am

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Algorithmen auf Sequenzen

Theoretische Informatik I

Algorithmen I - Tutorium 28 Nr. 12

Einige Grundlagen der Komplexitätstheorie

Theorie der Informatik

Software Engineering Ergänzung zur Vorlesung

Formale Systeme Prof. Dr. Bernhard Beckert, WS 2016/2017

Algorithmische Methoden zur Netzwerkanalyse

Theoretische Grundlagen der Informatik

Grundlagen der theoretischen Informatik

Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Musterlösung der Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

Einführung in die Computerlinguistik deterministische und nichtdeterministische endliche Automaten

Laufzeit einer DTM, Klasse DTIME

Informatik III - WS07/08

Einführung in Approximative Algorithmen und Parametrisierte Komplexität

Algorithmische Methoden zur Netzwerkanalyse

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung

Übung zur Vorlesung Theoretische Information. Pumping Lemma

Automaten und formale Sprachen Klausurvorbereitung

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

1.3 Knuth-Morris-Pratt-Algorithmus

Formale Sprachen. Script, Kapitel 4. Grammatiken

Anwenundg regulärer Sprachen und endlicher Automaten

Theoretische Informatik II

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Reduktionen. Formalisierung von Sprache A ist nicht schwerer als Sprache B.

Effiziente Algorithmen II

Transkript:

Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum II Wintersemester 01/013 in der Helmholtz-Gemeinschaft www.kit.edu

Kernbildung mit Linearer Programmierung

VERTEX COVER als ILP Problem: VERTEX COVER Finde Vertex Cover V V mit V k. V heißt Vertex Cover genau dann, wenn für jede Kante {v, w} E gilt v V oder w V. (ist N P-Schwer) Formulierung als ILP: Eine Variable x v für jeden Knoten v V. x v = 1 bedeutet v V, x v = 0 bedeutet v / V. Minimiere also unter den Nebenbedingungen x v {0, 1} x v + x u 1 x V x v für alle v V für alle (u, v) E

VERTEX COVER als ILP Problem: VERTEX COVER Finde Vertex Cover V V mit V k. V heißt Vertex Cover genau dann, wenn für jede Kante {v, w} E gilt v V oder w V. (ist N P-Schwer) Formulierung als ILP: Eine Variable x v für jeden Knoten v V. x v = 1 bedeutet v V, x v = 0 bedeutet v / V. Minimiere also unter den Nebenbedingungen x v {0, 1} x v + x u 1 x V x v für alle v V Relaxierung des ILP s: Ersetze Bedingung x v {0, 1} durch 0 x v 1. für alle (u, v) E

Eigenschaften der Relaxierung Lemma: Fast ganzzahlige Lösung (Lemma 10.8) Das relaxierte LP hat eine optimale Lösung mit x v {0, 1, 1} für alle v V. Eine solche Lösung kann in polynomieller Zeit berechnet werden.

Eigenschaften der Relaxierung Lemma: Fast ganzzahlige Lösung (Lemma 10.8) Das relaxierte LP hat eine optimale Lösung mit x v {0, 1, 1} für alle v V. Eine solche Lösung kann in polynomieller Zeit berechnet werden. Betrachte Optimallösung mit x v {0, 1, 1} für alle v V. Sei V r = {v V x v = r} für r {0, 1, 1}. Sei G r der von V r induzierte Graph. G 0 G 1 G 1 Lemma: Zusammensetzbarkeit von Lösungen (Lemma 10.9) Für den Wert vc( ) eines optimalen Vertex Covers gilt: (i) vc(g 1 ) 1 V 1 (ii) vc(g 1 ) = vc(g) V 1

Der Kern des Problems Lemma: Zusammensetzbarkeit von Lösungen (Lemma 10.9) Für den Wert vc( ) eines optimalen Vertex Covers gilt: (i) vc(g 1 ) 1 V 1 (ii) vc(g 1 ) = vc(g) V 1 Folgerung: Kernbildung zu Instanz (G, k) von Vertex Cover: (1) Löse LP mit Bedingung x v {0, 1, 1} in Polynomialzeit. () Setzte k = k V 1 (falls k < 0, so gibt es kein Vertex Cover der Größe k). (3) Falls V 1 > k, dann gibt es in G 1 der Größe k. (4) Andernfalls gib (G 1, k ) als Kern aus. kein Vertex Cover der Größe k es gibt in G keines Beachte: G 1 enthält nur O(k ) (k k) Knoten (wegen (3)). Laufzeit zur Berechnung eines Vertex Covers der Größe k: O(p(n) + f (k )) Dabei bezeichnet f (k ) die Laufzeit zur Berechnung eines Vertex Covers der Größe k in G 1. Erinnerung: Vertex Cover der Größe k in einem Graph mit n Knoten kann in O(k n +1.34 k k ) Zeit berechnet werden.

Reguläre Sprachen

Erkennen regulärer Sprachen Problem: Gegeben seien ein Text T, sowie ein regulärer Ausdruck R. Ist T ein Wort der Sprache L(R)? Beispiel: Regulärer Ausdruck R = (a(a c) b) (b c) R beschreibt die Sprache L(R) aller Wörter über dem Alphabet = {a, b, c} in denen nach jedem Auftreten eines a s auch noch ein b auftritt. Repräsentation als endlicher Automat: Test ob T L(R): Simulation des Automaten. a q b b, c a, c

Erkennen regulärer Sprachen Problem: Gegeben seien ein Text T, sowie ein regulärer Ausdruck R. Ist T ein Wort der Sprache L(R)? Beispiel: Regulärer Ausdruck R = (a(a c) b) (b c) R beschreibt die Sprache L(R) aller Wörter über dem Alphabet = {a, b, c} in denen nach jedem Auftreten eines a s auch noch ein b auftritt. Repräsentation als endlicher Automat: Test ob T L(R): Simulation des Automaten. Zu beantwortende Fragen: a q b b, c a, c Wie konstruiert man (effizient) einen endlichen Automaten zu einem gegebenen regulären Ausdruck? Wie simuliert man ein Wort effizient? NEA oder DEA? (NEA/DEA: nichtdeterministischer/deterministischer endlicher Automat)

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : ε: q x: \ {x} x q 3 q

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : Zusammengesetzte Ausdrücke: (α) (β): ε: q NEA für α... x: \ {x} x q 3 q NEA für β...

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : Zusammengesetzte Ausdrücke: (α) (β): ε: NEA für (α) (β) q ε NEA für α... x: \ {x} x q 3 q q 0 ε NEA für β...

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : Zusammengesetzte Ausdrücke: (α) (β): ε: q x: \ {x} x q 3 q NEA für α... NEA für β...

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : Zusammengesetzte Ausdrücke: (α) (β): ε: NEA für (α) (β) q x: \ {x} x q 3 q NEA für α... ε ε ε NEA für β...

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : Zusammengesetzte Ausdrücke: (α) : ε: q NEA für α... x: \ {x} x q 3 q

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : Zusammengesetzte Ausdrücke: (α) : ε: NEA für (α) ε q NEA für α... q 0 ε ε ε x: \ {x} x q 3 q

Regulärer Ausdruck NEA Rekursive Definition eines regulären Ausdrucks: Die leere Menge, das leere Wort ε und einzelne Zeichen x sind reguläre Ausdrücke. Für zwei reguläre Ausdrücke α, β sind auch (α) (β), (α) (β), (α) + und (α) reguläre Ausdrücke. NEA s für die atomaren Ausdrücke: : Zusammengesetzte Ausdrücke: (α)+ : ε: NEA für (α) + ε q NEA für α... q 0 ε ε ε x: \ {x} x q 3 q

Simulation des NEA Größe des NEA s: Der so konstruierte NEA hat O(k) viele Zustände, wobei k = R die Länge des regulären Ausdrucks ist. Simulation eines Wortes T : Erinnerung: T wird akzeptiert, wenn es eine Ausführung gibt, die in einem Endzustand landet. Alle möglichen Ausführungen auflisten zu aufwendig. Markiere stattdessen zu jedem Zeitpunkt alle Zustände, in denen man sich aktuell befinden könnte. Berechne daraus, abhängig vom nächsten Zeichen, die neue Markierung. Akzeptiere, wenn am Ende ein Endzustand markiert ist.

Simulation des NEA Größe des NEA s: Der so konstruierte NEA hat O(k) viele Zustände, wobei k = R die Länge des regulären Ausdrucks ist. Simulation eines Wortes T : Erinnerung: T wird akzeptiert, wenn es eine Ausführung gibt, die in einem Endzustand landet. Alle möglichen Ausführungen auflisten zu aufwendig. Markiere stattdessen zu jedem Zeitpunkt alle Zustände, in denen man sich aktuell befinden könnte. Berechne daraus, abhängig vom nächsten Zeichen, die neue Markierung. Akzeptiere, wenn am Ende ein Endzustand markiert ist. Laufzeit: O(k) Aufwand für jedes Gelesene Zeichen insgesamt O(k n). Geht das Schneller? Idee: In einem DEA braucht die Ausführung nur O(1) Zeit pro Zeichen.

NEA DEA Potenzmengenkonstruktion (Idee): (bekannt aus TGI) Ein Knoten in dem DEA entspricht einer Teilmenge von Knoten in dem NEA. Eine solche Teilmenge kommt als Knoten vor, wenn sie als Markierung in einer Abarbeitung vorkommen kann. Die Übergänge wandeln entsprechend Markierungen ineinander um. Ein Zustand des DEA ist akzeptierend, falls er einen akzeptierenden Zustand des NEA enthält.

NEA DEA Potenzmengenkonstruktion (Idee): (bekannt aus TGI) Ein Knoten in dem DEA entspricht einer Teilmenge von Knoten in dem NEA. Eine solche Teilmenge kommt als Knoten vor, wenn sie als Markierung in einer Abarbeitung vorkommen kann. Die Übergänge wandeln entsprechend Markierungen ineinander um. Ein Zustand des DEA ist akzeptierend, falls er einen akzeptierenden Zustand des NEA enthält. Laufzeit: Der resultierende DEA kann O( k ) (also exponentiell) groß sein. Die Simulation von n Zeichen dauert dennoch nur O(n) Zeit. Laufzeit: O( k + n). FPT bezüglich Parameter k. Beachte: Auch wenn es einen polynomiellen Algorithmus mit Laufzeit O(k n) gibt, kann es schneller sein den FPT-Algorithmus zu verwenden (für k << n).

Ein kleinerer DEA? Kann man einen kleineren DEA finden? Behauptung: Der folgende NEA beschreibt eine Sprache, für die jeder DEA k Zustände braucht. q 0 1 0, 1 q 0, 1 0, 1 q k 1 0, 1 q k 0, 1 (akzeptiert werden alle Wörter, die an der k-letzten Stelle eine 1 hatten)

Ein kleinerer DEA? Kann man einen kleineren DEA finden? Behauptung: Der folgende NEA beschreibt eine Sprache, für die jeder DEA k Zustände braucht. Beweis Idee: q 0 q q k 1 q k 1 0, 1 0, 1 0, 1 0, 1 0, 1 (akzeptiert werden alle Wörter, die an der k-letzten Stelle eine 1 hatten) Jedes der k zuletzt gelesenen Zeichen kann für die Akzeptanz entscheidend sein. (der DEA weiß nicht wie lang das Wort ist) Unterscheiden sich die letzten k Zeichen zweier Eingaben, so muss der DEA in unterschiedlichen, nichtäquivalenten Zuständen sein. Es gibt k verschiedene Zeichenketten der Länge k k Zustände nötig.