• Keine Ergebnisse gefunden

Berechenbarkeit und Komplexit¨at Vorlesung 2

N/A
N/A
Protected

Academic year: 2022

Aktie "Berechenbarkeit und Komplexit¨at Vorlesung 2"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Berechenbarkeit und Komplexit¨at Vorlesung 2

Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7

RWTH Aachen

17. Oktober 2014

(2)

R¨uckblick: Vier Typen von Algorithmen

Algorithmen zur Berechnung partieller Funktionen Algorithmen zur Berechnung totaler Funktionen Entscheidungsalgorithmen

(zur Bestimmung der Mitgliedschaft von W¨orten in Sprachen) Aufz¨ahlungsalgorithmen

(zur Erzeugung der Elemente von Sprachen)

(3)

Die Kernfrage

Welche Funktionen sind berechenbar?

Welche Mengen sind entscheidbar, welche aufz¨ahlbar?

Wenn man f¨ur eine Funktion f einen Algorithmus angibt, dann ist die Berechenbarkeit klar.

Wie kann man nachweisen, dass eine Funktion f nicht berechenbar ist?

Man muss gegen alle denkbaren Algorithmen argumentieren.

Wie kann man sich einen ¨Uberblick ¨uber “alle denkbaren Algorithmen” verschaffen?

Dies ist eine Kernfrage der Informatik.

(4)

Alan Turing (1912 - 1954)

(5)

Aus Turings Arbeit von 1936

Computing is normally done by writing certain symbols on paper.

We may suppose this paper is divided into squares like a child’s arithmetic book. In elementary arithmetic the two-dimensional character of paper is sometimes used. But such a use is always avoidable, and I think that it will be agreed that the

two-dimensional character of paper is no essential of computation.

I assume then that the computation is carried out on one-dimensional paper, i.e. on a tape divided into squares.

The behaviour of the computer at any moment is determined by the symbols which he is observing, and his ”state of mind” at that moment. We may suppose that there is a boundB to the number of symbols or squares which the computer can observe at one moment. [. . . ] If he wishes to observe more, he must use successive observations.

(6)

We will also suppose that the number of states of mind which need be taken into account is finite. [. . . ] If we admitted an infinity of states of mind, some of them will be ”arbitrarily close” and will be confused. Again, the restriction is not one which seriously affects computation, since the use of more complicated states of mind can be avoided by writing more symbols on the tape.

Let us imagine the operations performed by the computer to be split up into ”simple operations” which are so elementary that it is not easy to imagine them further divided. Every such operation consists of some change of the physical system consisting of the computer and his tape. We know the state of the system if we know the sequence of symbols on the tape, which of these are observed by the computer (possibly with a special order), and the state of mind of the computer.

(7)

Definition der Turingmaschine (TM)

Komponenten einer TM

Q, die endliche Zustandsmenge Σ, das endliche Eingabealphabet Γ⊃Σ, das endliche Bandalphabet B ∈Γ\Σ, das Leerzeichen (Blank) q0∈Q, der Anfangszustand

¯

q ∈Q, der Endzustand

δ : (Q\ {¯q})×Γ→Q×Γ× {R,L,N}, die Zustands¨uberf¨uhrungsfunktion

Eine TM ist definiert durch das 7-Tupel (Q,Σ,Γ,B,q0,¯q, δ).

(8)

Funktionsweise der TM

Ausgangssituation

auf dem Band steht die Eingabe w ∈Σ eingerahmt von Blanks

der initiale Zustand ist q0

der Kopf steht ¨uber dem ersten Symbol von w Nummerierung der Zellen des Bandes

die initiale Kopfposition wird als Position 0 bezeichnet bewegt sich der Kopf einen Schritt

”nach rechts“ erh¨oht sich die Position um 1

bewegt sich der Kopf um einen Schritt

”nach links“ erniedrigt sich die Position um 1

(9)

Funktionsweise der TM

Durchf¨uhrung eines Rechenschrittes a∈Γ bezeichne das gelesene Symbol

q ∈Q\ {¯q} bezeichne den aktuellen Zustand

es sei δ(q,a) = (q,a,d), f¨ur q ∈Q,a ∈Γ,d ∈ {R,L,N}

dann wird der Zustand auf q gesetzt

an der Kopfposition wird das Symbol a geschrieben der Kopf

bewegt sich

um eine Position nach rechts fallsd =R um eine Position nach links fallsd =L

nicht fallsd =N

(10)

Funktionsweise der TM

Ende der Rechnung

die TM stoppt, wenn sie den Endzustand ¯q erreicht das Ausgabewort w∈Σ kann dann vom Band abgelesen werden: w beginnt an der Kopfposition und endet

unmittelbar vor dem ersten Symbol aus Γ\Σ

Spezialfall: wenn wir es mit Entscheidungsproblemen zu tun haben, wird die Antwort wie folgt als JA oder NEIN

interpretiert:

