AB2

Link zur Web Version:https://www.notion.so/AB2-53ebe76b45bf4af9b8f4d4c1d23d4946

Aufgabe 1

\sum Alphabet, nicht leere endliche Menge an Symbolen

ε\varepsilon Leerwort (equivalent zum Leer-String ≠ Leerzeichen≠ leere Menge )

ww Wort über Σ\Sigma , endliche Verkettung von Symbolen

Verkettung: ww=www \cdot w' = ww'

Wort Mengen

+\sum^+ alle möglichen Wörter ohneε\varepsilon

\sum^* alle möglichen Wörter mitε\varepsilon

ω\sum^{\omega} alle möglichen unendlichen Wörter = " ω\omega -Wörter"

LL- Formale Sprache über\sum^*

Sprache ist eine Teilmenge aller Wörter des Alphabets potenziert mit Kleene Stern: LΣL \subseteq \Sigma^{*}

Angabe

={d,e,n,o,s}\sum = \{\texttt{d,e,n,o,s}\}

Die formale Sprache über \sum^* :

LΣL \subseteq \Sigma^{*} mit allen möglichen Wörtern die mit sonne\texttt{sonne} oder sonde\texttt{sonde} enden.

a) Posix Extended Regular Expression

L=ˆ[denos]*(sonne|sonde)$\texttt{L = \^{} [denos]* (sonne | sonde) \$}

b) Nicht deterministischer Automat

Die Korrektheit der Modellierung ist unmittelbar einsichtig.

c) Determinisierung

Gegeben: NEA

A=Q,Σ,δ,q0,F \mathcal{A}=\left\langle Q, \Sigma, \delta, q_{0}, F\right\rangle (A steht für Automat)

δQ×(Σ{ε})×Q \delta \subseteq Q \times(\Sigma \cup\{\varepsilon\}) \times Q 

Gesucht: DEA

Aundefined=Qundefined,Σ,δundefined,q0undefined,Fundefined \widehat{\mathcal{A}}=\left\langle\widehat{Q}, \Sigma, \widehat{\delta}, \widehat{q_{0}}, \widehat{F}\right\rangle 

δundefined:Qundefined×ΣQundefined \widehat{\delta}: \widehat{Q} \times \Sigma \mapsto \widehat{Q} 

unter der Bedingung dass A^\mathcal{\hat{A}} und A\mathcal{A} äquivalent sind (dieselbe Sprache akzeptieren = sich gleich verhalten):

L(A)=L(Aundefined) \mathcal{L}(\mathcal{A})=\mathcal{L}(\widehat{\mathcal{A}}) 

Definition von DEAAundefined\mathcal{\widehat{A}}

Qundefined=2Q\widehat{Q}=2^{Q}(Potenzmenge vonQQ- Alle Teilmengen / Zustands-Wörter)

q0undefined={q0}\widehat{q_{0}}=\left\{q_{0}\right\}(Klammern stehen nicht für Menge)

