88
Turing-Vollständigkeit von Zwei-Zähler-Systemen Proseminar Automatentheorie Albert-Ludwigs-Universität Freiburg Robin Krahl Institut für Informatik Wintersemester 2015/16

Turing-Vollständigkeit von Zwei-Zähler-Systemen · Überblick Motivation Grundlagen Pushdown-Systeme Zähler-Systeme Turingmaschinen Erreichbarkeitsproblem Turingmaschine! 2-Pushdown-System

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Turing-Vollständigkeit von Zwei-Zähler-SystemenProseminar Automatentheorie

Albert-Ludwigs-Universität Freiburg

Robin KrahlInstitut für InformatikWintersemester 2015/16

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 2 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 3 / 38

Motivation

Motivation

Systeme mit nur zwei (unendlich großen) Integer-Variablenund den Operationen Inkrementieren und Dekrementieren

Registermaschinen...

... sind Turing-vollständig!(können jede Berechnung durchführen, die man auch miteiner Turingmaschine durchführen kann)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 4 / 38

Motivation

Motivation

Systeme mit nur zwei (unendlich großen) Integer-Variablenund den Operationen Inkrementieren und Dekrementieren

Registermaschinen...

... sind Turing-vollständig!

(können jede Berechnung durchführen, die man auch miteiner Turingmaschine durchführen kann)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 4 / 38

Motivation

Motivation

Systeme mit nur zwei (unendlich großen) Integer-Variablenund den Operationen Inkrementieren und Dekrementieren

Registermaschinen...

... sind Turing-vollständig!(können jede Berechnung durchführen, die man auch miteiner Turingmaschine durchführen kann)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 4 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 5 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 6 / 38

Pushdown-Systeme I

P = (P,Γ,∆)

Zustände PStackalphabet ΓÜbergangsrelation ∆ ⊆ (P×Γ×P×Γ∗)

bei jedem Übergang: oberstes Zeichen vom Stack lesen,beliebig viele Zeichen schreiben

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 7 / 38

Pushdown-Systeme I

P = (P,Γ,∆)

Zustände PStackalphabet ΓÜbergangsrelation ∆ ⊆ (P×Γ×P×Γ∗)bei jedem Übergang: oberstes Zeichen vom Stack lesen,beliebig viele Zeichen schreiben

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 7 / 38

Pushdown-Systeme I

P = (P,Γ,∆)

Zustände PStackalphabet ΓÜbergangsrelation ∆ ⊆ (P×Γ×P×Γ∗)bei jedem Übergang: oberstes Zeichen vom Stack lesen,beliebig viele Zeichen schreiben

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 7 / 38

Pushdown-Systeme I

P = (P,Γ,∆)

Zustände PStackalphabet ΓÜbergangsrelation ∆ ⊆ (P×Γ×P×Γ∗)bei jedem Übergang: oberstes Zeichen vom Stack lesen,beliebig viele Zeichen schreiben

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 7 / 38

Pushdown-Systeme II

Beispiel Pushdown-Systeme

abcd

abcef

Zustand p Zustand q

TOP

TOP

Übergang(p,d,q, fe)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 8 / 38

Pushdown-Systeme II

Beispiel Pushdown-Systeme

abcd

abcef

Zustand p Zustand q

TOP

TOP

Übergang(p,d,q, fe)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 8 / 38

Pushdown-Systeme II

Beispiel Pushdown-Systeme

abcd

abcef

Zustand p Zustand q

TOP

TOP

Übergang(p,d,q, fe)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 8 / 38

Pushdown-Systeme II

Beispiel Pushdown-Systeme

abcd

abcef

Zustand p Zustand q

TOP

TOP

Übergang(p,d,q, fe)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 8 / 38

Pushdown-Systeme II

Beispiel Pushdown-Systeme

abcd

abcef

Zustand p Zustand q

TOP

TOP

Übergang(p,d,q, fe)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 8 / 38

n-Pushdown-Systeme I

Pn = (P,Γ,∆)

nicht einer, sondern n verschiedene Stacks

Zustände PStackalphabet ΓÜbergangsrelation ∆ ⊆ (P×Γ×{1, ...,n}×P×Γ∗)bei jedem Übergang: oberstes Zeichen vom Stack i lesen,beliebig viele Zeichen schreiben

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 9 / 38

