Vorkurs Theoretische Informatik - Einführung in reguläre ... ·...

72
Vorkurs Theoretische Informatik Einführung in reguläre Sprachen Arbeitskreis Theo Vorkurs Donnerstag, 15.10.2020 Fachgruppe Informatik

Transcript of Vorkurs Theoretische Informatik - Einführung in reguläre ... ·...

Page 1: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Vorkurs Theoretische InformatikEinführung in reguläre Sprachen

Arbeitskreis Theo VorkursDonnerstag, 15.10.2020

Fachgruppe Informatik

Page 2: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Übersicht

1. Chomsky-Hierachie

2. Automaten

NEA

DEA

3. Wiederholung

Fachgruppe Informatik 2 Vorkurs Theoretische Informatik

Page 3: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Chomsky-Hierarchie

Page 4: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Manche Sprachen sind schwerer zu beschreiben als andere

Wenn wir unsere Grammatiken einschränken, können wir nicht mehralle Sprachen beschreiben.

BeispielMit der EinschränkungAlle Produktionsregeln müssen der Form A→ a oder A→ aBentsprechen, wobei A, B ∈ V und a ∈ Σ.können wir Sprachen wie L1 = {an | n ∈ N} beschreiben,aber nicht mehr Sprachen wie L1 = {anbn | n ∈ N}.Achtung: ist ε ∈ L, ist auch S→ ε erlaubt, sofern S nicht auf derrechten Seite einer Produktion vorkommt.

Sprachen, die wir mit dieser starken Einschränkung beschreibenkönnen, nennen wir regulär oder vom Typ 3.Es gibt weitere Typen Mehr dazu in der Vorlesung

Fachgruppe Informatik 4 Vorkurs Theoretische Informatik

Page 5: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Manche Sprachen sind schwerer zu beschreiben als andere

Fachgruppe Informatik 5 Vorkurs Theoretische Informatik

Page 6: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Reguläre Grammatik

AufgabenFinde eine reguläre Grammatik für die folgenden Sprachen

Normal

• L1 = {a2n | n ∈ N}• L2 = {anbm | n,m ∈ N}• L3 = {uv | u ∈ {a,b}∗, v ∈ {c,d}}• L4 = {w | |w| = 3,w ∈ {a,b, c}∗}

Etwas Schwerer

• L5 = {an | n ≡ 1 mod 3}• L6 = {uv | u ∈ {¶, º, ·, »}∗, v ∈ {!}}• L7 = {w ∈ {a,b, c}∗ | |w|a = 3, |w|b = 1}

Fachgruppe Informatik 6 Vorkurs Theoretische Informatik

Page 7: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

• P1 = {S→ aA | ε, A→ aB | a, B→ aA}

• P2 = {S→ aA | bB | b | a | ε, A→ aA | bB | b | a, B→ bB | b}• P3 = {S→ aS | bS | c | d}• P4 = {S→ aA | bA | cA, A→ aB | bB | cB, B→ a | b | c}• P5 = {S→ aA | a, A→ aB, B→ aS}• P6 = {S→ ¶S | ºS | ·S | »S | !}

Fachgruppe Informatik 7 Vorkurs Theoretische Informatik

Page 8: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

• P1 = {S→ aA | ε, A→ aB | a, B→ aA}• P2 = {S→ aA | bB | b | a | ε, A→ aA | bB | b | a, B→ bB | b}

• P3 = {S→ aS | bS | c | d}• P4 = {S→ aA | bA | cA, A→ aB | bB | cB, B→ a | b | c}• P5 = {S→ aA | a, A→ aB, B→ aS}• P6 = {S→ ¶S | ºS | ·S | »S | !}

Fachgruppe Informatik 8 Vorkurs Theoretische Informatik

Page 9: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

• P1 = {S→ aA | ε, A→ aB | a, B→ aA}• P2 = {S→ aA | bB | b | a | ε, A→ aA | bB | b | a, B→ bB | b}• P3 = {S→ aS | bS | c | d}

• P4 = {S→ aA | bA | cA, A→ aB | bB | cB, B→ a | b | c}• P5 = {S→ aA | a, A→ aB, B→ aS}• P6 = {S→ ¶S | ºS | ·S | »S | !}