Fundefined={{qundefinedQundefinedqundefinedF}{q0undefined} falls εL(A){qundefinedQundefinedqundefinedF} sonst  \widehat{F}=\left\{\begin{array}{ll}\{\widehat{q} \in \widehat{Q} \mid \widehat{q} \cap F \neq \emptyset\} \cup\left\{\widehat{q_{0}}\right\} & \text { falls } \varepsilon \in \mathcal{L}(\mathcal{A}) \\\{\widehat{q} \in \widehat{Q} \mid \widehat{q} \cap F \neq \emptyset\} & \text { sonst }\end{array}\right. 

Unsere finalen Zustände sind alle Zustands-Wörter / Mengen die bei einem Durchschnitt mit dem Zustand FFnicht leer sind → Die den BuchstabenFFenthalten.

Falls Leerwörter erlaubt sind muss der Anfangszustand auch enthalten sein.

qundefinedQ,s:\forall \widehat{q} \in Q, s\in \sum :

δundefined(qundefined,s)={qQqqundefined, sodass (q,s,q)δ} \widehat{\delta}(\widehat{q}, s)=\left\{q^{\prime} \in Q \mid \exists q \in \widehat{q}, \text { sodass }\left(q, s, q^{\prime}\right) \in \delta^{*}\right\} 

bzw

δundefined(qundefined,s)=qqundefined{qQ(q,s,q)δ}=qqundefinedδ(q,s) \widehat{\delta}(\widehat{q}, s)=\bigcup_{q \in \widehat{q}}\left\{q^{\prime} \in Q \mid\left(q, s, q^{\prime}\right) \in \delta^{*}\right\}=\bigcup_{q \in \widehat{q}} \delta^{*}(q, s) 

Die Übergangsfunktion:

Q×s{}Q \times s\in\sum \mapsto \{ \dots\} (Wort - keine Menge)

Bildet jeden Zustand mit Symbol auf einem Wort, dass alle Folgezustände enthält.


Dadurch, dass es keineε\varepsilongibt ist Tabelle vonδ\deltagleich mitδ\delta^*

Anfangszustand ist 11 , Endzustand ist 66 .

δdenos1{1}{1}{1}{1}{1,2}2{}{}{}{3}{}3{}{}{4}{}{}4{6}{}{5}{}{}5{}{7}{}{}{}6{}{7}{}{}{}7{7}{7}{7}{7}{7} \begin{array}{c|ccccc}\delta^{*} & \mathrm{d} & \mathrm{e} & \mathrm{n} & \mathrm{o} & \mathrm{s} \\\hline 1 & \{1\} & \{1\} & \{1\} & \{1\} & \{1,2\} \\2 & \{\} & \{\} & \{\} & \{3\} & \{\} \\3 & \{\} & \{\} & \{4\} & \{\} & \{\} \\4 & \{6\} & \{\} & \{5\} & \{\} & \{\} \\5 & \{\} & \{7\} & \{\} & \{\} & \{\} \\6 & \{\} & \{7\} & \{\} & \{\} & \{\} \\7 & \{7\} & \{7\} & \{7\} & \{7\} & \{7\}\end{array} 

Wir definieren eine δundefined\widehat{\delta}

Anfangszustand ist 11 , Endzustand ist jeder Block der mit 11 anfängt und mit 77 endet.

Wichtig: die Tabelleneinträge sind keine Mengen sondern Zustands-Wörter obwohl wir {} benutzen.

δundefineddenos{1}{1}{1}{1}{1}{1,2}{1,2}{1}{1}{1}{1,3}{1}{1,3}{1}{1}{1,4}{1}{1}{1,4}{1,6}{1}{1,5}{1}{1}{1,5}{1}{1,7}{1}{1}{1}{1,6}{1}{1,7}{1}{1}{1}{1,7}{1,7}{1,7}{1,7}{1,7}{1,7} \begin{array}{c|ccccc}\widehat{\delta} & \mathrm{d} & \mathrm{e} & \mathrm{n} & \mathrm{o} & \mathrm{s} \\\hline\{1\} & \{1\} & \{1\} & \{1\} & \{1\} & \{1,2\} \\\{1,2\} & \{1\} & \{1\} & \{1\} & \{1,3\} & \{1\} \\\{1,3\} & \{1\} & \{1\} & \{1,4\} & \{1\} & \{1\} \\\{1,4\} & \{1,6\} & \{1\} & \{1,5\} & \{1\} & \{1\} \\\{1,5\} & \{1\} & \{1,7\} & \{1\} & \{1\} & \{1\} \\\{1,6\} & \{1\} & \{1,7\} & \{1\} & \{1\} & \{1\} \\\{1,7\} & \{1,7\} & \{1,7\} & \{1,7\} & \{1,7\} & \{1,7\} \end{array} 

Fundefined={{1,7}}\widehat{F}=\{\{1, 7\}\}

Qundefined={{1},{1,2},{1,3},{1,4},{1,5},{1,6},{1,7}} \widehat{Q}=\{\{1\},\{1,2\},\{1,3\},\{1,4\},\{1,5\},\{1,6\},\{1,7\}\} 

Aufgabe 2

Algebraische Notation \rarr Endliche Automaten

Um Klammern auszulassen - Stärke der Bindung:

  1. Kleene Stern
  1. Verkettung
  1. Vereinigung

a)

abb+(ba)=(a(b)b)+((ba))ab^*b+(ba)^* = (a(b^*)b)+((ba)^*)

b)

(a+cb)cc=(a+c(b))c(c)(a +cb^*)cc^* = (a + c(b^*))c(c^*)

Aufgabe 3

Sind diese Gleichungen gültig?

Ja → Begründing

Nein → Gegenbeispiel

a)

L{}=L{ε}L \cdot\{\}=L \cup\{\varepsilon\}

Nein. denn das die Leere Menge ist das Nullelement bezüglich der Verkettung (L:L{}={})(\forall L: ~~L \cdot\{\}=\{\}) während die Vereinigung mit dem Leerwort die Gruppe um das Leerwort erweitert.

Gegenbeispiel:

{a,b,c}{ε}={a,b,c,ε}{}={a,b,c}{} \{a,b,c\}\cup \{\varepsilon\} = \{a,b,c,\varepsilon\} \not = \{\} = \{a,b,c\}\cdot \{\} 

b)

L{ε}=L{}L \cdot\{\varepsilon\}=L \cup\{\}

Ja! Denn {ε}\{\varepsilon\} ist das Einselement bezüglich der Verkettung (L:L{ε}=L)(\forall L: ~~L \cdot\{\varepsilon\}=L) und die leere Menge {}\{\} ebenso in bezug auf die Vereinigung (L:L{}=L)(\forall L: ~~L \cup\{\}=L) .

c)

{ε}L=L+\{\varepsilon\} \cdot L^{*}=L^{+}

Zuerst sei aus Unterbeispiel b) festgehalten, dass diese Gleichung gleichzusetzen ist mit:

L=L+L^{*}=L^{+}

Und der Definition zufolge:

L+=n1LnL^{+}=\bigcup_{n \geq 1} L^{n}(Alle Wörter der Länge n für n≥1)

L=n0Ln=L0L+={ε}L+ L^{*}=\bigcup_{n \geq 0} L^{n}=L^{0} \cup L^{+}=\{\varepsilon\} \cup L^{+} "Kleene Stern"