n-Pushdown-Systeme I

Pn = (P,Γ,∆)

nicht einer, sondern n verschiedene StacksZustände PStackalphabet ΓÜbergangsrelation ∆ ⊆ (P×Γ×{1, ...,n}×P×Γ∗)

bei jedem Übergang: oberstes Zeichen vom Stack i lesen,beliebig viele Zeichen schreiben

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 9 / 38

n-Pushdown-Systeme I

Pn = (P,Γ,∆)

nicht einer, sondern n verschiedene StacksZustände PStackalphabet ΓÜbergangsrelation ∆ ⊆ (P×Γ×{1, ...,n}×P×Γ∗)bei jedem Übergang: oberstes Zeichen vom Stack i lesen,beliebig viele Zeichen schreiben

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 9 / 38

n-Pushdown-Systeme II

Beispiel n-Pushdown-Systeme

ec

abcd

ec

abcef

Zustand p Zustand q

Stack 1 Stack 2 Stack 1 Stack 2

TOP TOP

TOP

TOP

Übergang(p,d,2,q, fe)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 10 / 38

n-Pushdown-Systeme II

Beispiel n-Pushdown-Systeme

ec

abcd

ec

abcef

Zustand p Zustand q

Stack 1 Stack 2 Stack 1 Stack 2

TOP TOP

TOP

TOP

Übergang(p,d,2,q, fe)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 10 / 38

n-Pushdown-Systeme III

Konfiguration

Konfiguration c = (p,w1, ...,wn) mit p ∈ P, wi ∈ Γ∗ (1≤ i ≤ n)Status zu einem bestimmten Zeitpunkt

aktueller Zustand pInhalt wi des Stacks i

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 11 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 12 / 38

n-Zähler-Systeme I

Z = (P,∆)

entspricht n-Pushdown-System P = (P,Γ,∆)nur zwei Stacksymbole: Γ = {Z ,Z0}

Stackinhalt ZmZ0 codiert Zahl mZ0 = 0ZZ0 = 1ZZZZ0 = 3...ZZ0ZZ verboten

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 13 / 38

n-Zähler-Systeme I

Z = (P,∆)

entspricht n-Pushdown-System P = (P,Γ,∆)nur zwei Stacksymbole: Γ = {Z ,Z0}Stackinhalt ZmZ0 codiert Zahl m

Z0 = 0ZZ0 = 1ZZZZ0 = 3...ZZ0ZZ verboten

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 13 / 38

n-Zähler-Systeme II

Beispiel n-Zähler-Systeme

Z0

ZZZ

Z0

ZZZZ

Zustand p Zustand qWert 3 Wert 4

TOP

TOP

Inkrementieren

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 14 / 38

n-Zähler-Systeme II

Beispiel n-Zähler-Systeme

Z0

ZZZ

Z0

ZZZZ

Zustand p Zustand qWert 3 Wert 4

TOP

TOP

Inkrementieren

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 14 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 15 / 38

Turingmaschinen

M = (Q,Σ,Γ,δ ,q0,␣)

Zustandsmenge QAnfangszustand q0

Bandalphabet ΓEingabealphabet Σ⊂ ΓLeerzeichen ␣ ∈ Γ\ΣÜbergangsmege δ ⊆ (Q×Γ×Q×Γ×{L,R,N})

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 16 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 17 / 38

Erreichbarkeitsproblem I

Erreichbarkeitsproblem

2-Zähler-System Z = (P,∆)Konfigurationen c1,c2 von Z

Kann ich c2 erreichen, wenn ich das System mit c1 starte?

Behauptung

Das Erreichbarkeitsproblem für 2-Zähler-Systeme ist nichtentscheidbar.

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 18 / 38

Erreichbarkeitsproblem I

Erreichbarkeitsproblem

2-Zähler-System Z = (P,∆)Konfigurationen c1,c2 von ZKann ich c2 erreichen, wenn ich das System mit c1 starte?

Behauptung

Das Erreichbarkeitsproblem für 2-Zähler-Systeme ist nichtentscheidbar.

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 18 / 38

Erreichbarkeitsproblem I

Erreichbarkeitsproblem