Fachgruppe Informatik 9 Vorkurs Theoretische Informatik

Page 10: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

• P1 = {S→ aA | ε, A→ aB | a, B→ aA}• P2 = {S→ aA | bB | b | a | ε, A→ aA | bB | b | a, B→ bB | b}• P3 = {S→ aS | bS | c | d}• P4 = {S→ aA | bA | cA, A→ aB | bB | cB, B→ a | b | c}

• P5 = {S→ aA | a, A→ aB, B→ aS}• P6 = {S→ ¶S | ºS | ·S | »S | !}

Fachgruppe Informatik 10 Vorkurs Theoretische Informatik

Page 11: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

• P1 = {S→ aA | ε, A→ aB | a, B→ aA}• P2 = {S→ aA | bB | b | a | ε, A→ aA | bB | b | a, B→ bB | b}• P3 = {S→ aS | bS | c | d}• P4 = {S→ aA | bA | cA, A→ aB | bB | cB, B→ a | b | c}• P5 = {S→ aA | a, A→ aB, B→ aS}

• P6 = {S→ ¶S | ºS | ·S | »S | !}

Fachgruppe Informatik 11 Vorkurs Theoretische Informatik

Page 12: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

• P1 = {S→ aA | ε, A→ aB | a, B→ aA}• P2 = {S→ aA | bB | b | a | ε, A→ aA | bB | b | a, B→ bB | b}• P3 = {S→ aS | bS | c | d}• P4 = {S→ aA | bA | cA, A→ aB | bB | cB, B→ a | b | c}• P5 = {S→ aA | a, A→ aB, B→ aS}• P6 = {S→ ¶S | ºS | ·S | »S | !}

Fachgruppe Informatik 12 Vorkurs Theoretische Informatik

Page 13: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

• P7 = {S→ cS | aA1 | bB0,A1 → cA1 | aA2 | bB1,A2 → cA2 | aA3 | bB2,A3 → cA3 | bB3 | b,B0 → cB0 | aB1,B1 → cB1 | aB2,B2 → cB2 | aB3 | a,B3 → cB3 | c}

Fachgruppe Informatik 13 Vorkurs Theoretische Informatik

Page 14: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Murmelpause

Fachgruppe Informatik 14 Vorkurs Theoretische Informatik

Page 15: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Automaten

Page 16: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Reguläre Sprachen anders beschreiben

Wir können reguläre Sprachen auch graphisch beschreiben.Dafür nutzen wir endliche Automaten.Ein Automat prüft Wörter und entscheidet, ob sie Teil der Sprachesind oder nicht. Wir nennen das akzeptieren, bzw. nicht akzeptieren.

Funktionsweise

1. Ein Wort wird in den Automat eingegeben2. Wort wird zeichenweise abgearbeitet3. Nach jedem Zeichen wird der Automat in einen Zustandüberführt, der bestimmt, wie fortgefahren wird

4. Befindet sich der Automat in einem Endzustand, sobald dasWort abgearbeitet wurde, akzeptiert der Automat das Wort.

Fachgruppe Informatik 16 Vorkurs Theoretische Informatik

Page 17: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Bestandteile eines endlichen Automaten

Der Automat kann als gerichteter Graph notiert werden.Wir konstruieren ihn aus den folgenden Komponenten:

StartzustandIm Startzustand wird das Wort eingegeben.

q0start

Fachgruppe Informatik 17 Vorkurs Theoretische Informatik

Page 18: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Bestandteile eines endlichen Automaten

Der Automat kann als gerichteter Graph notiert werden.Wir konstruieren ihn aus den folgenden Komponenten:

ZustandsübergangWird das Zeichen auf dem Übergang gelesen, geht der Automat inden folgenden Zustand über.

qi qja

Fachgruppe Informatik 18 Vorkurs Theoretische Informatik

Page 19: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Bestandteile eines endlichen Automaten

Der Automat kann als gerichteter Graph notiert werden.Wir konstruieren ihn aus den folgenden Komponenten:

EndzustandFalls sich der Automat in diesem Zustand befindet, und das Wortabgearbeitet ist, wird das Wort akzeptiert.

qE

Anmerkung: Unter Umständen sind mehrere hiervon nötig

Fachgruppe Informatik 19 Vorkurs Theoretische Informatik

Page 20: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 20 Vorkurs Theoretische Informatik

Page 21: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 21 Vorkurs Theoretische Informatik

Page 22: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 22 Vorkurs Theoretische Informatik

Page 23: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 23 Vorkurs Theoretische Informatik

Page 24: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 24 Vorkurs Theoretische Informatik

Page 25: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 25 Vorkurs Theoretische Informatik

Page 26: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 26 Vorkurs Theoretische Informatik

Page 27: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 27 Vorkurs Theoretische Informatik

Page 28: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qEa

a,b

b

Worteingabe:aababb ∈ L akzeptiert

Fachgruppe Informatik 28 Vorkurs Theoretische Informatik

Page 29: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel: Automat

Gegeben ist eine Sprache L. Gesucht ist ein Automat M, der genau dieWörter aus L akzeptiert.

L1 = {uv | u ∈ {a,b}∗, v ∈ {c,d}}

q0start q1c,d

a,b

Fachgruppe Informatik 29 Vorkurs Theoretische Informatik

Page 30: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Denkpause

knifflige AufgabeWir entwerfen einen Automat zur Aufzugskontrolle. Der Aufzug hat folgendeMöglichkeiten:Σ = { EG↗1.OG , EG↗2.OG , 1.OG↘EG , 1.OG↗2.OG , 2.OG↘EG ,

2.OG↘1.OG , OFF }

• Der Aufzug startet vom Erdgeschoss und darf sich nur aus Stockwerkenbewegen, in denen er sich befindet.

• Der Aufzug kann nur im Erdgeschoss ausgeschaltet werden. Er kanndann keine Bewegung durchführen.

• Der Aufzug muss ausgeschaltet werden.

Zeichne einen Automaten an, dessen akzeptierte Sprache genau die Mengeder korrekten Abläufe ist.

Fachgruppe Informatik 30 Vorkurs Theoretische Informatik

Page 31: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

q0start

q1

q2

qE

EG↗1.OG

OFF

EG↗2.OG

1.OG↗

2.OG

1.OG↘

EG2.O

G↘1.OG

2.OG↘EG

Fachgruppe Informatik 31 Vorkurs Theoretische Informatik

Page 32: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Denkpause

AufgabenFinde Automaten, die genau folgende Sprachen erkennen.

Normal

• L1 = {anbm | n,m ∈ N}• L2 = {w | |w| = 3,w ∈ {a,b, c}∗}• L3 = {uv | u ∈ {¶, º, ·, »}∗, v ∈ {!}}

Etwas Schwerer

• L4 = {an | n ≡ 1 mod 3}• L5 = {w ∈ {a,b, c}∗ | |w|a = 3, |w|b = 1}• L6 = {w ∈ {a,b}∗ | |w|a ≡ |w|b mod 3}

Fachgruppe Informatik 32 Vorkurs Theoretische Informatik

Page 33: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

q0start q1b

a b

q0start q1 q2 q3a,b,c a,b,c a,b,c

q0start q1

¶, º, ·, »

!

q0start q1 q2a a

a

Fachgruppe Informatik 33 Vorkurs Theoretische Informatik

Page 34: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

q0start q1b

a b

q0start q1 q2 q3a,b,c a,b,c a,b,c

q0start q1

¶, º, ·, »

!

q0start q1 q2a a

a

Fachgruppe Informatik 34 Vorkurs Theoretische Informatik

Page 35: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

q0start q1b

a b

q0start q1 q2 q3a,b,c a,b,c a,b,c

q0start q1

¶, º, ·, »

!

q0start q1 q2a a

a

Fachgruppe Informatik 35 Vorkurs Theoretische Informatik

Page 36: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

q0start q1b

a b

q0start q1 q2 q3a,b,c a,b,c a,b,c

q0start q1

¶, º, ·, »

!

q0start q1 q2a a