Also kann diese Gleichung nicht stimmen.

Gegenbeispiel (aus der Vorlesung):

L={a,42}L=\{\mathrm{a}, 42\}

L0={ε}L^{0}=\{\varepsilon\}

L+=n1Ln=L1L2L3={a,42, aa, a42,42a,4242, aaa, aa42,a42a, a4242 ,42aa,} \begin{aligned}L^{+} &=\bigcup_{n \geq 1} L^{n}=L^{1} \cup L^{2} \cup L^{3} \cup \cdots \\&=\{a, 42, \text { aa, } a 42,42 a, 4242, \text { aaa, } a a 42, a 42 a, \text { a4242 }, 42 a a, \ldots\}\end{aligned} 

L=n0Ln=L0L1L2L3={ε,a,42, aa, a42,42a,4242,aaa,aa42,a42a,a4242,42aa,} \begin{aligned}L^{*} &=\bigcup_{n \geq 0} L^{n}=L^{0} \cup L^{1} \cup L^{2} \cup L^{3} \cup \cdots \\&=\{\varepsilon, a, 42, \text { aa, } a 42,42 \mathrm{a}, 4242, \mathrm{aaa}, \mathrm{aa} 42, \mathrm{a} 42 \mathrm{a}, \mathrm{a} 4242,42 \mathrm{aa}, \ldots\}\end{aligned} 

d)

(LL)=LL(L \cdot L)^{*}=L^{*} \cdot L^{*}

Wir formen diese Gleichungen um:

(LL)=(L2)(L \cdot L)^{*}= (L^2)^*

LL=(L)2L^{*} \cdot L^{*} = (L^*)^2

Wir wissen weiters, dass:

L=n0LnL^{*}=\bigcup_{n \geq 0} L^{n}

Daraus folgt:

(L2)=n0(L2)n=n0L(2n)=L0L2L4L6 \textcolor{pink}{(L^2)^*} = \bigcup_{n \geq 0} (L^2)^{n} =\bigcup_{n \geq 0} L^{\textcolor{pink}{(2\cdot n)}} = L^{0} \cup L^{2} \cup L^{4} \cup L^{6} \cup \cdots 

(L)2=(n0Ln)(n0Ln)==(L0L1L2L3)(L0L1L2L3)==((L0L0)(L0L1)(L0L2)(L0L3)(L1L0)(L1L1)(L1L2)(L1L3))==(L0(n0Ln))(L1(n0Ln))(L2(n0Ln))=L \textcolor{pink}{(L^*)^2} = \bigg( \bigcup_{n \geq 0} L^{n}\bigg)\cdot \bigg(\bigcup_{n \geq 0} L^{n} \bigg) = \\ = \bigg(L^{0} \cup L^{1} \cup L^{2} \cup L^{3} \cup \cdots\bigg) \cdot \bigg( L^{0} \cup L^{1} \cup L^{2} \cup L^{3} \cup \cdots\bigg) = \\= \big((L^{0} \cdot L^{0}) \cup (L^{0} \cdot L^{1}) \cup (L^{0} \cdot L^{2}) \cup (L^{0} \cdot L^{3}) \cup \dots \cup (L^{1} \cdot L^{0}) \cup (L^{1} \cdot L^{1}) \cup (L^{1} \cdot L^{2}) \cup (L^{1} \cdot L^{3}) \cup \dots \big) =\\ = \big( L^0 \cdot ( \bigcup_{n \geq 0} L^{n}) \big) \cup \big( L^1 \cdot ( \bigcup_{n \geq 0} L^{n}) \big) \cup \big( L^2 \cdot ( \bigcup_{n \geq 0} L^{n}) \big) \cup \dots = \textcolor{pink}{L^*} 

Daraus wird offensichtlich:

(L2)(L)2=L(L^2)^*\sub(L^*)^2 = \textcolor{pink}{L^*}

Denn LL^* umfasst sowohl gerade als auch ungerade Potenzen.

Gegenbeispiel:

L={a,42}L=\{\mathrm{a}, 42\}

L2=LL{ε}=LL={aa,a42,42a,4242} L^{2} = L \cdot L \cdot \{\varepsilon\} = L \cdot L = \{aa, a42,42 a, 4242\} 

(L)2=L=n0Ln=L0L1L2L3={ε,a,42, aa, a42,42a,4242,aaa,aa42,a42a,a4242,42aa,} \begin{aligned}(L^*)^2 = \textcolor{pink}{L^*}&=\bigcup_{n \geq 0} L^{n}=L^{0} \cup L^{1} \cup L^{2} \cup L^{3} \cup \cdots \\&=\{\varepsilon, a, 42, \text { aa, } a 42,42 \mathrm{a}, 4242, \mathrm{aaa}, \mathrm{aa} 42, \mathrm{a} 42 \mathrm{a}, \mathrm{a} 4242,42 \mathrm{aa}, \ldots\}\end{aligned} 

(LL)=(L2)=n0L(2n)=L0L1L2L4L6L8 (L \cdot L)^{*}= (L^2)^* = \bigcup_{n \geq 0} L^{\textcolor{pink}{(2\cdot n)}}= L^{0} \cup L^{1} \cup L^{2} \cup L^{4} \cup L^{6} \cup L^{8} \cup \cdots 

