10.11.2014 Aufrufe

Lösungen 6. Übung Theoretische Informatik - Fachbereich Informatik

Lösungen 6. Übung Theoretische Informatik - Fachbereich Informatik

Lösungen 6. Übung Theoretische Informatik - Fachbereich Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Hochschule<br />

Bonn-Rhein-Sieg<br />

University<br />

of Applied Sciences<br />

Grantham-Allee 20<br />

53757 Sankt Augustin<br />

Director<br />

b-it Applied Science Institute<br />

<strong>Fachbereich</strong> <strong>Informatik</strong><br />

Prof. Dr. Kurt-Ulrich Witt<br />

Mathematische und<br />

theoretische Grundlagen der <strong>Informatik</strong><br />

kurt-ulrich.witt@h-brs.de<br />

Aufgabe 1<br />

<strong>Theoretische</strong> <strong>Informatik</strong> – Übung 6 – WS 13/14<br />

– Musterlösungen –<br />

Gegeben sei die Grammatik G = ({a, b}, {S, A, B, C, D, E}, P, S) mit P = { S → ε, S → aA,<br />

S → bB, A → aS, A → bC, B → aC, B → bD, C → aB, C → bE, D → aE, D → bS, E → aD,<br />

E → bA}<br />

a) Leiten Sie drei Wörter mit jeweils mindestens fünf Buchstaben ab.<br />

b) Beschreiben Sie L(G) informal.<br />

c) Geben Sie eine formale Beschreibung von L(G) an.<br />

d) Geben Sie mithilfe des in der Vorlesung vorgestellten Verfahrens einen zu G äquivalenten endlichen<br />

Automaten A G an.<br />

Musterlösung:<br />

a) S ⇒ aA ⇒ abC ⇒ abbE ⇒ abbaD ⇒ abbabS ⇒ abbab<br />

S ⇒ aA ⇒ aaS ⇒ aaaA ⇒ aaabC ⇒ aaabbE ⇒ aaabbbA ⇒ aaabbbaS ⇒ aaabbba<br />

S ⇒ bB ⇒ baC ⇒ babE ⇒ babaD ⇒ bababS ⇒ bababaA ⇒ bababaaS ⇒ bababaa<br />

b) L(G) enthält alle Wörter über {a, b}, die eine gerade Anzahl a’s enthält und deren Anzahl b’s ein<br />

Vielfaches von 3 ist.<br />

c) L(G) = { w ∈ {a, b} | |w| a = 2k, |w| b = 3l, k, l ∈ N 0 }<br />

d) A = ({ a, b }, { S, A, B, C, D, E }, δ, S, {S}) mit<br />

δ S A B C D E<br />

a A S C B E D<br />

b B C B E S A<br />

Aufgabe 2<br />

Es sei α = ((a | b) ◦ (c ◦ (a | b)) ∗ ) ∈ REXP {a,b,c} . Geben Sie eine rechtslineare Grammatik G an mit<br />

L(G) = L(α).<br />

Musterlösung:<br />

Für G = ({ a, b, c }, { S, A, B }, P, S) mit P = { S → aA | bB, A → cS | ε, B → cS | ε} gilt<br />

L(G) = L(α).<br />

1


Aufgabe 3<br />

Es sei G = ({1, 2, 3} , {D, E, Z} , P, E) mit P = { E → 1Z | 2D, Z → 3E | ε, D → 3E | ε}.<br />

Transformieren Sie mit dem in der Vorlesung vorgestellten Verfahren G in eine äquivalente Grammatik<br />

G ′ mit nur einer ε-Regel!<br />

Musterlösung:<br />

Wir führen zunächst ein neues Nichtterminal T und die neue, einzige Terminierungsregel T → ε ein.<br />

Für die Regeln E → 1Z und Z → ε führen wir die Regel E → 1T ein und eliminieren die Regel<br />

Z → ε. Analog führen wir für die Regeln E → 2D und D → ε die Regel E → 2T ein<br />

und eliminieren die Regel D → ε. Wir erhalten G ′ = ( {1, 2, 3} , {D, E, T, Z} , P, E ) mit P =<br />

{E → 1Z | 2D | 1T | 2T, Z → 3E, D → 3E, T → ε}.<br />

Aufgabe 4<br />

Transformieren Sie die rechtslineare Grammatik G = ({a, b} , {A, B, C, D} , P, A) mit<br />

P = {A → aB | bC | aD | bD | ε, B → cA, C → cA, D → ε}<br />

mit dem in der Vorlesung vorgestellten Verfahren in eine äquivalente linkslineare Grammatik G ′ !<br />

Musterlösung:<br />

Wir erhalten die Grammatik G ′ = ({a, b} , {A, B, C, D} , P ′ , D) mit<br />

P ′ {D → Aa | Ab | ε, A → Bc | Cc | ε, B → Aa, C → Ab}<br />

Aufgabe 5<br />

Sei Σ = { 0, 1 }. Für die Sprache L ⊆ Σ ∗ sei L ′ = { xy | x1y ∈ L }. L ′ entsteht also aus L, indem in<br />

jedem Wort in L genau eine 1 weggelassen wird. Wörter aus L, die nur aus Nullen bestehen, gehören<br />

nicht zu L ′ . Für Wörter aus L, die Einsen enthalten, wird immer genau nur eine Eins weggelassen, der<br />

Rest des Wortes bleibt erhalten, allerdings muss dieses für jede Eins durchgeführt werden. Ist also z.B.<br />

101 ∈ L, dann ist 01, 10 ∈ L ′ ; ist 1101 ∈ L, dann ist 101, 110 ∈ L ′ ; ist x = 1 n für ein n ∈ N, dann ist<br />

x ′ = 1 n−1 ∈ L ′ .<br />

Beweisen Sie: Für jede reguläre Sprache L ⊆ Σ ∗ ist auch die Sprache L ′ regulär.<br />

Musterlösung:<br />

Es sei A = ({0, 1}, S, δ, s 0 , F ) ein endlicher Automat, der L akzeptiert: L = L(A). Wir konstruieren<br />

aus A einen endlichen ε-Automaten A ′ mit L ′ = L(A ′ ). Die Zustände von A werden mit einer Markierung<br />

versehen: 0 steht dafür, dass noch keine 1 – durch einen ε-Übergang – überlesen wurde, und 1 steht<br />

dafür, dass bereits eine 1 überlesen wurde. Vor dem Überlesen und nach dem Überlesen der 1 verhält A ′<br />

sich genau wie A. Die Auswahl der zu überlesenden 1 geschieht nicht deterministisch.<br />

A ′ = ({0, 1}, S × {0, 1}, δ ′ , (s 0 , 0), {(s, 1) | s ∈ F })<br />

δ ′ = {((s, 0), 0, (s ′ , 0)) | (s, 0, s ′ ) ∈ δ} 0 verarbeiten wie A<br />

∪ {((s, 0), 1, (s ′ , 0)) | (s, 1, s ′ ) ∈ δ} 1 verarbeiten wie A<br />

∪ {((s, 0), ε, (s ′ , 1)) | (s, 1, s ′ ) ∈ δ} oder 1 überlesen<br />

∪ {((s, 1), 0, (s ′ , 1)) | (s, 0, s ′ ) ∈ δ} 0 verarbeiten nach überlesener 1<br />

∪ {((s, 1), 1, (s ′ , 1)) | (s, 1, s ′ ) ∈ δ} 1 verarbeiten nach überlesener 1<br />

2

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!