• Keine Ergebnisse gefunden

Sommersemester2007 BernhardBeckert GrundlagenderTheoretischenInformatik/EinführungindieTheoretischeInformatikI Vorlesung

N/A
N/A
Protected

Academic year: 2021

Aktie "Sommersemester2007 BernhardBeckert GrundlagenderTheoretischenInformatik/EinführungindieTheoretischeInformatikI Vorlesung"

Copied!
78
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung

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

Bernhard Beckert

Institut für Informatik

Sommersemester 2007

(2)

Dank

Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von

Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal)

Ihnen beiden gilt mein herzlicher Dank.

– Bernhard Beckert, April 2007

(3)

Teil IV

1

Ableitungsbäume

2

Umformung von Grammatiken

3

Normalformen

4

Pumping-Lemma für kontextfreie Sprachen

5

Pushdown-Automaten (PDAs)

6

Abschlusseigenschaften

7

Wortprobleme

8

Der CYK-Algorithmus

(4)

Teil IV

1

Ableitungsbäume

2

Umformung von Grammatiken

3

Normalformen

4

Pumping-Lemma für kontextfreie Sprachen

5

Pushdown-Automaten (PDAs)

6

Abschlusseigenschaften

7

Wortprobleme

8

Der CYK-Algorithmus

(5)

Erzeugende Grammatiken – akzeptierende Automaten

Erinnerung: Reguläre Sprachen

werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten

Jetzt: Kontextfreie Sprachen

werden erzeugt von kontextfreien Grammatiken

werden akzeptiert von Pushdown-Automaten

(6)

Erzeugende Grammatiken – akzeptierende Automaten

Erinnerung: Reguläre Sprachen

werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten

Jetzt: Kontextfreie Sprachen

werden erzeugt von kontextfreien Grammatiken

werden akzeptiert von Pushdown-Automaten

(7)

Erzeugende Grammatiken – akzeptierende Automaten

Erinnerung: Reguläre Sprachen

werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten

Jetzt: Kontextfreie Sprachen

werden erzeugt von kontextfreien Grammatiken

werden akzeptiert von Pushdown-Automaten

(8)

Erzeugende Grammatiken – akzeptierende Automaten

Erinnerung: Reguläre Sprachen

werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten

Jetzt: Kontextfreie Sprachen

werden erzeugt von kontextfreien Grammatiken

werden akzeptiert von Pushdown-Automaten

(9)

Erzeugende Grammatiken – akzeptierende Automaten

Erinnerung: Reguläre Sprachen

werden erzeugt von rechtslinearen Grammatiken werden akzeptiert von endlichen Automaten

Jetzt: Kontextfreie Sprachen

werden erzeugt von kontextfreien Grammatiken

werden akzeptiert von Pushdown-Automaten

(10)

Idee des Push-Down-Automaten

Beispiel 22.1

Die „prototypische“ cf-Sprache

{ a

n

b

n

| n ∈ N

0

}

Endliche Automaten reichen nicht aus.

Sie können sich nicht merken, wie oft sie einen Zustand durchlaufen haben.

Für a

n

b

n

muss man aber mitzählen.

(11)

Idee des Push-Down-Automaten

Beispiel 22.1

Die „prototypische“ cf-Sprache

{ a

n

b

n

| n ∈ N

0

}

Endliche Automaten reichen nicht aus.

Sie können sich nicht merken, wie oft sie einen Zustand durchlaufen haben.

Für a

n

b

n

muss man aber mitzählen.

(12)

Idee des Push-Down-Automaten

Beispiel 22.1

Die „prototypische“ cf-Sprache

{ a

n

b

n

| n ∈ N

0

}

Endliche Automaten reichen nicht aus.

Sie können sich nicht merken, wie oft sie einen Zustand durchlaufen haben.

Für a

n

b

n

muss man aber mitzählen.

(13)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(14)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(15)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(16)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(17)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(18)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(19)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(20)