Aufgabe 4

Gegeben:

A1=Q1,Σ,δ1,i1,F1 \mathcal{A}_{1}=\left\langle Q_{1}, \Sigma, \delta_{1}, i_{1}, F_{1}\right\rangle 

A2=Q2,Σ,δ2,i2,F2 \mathcal{A}_{2}=\left\langle Q_{2}, \Sigma, \delta_{2}, i_{2}, F_{2}\right\rangle 

Suche: Automat A\mathcal A mit der Eigenschaft:

L(A)=L(A1)L(A2) \mathcal{L}(\mathcal{A})=\mathcal{L}\left(\mathcal{A}_{1}\right) \cap \mathcal{L}\left(\mathcal{A}_{2}\right) 

Die Zustände und die jeweiligen Bezeichnungen dafür sind irrelevant, wichtig ist dass man für die gleichen Wörter zum Endzustand kommt.

Wir führen eine neue Notation ein:

Q1Q2Q_1Q_2 bedeutet dass A\mathcal A sich in A1\mathcal A_1 in Zustand Q1Q_1 und in A2\mathcal A_2 in Q2Q_2 befinden würde.


Definition:

A=Q,Σ,δ,q0,F \mathcal{A}=\left\langle Q, \Sigma, \delta, q_{0}, F\right\rangle 

Angenommen Q1={q1,0,q1,1,q1,2,,q1,n1}Q2={q2,0,q2,1,q2,2,,q2,n2} Q_1 = \{q_{1,0},q_{1,1},q_{1,2},\dots,q_{1,n_1}\} \quad Q_2 = \{q_{2,0},q_{2,1},q_{2,2},\dots,q_{2,n_2}\} 

Q={q1,jq1,kj=[0;n1],k=[0;n2]}trap Q = \{q_{1, j}q_{1,k} \mid j = [0;n_1], ~~k = [0;n_2] \} \cup \text{trap} 

(jede mögliche Kombination an Zuständen soll möglich sein + Falle)

q0=i1i2Qq_{0} = i_1i_2 \in Q

Angenommen F1={f1,0,f1,1,f1,2,,f1,n1}F2={f2,0,f2,1,f2,2,,f2,n2} F_1 = \{f_{1,0},f_{1,1},f_{1,2},\dots,f_{1,n_1}\} \quad F_2 = \{f_{2,0},f_{2,1},f_{2,2},\dots,f_{2,n_2}\} 

Dann F={f0,jf1,kj=[0;n1],k=[0;n2]}F = \{f_{0,j}f_{1,k} \mid j = [0;n_1], ~~k = [0;n_2]\}

Erweiterte Übergangsfunktion (auch für Leerwort)

Idee: Wenn es vom Eingabezustand und Eingabebuchstaben in beiden Automaten A1\mathcal A_1 und A2\mathcal A_2 einen Weg zum Ziel gibt, dann weise zum nächsten Zustand, ansonsten zur Falle.

δ:Q×ΣQ\delta^*: Q \times \Sigma^* \mapsto Q

q1Q1,q2Q2,sΣ,wΣ: \forall q_1 \in Q_1, q_2 \in Q_2, s \in \Sigma, w \in \Sigma^{*}: 

δ(q1q2,s)={(δ(s))(δ(s))if w:(δ1(q1,sw)F)(δ2(q2,sw)F)trap,otherwise \delta^*(q_1q_2,s) = \begin{cases} (\delta^*(s))\cdot(\delta^*(s))& \text{if } \exists w: \big(\delta^{*}_1\left(q_{1}, sw\right) \in F \big) \wedge \big(\delta^{*}_2\left(q_{2}, sw\right) \in F \big) \\ \text{trap}, & \text{otherwise} \end{cases} 

Akzeptierte / Generierte Sprache

Nur Wörter die von initial state zu einem final state führen.

L(A)={wΣδ(q0,w)F}=L(A1)L(A2) \mathcal{L}(\mathcal{A})=\left\{w \in \Sigma^{*} \mid \delta^{*}\left(q_{0}, w\right) \in F\right\} = \mathcal{L}\left(\mathcal{A}_{1}\right) \cap \mathcal{L}\left(\mathcal{A}_{2}\right) 

Aufgabe 5

Ziel: Automat \rarr endlicher Automat der dafür geeignet ist \rarr Regulärer Ausdruck

Regeln

  1. keine Kanten zum Anfangszustand
  1. nur ein Endzustand (ohne Kanten weg) der kein Eingangszustand ist
  1. Übergänge beschriftet mit regulären Ausdrücken

Problem: Unser Anfangszustand ist ein Endzustand und wir haben mehrere Endzustände.

Geeignetes Automat

Algorithmus

Für jeden Zustand qQ{i,f}q \in Q-\{i, f\} :

  1. Füge zwischen allen Nachbarn p,pp, p' von qq neue Übergänge hinzu mit regulären Ausdrücken beschriftet
  1. Entferne qq und alle Kanten von und nach qq aus dem Automaten.

Resultat

Zustand 00 :

Zustand 11 :

Zustand 22 :

Aufgabe 6

a) Algebraische Notation