a

Fachgruppe Informatik 36 Vorkurs Theoretische Informatik

Page 37: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

q0start q1 q2 q3

q4 q5 q6 q7

a

b

c

a

b

c

a

b

c

b

c

a

c

a

c

a

c c

Fachgruppe Informatik 37 Vorkurs Theoretische Informatik

Page 38: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung

q0start q1

q2

a

b a

b

a

b

Fachgruppe Informatik 38 Vorkurs Theoretische Informatik

Page 39: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Murmelpause

Fachgruppe Informatik 39 Vorkurs Theoretische Informatik

Page 40: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Verschiedene endliche Automaten

NEABeim Lesen eines Wortes ist es manchmal unklar, welchen Übergangder Automat nehmen soll. Der Automat ist nichtdeterministisch.

DEAWir können unsere Möglichkeiten so einschränken, dass bei jedemZeichen eindeutig ist, welcher Übergang genutzt wird. Der Automat ist deterministisch.

Fachgruppe Informatik 40 Vorkurs Theoretische Informatik

Page 41: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Unterschied NEA und DEA

Bildlich kann man den Unterschied zwischen NEA und DEA anverschiedenen Merkmalen erkennen:

Mehrere Möglichkeiten bei Übergängen:

qi

qj

qk

a

a,b

Bei einem DEA wäre nur ein Weg mit einem a von dem Zustand qi auserlaubt!Fachgruppe Informatik 41 Vorkurs Theoretische Informatik

Page 42: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Unterschied NEA und DEA

Bildlich kann man den Unterschied zwischen NEA und DEA anverschiedenen Merkmalen erkennen:

Nicht definierte Übergänge

qi qj

a

a,b

Bei einem DEA müsste ein Übergang mit b für den Zustand qidefiniert werden!

Fachgruppe Informatik 42 Vorkurs Theoretische Informatik

Page 43: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Unterschied NEA und DEA

Bildlich kann man den Unterschied zwischen NEA und DEA anverschiedenen Merkmalen erkennen:

Mehrere Startzustände

q0start

q̃0start

q1

a

b

a,b

Ein DEA muss genau einen Startzustand besitzen!Fachgruppe Informatik 43 Vorkurs Theoretische Informatik

Page 44: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Wann wird ein Wort akzeptiert?

Ein Wort w ∈ Σ∗ wird von einem NEA akzeptiert, wenn es mindestenseinen akzeptierenden Pfad gibt.

BeispielWelche Zustände können erreicht werden, wenn w = aabaeingelesen wird?

q0start q1 q2

a,b

a

ba

a,b

i) q0 → q0 → q0 → q0 → q0ii) q0 → q0 → q0 → q0 → q1 (Endzustand erreicht)iii) q0 → q0 → q1 → q0 → q1 (Endzustand erreicht)iv) q0 → q1 → q2 → q2 → q2

Fachgruppe Informatik 44 Vorkurs Theoretische Informatik

Page 45: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Wann wird ein Wort akzeptiert?

Ein Wort w ∈ Σ∗ wird von einem NEA akzeptiert, wenn es mindestenseinen akzeptierenden Pfad gibt.

BeispielWelche Zustände können erreicht werden, wenn w = aabaeingelesen wird?

q0start q1 q2

a,b

a

ba

a,b

i) q0 → q0 → q0 → q0 → q0

ii) q0 → q0 → q0 → q0 → q1 (Endzustand erreicht)iii) q0 → q0 → q1 → q0 → q1 (Endzustand erreicht)iv) q0 → q1 → q2 → q2 → q2

Fachgruppe Informatik 45 Vorkurs Theoretische Informatik

Page 46: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Wann wird ein Wort akzeptiert?

Ein Wort w ∈ Σ∗ wird von einem NEA akzeptiert, wenn es mindestenseinen akzeptierenden Pfad gibt.

BeispielWelche Zustände können erreicht werden, wenn w = aabaeingelesen wird?

q0start q1 q2

a,b

a

ba

a,b

i) q0 → q0 → q0 → q0 → q0ii) q0 → q0 → q0 → q0 → q1 (Endzustand erreicht)

