• Keine Ergebnisse gefunden

Grundlagen der theoretischen Informatik

N/A
N/A
Protected

Academic year: 2022

Aktie "Grundlagen der theoretischen Informatik"

Copied!
5
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

M.Ed. Dennis Peuter Fachbereich 4: Informatik

Kevin Weirauch 17. Juni 2021

Übung zur Vorlesung

Grundlagen der theoretischen Informatik

Aufgabenblatt 8 – Lösungen

Aufgabe 8.1

a) Gegeben sei der folgende PDA:

A= ({s0, s1},{a, b},{A, Z0},∆, s0, Z0,{s1}) mit der folgenden Übergangsrelation

∆ ={((s0, a, Z0),(s1, AZ0)), ((s1, a, A),(s1, AA)), ((s1, b, A),(s1, ε)), ((s1, b, Z0),(s0, ε))}

Entscheiden Sie, obAdas Wortw=aabbüber leeren Keller und/oder über finalen Zustand akzeptiert. Vervollständigen Sie dazu die Rechnung.

(s

0

, aabb, Z

0

) ` (s

1

, abb, AZ

0

) `

(s

1

, bb, AAZ

0

) ` (s

1

, b, AZ

0

) ` (s

1

, ε, Z

0

)

wLl(A)

Aakzeptiertwüber leeren Keller

ja

nein

wLf(A)

Aakzeptiertwüber finalen Zustand

ja

nein

b) Gegeben die folgende SpracheL über dem AlphabetΣ ={a, b}:

L={aibjajbi ∈Σ |i, j∈N+} Zeichnen Sie einen PDA, der Lüber leeren Keller akzeptiert.

(2)

s0

a, Z0 |Z0B a, Z0 |CB

b, C |CA b, C |A a, A|ε b, B|ε

Aufgabe 8.2

Gegeben der folgende PDA M.

s0

s1

a, Z0 |A a, A|AA c, A|A

a, A|ε

Geben Sie einen PDAM0 an, mitLf(M) =Ll(M0).

Lösung:

Am Anfang liegt ein neues StacksymbolZ1auf dem Keller, dasM nicht entfernen kann, daZ1 nicht im Stackalphabet von M enthalten ist. Auf dieses Stacksymbol wird Z0 gelegt undM0 arbeitet wie M. WennM in den finalen Zustand übergeht, gehtM0 in einen neuen Zustand sl über, in dem nur noch der Stack geleert werden kann.

sneu s0

s1 sl

a, Z0|A a, A|AA c, A|A

ε, Z1 |Z0Z1

a, A|ε ε, X |ε

ε, X |ε

X∈ {Z0, Z1, A}

(3)

Aufgabe 8.3

Gegeben die Grammatik G= ({S, S0, A, B},{a, b}, R, S) in Greibach-Normal-Form mit:

R={S →ε|aB|bA, S0aB|bA,

Aa|aS0|bAA, Bb|bS0 |aBB}

a) Geben Sie einen PDAM0 an, mit Ll(M0) =L(G).

Lösung:

Zu einer beliebigen cf-Grammatik G = (V, T, R, S) in Greibach-Normalform konstruiert man einen äquivalenten PDA wie folgt: M= (K,Σ,Γ,∆, s0, Z0, F) mit

K :={s0}, Σ :=T, Γ :=V,

Z0 :=S, F :=∅, ∆ :={((s0, a, A),(s0, α))|AR}

also istM0 gegeben durch:

s0

ε, S |ε a, S |B b, S |A a, S0 |B b, S0 |A

a, A|ε a, A|S0 b, A|AA b, B|ε b, B|S0 a, B|BB

mitZ0:=S

b) Wandeln Sie M0 in einen AutomatenM00 um, mit Ll(M0) =Lf(M00).

Lösung:

Wir führen einen neuen finalen Zustand und ein neues Stack-Symbol Z1 ein, das wir zu Beginn unten auf den Stack legen. Wenn dieses sichtbar wird, wäre der Stack des ur- sprünglichen Automaten leer und wir wechseln in den finalen Zustand.

sneu

s0

sf

ε, S|ε a, S|B b, S |A a, S0|B b, S0 |A

a, A|ε a, A|S0 b, A|AA b, B|ε b, B|S0 a, B |BB

ε, Z1|ε ε, Z1|SZ1

(4)

Entscheiden Sie durch Ankreuzen, ob die folgenden Aussagen richtig oder falsch sind.

Seien L1 und L2 beliebige kontextfreie Sprachen. Dann ist auch L3 = L1∪ ¬L2 kontextfrei.

richtig falsch Seien L1, L2 und L3 beliebige kontextfreie Sprachen. Dann ist auch

L4 = (L2∩ ¬L3)∩(L3∩ ¬L1) kontextfrei.

richtig falsch Seien L1, L2 und L3 beliebige kontextfreie Sprachen. Dann ist auch

L4 =L1L2L3 kontextfrei.

richtig falsch Seien L1,L2 und L3 beliebige rationale Sprachen. Dann ist L4 = (L1

L2)∪ ¬L3 kontextfrei.

richtig falsch

Wiederholung: Cocke-Younger-Kasami

Input: eine Grammatik G= (V,Σ, R, S)in CNF, ein Wort w=a1. . . an∈Σ Output: w∈L(G) gdw. wL(G), sonstw6∈L(G)

for i←1. . . ndo /*Initialisierung*/

Vi,i← {A∈V |AaiR};

end

for h←1. . . n−1do /*Rechnung*/

for i←1. . . nhdo

Vi,i+hSi+h−1j=i Vi,j∗Vj+1,i+h end

end

if S∈V1,n then /*Ausgabe*/

return w∈L(G) else

return w6∈L(G) end

dabei ist MN definiert durch

MN :={A∈V | ∃B ∈M,∃C∈N :ABCR}

(5)

Aufgabe 8.5

Gegeben Sei die folgende GrammatikG= ({S, A, B, C, D, E, F},{a, b}, R, S)mit R={S→AB|CD|ED,

Ab,

BCS|AE|a, Ca,

DAS|CF|b, EBB, FDD}

Entscheiden Sie mit dem Algorithmus von Cocke-Younger-Kasami, ob w=ba3b2L(G) ist.

Lösung:

b a a a b b

b {A,D}

a {S} {B,C}

a {B} {E} {B,C}

a {E} ∅ {E} {B,C}

b {B,S} {E,B} {B,S} {S} {A,D}

b {S,D} {B,S} {S} {D} {F} {A,D}

DaSV1,n, gilt wL(G).

Referenzen

ÄHNLICHE DOKUMENTE

– Heapsort kann nur verwendet werden, um Arrays aufsteigend zu sortieren.. • In welchen Schritten erfolgt

Dann können wir beim Lesen der zweiten Hälfte einfach entscheiden, ob diese mit dem Stackinhalt übereinstimmt.. In s 0 speichern wir also zunächst einen Teil des Eingabewortes auf

Viorica Sofronie-Stokkermans Universität Koblenz-Landau Fachbereich 4:

Entscheiden Sie durch Ankreuzen, ob die folgenden Aussagen richtig oder falsch sind. Seien L 1 und L 2 beliebige

Entscheiden Sie durch Ankreuzen, ob die folgenden Aussagen richtig oder falsch sind. Seien L 1 und L 2 beliebige

Viorica Sofronie-Stokkermans Universität Koblenz-Landau Fachbereich 4:

Wenn M in den nalen Zustand übergeht, geht M 0 in einen neuen Zustand s l über, in dem nur noch der Stack geleert werden kann... Grundlagen der theoretischen Informatik SS2019 Blatt 8

Beweisen oder widerlegen Sie, welche der folgenden Sprachen regul¨