gruppe=I+IIgruppe = I + II

kategorie=(1+2+3)(ε+(G+D))kategorie= (1 +2+3 )(\varepsilon+(G+D))

ex=(ε+Ex)ex= (\varepsilon+Ex)

großbuchstabe=(A+B+C++Z)großbuchstabe = (A+B+C+\dots+Z)

zu¨ndart=(a+b+c++z)((a+b+c++z)+großbuchstabe+(0+1+2+3++9)) zündart = (a+b+c+\dots+z)((a+b+c+\dots+z)+großbuchstabe+(0+1+2+3+\dots+9))^* 

exgr=IIgroßbuchstabeexgr=IIgroßbuchstabe

klasse=T(1+2++6)klasse = T(1+2+\dots+6)

schild=gruppekategorieexzu¨ndartexgrklasseschild= gruppe␣kategorie␣ex␣zündart␣exgr␣klasse

b) POSIX Notation

schild=ˆ(I|II)␣[1-3](G|D)?␣(Ex)?␣(a-z)[a-zA-Z0-9]*␣II[A-Z]␣T[1-6]$ \texttt{schild = \^{}(I|II)␣[1-3](G|D)?␣(Ex)?␣(a-z)[a-zA-Z0-9]*␣II[A-Z]␣T[1-6]\$} 

c) Syntaxdiagramm

schild:

Aufgabe 7

G=N,T,P,AG=\langle N, T, P, A\rangle

N={A,B,C,D}T={h,sch,schu,uhu,uu}P={Asch uhu A uhu B,B h uhu CC uhu DDschuDuuA} \begin{aligned}N=&\{A, B, C, D\} \\T=&\{\mathrm{h}, \mathrm{sch}, \mathrm{schu}, \mathrm{uhu}, \mathrm{uu}\} \\P=&\{A \rightarrow \operatorname{sch} \text { uhu } A \mid \text { uhu } \mid B,\\& B \rightarrow \text { h uhu } C \\& C \rightarrow \text { uhu } D \\&D \rightarrow \operatorname{schu} D|\mathrm{uu}| A\}\end{aligned} 

Von GrammatikGGgenerierte Sprache

L(G)={wTSw} \mathcal{L}(G)=\left\{w \in T^{*} \mid S \stackrel{*}{\Rightarrow} w\right\} 

Alle Wörter aus Terminal-Verknüpfungen bei denen ein Startsymbol nach Ableitung zu einem gültigen Wort führt.

Quasi Menge aller mit der Grammatik ableit-baren Wörter.

In diesem Fall muss jedes Wort entweder mit einem Terminal oder dem Nonterminal AA (Startsymbol) anfangen.

a)

huhuuhuschuuu\texttt{h uhu uhu schu uu }

APP(B)A \Rarr_P P(B)

Ph uhu P(C)\Rarr_P \text{h uhu } P(C)

Ph uhu uhu P(D)\Rarr_P \text{h uhu uhu } P(D)

Ph uhu uhu schu P(D)\Rarr_P \text{h uhu uhu schu } P(D)

Ph uhu uhu schu uu\Rarr_P \text{h uhu uhu schu uu}

b)

schuhuhuhuuhuschuschuschuhuuhu\texttt{sch uhu h uhu uhu schu schu sch uhu uhu }

APsch uhu P(A)A \Rarr_P \text{sch uhu } P(A)

Psch uhu P(B)\Rarr_P \text{sch uhu } P(B)

Psch uhu h uhu P(C)\Rarr_P \text{sch uhu h uhu } P(C)

Psch uhu h uhu uhu P(D)\Rarr_P \text{sch uhu h uhu uhu } P(D)

Psch uhu h uhu uhu schu P(D)\Rarr_P \text{sch uhu h uhu uhu schu } P(D)

Psch uhu h uhu uhu schu schu P(D)\Rarr_P \text{sch uhu h uhu uhu schu schu } P(D)

Psch uhu h uhu uhu schu schu P(A)\Rarr_P \text{sch uhu h uhu uhu schu schu } P(A)

Psch uhu h uhu uhu schu schu sch uhu P(A)\Rarr_P \text{sch uhu h uhu uhu schu schu sch uhu } P(A)

Psch uhu h uhu uhu schu schu sch uhu uhu\Rarr_P \text{sch uhu h uhu uhu schu schu sch uhu uhu}

c)

schuhuschuhuuhuuu\texttt{sch uhu sch uhu uhu uu}

APsch uhu P(A)A \Rarr_P \text{sch uhu } P(A)

Psch uhu sch uhu P(A)\Rarr_P \text{sch uhu sch uhu } P(A)

Psch uhu sch uhu uhu \Rarr_P \text{sch uhu sch uhu uhu }

Das erwünschte Wort lässt sich nicht erreichen weil wir zu früh ein Terminal erreichen.

sch\texttt{sch} verlangt nämlich die Variable AA aber von diesem kommen wir nicht zum restlichen Teil des Wortes.

Lösung:

schuhuschuuhuuhu\texttt{sch uhu schu uhu uhu}

d)

Das kürzeste Wort wäre ein Terminal mit der geringsten Buchstabenanzahl: h\text{h}

e)