Idee des Push-Down-Automaten

Idee: Wie kann man diese Sprache akzeptieren?

Weitere Informationen auf dem Stack sichern Später zurückholen

Ähnlich einem „Prozeduraufruf“

Grammatikregel wie S → aAb entspricht Aufruf einer Prozedur für das A.

Stack, Stapel, Keller Last in, first out

Zuletzt gespeicherte Information liegt immer „obenauf“

Beliebig viel Information kann gespeichert werden

(Aber kein beliebiger Zugriff!)

(21)

Push-Down-Automat

Push-Down-Automat (PDA): Informell

Wie endlicher Automat, aber zusätzlicher einen Stack

Übergangsrelation bezieht das oberste Stacksymbol in den Übergang ein

Bei Zustandsübergang: lesen und schreiben auf Stack

(22)

Push-Down-Automat

Push-Down-Automat (PDA): Informell

Wie endlicher Automat, aber zusätzlicher einen Stack

Übergangsrelation bezieht das oberste Stacksymbol in den Übergang ein

Bei Zustandsübergang: lesen und schreiben auf Stack

(23)

Push-Down-Automat

Push-Down-Automat (PDA): Informell

Wie endlicher Automat, aber zusätzlicher einen Stack

Übergangsrelation bezieht das oberste Stacksymbol in den Übergang ein

Bei Zustandsübergang: lesen und schreiben auf Stack

(24)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation, eine endliche Relation:

∆ ⊂ ( K × (Σ ∪ {ε}) × Γ) × ( K × Γ )

(25)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation,

eine endliche Relation:

(26)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation, eine endliche Relation:

∆ ⊂ ( K × (Σ ∪ {ε}) × Γ) × ( K × Γ )

(27)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation,

eine endliche Relation:

(28)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation, eine endliche Relation:

∆ ⊂ ( K × (Σ ∪ {ε}) × Γ) × ( K × Γ )

(29)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation,

eine endliche Relation:

(30)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation, eine endliche Relation:

∆ ⊂ ( K × (Σ ∪ {ε}) × Γ) × ( K × Γ )

(31)

Push-Down-Automat

Definition 22.2 (Push-Down-Automat) Ein Push-Down-Automat (PDA) ist ein Tupel

M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F )

Dabei ist

K eine endliche Menge von Zuständen Σ das Eingabealphabet

Γ das Stack- oder Kelleralphabet s

0

∈ K der Startzustand

Z

0

∈ Γ das Anfangssymbol im Keller F ⊆ K eine Menge von finalen Zuständen

∆ die Zustandsübergangsrelation,

eine endliche Relation:

(32)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(33)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(34)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(35)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(36)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(37)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(38)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(39)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(40)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(41)

Push-Down-Automat

Arbeitsschritt eines PDA

In Abhängigkeit

vom aktuellen Zustand

vom nächsten Eingabezeichen (oder auch unabhängig davon) vom obersten Kellersymbol

geschieht folgendes

nächstes Eingabezeichen wird gelesen oder nicht (bei ε ), das oberste Kellersymbol wird entfernt,

der Zustand wird geändert,

es werden null oder mehr Zeichen auf den Keller geschoben

Bei neuen Keller-Wort γ = A

1

. . . A

n

wird A

n

zuerst auf den Keller

geschoben usw., so daß am Schluss A

1

obenauf liegt.

(42)

Push-Down-Automat

Notation

a , b , c für Buchstaben aus Σ

u , v , w für Wörter aus Σ

A , B für Stacksymbole aus Γ

γ,η für Stackinhalte aus Γ

(43)

Push-Down-Automat

Notation

a , b , c für Buchstaben aus Σ

u , v , w für Wörter aus Σ

A , B für Stacksymbole aus Γ

γ,η für Stackinhalte aus Γ

(44)

Push-Down-Automat

Notation

a , b , c für Buchstaben aus Σ

u , v , w für Wörter aus Σ