2-Zähler-System Z = (P,∆)Konfigurationen c1,c2 von ZKann ich c2 erreichen, wenn ich das System mit c1 starte?

Behauptung

Das Erreichbarkeitsproblem für 2-Zähler-Systeme ist nichtentscheidbar.

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 18 / 38

Erreichbarkeitsproblem II

Beweisansatz

Turingmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-System

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 19 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 20 / 38

Turingmaschine −→ 2-Pushdown-System I

Ausgangslage

gegeben: Turingmaschine M = (Q,Σ,Γ,δ ,q0,␣)gesucht: 2-Pushdown-System PM = (P,Γ′,∆) undKonfigurationen c1,c2

c2 soll von c1 aus genau dann erreichbar sein, wenn M hält

HinweisHalteproblem für Turingmaschinen nicht entscheidbar!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 21 / 38

Turingmaschine −→ 2-Pushdown-System I

Ausgangslage

gegeben: Turingmaschine M = (Q,Σ,Γ,δ ,q0,␣)gesucht: 2-Pushdown-System PM = (P,Γ′,∆) undKonfigurationen c1,c2c2 soll von c1 aus genau dann erreichbar sein, wenn M hält

HinweisHalteproblem für Turingmaschinen nicht entscheidbar!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 21 / 38

Turingmaschine −→ 2-Pushdown-System I

Ausgangslage

gegeben: Turingmaschine M = (Q,Σ,Γ,δ ,q0,␣)gesucht: 2-Pushdown-System PM = (P,Γ′,∆) undKonfigurationen c1,c2c2 soll von c1 aus genau dann erreichbar sein, wenn M hält

HinweisHalteproblem für Turingmaschinen nicht entscheidbar!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 21 / 38

Turingmaschine −→ 2-Pushdown-System II

Veranschaulichung

...abc

...

TM

...a

...cb

2-PDS

Stack 1 Stack 2

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 22 / 38

Turingmaschine −→ 2-Pushdown-System II

Veranschaulichung

...abc

...

TM

...a

...cb

2-PDS

Stack 1 Stack 2

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 22 / 38

Turingmaschine −→ 2-Pushdown-System II

Veranschaulichung

...abc

...

TM

...a

...cb

2-PDS

Stack 1 Stack 2

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 22 / 38

Turingmaschine −→ 2-Pushdown-System II

Veranschaulichung

...abc

...

TM

...a

...cb

2-PDS

Stack 1 Stack 2

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 22 / 38

Turingmaschine −→ 2-Pushdown-System III

Vorgehensweise

Übergänge der Turingmaschine in 2-PDS abbildenStack 1: Band links des LesekopfesStack 2: Band am Lesekopf und rechts davon

Problem: 2-PDS kann immer nur auf einem Stack arbeitenLösung: zusätzliche Zwischenzustände (q,b) ∈ (Q×Γ), diesich einen Buchstaben merkenPM = (Q∪ (Q×Γ),Γ,∆)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 23 / 38

Turingmaschine −→ 2-Pushdown-System III

Vorgehensweise

Übergänge der Turingmaschine in 2-PDS abbildenStack 1: Band links des LesekopfesStack 2: Band am Lesekopf und rechts davonProblem: 2-PDS kann immer nur auf einem Stack arbeiten

Lösung: zusätzliche Zwischenzustände (q,b) ∈ (Q×Γ), diesich einen Buchstaben merkenPM = (Q∪ (Q×Γ),Γ,∆)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 23 / 38

Turingmaschine −→ 2-Pushdown-System IV

Beispiel: Kopfbewegung nach rechts

... c a d ... ... c b d ...

TM in p TM in qÜbergang

(p,a,q,b,R)

...c

...da

...c

...d

...cb

...d

p (q,b) q

S1 S2

S1 S2

S1 S2

Übergang(p,a,2, (q,b),ε)

Übergang((q,b),c,1,q,bc)

?

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 24 / 38

Turingmaschine −→ 2-Pushdown-System IV

Beispiel: Kopfbewegung nach rechts

... c a d ... ... c b d ...

TM in p TM in qÜbergang

(p,a,q,b,R)

...c

...da

...c

...d

...cb

...d

p (q,b) q

S1 S2 S1 S2 S1 S2

Übergang(p,a,2, (q,b),ε)