Diese Sprache ist regulär / lässt sich mit einem endlichen Automaten beschreiben, weil sie nicht beliebig tief schachtelbar ist (wie bei einem wohlgeformten Klammerausdruck).

P={Asch uhu A uhu B,B h uhu CC uhu DDschuDuuA} P=\{ \\A \rightarrow \operatorname{sch} \text { uhu } A \mid \text { uhu } \mid B, \\B \rightarrow \text { h uhu } C \\C \rightarrow \text { uhu } D \\D \rightarrow \operatorname{schu} D~|~\mathrm{uu}~|~ A \\\} 

Ist äquivalent zur Grammatik:

P={Asch uhu A uhu  h uhu uhu D,DschuDuuA} P=\{ \\A \rightarrow \operatorname{sch} \text { uhu } A \mid \text { uhu } \mid \text { h uhu} \text { uhu } D, \\D \rightarrow \operatorname{schu } ~D~ | ~\mathrm{ uu }~| ~A \\\} 

Und lässt sich mit dem folgendem Automaten beschreiben:

Aufgabe 8

a) Als kontextfreie Grammatik (EBNF Notation)

Vorteile der BNF:

Keine Angabe / Differenzierung zwischen Terminalen und Nonterminalen sowie Anfangsterminalen mehr notwendig weil es sich von der Notation selbst ablesen lässt.

Man gibt nur noch die Produktionen an.

Vorteile der EBNF (verglichen zur BNF):

Leichtere Syntax ohne (<, >, |, ::=) indem zwischen Terminalen und Nonterminalen mit "" differenziert wird.

Abkürzungen aus regulären Ausdrücken übernommen wie (), [], {} .

buchstabe =  "A" | "B" | "C" | "D" | "E" | "F" | "G"
| "H" | "I" | "J" | "K" | "L" | "M" | "N"
| "O" | "P" | "Q" | "R" | "S" | "T" | "U"
| "V" | "W" | "X" | "Y" | "Z" | kleinbuchstabekleinbuchstabe = "a" | "b" | "c" | "d" | "e" | "f" | "g"
| "h" | "i" | j" | "k" | "l" | "m" | "n"
| "o" | "p" | q" | "r" | "s" | "t" | "u"
| "v" | "w" | x" | "y" | "z"ordner = buchstabe {buchstabe} "[" [liste] "]"liste = "," datei | "," ordner | listedatei = dateiname "." dateiendungdateiname = buchstabe [buchstabe] [buchstabe] [buchstabe]dateiendung = kleinbuchstabe kleinbuchstabe [kleinbuchstabe]

b) Als regulärer Ausdruck (algebraische Notation)

kleinbuchstabe=a+b+c++zkleinbuchstabe = a+b+c+\dots+z

buchstabe=(kleinbuchstabe+(A+B+C++Z))buchstabe = (kleinbuchstabe+ (A+B+C+\dots+Z))

ordner=buchstabe(buchstabe)[inhalt]ordner = buchstabe(buchstabe)^*[inhalt]

inhalt=ε+listeinhalt = \varepsilon + liste

liste=ε+,datei+,ordner+listeliste= \varepsilon+,datei+,ordner+liste

dateiname=buchstabe(buchstabe+ε)(buchstabe+ε)(buchstabe+ε) dateiname= buchstabe (buchstabe+\varepsilon) (buchstabe+\varepsilon) (buchstabe+\varepsilon) 

dateiendung=(kleinbuchstabe)(kleinbuchstabe)(kleinbuchstabe+ε) dateiendung = (kleinbuchstabe)(kleinbuchstabe)(kleinbuchstabe+\varepsilon) 

datei=dateiname.dateiendungdatei = dateiname.dateiendung

Aufgabe 9

a) Hakan kauft etwas.

P={Hakan /1, Kauft /2}\mathcal{P}=\{\text{Hakan } /1,\text { Kauft } / 2\}

Mögliche Modellierungen:

x(Hakan(x)y(Kauft(x,y))) \exists x~(\text{Hakan}(x) \supset \exists y~(\text{Kauft}(x,y))) 

x,y(Hakan(x)(Kauft(x,y))\exists x,y ~(\text{Hakan}(x) \wedge(\text{Kauft}(x,y))

b) Hakan kauft eine DVD.

P={Hakan /1, Kauft /2, CD /1} \mathcal{P}=\{\text{Hakan } /1,\text { Kauft } / 2, \text { CD } / 1\} 

Mögliche Modellierungen:

x(Hakan(x)(y(CD(y)Kauft(x,y)))) \exists x~(\text{Hakan}(x) \supset (\exists y~(\text{CD}(y) \wedge \text{Kauft}(x,y)))) 

x,y(Hakan(x)CD(y)Kauft(x,y)) \exists x,y ~(\text{Hakan}(x) \wedge\text{CD}(y) \wedge \text{Kauft}(x,y)) 

c) Anna kauft alles das, was Hakan kauft.

P={Hakan /1, Kauft /2, Anna /1} \mathcal{P}=\{\text{Hakan } /1,\text { Kauft } / 2, \text { Anna } / 1\} 

Mögliche Modellierung:

x,y(Hakan(x)Anna(y)z(Kauft(x,z)Kauft(y,z))) \exists x,y ~(\text{Hakan}(x) \wedge \text{Anna}(y) \supset \forall z ~(\text{Kauft}(x,z) \supset \text{Kauft}(y,z))) 

d) Jeder kauft etwas.

P={Mensch /1, Kauft /2}\mathcal{P}=\{\text{Mensch } /1,\text { Kauft } / 2\}

Mögliche Modellierung:

xy(Mensch(x)Kauft(x,y)) \forall x \exist y ~ (\text{Mensch}(x) \supset \text{Kauft}(x,y)) 

e) Jemand kauft alles.

P={Mensch /1, Kauft /2}\mathcal{P}=\{\text{Mensch } /1,\text { Kauft } / 2\}

Mögliche Modellierung:

xy(Mensch(x)Kauft(x,y)) \exists x \forall y ~ (\text{Mensch}(x) \supset \text{Kauft}(x,y)) 

Aufgabe 10

Universum, Prädikate, Funktionen

U={ Obi-Wan, Yoda, Luke, Anakin, DarthVader, DarthBane, DarthMaul,  DarthTyrannus, DarthSidious, Yaddle}  \mathcal{U}=\{\text { Obi-Wan, Yoda, Luke, Anakin, DarthVader, DarthBane, DarthMaul, }\\\text { DarthTyrannus, DarthSidious, Yaddle\} } 

P={Beka¨mpft/2,Jedi/1,Sith/1,Dunkel/1}\mathcal{P}=\{Bekämpft/2,~Jedi/1,~Sith/1,~Dunkel/1 \}

F={yoda/0, luke/0,darthvader/0}\mathcal{F}=\{\text {yoda}/ 0, ~\text{luke}/0, ~darthvader/0\}

a)

Es gibt dunkle Sith, die alle Jedi-Ritter bekämpfen.

Mögliche Modellierungen:

x((Dunkel(x)Sith(x))y(Jedi(y)Beka¨mpft(x,y))) \exists x~ ((Dunkel(x) \wedge Sith(x)) \supset \forall y ~(Jedi(y)\wedge Bekämpft(x,y))) 

xy(Dunkel(x)Sith(x)(Jedi(y)Beka¨mpft(x,y)) \exists x \forall y~ (Dunkel(x) \wedge Sith(x) \wedge (Jedi(y)\wedge Bekämpft(x,y)) 

b)

Kein Jedi-Ritter bekämft alle Sith.

Mögliche Modellierung:

¬(xy(Jedi(x)Sith(y)Beka¨mpft(x,y))) \neg (\exists x \forall y ~(Jedi(x) \wedge Sith(y) \wedge Bekämpft(x,y))) 

Interpretationen

I(Jedi)={ Obi-Wan, Yoda, Luke, DarthVader, Yaddle } I(J e d i)=\{\text { Obi-Wan, Yoda, Luke, DarthVader, Yaddle }\} 

I(Sith)={ DarthVader, DarthBane, DarthMaul, DarthTyrannus}  I( Sith )=\{\text { DarthVader, DarthBane, DarthMaul, DarthTyrannus\} } 

I(Dunkel)={ DarthBane, DarthVader, Anakin }I(Dunkel)=\{\text { DarthBane, DarthVader, Anakin }\}


I(Beka¨mpft)={( Obi-Wan, DarthTyrannus), (Obi-Wan, DarthBane), (Obi-Wan, DarthMaul),  (Yoda, DarthMaul), (Yoda, DarthTyrannus),  (DarthVader, Luke), (DarthVader, DarthVader),  (Anakin, Obi-Wan), (Anakin, Luke), (Anakin, DarthVader), (DarthBane, Obi-Wan), (DarthBane, Luke), (DarthBane, Yoda),  (DarthSidious, Yaddle)}  \begin{aligned}I(Bekämpft)=~&\{(\text { Obi-Wan, DarthTyrannus), (Obi-Wan, DarthBane), (Obi-Wan, DarthMaul), }\\& \text { (Yoda, DarthMaul), (Yoda, DarthTyrannus), } \\&\text { (DarthVader, Luke), (DarthVader, DarthVader), } \\& \text { (Anakin, Obi-Wan), (Anakin, Luke), (Anakin, DarthVader), } \\&\text { (DarthBane, Obi-Wan), (DarthBane, Luke), (DarthBane, Yoda), } \\& \text { (DarthSidious, Yaddle)\} } \end{aligned} I(luke)= Luke I(luke )=\text { Luke }

I(darthvader)= DarthVader I({ darthvader })=\text { DarthVader }

c)

x(Dunkel (x)Sith(x)( Beka¨mpft (x, luke )≢ Beka¨mpft (x, darthvader ))) \exists x(\text {Dunkel }(x) \wedge \operatorname{Sith}(x) \wedge(\text { Bekämpft }(x, \text { luke }) \not \equiv \text { Bekämpft }(x, \text { darthvader }))) 

Es gibt mindestens einen dunklen Sith der entweder Luke oder Darthvader bekämpft aber nicht beide gemeinsam.