A , B für Stacksymbole aus Γ

γ,η für Stackinhalte aus Γ

(45)

Push-Down-Automat

Notation

a , b , c für Buchstaben aus Σ

u , v , w für Wörter aus Σ

A , B für Stacksymbole aus Γ

γ,η für Stackinhalte aus Γ

(46)

Push-Down-Automat: Konfiguration

Konfiguration eines PDA: Informell

Konfiguration beschreibt die aktuelle Situation des PDA komplett Bestandteile:

aktueller Zustand

noch zu lesendes Restwort kompletter Stackinhalt

Für Konfigurationen C

1

, C

2

bedeutet

C

1

` C

2

daß der PDA in einem Schritt von C

1

nach C

2

gelangen kann.

(47)

Push-Down-Automat: Konfiguration

Konfiguration eines PDA: Informell

Konfiguration beschreibt die aktuelle Situation des PDA komplett Bestandteile:

aktueller Zustand

noch zu lesendes Restwort kompletter Stackinhalt

Für Konfigurationen C

1

, C

2

bedeutet

C

1

` C

2

daß der PDA in einem Schritt von C

1

nach C

2

gelangen kann.

(48)

Push-Down-Automat: Konfiguration

Konfiguration eines PDA: Informell

Konfiguration beschreibt die aktuelle Situation des PDA komplett Bestandteile:

aktueller Zustand

noch zu lesendes Restwort kompletter Stackinhalt

Für Konfigurationen C

1

, C

2

bedeutet

C

1

` C

2

daß der PDA in einem Schritt von C

1

nach C

2

gelangen kann.

(49)

Push-Down-Automat: Konfiguration

Konfiguration eines PDA: Informell

Konfiguration beschreibt die aktuelle Situation des PDA komplett Bestandteile:

aktueller Zustand

noch zu lesendes Restwort kompletter Stackinhalt

Für Konfigurationen C

1

, C

2

bedeutet

C

1

` C

2

daß der PDA in einem Schritt von C

1

nach C

2

gelangen kann.

(50)

Push-Down-Automat: Konfiguration

Definition 22.3 (Konfiguration eines PDA, ` )

Eine Konfiguration C eines PDA M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F ) ist ein Tripel ( q , w ,γ) ∈ K × Σ × Γ .

q der aktuelle Zustand

w der noch zu lesendes Restwort γ der komplette Stackinhalt

Definition 22.4 (Startkonfiguration)

Bei Eingabewort w ist die Startkonfiguration:

( s

0

, w , Z

0

)

(51)

Push-Down-Automat: Konfiguration

Definition 22.3 (Konfiguration eines PDA, ` )

Eine Konfiguration C eines PDA M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F ) ist ein Tripel ( q , w ,γ) ∈ K × Σ × Γ .

q der aktuelle Zustand

w der noch zu lesendes Restwort γ der komplette Stackinhalt

Definition 22.4 (Startkonfiguration)

Bei Eingabewort w ist die Startkonfiguration:

(52)

Push-Down-Automat: Konfiguration