iii) q0 → q0 → q1 → q0 → q1 (Endzustand erreicht)iv) q0 → q1 → q2 → q2 → q2

Fachgruppe Informatik 46 Vorkurs Theoretische Informatik

Page 47: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Wann wird ein Wort akzeptiert?

Ein Wort w ∈ Σ∗ wird von einem NEA akzeptiert, wenn es mindestenseinen akzeptierenden Pfad gibt.

BeispielWelche Zustände können erreicht werden, wenn w = aabaeingelesen wird?

q0start q1 q2

a,b

a

ba

a,b

i) q0 → q0 → q0 → q0 → q0ii) q0 → q0 → q0 → q0 → q1 (Endzustand erreicht)iii) q0 → q0 → q1 → q0 → q1 (Endzustand erreicht)

iv) q0 → q1 → q2 → q2 → q2

Fachgruppe Informatik 47 Vorkurs Theoretische Informatik

Page 48: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Wann wird ein Wort akzeptiert?

Ein Wort w ∈ Σ∗ wird von einem NEA akzeptiert, wenn es mindestenseinen akzeptierenden Pfad gibt.

BeispielWelche Zustände können erreicht werden, wenn w = aabaeingelesen wird?

q0start q1 q2

a,b

a

ba

a,b

i) q0 → q0 → q0 → q0 → q0ii) q0 → q0 → q0 → q0 → q1 (Endzustand erreicht)iii) q0 → q0 → q1 → q0 → q1 (Endzustand erreicht)iv) q0 → q1 → q2 → q2 → q2

Fachgruppe Informatik 48 Vorkurs Theoretische Informatik

Page 49: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Deterministische endliche Automaten

Wir beschränken unseren Automaten folgendermaßen:Von jedem Zustand muss genau ein Übergang für jedes a ∈ Σ

ausgehen.

Um dies zu ermöglichen führen wir eine neue Komponente ein:

FangzustandDieser Zustand kann nicht verlassen werden.Falls der Automat in diesem Zustand landet, kommt er nicht mehrraus. Das Wort kann nicht akzeptiert werden.

qf x ∈ Σ

Fachgruppe Informatik 49 Vorkurs Theoretische Informatik

Page 50: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Deterministische endliche Automaten

Wir beschränken unseren Automaten folgendermaßen:Von jedem Zustand muss genau ein Übergang für jedes a ∈ Σ

ausgehen.

Um dies zu ermöglichen führen wir eine neue Komponente ein:

FangzustandDieser Zustand kann nicht verlassen werden.Falls der Automat in diesem Zustand landet, kommt er nicht mehrraus. Das Wort kann nicht akzeptiert werden.

qf x ∈ Σ

Fachgruppe Informatik 50 Vorkurs Theoretische Informatik

Page 51: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 51 Vorkurs Theoretische Informatik

Page 52: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 52 Vorkurs Theoretische Informatik

Page 53: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 53 Vorkurs Theoretische Informatik

Page 54: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 54 Vorkurs Theoretische Informatik

Page 55: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 55 Vorkurs Theoretische Informatik

Page 56: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 56 Vorkurs Theoretische Informatik

Page 57: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 57 Vorkurs Theoretische Informatik

Page 58: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L?

Fachgruppe Informatik 58 Vorkurs Theoretische Informatik

Page 59: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Beispiel

L = {axb | x ∈ {a,b}∗}

q0start q1 qE

qf

a

b

ab

a,b

b

a

Worteingabe:aababb ∈ L akzeptiert

Fachgruppe Informatik 59 Vorkurs Theoretische Informatik

Page 60: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Denkpause

AufgabenFinde deterministische endliche Automaten (DEAs) für die folgenden Sprachen.

Normal

• L1 = {a2n | n ∈ N} über Σ = {a}

• L2 = {w ∈ {a, b}∗ | |w|a ≥ 2} über Σ = {a, b}

Prüfungsaufgabe: Etwas Schwerer• L3 = {w ∈ {a, b, c}∗ | |w|b ≥ 1 und aaca ist Suffix von w} über Σ = {a, b, c}