Übergang((q,b),c,1,q,bc)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 24 / 38

Turingmaschine −→ 2-Pushdown-System IV

Beispiel: Kopfbewegung nach rechts

... c a d ... ... c b d ...

TM in p TM in qÜbergang

(p,a,q,b,R)

...c

...da

...c

...d

...cb

...d

p (q,b) q

S1 S2 S1 S2 S1 S2

Übergang(p,a,2, (q,b),ε)

Übergang((q,b),c,1,q,bc)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 24 / 38

Turingmaschine −→ 2-Pushdown-System III

Vorgehensweise

Übergänge der Turingmaschine in 2-PDS abbildenStack 1: Band links des LesekopfesStack 2: Band am Lesekopf und rechts davonProblem: 2-PDS kann immer nur auf einem Stack arbeitenLösung: zusätzliche Zwischenzustände (q,b) ∈ (Q×Γ), diesich einen Buchstaben merken

PM = (Q∪ (Q×Γ),Γ,∆)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 25 / 38

Turingmaschine −→ 2-Pushdown-System III

Vorgehensweise

Übergänge der Turingmaschine in 2-PDS abbildenStack 1: Band links des LesekopfesStack 2: Band am Lesekopf und rechts davonProblem: 2-PDS kann immer nur auf einem Stack arbeitenLösung: zusätzliche Zwischenzustände (q,b) ∈ (Q×Γ), diesich einen Buchstaben merkenPM = (Q∪ (Q×Γ),Γ,∆)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 25 / 38

Turingmaschine −→ 2-Pushdown-System V

Beispiel: Kopfbewegung nach rechts (Fortsetzung)

Übergang der Turingmaschine (p,a,q,b,R) ∈ δ

Zeichen an der alten Kopfposition lesen und löschen:neuer Übergang (p,a,2, (q,b),ε)

Neues Zeichen hinter der neuen Kopfposition einfügen:neuer Übergang ((q,b),c,1,q,bc)... für alle c ∈ Γ... analog für keine Kopfbewegung (N) oder Kopfbewegungnach links (L)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 26 / 38

Turingmaschine −→ 2-Pushdown-System V

Beispiel: Kopfbewegung nach rechts (Fortsetzung)

Übergang der Turingmaschine (p,a,q,b,R) ∈ δ

Zeichen an der alten Kopfposition lesen und löschen:neuer Übergang (p,a,2, (q,b),ε)Neues Zeichen hinter der neuen Kopfposition einfügen:neuer Übergang ((q,b),c,1,q,bc)

... für alle c ∈ Γ

... analog für keine Kopfbewegung (N) oder Kopfbewegungnach links (L)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 26 / 38

Turingmaschine −→ 2-Pushdown-System V

Beispiel: Kopfbewegung nach rechts (Fortsetzung)

Übergang der Turingmaschine (p,a,q,b,R) ∈ δ

Zeichen an der alten Kopfposition lesen und löschen:neuer Übergang (p,a,2, (q,b),ε)Neues Zeichen hinter der neuen Kopfposition einfügen:neuer Übergang ((q,b),c,1,q,bc)... für alle c ∈ Γ

... analog für keine Kopfbewegung (N) oder Kopfbewegungnach links (L)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 26 / 38

Turingmaschine −→ 2-Pushdown-System V

Beispiel: Kopfbewegung nach rechts (Fortsetzung)

Übergang der Turingmaschine (p,a,q,b,R) ∈ δ

Zeichen an der alten Kopfposition lesen und löschen:neuer Übergang (p,a,2, (q,b),ε)Neues Zeichen hinter der neuen Kopfposition einfügen:neuer Übergang ((q,b),c,1,q,bc)... für alle c ∈ Γ... analog für keine Kopfbewegung (N) oder Kopfbewegungnach links (L)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 26 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 27 / 38

2-Pushdown-System −→ 4-Zähler-System I

Ausgangslage

gegeben: 2-Pushdown-System P = (P,Γ′,∆) undKonfigurationen c1,c2

gesucht: 4-Zähler-System Z4 = (Q,∆′) und Konfigurationenc′1,c′2c′2 soll von c′1 aus genau dann erreichbar sein, wenn c2von c1 aus erreichbar ist

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 28 / 38

