Asymptotische Komplexität

Ähnliche Dokumente
1.5 Asymptotische Komplexität untere und obere Schranken

Definition der Kolmogorov-Komplexität I

Minimalpolynome und Implikanten

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

2. Tag. Teil II. 1.5 Interpretation der Grenzwertregeln

Ab 5.11.: Vorlesung im HSG H.001

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Proseminar Komplexitätstheorie P versus NP Wintersemester 2006/07. Nichtdeterministische Turingmaschinen und NP

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)

Rechnerstrukturen. Michael Engel und Peter Marwedel SS TU Dortmund, Fakultät für Informatik

Verwendung eines KV-Diagramms

Berechenbarkeit. Script, Kapitel 2

Theoretische Informatik 1

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Rucksackproblem und Verifizierbarkeit

Turing-Maschinen: Ein abstrakes Maschinenmodell

VL-03: Turing Maschinen II. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

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

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Turing Maschinen II Wiederholung

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Berechnungsmodelle. Mathias Hecht. April 29, 2010

Klassische Informationstheorie: Berechenbarkeit und Komplexität

Graphenalgorithmen und lineare Algebra Hand in Hand Prof. Dr. Henning Meyerhenke

ALP I Turing-Maschine

Theoretische Informatik 1

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Fakultät für Informatik Universität Magdeburg Jürgen Dassow. Vorbemerkungen

Beispiel: NTM. M = ({q 0,q 1,q 2 }, {0, 1}, {0, 1, #},δ, q 0, #, {q 2 }) q 2

Mächtigkeit von LOOP-Programmen. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Allgemeingültige Aussagen

Berechenbarkeit und Komplexität: Mächtigkeit von Programmiersprachen: WHILE- und LOOP-Programme

Kapitel 1. Komplexität Boolescher Funktionen. 1.1 Boolesche Funktionen

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Theoretische Grundlagen der Informatik

15. Elementare Graphalgorithmen

6. Flüsse und Zuordnungen

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

4.2 Grenzen Effizienter Schaltkreise

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Polynomielle Verifizierer und NP

Einige Beispiele zur Turingmaschine

Berechenbarkeit und Komplexität: Probleme, Sprachen, Maschinen

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Effiziente Algorithmen I

Boolesche (Schalt-) Algebra (8)

Turing-Maschine. Berechenbarkeit und Komplexität Turing-Maschinen. Turing-Maschine. Beispiel

Beschreibungskomplexität von Grammatiken Definitionen

Lösungsvorschläge und Erläuterungen Klausur zur Vorlesung Grundbegriffe der Informatik 15. September 2016

Einführung in die Theoretische Informatik

Dank. Theoretische Informatik II. Komplexitätstheorie. Teil VI. Komplexitätstheorie. Vorlesung

Klausur zur Vorlesung Grundbegriffe der Informatik 14. September 2015

Mächtigkeit von WHILE-Programmen

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Einige Grundlagen der Komplexitätstheorie

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

Komplexitätstheorie WiSe 2011/12 in Trier. Henning Fernau Universität Trier

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

Grundbegriffe der Informatik

Unentscheidbarkeit. 1. Wann sind Sprachen unentscheidbar? 1, A 0, A } = {

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier

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

PRIMES is in P. Ein Vortrag von Holger Szillat.

Algorithmische Methoden zur Netzwerkanalyse

Bisher. minimale DNF. logischen Formeln Booleschen Funktionen Schaltungen

P, NP und NP -Vollständigkeit

1.5 Turing-Berechenbarkeit

Theoretische Grundlagen der Informatik

Rechnerstrukturen, Teil 1

Theoretische Informatik. Berechenbarkeit

Komplexitätstheorie Kap. 4: Grundlegende Ergebnisse...

Algorithmen und Datenstrukturen

Modelle der Parallelverarbeitung

Kürzeste-Wege-Algorithmen und Datenstrukturen

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z}

Berechenbarkeits- und Komplexitätstheorie

Fortgeschrittene Netzwerk- und Graph-Algorithmen

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

Algorithmen II Vorlesung am

Unentscheidbarkeit von Problemen mittels Turingmaschinen

Automaten und Formale Sprachen SoSe 2013 in Trier

1.5 Turing-Berechenbarkeit

Klausur zur Vorlesung Grundbegriffe der Informatik 2. März 2016

Grundlagen der Theoretischen Informatik

Halteproblem/Kodierung von Turing-Maschinen

Algorithmische Methoden zur Netzwerkanalyse

Prof. Dr. H. Brenner Osnabrück SS Analysis II. Vorlesung 50. Hinreichende Kriterien für lokale Extrema

Transkript:

Asymptotische Komplexität f B n hängt wesentlich von der Variablen x i ab,, 1 i n, wenn es Werte a j für 1 j n, j i, derart gibt, dass f(a 1,..., a i 1, 0, a i+1,..., a n ) f(a 1,..., a i 1, 1, a i+1,..., a n ) Satz: Für jede Boolesche Funktion f B n, die von allen Variablen wesentlich abhängt, gilt C B2 (f) n 1. Definition: Für ein Komplexitätsmaß K {C, L, D} und eine Menge S B von Basisfunktionen definieren wir die Funktion K S : N N vermöge K S (n) = max{k S (f) f B n }. Beschreibungskomplexität - Boolesche Funktionen 20

Obere Schranken I Satz: Es gibt eine natürliche Zahl n 0 derart, dass für jede natürliche Zahl n n 0 ( C(n) 2n 2 n) n + o n gilt. Satz: Es gibt eine natürliche Zahl n 0 1 derart, dass für jede natürliche Zahl n n 0 ( L(n) 2n+1 2 n ) log(n) + o log(n) gilt. Beschreibungskomplexität - Boolesche Funktionen 21

Obere Schranken II Satz: Für jede natürliche Zahl n 2 gilt D(n) n + log(n). Satz: Es gibt eine natürliche Zahl n 0 1 derart, dass für jede natürliche Zahl n n 0 D(n) n log(log(n)) + 2 + o(1) gilt. Beschreibungskomplexität - Boolesche Funktionen 22

Einige Abschätzungen Für natürliche Zahlen n 1 und b 1 und ein Komplexitätsmaß K {C, D, L} setzen wir K(n, b) = #({f f B n, K B2 (f) b}). Lemma: Für natürliche Zahlen n 1 und b 1 gelten L(n, b) n b+1 64 b und C(n, b) b 16b (n + b) 2b b!. Corollary: Es gibt eine natürliche Zahl n 0 derart, dass für alle n n 0 gilt. C(n, b) be n (16e(n + b)) b Beschreibungskomplexität - Boolesche Funktionen 23

Untere Schranken Satz: Für jede natürliche Zahl n 1 gilt 2 n log(n) 1 (1 δ(n)) < L(n) mit δ(n) = log(n) 2 n + 6 log(n). Satz: Es gibt eine natürliche Zahl n 0 derart, dass für alle n n 0 gilt. n log(log(n)) 2 < D(n) Satz: Für jede (beliebig kleine) Zahl δ gibt es eine natürliche Zahl n 0 derart, dass 2 n (1 δ) < C(n) n für alle n n 0 gilt. Beschreibungskomplexität - Boolesche Funktionen 24

Asymptotisches Verhalten Satz: Es gelten die folgenden Beziehungen: i) C(n) = Θ( 2n n ), ii) L(n) = Θ( 2n log(n) ), iii) D(n) = Θ(n log(log(n))). Beschreibungskomplexität - Boolesche Funktionen 25