die TMakzeptiert das Eingabewort, wenn sie terminiert und das Ausgabewort mit einer 1 beginnt

die TMverwirft das Eingabewort, wenn sie terminiert und das Ausgabewort nicht mit einer 1 beginnt

(11)

Begriffe TM-berechenbar, TM-entscheidbar

Definition

Eine Funktionf : Σ →Σ heißt rekursiv (TM-berechenbar), wenn es eine TM gibt, die bei Eingabex immer terminiert und dann als Ausgabe den Wertf(x) liefert.

Definition

Eine partielle Funktionf : Σ Σ heißt rekursiv (partiell

rekursiv, TM-berechenbar), wenn es eine TM gibt, die bei Eingabe x genau dann terminiert, wennx ∈Def(f), und in diesem Falle bei Terminierung als Ausgabe den Wertf(x) liefert.

Definition

Eine SpracheL⊆Σ heißt rekursiv (TM-entscheidbar), wenn es eine TM gibt, die f¨ur alle Eingaben terminiert und die Eingabew genau dann akzeptiert, wennw ∈L ist.

(12)

Aufz¨ahlungs-TM, Begriff TM-aufz¨ ahlbar

EineAufz¨ahlungs-TM ¨uber Σ ist eine TM der Form (Q,Σ,Γ,B,q0,q,¯ qout, δ), bei der

das Alphabet Σ nur als Ausgabealphabet verwendet wird, der Zustand qout alsAusgabezustand dient, bei dessen Erreichen jeweils das Wort ausgegeben wird, das an der Kopfposition beginnt und unmittelbar vor dem ersten Symbol aus Γ\Σ endet.

Eine solche TMz¨ahlt die Menge derjenigen W¨orter auf, die nach Starten auf dem leeren Band sukzessiv als Ausgabe geliefert werden.

Eine Sprache heißtrekursiv aufz¨ahlbar, wenn es eine

(13)

Beispiel

SeiL={w1|w ∈ {0,1}}.

Wir finden eine TM, dieLentscheidet.

Verbale Beschreibung des Programms:

Solange ein Symbol aus {0,1}gelesen wird

¨uberschreibe das Symbol mitB, bewege den Kopf nach rechts, und

gehe in den Zustandq0, wenn das Symbol eine 0 war, sonst in den Zustandq1

Sobald ein Blank gelesen wird, so

akzeptiere die Eingabe, falls der aktuelle Zustandq1ist, und verwirf die Eingabe ansonsten.

(14)

Genaue Definition

Lwirdentschieden durch die TM M = (Q,Σ,Γ,B,q0,¯q, δ) mit Q ={q0,q1,q}¯

Σ ={0,1}

Γ ={0,1,B}

δ gem¨aß Tabelle

δ 0 1 B

q0 (q0,B,R) (q1,B,R) reject q1 (q0,B,R) (q1,B,R) accept

”accept“ steht als Abk¨urzung f¨ur (¯q,1,N).

”reject“ steht als Abk¨urzung f¨ur (¯q,0,N).

Die ¨Ubergangsfunktion kann alsProgramm der TMinterpretiert werden. Die Tabellenform heißt auchTuringtafel.

(15)

Berechnung einer partiellen Funktion

Betrachte ¨uber Σ ={0,1}die Funktion f : Σ Σ mit f(w) = 0 falls |w|gerade ist, ansonsten undefiniert

Wir nutzen die Zust¨andeq0,q1, um modulo 2 zu z¨ahlen, undq2 als “Schleifenzustand”.

Zustandsmenge alsoQ={q0,q1,q2,q}¯ Turingtafel:

δ 0 1 B

q0 (q1,0,R) (q1,1,R) accept q1 (q0,0,R) (q0,1,R) (q2,B,N) q2 (q2,B,N) (q2,B,N) (q2,B,N)

(16)

Weitere Entscheidungs-TM

Wir entwickeln eine TM f¨ur die SpracheL={0n1n|n≥1}

Sei Σ ={0,1}, Γ ={0,1,B},Q ={q0, . . . ,q6,q}.¯ Unsere TM arbeitet in zwei Phasen:

Phase 1:Teste, ob das Eingabewort von der Form 0i1j f¨ur i ≥0 undj ≥1 ist.

Phase 2:Teste, ob i =j gilt.

Phase 1 verwendetq0 und q1 und wechselt bei Erfolg zuq2. Phase 2 verwendetq2, . . . ,q6 und akzeptiert bei Erfolg.

(17)

Programmierung der TM am Beispiel - Phase 1

δ 0 1 B

q0 (q0,0,R) (q1,1,R) reject q1 reject (q1,1,R) (q2,B,L)

q0 : Laufe von links nach rechts ¨uber die Eingabe bis ein Zeichen ungleich 0 gefunden wird.

Falls dieses Zeichen eine 1 ist, gehe ¨uber in Zustandq1. Sonst ist dieses Zeichen ein Blank. Verwirf die Eingabe.

