Grundbegriffe der Informatik Tutorium 13 - Tutorium Nr. 16 · Für jede berechenbare Funktion f: N...

26
KARLSRUHER INSTITUT FÜR TECHNOLOGIE Grundbegriffe der Informatik Tutorium 13 Tutorium Nr. 16 Philipp Oppermann | 3. Februar 2015 KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Transcript of Grundbegriffe der Informatik Tutorium 13 - Tutorium Nr. 16 · Für jede berechenbare Funktion f: N...

KARLSRUHER INSTITUT FÜR TECHNOLOGIE

Grundbegriffe der InformatikTutorium 13Tutorium Nr. 16

Philipp Oppermann | 3. Februar 2015

KIT – Universität des Landes Baden-Württemberg und

nationales Forschungszentrum in der Helmholtz-Gemeinschaft

www.kit.edu

Gliederung

1 TuringmaschinenKonfigurationSchrittBerechnungenAkzeptorenaufzählbar vs entscheidbar

2 KomplexitätBerechnungskomplexitätKomplexitätsklassenUnentscheidbare ProblemeBusy-Beaver

3 Tipps zum Übungsblatt

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 2/26

partielle Funktionen

partielle FunktionEine partielle Funktion f ist eine rechtseindeutige Relation (die nichtlinkstotal sein muss). Man schreibt f : X 99K Y .

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 3/26

Turingmaschinen

Turingmaschine

Eine Turingmaschine T = (Z , z0,X , f , g,m) ist definiert durch

eine Zustandsmenge Z

einen Anfangszustand z0 ∈ Z

ein Bandalphabet X

eine partielle Zustandsüberführungsfunktion f : Z × X 99K Z

eine partielle Ausgabefunktion g : Z × X 99K X

eine partielle Bewegungsfunktion m : Z × X 99K {−1, 0, 1}wobei f , g und m für die gleichen Paare (z, x) ∈ Z × X (nicht) definiertsind.

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 4/26

Turingmaschinen

häufig L statt -1 und R statt 1 für Kopfbewegungen

Eingabe steht zu Beginn auf dem Band

Kopf startet meist auf dem ersten Eingabesymbol

Das Blanksymbol � ∈ X markiert „leere Felder“ (meistens alle bisauf endlich viele)

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 5/26

Beispiel-Turingmaschine

als Graph:

A B C D E1|XR

1|1R

�|�R

1|1R

�|1L

1|1L

�|�L

1|1L

X|1R

als Tabelle:

A B C D E� �,R,C 1,L,D �,L,E1 X,R,B 1,R,B 1,R,C 1,L,D 1,L,EX 1,R,A

Was gibt diese Turingmaschine für die Eingabe 1k aus?

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 6/26

Lösung

Ausgabe: · · ·���1k�1k��� · · ·

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 7/26

Aufgabe

Geben Sie eine Turingmaschine an, die bei Eingabe eines Wortesw ∈ {0, 1}+ das Wort w1 = xw auf dem Band produziert. Dabei soll dasx an die Stelle des ersten Symbols von w geschrieben werden und jedesSymbol von w um ein Feld nach rechts verschoben werden. IhreTuringmaschine darf maximal 6 Zustände haben.

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 8/26

Lösung

A

B

C

0|xR

1|xR

0|0R

1|0R

�|0R

1|1R

0|1R

�|1R

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 9/26

Turingmaschinen – Konfiguration

Konfiguration

Die Konfiguration c = (z, b, p) einer Turingmaschine ist ihr„Gesamtzustand“ der sich aus

dem aktuelle Zustand z ∈ Z der Steuereinheit

der aktuellen Bandbeschriftung (formalisiert durch b : Z→ X ) und

der aktuellen Position p ∈ Z des Kopfes

zusammensetzt.

Darstellung einer Konfiguration:��0010001(z4)11� – „aktueller Zustand ist z4 und der Kopf steht aufder vorletzten 1“.

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 10/26

Turingmaschinen – Schritt

Schritt einer Turingmaschine

Wenn c = (z, b, p) die Konfiguration einer Turingmaschine T ist und fürden aktuellen Zustand und das aktuelle Bandsymbol (z, b(p)) diepartiellen Funktionen f , g und m definiert sind, kann T einen Schrittdurchführen.T geht dabei in die Konfiguration c′ = (z ′, b′, p′) mit

z ′ = f (z, b(p))

∀i ∈ Z : b′(i) =