2-Pushdown-System −→ 4-Zähler-System I

Ausgangslage

gegeben: 2-Pushdown-System P = (P,Γ′,∆) undKonfigurationen c1,c2gesucht: 4-Zähler-System Z4 = (Q,∆′) und Konfigurationenc′1,c′2c′2 soll von c′1 aus genau dann erreichbar sein, wenn c2von c1 aus erreichbar ist

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 28 / 38

2-Pushdown-System −→ 4-Zähler-System II

Vorgehensweise

Simuliere je einen Stack des 2-PDS durch ein2-Zähler-System Z2 = (Q,∆′)Problem: Stack des 2-PDS darf beliebige Zeichenenthalten

Lösung: Codierung!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 29 / 38

2-Pushdown-System −→ 4-Zähler-System II

Vorgehensweise

Simuliere je einen Stack des 2-PDS durch ein2-Zähler-System Z2 = (Q,∆′)Problem: Stack des 2-PDS darf beliebige ZeichenenthaltenLösung: Codierung!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 29 / 38

2-Pushdown-System −→ 4-Zähler-System III

Codierung

betrachte k = |Γ|nummeriere Elemente von Γ von 1 bis k

jedes w ∈ Γ∗ entspricht dann einer Zahl im (k +1)-erSystem (oberstes Zeichen ist niedrigste Ziffer)o. B. d. A. sei k = 9

Beispiel

Γ = {a,b,c,d,e, f ,g,h, i}iad entspricht 419

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 30 / 38

2-Pushdown-System −→ 4-Zähler-System III

Codierung

betrachte k = |Γ|nummeriere Elemente von Γ von 1 bis kjedes w ∈ Γ∗ entspricht dann einer Zahl im (k +1)-erSystem (oberstes Zeichen ist niedrigste Ziffer)

o. B. d. A. sei k = 9

Beispiel

Γ = {a,b,c,d,e, f ,g,h, i}iad entspricht 419

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 30 / 38

2-Pushdown-System −→ 4-Zähler-System III

Codierung

betrachte k = |Γ|nummeriere Elemente von Γ von 1 bis kjedes w ∈ Γ∗ entspricht dann einer Zahl im (k +1)-erSystem (oberstes Zeichen ist niedrigste Ziffer)o. B. d. A. sei k = 9

Beispiel

Γ = {a,b,c,d,e, f ,g,h, i}iad entspricht 419

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 30 / 38

2-Pushdown-System −→ 4-Zähler-System III

Codierung

betrachte k = |Γ|nummeriere Elemente von Γ von 1 bis kjedes w ∈ Γ∗ entspricht dann einer Zahl im (k +1)-erSystem (oberstes Zeichen ist niedrigste Ziffer)o. B. d. A. sei k = 9

Beispiel

Γ = {a,b,c,d,e, f ,g,h, i}iad entspricht 419

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 30 / 38

2-Pushdown-System −→ 4-Zähler-System III

Codierung

betrachte k = |Γ|nummeriere Elemente von Γ von 1 bis kjedes w ∈ Γ∗ entspricht dann einer Zahl im (k +1)-erSystem (oberstes Zeichen ist niedrigste Ziffer)o. B. d. A. sei k = 9

Beispiel

Γ = {a,b,c,d,e, f ,g,h, i}iad entspricht 419

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 30 / 38

2-Pushdown-System −→ 4-Zähler-System III

Codierung

betrachte k = |Γ|nummeriere Elemente von Γ von 1 bis kjedes w ∈ Γ∗ entspricht dann einer Zahl im (k +1)-erSystem (oberstes Zeichen ist niedrigste Ziffer)o. B. d. A. sei k = 9

Beispiel

Γ = {a,b,c,d,e, f ,g,h, i}iad entspricht 419

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 30 / 38

2-Pushdown-System −→ 4-Zähler-System III

Codierung

betrachte k = |Γ|nummeriere Elemente von Γ von 1 bis kjedes w ∈ Γ∗ entspricht dann einer Zahl im (k +1)-erSystem (oberstes Zeichen ist niedrigste Ziffer)o. B. d. A. sei k = 9

Beispiel

Γ = {a,b,c,d,e, f ,g,h, i}iad entspricht 419

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 30 / 38