Eine komplizierte Funktion f B 2 k +3k+3 Einteilung der 2 k + 3k + 3 Variablen: x = (x 1, x 2,..., x 2 k), a = (x 2 k +1, x 2 k +2,... x 2 k +k ), b = (x 2 k +k+1, x 2 k +k+2,... x 2 k +2k ), c = (x 2 k +2k+1, x 2 k +2k+2,... x 2 k +3k ), p = x 2 k +3k+1, q = x 2 k +3k+2, r = x 2 k +3k+3 a, b and c die natürlichen Zahlen mit den Binärdarstellungen a, b und c f(x 1,... x 2 k +3k+3 ) = f(x, a, b, c, p, q, r) = [ q [(x a x b ) (p x b x r c)] ] [q (x a x b )]. Satz: C(f) 3 2 k 3. Beschreibungskomplexität - Boolesche Funktionen 26

K- and KA-Ausdrücke Definition: Es sei X eine (unendliche) Menge von Variablen. i) K-Ausdrücke sind wie folgt induktiv definiert. Für jede Variable x X sind x und x K-Ausdrücke. Ist U ein K-Ausdruck und kommt weder die Variable x selbst noch ihre Negation x in U vor, so sind U x und U x auch K-Ausdrücke. ii) KA-Ausdrücke sind wie folgt induktiv definiert. Jeder K-Ausdruck ist ein KA-Ausdruck. Sind V 1 und V 2 zwei KA-Ausdrücke, so ist V 1 V 2 ein KA-Ausdruck. iii) V ist ein KA-Ausdruck für f B n, falls f = V gilt. Beschreibungskomplexität - Boolesche Funktionen 27