Prüfungsaufgabe: Schwer• L4 = {bin(n) | ∃k ∈ N : n = 4k, bin(n) ist Binärdarstellung von n} überΣ = {1, 0}Achtung: Keine führenden Nullen.

Fachgruppe Informatik 60 Vorkurs Theoretische Informatik

Page 61: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung: Normal

L1 = {a2n | n ∈ N}

q0start q1

a

a

Fachgruppe Informatik 61 Vorkurs Theoretische Informatik

Page 62: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung: Normal

L1 = {a2n | n ∈ N}

q0start q1

a

a

L2 = {w ∈ {a,b}∗ | |w|a ≥ 2}

q0start q1 q2a

b

a

b a,b

Fachgruppe Informatik 62 Vorkurs Theoretische Informatik

Page 63: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung: Prüfungsaufgabe: Etwas Schwerer

L3 = {w ∈ {a,b, c}∗ | |w|b ≥ 1 und aaca ist Suffix von w}

q0start q1 q2 q3 q4 qEb

a,c

a

b,c

ab,c

c

ba

a

b,c

b,c

a

Fachgruppe Informatik 63 Vorkurs Theoretische Informatik

Page 64: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Lösung: Prüfungsaufgabe: Schwer

L4 = {bin(n) | ∃k ∈ N : n = 4k,bin(n) ist Binärdarstellung von n}

q0start q1 q2

q3q4 qf

1

0

0

1

01

0

10,1

0,1

Fachgruppe Informatik 64 Vorkurs Theoretische Informatik

Page 65: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Wiederholung

Page 66: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Das können wir jetzt beantworten

Heute: Reguläre Grammatiken

• Wie sehen Produktionsregeln für reguläre Grammatiken aus?• Bilden einer regulären Grammatik für gegebene reguläreSprache

Fachgruppe Informatik 66 Vorkurs Theoretische Informatik

Page 67: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Das können wir jetzt beantworten

Heute: Automaten

• Was sind Automaten?• Wie wandelt man Automaten zu einer äquivalenten Grammatikum?

• Was macht einen deterministischen Automaten aus?• Finden eines (deterministischen) Automaten für gegebeneSprache

Fachgruppe Informatik 67 Vorkurs Theoretische Informatik

Page 68: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Das können wir jetzt beantworten

Heute: Reguläre Ausdrücke

• Wie funktioniert die Konkatenation?• Was bedeuten (α | β) und (α)∗?• Finden eines regulären Ausdrucks für gegebene reguläre Sprache

Fachgruppe Informatik 68 Vorkurs Theoretische Informatik

Page 69: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Noch Fragen?

Fachgruppe Informatik 69 Vorkurs Theoretische Informatik

Page 70: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Glossar

Abk. Bedeutung Was?!

q0start Startzustand Hier fängt der Automat beimLesen eines Wortes an

qi qja Zustandsübergang gibt an, welches Symbol einge-lesen werden kann, um in denFolgezustand zu übergehen.

qE Endzustand Hier kann ein fertig gelesenesWort akzeptiert werden.

qf x ∈ Σ Fangzustand wird benötigt, um Determinis-mus zu gewährleisten. In Gra-phiken oft nicht eingezeichnet,ist aber da. Malt den hin.

Fachgruppe Informatik 70 Vorkurs Theoretische Informatik

Page 71: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Glossar

Abk. Bedeutung Was?!

T(M) Sprache von Automat M Die Sprache, die von einem Auto-mat M erkannt wird

L(G) Sprache von Grammatik G Die Sprache, die von einer Gram-matik G erzeugt wird

γ kleines Gamma oft Bezeichner für regulären Aus-druck

L(γ) Sprache von reg. Ausdruck γ Die Sprache. die von einem regu-lären Ausdruck γ erkannt wird

Fachgruppe Informatik 71 Vorkurs Theoretische Informatik

Page 72: Vorkurs Theoretische Informatik - Einführung in reguläre ... · MancheSprachensindschwererzubeschreibenalsandere WennwirunsereGrammatikeneinschränken,könnenwirnichtmehr alleSprachenbeschreiben.

Online-Whiteboard