Definition 22.3 (Konfiguration eines PDA, ` )

Eine Konfiguration C eines PDA M = ( K ,Σ,Γ, ∆, s

0

, Z

0

, F ) ist ein Tripel ( q , w ,γ) ∈ K × Σ × Γ .

q der aktuelle Zustand

w der noch zu lesendes Restwort γ der komplette Stackinhalt

Definition 22.4 (Startkonfiguration)

Bei Eingabewort w ist die Startkonfiguration:

( s

0

, w , Z

0

)

(53)

Push-Down-Automat: Konfiguration

Definition 22.5 (Nachfolgekonfiguration) C

2

heißt Nachfolgekonfiguration von C

1

,

C

1

` C

2

falls

∃ a ∈ Σ ∃ A ∈ Γ ∃ w ∈ Σ ∃γ,η ∈ Γ

so dass

entweder C

1

= ( q

1

, aw , A γ) , C

2

= ( q

2

, w ,ηγ ), und ( q

1

, a , A ) ∆ ( q

2

,η) ,

oder C

1

= ( q

1

, w , A γ) , C

2

= ( q

2

, w ,ηγ) , und ( q

1

,ε, A ) ∆ ( q

2

,η) ,

(54)

Push-Down-Automat: Konfiguration

Definition 22.5 (Nachfolgekonfiguration) C

2

heißt Nachfolgekonfiguration von C

1

,

C

1

` C

2

falls

∃ a ∈ Σ ∃ A ∈ Γ ∃ w ∈ Σ ∃γ,η ∈ Γ

so dass

entweder C

1

= ( q

1

, aw , A γ) , C

2

= ( q

2

, w ,ηγ ), und ( q

1

, a , A ) ∆ ( q

2

,η) ,

oder C

1

= ( q

1

, w , A γ) , C

2

= ( q

2

, w ,ηγ) , und ( q

1

,ε, A ) ∆ ( q

2

,η) ,

(55)

Push-Down-Automat: Konfiguration

Definition 22.5 (Nachfolgekonfiguration) C

2

heißt Nachfolgekonfiguration von C

1

,

C

1

` C

2

falls

∃ a ∈ Σ ∃ A ∈ Γ ∃ w ∈ Σ ∃γ,η ∈ Γ

so dass

entweder C

1

= ( q

1

, aw , A γ) , C

2

= ( q

2

, w ,ηγ ), und ( q

1

, a , A ) ∆ ( q

2

,η) ,

oder C

1

= ( q

1

, w , A γ) , C

2

= ( q

2

, w ,ηγ) , und ( q

1

,ε, A ) ∆ ( q

2

,η) ,

(56)

Push-Down-Automat: Konfiguration

Definition 22.5 (Nachfolgekonfiguration) C

2

heißt Nachfolgekonfiguration von C

1

,

C

1

` C

2

falls

∃ a ∈ Σ ∃ A ∈ Γ ∃ w ∈ Σ ∃γ,η ∈ Γ

so dass

entweder C

1

= ( q

1

, aw , A γ) , C

2

= ( q

2

, w ,ηγ ), und ( q

1

, a , A ) ∆ ( q

2

,η) ,

oder C

1

= ( q

1

, w , A γ) , C

2

= ( q

2

, w ,ηγ) , und ( q

1

,ε, A ) ∆ ( q

2

,η) ,

(57)

Push-Down-Automat: Rechnung

Definition 22.6 (Rechnung eines PDA) Sei A ein Push-Down-Automat.

C `

A

C 0

gdw es eine Reihe von Konfigurationen

C

0

, C

1

, . . . , C

n

( n ≥ 0 )

so daß C = C

0

, C 0 = C

n

,

C

i

`

A

C

i

+

1

für alle 0 ≤ i < n

Dann heißt C , C , . . . , C eine Rechnung von A

(58)

Push-Down-Automat: Rechnung

Definition 22.6 (Rechnung eines PDA) Sei A ein Push-Down-Automat.

C `

A

C 0

gdw es eine Reihe von Konfigurationen

C

0

, C

1

, . . . , C

n

( n ≥ 0 )

so daß C = C

0

, C 0 = C

n

,

C

i

`

A

C

i

+

1

für alle 0 ≤ i < n

Dann heißt C

0

, C

1

, . . . , C

n

eine Rechnung von A

(59)

Push-Down-Automat: Rechnung

Definition 22.6 (Rechnung eines PDA) Sei A ein Push-Down-Automat.

C `

A

C 0

gdw es eine Reihe von Konfigurationen

C

0

, C

1

, . . . , C

n

( n ≥ 0 )

so daß C = C

0

, C 0 = C

n

,

C

i

`

A

C

i

+

1

für alle 0 ≤ i < n

Dann heißt C , C , . . . , C eine Rechnung von A

(60)

Push-Down-Automat: Akzeptierte Sprache

Definition 22.7 (von PDA akzeptierte Sprache)

Ein PDA M kann auf zwei verschiedene Arten eine Sprache akzeptieren:

über finale Zustände über leeren Keller

L

f

( M ) = { w ∈ Σ | ∃ q ∈ F ∃γ ∈ Γ ( s

0

, w , Z

0

) ` M ( q , ε,γ) } L