Kosten eines KA-Ausdruckes Definition: Die Kosten eines KA-Ausdrucks sind induktiv wie folgt definiert: Für x X gilt k(x) = k(x) = 1. Für x X und einen K-Ausdruck U, der weder x noch x enthält, gilt k(u x) = k(u x) = k(u) + 1. Sind V 1 und V 2 KA-Ausdrücke, so gilt k(v 1 V 2 ) = k(v 1 ) + k(v 2 ). Beschreibungskomplexität - Boolesche Funktionen 28

Implikanten Definition: i) Ein K-Ausdruck U heißt Implikant der Funktion f, falls er für jede Belegung der Variablen U nur dann den Wert 1 annimmt, wenn auch f den Wert 1 annimmt. ii) Ein K-Ausdruck U heißt Primimplikant von f, wenn U ein Implikant von f ist und bei Streichung einer beliebigen (einfachen oder negierten) Variable in U ein K-Ausdruck entsteht, der kein Implikant von f ist. I(f) Menge der Implikanten von f P I(f) Menge der Primimplikanten von f Beschreibungskomplexität - Boolesche Funktionen 29

Einige Aussagen Lemma: Ein hinsichtlich der Kosten minimaler KA-Ausdruck für eine Boolesche Funktion f ist die Alternative von Primimplikanten von f. Lemma: Ein K-Ausdruck U, der weder x noch x enthält, ist genau dann ein Implikant für f, wenn U x und U x Implikanten von f sind. Theorem: Das Problem de Bestimmung eines minimalen KA-Ausdrucks für die Funktion f aus der reduzierten PI-Tafel von f ist NP-vollständig. Beschreibungskomplexität - Boolesche Funktionen 30

Algorithmus von Quine und McCluskey Eingabe: Boolesche Funktion f B n als Wahrheitstabelle, Ausgabe: Menge P I(f) der Primimplikanten von f Q n := {m a : a f 1 (1) } ; i := n ; WHILE Q i BEGIN i := i 1 ; Q i := {U : es gibt eine Variable x derart, dass x und x in U nicht vorkommen und U x, U x Q i+1 gilt } ; P i+1 := {U : U Q i+1 und jede Menge V Q i ist kein Teilausdruck von U } END ; P I(f) := n k=i+1 P k Beschreibungskomplexität - Boolesche Funktionen 31

Algorithmus zur Reduktion einer PI-Table Eingabe: PI-Tafel der Funktion f Ausgabe: Teilmenge R von Primimplikanten von f und reduzierte PI-Tafel R := ; T 0 := Matrix mit einer Zeile und Spalte und Eintrag 0 ; T 1 := PI-Tafel von f; i := 1; WHILE T i T i 1 BEGIN M i := {a : zu a gehörige Spalte enthält genau eine 1} ; N i := {U : U ist Primimplikant in T i, U(a) = 1 für ein a M i } ; R := R N i ; T i entstehe aus T i durch Streichen aller Zeilen U N i und Streichen aller Spalten zu b mit U(b) = 1 für ein U N i ; T i+1 entstehe aus T i durch Streichen aller Spalten c, für die eine Spalte c mit c c existiert; i := i + 1 END Beschreibungskomplexität - Boolesche Funktionen 32

Verzweigungsprogramm Definition Definition: Ein Verzweigungsprogramm ist ein gerichteter Graph mit Kanten- und Knotenmarkierungen und drei Sorten von Knoten: genau einer Quelle, die mit einer Booleschen Variablen markiert ist, deren Eingangsgrad 0 und Ausgangsgrad 2 betragen und von den beiden vom Knoten ausgehenden Kanten ist die eine mit 0 und die andere mit 1 markiert, inneren Knoten, die mit einer Booleschen Variablen markiert sind, deren Eingangsgrad mindestens 1 ist, deren Ausgangsgrad 2 ist und von den beiden vom Knoten ausgehenden Kanten ist die eine mit 0 und die andere mit 1 markiert, und zwei Senken, die mit 0 bzw. 1 markiert sind und deren Ausgangsgrade 0 sind. Beschreibungskomplexität - Boolesche Funktionen 33

Verzweigungsprogramm berechnete Funktion Defintion: Sei G ein Verzweigungsprogramm, dessen innere Knoten mit x i, 1 i n, markiert sind. Wir ordnen G wie folgt eine Funktion f G zu: Sei a = (a 1, a 2,..., a n ) {0, 1} n. Wir beginnen mit der Quelle und folgen stets bei einem Knoten x i, 1 i n, der mit a i markierten Kante. Der Funktionswert f G (a) ist durch Markierung der erreichten Senke gegeben. Beschreibungskomplexität - Boolesche Funktionen 34