{b(i) falls i 6= p

g(z, b(p)) falls i = p

p′ = p + m(z, b(p))

über. Wir schreiben c′ =M1 (c).(für Konfiguration nach k Schritten Mk (c) ).

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 11/26

Turingmaschinen – Berechnung

Endkonfiguration

Falls für eine Konfiguration c die Nachfolgekonfiguration M1 (c) nichtdefiniert ist (kein Schritt möglich), dann ist c Endkonfiguration und dieTuringmaschine hält.

endliche BerechnungEine endliche Berechnung ist eine endliche Folge von Konfigurationenc0, c1, c2, . . . , ct , so dass für alle 0 < i ≤ t gilt: ci =M1 (ci−1).

haltende BerechnungEine haltende Berechnung ist eine endliche Berechnung, deren letzteKonfiguration eine Endkonfiguration ist.

Es gibt unendliche Berechnungen. Diese heißen auch nicht haltend.

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 12/26

Turingmaschinen als Akzeptor

es gibt eine Menge F ⊆ Z von akzeptierenden Zuständen

ein Wort w wird akzeptiert, wenn die Turingmaschine bei Eingabe whält und der Zustand der Endkonfiguration ein akzeptierender ist

die akzeptierte formale Sprache L(T ) ist die Menge allerakzeptierten Worte

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 13/26

aufzählbar vs entscheidbar

Für eine akzeptierte formale Sprache L(T ) gilt:

für alle w ∈ L(T ) hält T in einem akzeptierenden Zustand

Was passiert für w /∈ L(T )? Zwei Möglichkeiten:

T hält in einem nicht akzeptierenden Zustand

T hält überhaupt nicht (Endlosschleife)

entscheidende TuringmaschineEin Turingmachine T , die eine Sprache L akzeptiert und für jede Eingabehält, entscheidet die Sprache L.

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 14/26

aufzählbar vs entscheidbar

entscheidende TuringmaschineEin Turingmachine T , die eine Sprache L akzeptiert und für jede Eingabehält, entscheidet die Sprache L.

aufzählbare SpracheEine formale Sprache L heißt aufzählbar, falls es eine Turingmaschine Tgibt, die L akzeptiert. (T muss nicht für jede Eingabe halten)

entscheidbare SpracheEine formale Sprache L heißt entscheidbar, falls L von einerTuringmaschine T entschieden wird. (T hält für jede Eingabe)

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 15/26

Berechnungskomplexität

ZeitkomplexitättimeT (w) = die Anzahl an Schritten einer Turingmaschine T bis zueiner Endkonfiguration für Eingabe w .

TimeT (n) = max{timeT (w) | w ∈ An}

TimeT heißt Zeitkomplexität von T .

RaumkomplexitätspaceT (w) = die Anzahl der Felder, die während der Berechnung fürEingabe w benötigt werden.

SpaceT (n) = max{spaceT (w) | w ∈ An}

SpaceT heißt Raumkomplexität von T .

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 16/26

Berechnungskomplexität

Zusammenhang von Zeit und RaumDa eine Turingmaschine in n Schritten nur maximal n + 1 Felderbesuchen kann, gilt:

space(w) ≤ max(|w |, 1 + time(w))

polynomielle KomplexitätWenn für eine Turingmaschine T ein Polynom p(n) existiert, so dass

TimeT (n) ∈ O(p(n)), dann ist die Zeitkomplexität

SpaceT (n) ∈ O(p(n)), dann ist die Raumkomplexität

von T polynomiell.

Eine Turingmaschine mit polynomieller Laufzeit hat nur polynomiellenPlatzbedarf, anders herum gilt dies aber nicht!

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 17/26

Komplexitätsklassen

KomplexitätslasseEine Komplexitätslasse ist eine Menge von Problemen (z.B. ist ein Wort ineiner Sprache oder nicht).

PP ist die Menge aller Entscheidungsprobleme, die von Turingmaschinenmit polynomieller Zeitkomplexität entschieden werden können.

PSPACEPSPACE ist die Menge aller Entscheidungsprobleme, die vonTuringmaschinen mit polynomieller Raumkomplexität entschieden werdenkönnen.

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 18/26

Komplexitätsklassen

P und PSPACEEs gilt: P ⊆ PSPACE

in polynomieller Zeit nur polynomiell viele Felder besuchbar

Gilt P = PSPACE?eine Turingmaschine mit polynomiellem Platzbedarf kann exponentiellviele Schritte machenaber vielleicht gibt es eine Turingmaschine mit polynomiellemZeitbedarf die das gleiche Problem entscheidet

man weiß nicht ob P = PSPACE oder P 6= PSPACE

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 19/26

Unentscheidbare Probleme

Codierung einer Turingmaschine

Man kann jede Turingmaschine über dem Alphabet {1, 0} codieren undes gibt eine Turingmaschine, die überprüft ob eine Codierung eine gültigeTuringmaschine ist.

Universelle Turingmaschine

Eine universelle Turingmaschine U erhält als Eingabe zwei Worte [w1][w2]und tut folgendes:

1 sie überprüft ob w1 eine Codierung einer Turingmaschine T ist2 falls ja, simuliert sie T mit w2 als Eingabe3 falls T endet, liefert U das zurück, was T geliefert hat

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 20/26

Unentscheidbare Probleme

HalteproblemDas Halteproblem ist die formale Sprache

H = {w ∈ A∗ | w ist Codierung einer Turingmaschine T und Tw(w) hält}

H ist unentscheidbarDas Halteproblem ist unentscheidbar, d.h. es gibt keine Turingmaschine,die H entscheidet.

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 21/26

Unentscheidbare ProblemeAngenommen H ist entscheidbar:Dann existiert die Turingmaschine TH mit:

TH(w) =

{1 falls w gültige Codierung und Tw(w) hält

0 sonst

Dann existert auch:

Td(w) : =

{1 falls TH(w) = 0

Endlosschleife falls TH(w) = 1

Dann gilt: Td(d) =

{1 falls TH(d) = 0

Endlosschleife falls TH(d) = 1

=

{1 falls Td(d) nicht hält

Endlosschleife falls Td(d) hältWiderspruch!

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 22/26

Busy-Beaver

BibermaschineEine n-Bibermaschine ist eine Turingmaschine T mit folgendenEigenschaften:

Bandalphabet ist X = {�, 1}T hat n + 1 Zustände, wobei

in n Zuständen für jedes Bandsymbol der nächste Schritt definiert ist,einer dieser n Zustände der Startzustand ist undin einem weiteren Zustand für kein Bandsymbol der nächste Schrittdefinert ist (Haltezustand)

Wenn man die Turingmaschine auf dem leeren Band startet hält sienach endlich vielen Schritten

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 23/26

Busy-Beaver

fleißiger BiberEine Bibermaschine heißt fleißiger Biber, wenn sie unter allenBibermaschinen mit gleicher Zustandsanzahl die maximale Anzahl Einsenauf dem Band hinterlässt.

Busy-Beaver-FunktionDie Busy-Beaver-Funktion ist wie folgt definiert:

bb :N+ → N+

bb(n) = die Anzahl von Einsen, die ein fleißiger Biber mit

n + 1 Zuständen am Ende auf dem Band hinterlässt

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 24/26

Busy-Beaver

Busy-Beaver-FunktionBekannt ist:

bb(3) = 6

bb(4) = 13

bb(5) ≥ 4098

bb(6) ≥ 3.514 · 1018276

Eigenschaften der Busy-Beaver-FunktionFür jede berechenbare Funktion f : N+ → N+ gibt es ein n0 ∈ N0,so dass für alle n ≥ n0 gilt: bb(n) > f (n)

Die Busy-Beaver-Funktion bb(n) ist nicht berechenbar

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 25/26

Tipps zum Übungsblatt

Strukturelle Induktion: siehe Folien von Übung 12

„Stelligkeit“ – Anzahl von Argumenten einer Funktion

bei vollständiger Induktion ist die einzige Übergangsfunktioneinstellig: f (n) = n + 1

bei Induktion über die Wortlänge gibt es mehrereÜbergangsfunktionen (auch alle einstellig): ∀x ∈ A : fx(w) = w · xbeim 3. Beispiel ist eine Menge induktiv definiert: 2 „Atome“ (10 und15) und 2 zweistellige Übergangsfunktionen: f1(z1, z2) = z1 · z2 undf2(z1, z2) = z1 + z2

IA für alle Atome

IV für x1, x2, ..., xk ∈ Menge, mit k = max Anzahl der Argumenteeiner Übergangsfunktion (x1, x2, ... müssen nicht verschieden sein)

IS für alle Übergangsfunktionen

Turingmaschinen Komplexität Tipps zum Übungsblatt

Philipp Oppermann – GBI Tutorium Nr. 16 3. Februar 2015 26/26