q1 : Gehe weiter nach rechts bis zum ersten Zeichen ungleich 1.

Falls dieses Zeichen eine 0 ist, verwirf die Eingabe.

Sonst ist das gefundene Zeichen ein Blank. Bewege den Kopf um eine Position nach links auf die letzte gelesene 1. Wechsel in den Zustandq2, Phase 2 beginnt.

(18)

Programmierung der TM am Beispiel - Phase 2

δ 0 1 B

q2 reject (q3,B,L) reject q3 (q3,0,L) (q3,1,L) (q4,B,R) q4 (q5,B,R) reject reject q5 (q6,0,R) (q6,1,R) accept q6 (q6,0,R) (q6,1,R) (q2,B,L)

q2 : Kopf steht auf dem letzten Nichtblank. Falls dieses Zeichen eine 1 ist, so l¨osche es, gehe nach links, und wechsel in den Zustand q3. Sonst verwirf die Eingabe.

q3 : Bewege den Kopf auf das erste Nichtblank. Dann q4. q4 : Falls das gelesene Zeichen eine 0 ist, ersetze es durch ein

Blank und gehe nach q5, sonst verwirf die Eingabe.

q5 : Linkeste 0 und die rechteste 1 sind gel¨oscht. Falls Restwort leer, dann “accept”, sonst q .

(19)

Konfigurationen und (direkte) Nachfolgekonfigurationen

Definition

i) Eine Konfiguration einer TM ist ein Stringαqβ, f¨urq ∈Q und α, β ∈Γ. Bedeutung: auf dem Band steht αβ

eingerahmt von Blanks, der Zustand ist q, und der Kopf steht unter dem ersten Zeichen von β.

ii) αqβ istdirekte Nachfolgekonfigurationvon αqβ, fallsαqβ in einem Rechenschritt aus αqβ ensteht. Wir schreiben αqβ ⊢αqβ.

iii) α′′q′′β′′ von αqβ auserreichbar, fallsα′′q′′β′′ in endlich vielen Rechenschritten aus αqβ ensteht. Wir schreiben

αqβ ⊢α′′q′′β′′.

Bemerkung:insbesondere giltαqβ ⊢ αqβ.

(20)

Beispiel zum Umgang mit Konfigurationen

Die f¨ur die SpracheL={0n1n|n ≥1} beschriebene TM liefert in Phase 1 auf die Eingabe 0011 die folgende Konfigurationsfolge.

Phase 1:

q00011 ⊢ 0q0011 ⊢ 00q011 ⊢ 001q11 ⊢ 0011q1B ⊢ 001q21

Beobachtung:abgesehen von Blanks am Anfang und Ende des Strings sind die Konfigurationsbeschreibungen eindeutig.

(21)

Beispiel einer Aufz¨ahlungs-TM

Wir konstruieren eine Aufz¨ahlungs-TM f¨ur die Menge der W¨orter 12i mit i >0, d..h der W¨orter 11,1111,111111, . . ..

Wir geben nur die Turingtafel an.

δ 1 B

q0 [(q1,1,N)] (q1,1,L) q1 [(q1,1,N)] (qout,1,N) qout (q0,1,L) [(qout,B,N)]

Beginnend inq0 auf dem leeren Band wird nach einem Schritt die Konfigurationq1B1 erreicht, dann qout11, dann

q0B11,q1111,qout1111, etc.

(Die Eintr¨age in eckigen Klammern sind unwesentlich.)

Referenzen

ÄHNLICHE DOKUMENTE

Welche Funktionen sind durch einen Algorithmus

Beweis: Die Menge aller TM ¨uber {0, 1} ist abz¨ahlbar, also auch die Menge der TM, die eine Sprache

Trivial sind die Eigenschaften “M hat endlich viele Zust¨ande” oder. “M hat

Auf diese Weise entsteht die “arithmetische Hierarchie”, eine Abstufung der unentscheidbaren Sprachen nach wachsender logischer Komplexit¨ at. Auf der n-ten Stufe sind Sprachen

Wir m¨ussen also nur noch zeigen, dass jede Funktion, die durch eine eingeschr¨ankte RAM berechnet werden kann, auch durch ein WHILE-Programm berechnet werden kann... Beweis

Wir zeigen jetzt, dass sogar bei der Berechnung totaler Funktionen das while-Konstrukt nicht durch loop ersetzt werden kann.. Dazu betrachten wir

NP ist die Klasse der Entscheidungsprobleme, die durch eine NTM M erkannt werden, deren worst case Laufzeit t M (n) polynomiell beschr¨ankt ist. NP steht dabei f¨ur

CLIQUE ist NP-vollst¨andig... Identifiziere Literale und Knoten, d.h. Zwei Knoten werden durch eine Kante verbunden, wenn.. 1) die assoziierten Literale geh¨oren zu