l

(M) = { w ∈ Σ | ∃ q ∈ K ( s

0

, w , Z

0

) ` M ( q ,ε, ε)

}

Bemerkung

Das zu akzeptierende Wort w muss von M ganz gelesen werden:

( s

0

, w , Z

0

) ` ( q ,ε,·)

ist gefordert.

(61)

Push-Down-Automat: Akzeptierte Sprache

Definition 22.7 (von PDA akzeptierte Sprache)

Ein PDA M kann auf zwei verschiedene Arten eine Sprache akzeptieren:

über finale Zustände über leeren Keller

L

f

( M ) = { w ∈ Σ | ∃ q ∈ F ∃γ ∈ Γ ( s

0

, w , Z

0

) ` M ( q , ε,γ) } L

l

(M) = { w ∈ Σ | ∃ q ∈ K ( s

0

, w , Z

0

) ` M ( q ,ε, ε)

}

Bemerkung

Das zu akzeptierende Wort w muss von M ganz gelesen werden:

( s

0

, w , Z

0

) ` ( q ,ε,·)

(62)

Push-Down-Automat: Akzeptierte Sprache

Definition 22.7 (von PDA akzeptierte Sprache)

Ein PDA M kann auf zwei verschiedene Arten eine Sprache akzeptieren:

über finale Zustände über leeren Keller

L

f

( M ) = { w ∈ Σ | ∃ q ∈ F ∃γ ∈ Γ ( s

0

, w , Z

0

) ` M ( q , ε,γ) } L

l