2-Pushdown-System −→ 4-Zähler-System IV

Operationen

Stackinhalt 419oberstes Zeichen ermitteln

419 mod 10 =

9

Rest der Division durch 10

oberstes Zeichen löschen

419 div 10 =

41

Division durch 10

neues Zeichen x schreiben

419 ·10+ x =

419x

Multiplikation mit 10, Addition des Zeichens

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 31 / 38

2-Pushdown-System −→ 4-Zähler-System IV

Operationen

Stackinhalt 419oberstes Zeichen ermitteln 419 mod 10 = 9Rest der Division durch 10oberstes Zeichen löschen

419 div 10 =

41

Division durch 10

neues Zeichen x schreiben

419 ·10+ x =

419x

Multiplikation mit 10, Addition des Zeichens

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 31 / 38

2-Pushdown-System −→ 4-Zähler-System IV

Operationen

Stackinhalt 419oberstes Zeichen ermitteln 419 mod 10 = 9Rest der Division durch 10oberstes Zeichen löschen 419 div 10 = 41Division durch 10neues Zeichen x schreiben

419 ·10+ x =

419x

Multiplikation mit 10, Addition des Zeichens

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 31 / 38

2-Pushdown-System −→ 4-Zähler-System IV

Operationen

Stackinhalt 419oberstes Zeichen ermitteln 419 mod 10 = 9Rest der Division durch 10oberstes Zeichen löschen 419 div 10 = 41Division durch 10neues Zeichen x schreiben 419 ·10+ x = 419xMultiplikation mit 10, Addition des Zeichens

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 31 / 38

2-Pushdown-System −→ 4-Zähler-System V

Umsetzung

Herausforderung: Implementierung derRechenoperationen

Lösung: Nutze zweiten Zähler als Hilfsvariablealso je ein Zähler für den Inhalt eines Stackes, außerdemein Hilfszähler

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 32 / 38

2-Pushdown-System −→ 4-Zähler-System V

Umsetzung

Herausforderung: Implementierung derRechenoperationenLösung: Nutze zweiten Zähler als Hilfsvariable

also je ein Zähler für den Inhalt eines Stackes, außerdemein Hilfszähler

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 32 / 38

2-Pushdown-System −→ 4-Zähler-System V

Umsetzung

Herausforderung: Implementierung derRechenoperationenLösung: Nutze zweiten Zähler als Hilfsvariablealso je ein Zähler für den Inhalt eines Stackes, außerdemein Hilfszähler

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 32 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 33 / 38

4-Zähler-Systeme −→ 2-Zähler-System I

Überlegung

Ziel: vier Zähler durch zwei ersetzen

Codierung?Primfaktorzerlegung! k = 2k1 ·3k2 ·5k3 ·7k4

Inkrementieren und Dekrementieren durch Multiplikationund Divisionein Zähler zur Durchführung der Operationen (wie oben)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 34 / 38

4-Zähler-Systeme −→ 2-Zähler-System I

Überlegung

Ziel: vier Zähler durch zwei ersetzenCodierung?

Primfaktorzerlegung! k = 2k1 ·3k2 ·5k3 ·7k4

Inkrementieren und Dekrementieren durch Multiplikationund Divisionein Zähler zur Durchführung der Operationen (wie oben)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 34 / 38

4-Zähler-Systeme −→ 2-Zähler-System I

Überlegung

Ziel: vier Zähler durch zwei ersetzenCodierung?Primfaktorzerlegung! k = 2k1 ·3k2 ·5k3 ·7k4

Inkrementieren und Dekrementieren durch Multiplikationund Divisionein Zähler zur Durchführung der Operationen (wie oben)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 34 / 38

4-Zähler-Systeme −→ 2-Zähler-System I

Überlegung

Ziel: vier Zähler durch zwei ersetzenCodierung?Primfaktorzerlegung! k = 2k1 ·3k2 ·5k3 ·7k4

Inkrementieren und Dekrementieren durch Multiplikationund Division

ein Zähler zur Durchführung der Operationen (wie oben)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 34 / 38

4-Zähler-Systeme −→ 2-Zähler-System I

Überlegung

Ziel: vier Zähler durch zwei ersetzenCodierung?Primfaktorzerlegung! k = 2k1 ·3k2 ·5k3 ·7k4