Überprüfung dieser Aussage

  • Die dunklen Sith sind {DarthBane, DarthVader}
  • DarthBane bekämpft: {Obi-Wan, Luke, Yoda} → mit der Interpretation x=DarthBanex = \text{DarthBane} ist diese Formel gültig
  • DarthVader bekämpft: {Luke, DarthVader} → mit der Interpretation x=DarthVaderx = \text{DarthVader} ist diese Formel ungültig

Durch den Existenzquantor wird die Erfüllbarkeit der Formel mit einer beliebigen Belegung für xx vorausgesetzt, wodurch sie allgemein gültig ist.

Für alle I,σI, \sigma immer valI,σ(F)=1\textsf{val}_{I,\sigma}(F) = 1 .

d)

xy(Jedi(x)Sith(y)Beka¨mpft(x,y)) \forall x \exists y(\operatorname{Jedi} (x) \wedge \operatorname{Sith}(y) \wedge \operatorname{Bekämpft}(x, y)) 

Alle Jedis bekämpfen mindestens einen Sith.

Überprüfung dieser Aussage

  • Alle Jedis sind: {Obi-Wan, Yoda, Luke, DarthVader, Yaddle}
  • Alle Sith sind: {DarthVader, DarthBane, DarthMaul, DarthTyrannus}
  • Luke bekämpft niemanden

Dadurch ist diese Formel widerlegbar denn für mindestens eine I,σI, \sigma gilt valI,σ(F)=0\textsf{val}_{I,\sigma}(F) = 0

e)

x(Jedi(x)y(Sith(y)Beka¨mpft(y,x))) \forall x(\operatorname{Jedi}(x) \supset \exists y(\operatorname{Sith}(y) \wedge \operatorname{Bekämpft}(y, x))) 

Alle Jedis werden von mindestens einem Sith bekämpft.

Überprüfung dieser Aussage

  • Alle Jedis sind: {Obi-Wan, Yoda, Luke, DarthVader, Yaddle}
  • Alle Sith sind: {DarthVader, DarthBane, DarthMaul, DarthTyrannus}
  • Yaddle wird nur von DarthSidious bekämpft, welcher kein Sith ist

Dadurch ist diese Formel widerlegbar denn für mindestens eine I,σI, \sigma gilt valI,σ(F)=0\textsf{val}_{I,\sigma}(F) = 0

Aufgabe 11

Petri-Netz → endlicher Automat

Bezeichnungen der Transitionen {t1,t2,t3,t4}\{t_1, t_2, t_3, t_4\} = Alphabet Σ\Sigma

Belegung einer Stelle mit einem Token = Zustand QQ

A=Q,Σ,δ,q0,F \mathcal{A}=\left\langle Q, \Sigma, \delta, q_{0}, F\right\rangle finite automaton

Q={210,101,111,110,002,010,012,011,021,020,030}Q = \{210,101,111,110,002,010,012,011,021,020,030\}all possible states (finite)

Die Stelle der dreistelligen Ziffer ☐☐☐☐☐☐ repräsentiert den jeweiligen Knoten im Petri-Netz wobei die linkeste für s1s_1 und die rechteste für s3s_3 steht.

={t1,t2,t3,t4}\sum = \{t_1, t_2, t_3, t_4\}input alphabet

δ:Q×ΣQ\delta: Q \times \Sigma \mapsto Qtransition function

Diese lässt sich aus unterer Abbildung herleiten.

q0=210q_{0} = 210initial state

F={020,030}F = \{020,030\}final states

Aufgabe 12

a)

Brücke für Fahrzeuge

2 Spuren, für 2 Richtungen - in beiden Richtungen befahrbar

Fahrzeugpositionen: {vorBru¨cke,aufBru¨cke,nachBru¨cke}\{vorBrücke, aufBrücke, nachBrücke\}

Anfangszustand: Alle Fahrzeuge möchten Brücke überqueren

Eine Seite 4 Fahrzeuge

Andere Seite 2 Fahrzeuge

Brücke selbst leer


Wir haben insgesamt 6 Stellen: {vorOben,aufOben,nachOben,vorUnten,aufUnten,nachUnten} \{\ vorOben,~aufOben,~nachOben,~vorUnten,~aufUnten,~nachUnten\} 

Ein Fahrzeug kann vor, auf und nach der Brücke sein und je in der linken oder rechten Spur.

Zur Einfachheit habe ich meine Spuren statt Links / Rechts in meinem Modell oben / unten genannt.

b)

Nur 3 Fahrzeuge gleichzeitig auf der Brücke erlaubt, unabhängig von Fahrtrichtung.

Das entspricht einem Buffer mit 3 Tokens.

c) d)

Wenn eine Reperatur stattfindet:

  • nur eine Spur befahrbar
  • Ampeln installiert, abwechselnd grün (wenn Brücke komplett leer)
  • Fahrzeuge fahren nur wenn: Grün, max 3 Fahrzeuge auf Brücke

Hinweis: diesmal habe ich die Stellen der Fahrzeug-Spuren im Modell vertauscht damit das Modellieren einfacher ist.

Es kommt auch zu keinen Kollisionen, dadurch, dass die Buffer der einzelnen Seiten unabhängig voneinander sind und eine Seite komplett leer sein muss bevor die Ampel schaltet.