(M) = { w ∈ Σ | ∃ q ∈ K ( s

0

, w , Z

0

) ` M ( q ,ε, ε)

}

Bemerkung

Das zu akzeptierende Wort w muss von M ganz gelesen werden:

( s

0

, w , Z

0

) ` ( q ,ε,·)

ist gefordert.

(63)

Push-Down-Automat: Akzeptierte Sprache

Definition 22.7 (von PDA akzeptierte Sprache)

Ein PDA M kann auf zwei verschiedene Arten eine Sprache akzeptieren:

über finale Zustände über leeren Keller

L

f

( M ) = { w ∈ Σ | ∃ q ∈ F ∃γ ∈ Γ ( s

0

, w , Z

0

) ` M ( q , ε,γ) } L

l

(M) = { w ∈ Σ | ∃ q ∈ K ( s

0

, w , Z

0

) ` M ( q ,ε, ε)

}

Bemerkung

Das zu akzeptierende Wort w muss von M ganz gelesen werden:

( s

0

, w , Z

0

) ` ( q ,ε,·)

(64)

Push-Down-Automat

Bemerkung

Das unterste Symbol im Keller kann gelöscht werden.

Dann aber hängt der PDA

Er kann nicht mehr weiter rechnen

Es gibt keineNachfolgekonfiguration

(65)

Push-Down-Automat

Bemerkung

Das unterste Symbol im Keller kann gelöscht werden.

Dann aber hängt der PDA

Er kann nicht mehr weiter rechnen

Es gibt keineNachfolgekonfiguration

(66)

Push-Down-Automat

Bemerkung

Das unterste Symbol im Keller kann gelöscht werden.

Dann aber hängt der PDA

Er kann nicht mehr weiter rechnen

Es gibt keineNachfolgekonfiguration

(67)

Push-Down-Automat

Bemerkung

Das unterste Symbol im Keller kann gelöscht werden.

Dann aber hängt der PDA

Er kann nicht mehr weiter rechnen

Es gibt keineNachfolgekonfiguration

(68)

Push-Down-Automat: Beispiel

Beispiel 22.8

Sprache der Palindrome über { a , b } :

L = { w ∈ { a , b } | w = w

R

}

L wird über leeren Keller akzeptiert von dem PDA

M := ({ s

0

, s

1

},{ a , b }, { Z

0

, A , B },∆, s

0

, Z

0

, 0) /

mit . . .

(69)

Push-Down-Automat: Beispiel

Beispiel 22.8

Sprache der Palindrome über { a , b } :

L = { w ∈ { a , b } | w = w

R

}

L wird über leeren Keller akzeptiert von dem PDA

M := ({ s

0

, s

1

},{ a , b }, { Z

0

, A , B },∆, s

0

, Z

0

, 0) /

mit . . .

(70)

Push-Down-Automat: Beispiel

Beispiel (Forts.) Idee:

Ein Palindrom w = w

R

hat die Form vv

R

oder vav

R

oder vbv

R

für ein v ∈ { a , b }

Der Automat M liest v und merkt sich jeden Buchstaben.

Er rät indeterminiert die Wortmitte.

Falls das Wort eine ungerade Anzahl von Buchstaben hat, also w = vav

R

oder w = vbv

R

,

dann muss dabei ein Buchstabe überlesen werden.

Der Stack enthält nun v

R

.

M muss jetzt nur noch jeden weiteren gelesenen Buchstaben mit dem

jeweils obersten Kellersymbol vergleichen.

(71)

Push-Down-Automat: Beispiel

Beispiel (Forts.) Idee:

Ein Palindrom w = w

R

hat die Form

vv

R

oder vav

R

oder vbv

R

für ein v ∈ { a , b }

Der Automat M liest v und merkt sich jeden Buchstaben.

Er rät indeterminiert die Wortmitte.

Falls das Wort eine ungerade Anzahl von Buchstaben hat, also w = vav

R

oder w = vbv

R

,

dann muss dabei ein Buchstabe überlesen werden.

Der Stack enthält nun v

R

.

M muss jetzt nur noch jeden weiteren gelesenen Buchstaben mit dem

(72)

Push-Down-Automat: Beispiel

Beispiel (Forts.) Idee:

Ein Palindrom w = w

R

hat die Form

vv

R

oder vav

R

oder vbv

R

für ein v ∈ { a , b }

Der Automat M liest v und merkt sich jeden Buchstaben.

Er rät indeterminiert die Wortmitte.

Falls das Wort eine ungerade Anzahl von Buchstaben hat, also w = vav

R

oder w = vbv

R

,

dann muss dabei ein Buchstabe überlesen werden.

Der Stack enthält nun v

R

.

M muss jetzt nur noch jeden weiteren gelesenen Buchstaben mit dem

jeweils obersten Kellersymbol vergleichen.

(73)

Push-Down-Automat: Beispiel

Beispiel (Forts.) Idee:

Ein Palindrom w = w

R

hat die Form

vv

R

oder vav

R

oder vbv

R

für ein v ∈ { a , b }

Der Automat M liest v und merkt sich jeden Buchstaben.

Er rät indeterminiert die Wortmitte.

Falls das Wort eine ungerade Anzahl von Buchstaben hat, also w = vav

R

oder w = vbv

R

,

dann muss dabei ein Buchstabe überlesen werden.

Der Stack enthält nun v

R

.

M muss jetzt nur noch jeden weiteren gelesenen Buchstaben mit dem

(74)

Push-Down-Automat: Beispiel

Beispiel (Forts.)

( s

0

,ε, Z

0

) ∆ ( s

1

, ε) ε akzeptieren

( s

0

, a , Z

0

) ∆ ( s

0

, A ) ( s

0

, a , A ) ∆ ( s

0

, AA ) ( s

0

, a , B ) ∆ ( s

0

, AB ) ( s

0

, b , Z

0

) ∆ ( s

0

, B ) ( s

0

, b , A ) ∆ ( s

0

, BA ) ( s

0

, b , B ) ∆ ( s

0

, BB )

 

 

 

 

 

 

Stack aufbauen

(75)

Push-Down-Automat: Beispiel

Beispiel (Forts.)

( s

0

,ε, Z

0

) ∆ ( s

1

, ε) ε akzeptieren

( s

0

, a , Z

0

) ∆ ( s

0

, A ) ( s

0

, a , A ) ∆ ( s

0

, AA ) ( s

0

, a , B ) ∆ ( s

0

, AB ) ( s

0

, b , Z

0

) ∆ ( s

0

, B ) ( s

0

, b , A ) ∆ ( s

0

, BA ) ( s

0

, b , B ) ∆ ( s

0

, BB )

 

 

 

 

 

 

Stack aufbauen

(76)

Push-Down-Automat: Beispiel

Beispiel (Forts.)

( s

0

,ε, A ) ∆ ( s

1

, ε) ( s

0

,ε, B ) ∆ ( s

1

, ε)

Richtungswechsel für Palindrome mit ungerader Buchstabenanzahl

( s

0

, a , A ) ∆ ( s

1

, ε) ( s

0

, b , B ) ∆ ( s

1

, ε)

Richtungswechsel für Palindrome mit gerader Buchstabenanzahl

( s

1

, a , A ) ∆ ( s

1

, ε) ( s

1

, b , B ) ∆ ( s

1

, ε)

Stack abbauen

(77)

Push-Down-Automat: Beispiel

Beispiel (Forts.)

( s

0

,ε, A ) ∆ ( s

1

, ε) ( s

0

,ε, B ) ∆ ( s

1

, ε)

Richtungswechsel für Palindrome mit ungerader Buchstabenanzahl

( s

0

, a , A ) ∆ ( s

1

, ε) ( s

0

, b , B ) ∆ ( s

1

, ε)

Richtungswechsel für Palindrome mit gerader Buchstabenanzahl

( s

1

, a , A ) ∆ ( s

1

, ε) ( s

1

, b , B ) ∆ ( s

1

, ε)

Stack abbauen

(78)

Push-Down-Automat: Beispiel

Beispiel (Forts.)

Für das Eingabewort abbabba rechnet M so:

( s

0

, abbabba , Z

0

) ` ( s

0

, bbabba , A ) ` ( s

0

, babba , BA ) ` ( s

0

, abba , BBA ) ` ( s

0

, bba , ABBA ) ` ( s

1

, bba , BBA ) `

( s

1

, ba , BA ) ` ( s

1

, a , A ) ` ( s

1

, ε,ε)

Referenzen

ÄHNLICHE DOKUMENTE

(bspw. für Algorithmentechnik, Software Engineering, Compilerbau) hilft, weitere Themen/Vorlesungen der Informatik zu verstehen veraltet nicht.

Zudem darf an der Nachklausur (wie auch an den Teilklausuren) teilnehmen, wer an einer Prüfung zu „Einführung in die Theoretische Informatik I“ in frühren Semestern teilgenommen

Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von. Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der

Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von. Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der

Jede Regelprämisse muss mindestens eine Variable enthalten Das Wort kann im Lauf der Ableitung beliebig wachsen und wieder schrumpfen. (Weitere) Beschränkung der Form, die Regeln

Jede Regelprämisse muss mindestens eine Variable enthalten Das Wort kann im Lauf der Ableitung beliebig wachsen und wieder schrumpfen. (Weitere) Beschränkung der Form, die Regeln

Ein Algorithmus für ein Problem P ist eine Vorschrift (ein Programm), die zu beliebigem Objekt o berechnet, ob die Eigenschaft für o zutrifft oder nicht..Q. Probleme und Algorithmen

Ein Algorithmus für ein Problem P ist eine Vorschrift (ein Programm), die zu beliebigem Objekt o berechnet, ob die Eigenschaft für o zutrifft oder