Verzweigungsprogramm Beispiel I 0 x 1 0 x 2 1 0 x 2 x 3 0 1 1 x 3 0 1 1 1 x 3 1 x 3 0 0 1 0 Beschreibungskomplexität - Boolesche Funktionen 35

Größe und Tiefe eines Verzweigungsprogramms Definition: Für ein Verzweigungsprogramm G definieren wir die Größe V C(G) bzw. die Tiefe V D(G) als die um 1 erhöhte Anzahl der inneren Knoten von G bzw. die Tiefe von G. Definition: Für eine Boolesche Funktion f und K {C, D} setzen wir V K(f) = min{v K(G) G berechnet f}. Beschreibungskomplexität - Boolesche Funktionen 36

Verzweigungsprogramm Beispiel II 0 x 1 x 3 0 0 1 x 2 x 2 0 1 1 1 x 3 1 0 0 1 Beschreibungskomplexität - Boolesche Funktionen 37

Resultate zur Komplexität von Verzweigungsprogrammen I Theorem: Für jede Boolesche Funktion f B n gelten V C(f) 2 n 1 und V D(f) n. Theorem: Für jede vollständige Menge S gibt es zwei Konstanten c 1 und c 2 derart, dass für jede Boolesche Funktion f B n gelten. C S (f) c 1 (V C(f) + 2) und D S (f) c 2 (V D(f) + 1) Beschreibungskomplexität - Boolesche Funktionen 38

Resultate zur Komplexität von Verzweigungsprogrammen II Bezeichnung: V K(n) = max{v K(f) f B n } für K {C, D} Theorem: Für hinreichend großes n gelten 2 n 3n 2 V C(n) 2n 1 und n log(n) c 2 wobei c eine Konstante ist. 1 V D(n) n, Beschreibungskomplexität - Boolesche Funktionen 39

Turing-Maschine Eine Turing-Maschine ist ein Tupel M = (X, Z, z 0, Q, δ), wobei X das Eingabealphabet ist, Z die Menge der Zustände ist, z 0 Z der Anfangszustand ist, Q Z die Menge der Endstände ist, und die Überführungsfunktion δ eine Funktion von (Z \ Q) (X { }) in Z (X { }) {R, N, L} ist., R, L and N bezeichnen das Symbol für die Leere einer Bandzelle und die Richtungen nach rechts oder nach links für die Bewegung des Kopfes bzw. keine Kopfbewegung. Beschreibungskomplexität - Boolesche Funktionen 40

Akzeptanz durch Turing- Maschinen Die Turing-Maschine M akzeptiert das Wort w = a 1 a 2... a n, a i X für 1 i n, wenn folgende Bedingungen erfüllt sind: 1) zu Beginn der Arbeit steht w auf dem Band, 2) zu Beginn der Arbeit ist M im Zustand z 0, 3) zu Beginn der Arbeit steht der Kopf über der Zelle, in der a 1 steht, 4) die Maschine stoppt in einem Endzustand, 5) bei Beendigung der Arbeit steht auf dem Band nur ein ausgezeichnetes Symbol 1 / X, 6) 1 steht in der Zelle, in der zu Beginn a 1 stand, und der Kopf befindet sich erneut über dieser Zelle. w wird von M abgelehnt, wenn in Punkt 5 der vorstehenden Definition der Akzeptanz 1 durch 0 / X ersetzt wird. Beschreibungskomplexität - Boolesche Funktionen 41

Turing-Maschinen versus Schaltkreise Definition: Eine Turing-Maschine M heißt bewegungsuniform, wenn die Position des Kopfes nach i Schritten nur von der Länge n des Eingabewortes (und nicht vom Wort selbst) abhängt. Theorem: Wird eine Sprache L durch eine bewegungsuniforme Turing- Maschine in der Zeit t entschieden, so gibt es eine Konstante c und eine Folge von Schaltkreisen, die L mit der Komplexität t mit t (n) = ct(n) entscheidet. Theorem: Zu jeder Turing-Maschine, die eine Sprache L in der Zeit t entscheidet, gibt es eine bewegungsuniforme Turing-Maschine, die L in O(t(n) log(t(n)) entscheidet. Theorem: Wird eine Sprache L durch eine Turing-Maschine in der Zeit t entschieden, so gibt es eine Folge von Schaltkreisen, die L mit der Komplexität O(t(n) log(t(n)) entscheidet. Beschreibungskomplexität - Boolesche Funktionen 42

Beispiel für einen Schaltkreis zur Simulation einer Turing-Maschine z 0 a b δ 1 δ 2 δ 1 δ 2 δ 1 δ 2 δ 1 δ 2 δ 1 δ 2 δ 1 δ 2 δ 1 δ 2 Beschreibungskomplexität - Boolesche Funktionen 43