Inkrementieren und Dekrementieren durch Multiplikationund Divisionein Zähler zur Durchführung der Operationen (wie oben)

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 34 / 38

Überblick

Motivation

GrundlagenPushdown-SystemeZähler-SystemeTuringmaschinen

ErreichbarkeitsproblemTuringmaschine −→ 2-Pushdown-System2-Pushdown-System −→ 4-Zähler-System4-Zähler-System −→ 2-Zähler-SystemZusammenfassung

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 35 / 38

Zusammenfassung

Wir können ausgehend von einer Turingmaschine M einZwei-Zähler-System Z mit Konfigurationen c1,c2konstruieren, sodass c2 genau dann von c1 erreichbar ist,wenn M hält.

Wenn das Erreichbarkeitsproblem fürZwei-Zähler-Systeme entscheidbar wäre, wäre daher auchdas Halteproblem für Turingmaschinen entscheidbar.Das ist es aber nicht.Also ist auch das Erreichbarkeitsproblem fürZwei-Zähler-Systeme unentscheidbar.

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 36 / 38

Zusammenfassung

Wir können ausgehend von einer Turingmaschine M einZwei-Zähler-System Z mit Konfigurationen c1,c2konstruieren, sodass c2 genau dann von c1 erreichbar ist,wenn M hält.Wenn das Erreichbarkeitsproblem fürZwei-Zähler-Systeme entscheidbar wäre, wäre daher auchdas Halteproblem für Turingmaschinen entscheidbar.

Das ist es aber nicht.Also ist auch das Erreichbarkeitsproblem fürZwei-Zähler-Systeme unentscheidbar.

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 36 / 38

Zusammenfassung

Wir können ausgehend von einer Turingmaschine M einZwei-Zähler-System Z mit Konfigurationen c1,c2konstruieren, sodass c2 genau dann von c1 erreichbar ist,wenn M hält.Wenn das Erreichbarkeitsproblem fürZwei-Zähler-Systeme entscheidbar wäre, wäre daher auchdas Halteproblem für Turingmaschinen entscheidbar.Das ist es aber nicht.

Also ist auch das Erreichbarkeitsproblem fürZwei-Zähler-Systeme unentscheidbar.

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 36 / 38

Zusammenfassung

Wir können ausgehend von einer Turingmaschine M einZwei-Zähler-System Z mit Konfigurationen c1,c2konstruieren, sodass c2 genau dann von c1 erreichbar ist,wenn M hält.Wenn das Erreichbarkeitsproblem fürZwei-Zähler-Systeme entscheidbar wäre, wäre daher auchdas Halteproblem für Turingmaschinen entscheidbar.Das ist es aber nicht.Also ist auch das Erreichbarkeitsproblem fürZwei-Zähler-Systeme unentscheidbar.

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 36 / 38

Turing-Vollständigkeit

Turing-Vollständigkeit von Zwei-Zähler-Systemen

Beweis bisher: Zwei-Zähler-Systeme könnenTuringmaschinen simulierenAlso: Zwei-Zähler-Systeme sind Turing-vollständig!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 37 / 38

Turing-Vollständigkeit

Turing-Vollständigkeit von Zwei-Zähler-SystemenBeweis bisher: Zwei-Zähler-Systeme könnenTuringmaschinen simulieren

Also: Zwei-Zähler-Systeme sind Turing-vollständig!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 37 / 38

Turing-Vollständigkeit

Turing-Vollständigkeit von Zwei-Zähler-SystemenBeweis bisher: Zwei-Zähler-Systeme könnenTuringmaschinen simulierenAlso: Zwei-Zähler-Systeme sind Turing-vollständig!

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 37 / 38

Quellen

Wolfgang Thomas: Applied Automata Theory.http://drona.csa.iisc.ernet.in/%7Edeepakd/atc-common/wolfgang-aat.pdf

V. Claus, E.-R. Olderog: Informatik III: TheoretischeInformatik.http://proglang.informatik.uni-freiburg.de/teaching/info3/2015ws/material/Kap1-6.pdf

Robin Krahl <[email protected]>, CC-by-sa 4.0

WS 2015/16 Robin Krahl – Zwei-Zähler-Systeme 38 / 38