Skip to content

Commit

Permalink
Merge pull request #1 from mathiasvh/master
Browse files Browse the repository at this point in the history
Taal-, syntax en inhoudsfouten verbeterd
  • Loading branch information
FHannes authored Jan 10, 2017
2 parents 295f2ac + a9b1e65 commit 46819d2
Show file tree
Hide file tree
Showing 12 changed files with 30 additions and 25 deletions.
2 changes: 1 addition & 1 deletion bewijzen/cfgpda.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
We kunnen aantonen dat er een \'e\'en-\'e\'enduidig verband is tussen de afleiding van een string $s$ uit een CFG en de accepterende uitvoeren van de geconstrueerde PDA.
We kunnen aantonen dat er een \'e\'en-\'e\'enduidig verband is tussen de afleiding van een string $s$ uit een CFG en de accepterende uitvoering van de geconstrueerde PDA.
\begin{itemize}
\item De uitvoering begint steeds door het startsymbool op de stapel te plaatsen. Voor het startsymbool wordt ook $\$$ op de stapel geplaatst, waardoor de PDA pas in de accepterende toestand kan komen wanneer de CFG volledig van de stapel verwijderd is.
\item Net zoals de CFG kan de PDA een variabele die op de stapel staat, steeds vervangen door een bijhorende rechterzijde van de CFG, die op de stapel wordt geplaatst. Daardoor kan het afleiden door een productie van de CFG exact ge\"emuleerd worden.
Expand Down
8 changes: 5 additions & 3 deletions bewijzen/dfamin_minstates.tex
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
Stel $DFA_1$ ($Q_1$, $\Sigma$, $\delta_1$, $q_s$, $F_1$) met $Q_1 = \{q_s,q_1,q_2,...,q_n\}$ is een machine zonder onbereikbare toestanden waarvan elk paar toestanden f-verschillend zijn. Stel dat $DFA_2$ ($Q_2$, $\Sigma$, $\delta_2$, $q_s$, $F_2$) een DFA is met minder toestanden dan $DFA_1$.
Stel $DFA_1$ ($Q_1$, $\Sigma$, $\delta_1$, $q_s$, $F_1$) met $Q_1 = \{q_s,q_1,q_2,...,q_n\}$ is een machine zonder onbereikbare toestanden waarvan elk paar toestanden f-verschillend zijn. Stel dat $DFA_2$ ($Q_2$, $\Sigma$, $\delta_2$, $p_s$, $F_2$) een DFA is met minder toestanden dan $DFA_1$.

\begin{itemize}
\item Elke toestand in $DFA_1$ is bereikbaar, dus er bestaan strings $s_i$ met $i=1...n$ zodanig dat $\delta^*_1(q_s,s_i)=q_i$.
\item $DFA_2$ heeft minder toestanden dan $DFA_1$, dus er is een $i$ en $j$ met $i \neq j$, zodanig dat er strings $s_i$ en $s_j$ zijn waarvoor $DFA_2$ meerdere keren in dezelfde toestand komen, dus $\delta^*_2(q_s,s_i)=\delta^*_2(q_s,s_j)$.
\item $DFA_2$ heeft minder toestanden dan $DFA_1$, dus er is een $i$ en $j$ met $i \neq j$, zodanig dat er strings $s_i$ en $s_j$ zijn waarvoor $DFA_2$ meerdere keren in dezelfde toestand komen, dus $\delta^*_2(p_s,s_i)=\delta^*_2(p_s,s_j)$.
\item $q_i$ en $q_j$ zijn f-verschillend, dus er bestaat een string $v$ zodanig dat $\delta^*_1(q_i,v) \in F_1 \en \delta^*_1(q_j,v) \notin F_1$ of omgekeerd. Bij gevolg geldt ook $\delta^*_1(q_s,s_iv) \in F_1 \en \delta^*_1(q_s,q_jv) \notin F_1$ of omgekeerd. We zeggen dat $DFA_1$ van $s_iv$ en $s_jv$ just \'e\'en string accepteert.
\end{itemize}

We kunnen nu aantonen dat $\delta^*_2(q_s,s_iv) = \delta^*_2(\delta^*_2(q_i),v) = \delta^*_2(\delta^*_2(q_j),v) = \delta^*_2(q_s,s_jv)$, wat betekent dat $DFA_1$ en $DFA_2$ niet dezelfde taal kunnen bepalen.
We kunnen nu aantonen dat $\delta^*_2(p_s,s_iv) = \delta^*_2(\delta^*_2(p_s,s_i),v) = \delta^*_2(\delta^*_2(p_s,s_j),v) = \delta^*_2(p_s,s_jv)$, hetgeen betekent dat $DFA_2$ ofwel beide strings $s_iv$ en $s_jv$ accepteert, ofwel beide verwerpt.

Dus $DFA_1$ en $DFA_2$ kunnen niet dezelfde taal bepalen.
6 changes: 4 additions & 2 deletions bewijzen/ecfg.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
\item Herhaal de transformatie totdat:
\begin{itemize}
\item Het startsymbool verwijderd is, waarbij de invoer verworpen wordt, omdat dat betekent dat het mogelijk is een string af te leiden in het startsymbool.
\item Er geen regels zijn van de benodigde vorm, waarbij de invoer verworpen wordt, omdat de taal dan leeg is. (Het is dus niet mogelijk om een terminal te bereiken vanuit het startsymbool.)
\item Er geen regels zijn van de benodigde vorm, waarbij de invoer aanvaard wordt, omdat de taal dan leeg is. (Het is dus niet mogelijk om een terminal te bereiken vanuit het startsymbool.)
\end{itemize}
\end{itemize}
Door deze transformatie uit te voeren kunnen we voor elke CFG bepalen of die de lege taal bepaalt of niet en dus is $E_{CFG}$ beslisbaar.
Door deze transformatie uit te voeren kunnen we voor elke CFG bepalen of die de lege taal bepaalt of niet en dus is $E_{CFG}$ beslisbaar.

Merk op dat de grammatica getransformeerd wordt naar een niet-equivalente grammatica.
2 changes: 1 addition & 1 deletion bewijzen/etm.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Stel dat $\etm$ beslisbaar is en $E$ is een beslisser voor $\etm$, dan kunnen we een beslisser $B$ voor $\atm$ construeren. Voor een gegeven invoer $\langle M,s \rangle$ construeren we een machine $M_s$ waarvoor geldt
\begin{itemize}
\item Gegeven een invoer $w$, als $w \neq s$, verwerpt $M_s$ de string $w$.
\item Anders laat $M_s$ $M$ lopen op $w$ en geeft het resultaat terug.
\item Anders laat $M_s$ $M$ lopen op $w$ en geeft hetzelfde resultaat terug.
\end{itemize}
$M_s$ is een machine die enkel accept teruggeeft indien $M$ $s$ accepteert en anders reject. We laten $E$ lopen op $\langle M_s \rangle$:
\begin{itemize}
Expand Down
2 changes: 1 addition & 1 deletion bewijzen/recogenum.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
We construeren
\begin{itemize}
\item een Turingmachine $TM_{gen}$ die gegeven een getal $n$, de $n$ eerste strings van $\sstar$ op de band zet.
\item een Turingmachine $TM_n$ die gegeven een getal $N$, op elk van de $n$ strings, $n$ stappen van $TM$ uitvoert. Als $TM$ daarbij een string accepteert, dan wordt die weggeschreven op de outputband van $Enu$.
\item een Turingmachine $TM_n$ die op elk van die $n$ strings, $n$ stappen van $TM$ uitvoert. Als $TM$ daarbij een string accepteert, dan wordt die weggeschreven op de outputband van $Enu$.
\item een Turingmachine $TM_{driver}$ die opeenvolgende getallen $n$ genereert en vervolgens $TM_{gen}$ en $TM_n$ oproept.
\end{itemize}
2 changes: 1 addition & 1 deletion bewijzen/rice.tex
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@

We zeggen dat $\atm$ reduceerbaar is naar $Pos_P$.

Als $M_\emptyset$ de eigenschap $P$ wel heeft, kunnen we het bewijs uitvoeren voor $\overline{P}$. Omdat we dan bewijzen dat $Pos_{\overline{P}} = Neg_P$ onbeslisbaar is, weten we dat ook $Pos_P = \overline{Neg_P}$ onbeslisbaar is.
Als $M_\emptyset$ de eigenschap $P$ wel heeft, kunnen we het bewijs uitvoeren voor $\overline{P}$. Omdat we dan bewijzen dat $Pos_{\overline{P}} = Neg_P$ onbeslisbaar is, weten we dat ook $Pos_P = \overline{Neg_P}$ onbeslisbaar is.
2 changes: 1 addition & 1 deletion definities/cr2.tex
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Church-Rosser II verwijst naar de tweede stelling van Church en Rosser. Die stelling zegt dat indien $E \stackrel{*}{\longleftrightarrow} N$ bestaat met $N$ in normaalvorm, dat er een rij reducties moet bestaan in normaal orde van $E$ naar $N$.
Church-Rosser II verwijst naar de tweede stelling van Church en Rosser. Die stelling zegt dat indien $E \stackrel{*}{\longleftrightarrow} N$ bestaat met $N$ in normaalvorm, dat er een reductierij moet bestaan in normaalorde van $E$ naar $N$.
22 changes: 11 additions & 11 deletions examenvragen.tex
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ \subsubsection{Vraag 4 - $MN(L)$-relaties}

\input{bewijzen/mnlregulier}

\textit{Bestaat er voor een taal $L$ soms meer dan één $MN(L)$-relatie?}
\textit{Bestaat er voor een taal $L$ soms meer dan \'e\'en $MN(L)$-relatie?}

Een taal $L$ waarvoor een $MN(L)$-relatie bestaat moet regulier zijn. Een mogelijke $MN(L)$-relatie voor een reguliere taal is $\sim_{DFA}$. Die equivalentierelatie wordt bepaald door alle strings die vanuit de begintoestand van de $DFA$ een willekeurige toestand bereiken te groeperen per toestand.
\begin{equation*}
Expand All @@ -269,7 +269,7 @@ \subsubsection{Vraag 4 (Bijvraag 1)}

\textit{Is er een verband tussen de kleinste DFA voor een taal en de kortste pomplengte?}

Ja, de kortste pomplengte moet steeds \'e\'en groter zijn dan het aantal toestanden in de minimale DFA. Indien dat niet het geval zou zijn, is het pompend lemma niet meer geldig voor strings die een lengte hebben gelijk aan het aantal toestanden (of voor een lengte kleiner dan dat). Intu\"itief voelen we dit aan omdat in de verdeling $s=xyz$, $y$ uit minstens \'e\'en symbool moet bestaan, en dat $xz$ dan ook tot de taal moet behoren. Maar als de string gelijk is aan het aantal toestanden, dan kunnen we niet met zekerheid zeggen dat een deel van de string herhaalt kan worden, door middel van een lus in de DFA.
Ja, de kortste pomplengte moet steeds \'e\'en groter zijn dan het aantal toestanden in de minimale DFA. Indien dat niet het geval zou zijn, is het pompend lemma niet meer geldig voor strings die een lengte hebben gelijk aan het aantal toestanden (of voor een lengte kleiner dan dat). Intu\"itief voelen we dit aan omdat in de verdeling $s=xyz$, $y$ uit minstens \'e\'en symbool moet bestaan, en dat $xz$ dan ook tot de taal moet behoren. Maar als de lengte van de string gelijk is aan het aantal toestanden, dan kunnen we niet met zekerheid zeggen dat een deel van de string herhaald kan worden, door middel van een lus in de DFA.

Een voorbeeld is de volgende minimale DFA die $L = \{abcd\}$ over $\Sigma = \{a,b,c,d\}$ bepaalt:
\begin{nfa}
Expand Down Expand Up @@ -337,8 +337,8 @@ \subsubsection{Vraag 1}
\begin{itemize}
\item Type-0: De klasse van de herkenbare talen heeft een onbeperkte grammatica, dat wil zeggen er geen restricties zijn op de grammaticale regels. Elke taal die door een Turingmachine herkent wordt zit in deze klasse.
\item Type-1: De klasse van de contextgevoelige talen heeft een contextgevoelige grammatica, daarbij mogen de productieregels in tegenstelling tot een CFG zowel aan de linker- als rechterzijde een combinatie van variabelen en terminals bevatten. Elke taal die door een lineair begrensde automaat (Turingmachine) bepaalt wordt zit in deze klasse. Een LBA kan een beslissingsprobleem oplossen in $O(n)$-ruimte.
\item Type-2: De klasse van de contextvrije talen heeft een contextvrije grammatica (CFG). Elke taal die door een push-down automaat bepaalt wordt zit in deze klasse. Het parsen van een string uit een taal $L_{CFG}$ kan in $O(n^2)$-tijd.
\item Type-3: De klasse van de reguliere talen heeft een reguliere grammatica. Elke taal die door een eindige toestandsautomaat bepaalt wordt zit in deze klasse. Een string uit een taal $L_{RE}$ kan herkend worden in $O(n)$-tijd.
\item Type-2: De klasse van de contextvrije talen heeft een contextvrije grammatica (CFG). Elke taal die door een push-down automaat bepaald wordt zit in deze klasse. Het parsen van een string uit een taal $L_{CFG}$ kan in $O(n^2)$-tijd.
\item Type-3: De klasse van de reguliere talen heeft een reguliere grammatica. Elke taal die door een eindige toestandsautomaat bepaald wordt zit in deze klasse. Een string uit een taal $L_{RE}$ kan herkend worden in $O(n)$-tijd.
\end{itemize}
\begin{center}
\begin{tikzpicture}
Expand Down Expand Up @@ -473,11 +473,11 @@ \subsubsection{Vraag 5 (Bijvraag 1)}

\begin{itemize}
\item De machine vraagt aan het orakel of $M$ $s$ accepteert. Indien het antwoord ``ja'' is, dan accepteert $\oatm$ de invoer.
\item Anders construeren we een machine $M_i$ die gelijk is een $M$ met de uitzondering dat de accepterende en verwerpende toestanden gewisseld zijn. De machine vraagt aan het orakel of $M_i$ $s$ accepteert. Indien het antwoord ``ja'' is, dan accepteert $\oatm$ de invoer.
\item Anders construeren we een machine $M_i$ die gelijk is aan $M$ met de uitzondering dat de accepterende en verwerpende toestanden gewisseld zijn. De machine vraagt aan het orakel of $M_i$ $s$ accepteert. Indien het antwoord ``ja'' is, dan accepteert $\oatm$ de invoer.
\item Anders verwerpt $\oatm$ de invoer, omdat we dan weten dat $M$ niet zal stoppen.
\end{itemize}

We kunnen zeggen dat $\htm \leq_T \atm$. Bovendien, omdat we weten dat $\atm \leq_m \htm$ en dus ook $\atm \leq_T \htm$, zeggen we dat $\atm \equiv_T \htm$ ($\atm$ en $\htm$ zijn Turing-equivalent).
We kunnen zeggen dat $\htm \leq_T \atm$. Bovendien, omdat we weten dat $\atm \leq_m \htm$ en dus ook $\atm \leq_T \htm$, zeggen we dat $\atm \equiv_T \htm$ ($\atm$ en $\htm$ zijn Turing-equivalent)\footnote{\url{https://en.wikipedia.org/wiki/Turing_degree\#Turing_equivalence}}.

\subsubsection{Vraag 6 - Reduceerbaarheid}

Expand All @@ -491,7 +491,7 @@ \subsubsection{Vraag 6 - Reduceerbaarheid}

Indien een taal $B$ beslisbaar is en een taal $A$ Turingreduceerbaar is naar $B$, dan moet $A$ ook beslisbaar zijn.

\paragraph{Verband.} Turingreduceerbaarheid is fijner dan reduceerbaarheid. Elk probleem $A$ dat reduceerbaar is naar $B$ moet ook Turingreduceerbaar zijn naar $B$.
\paragraph{Verband.} Reduceerbaarheid (many-one) is fijner dan Turingreduceerbaarheid. Elk probleem $A$ dat reduceerbaar is naar $B$ moet ook Turingreduceerbaar zijn naar $B$.

\subsection{Lambda calculus}

Expand Down Expand Up @@ -528,9 +528,9 @@ \subsubsection{Vraag 1 (Bijvraag 2)}
Er zijn drie conversieregels, namelijk:

\begin{itemize}
\item $\alpha$-conversie: Het hernoemen van variabelen.
\item $\beta$-conversie: Functie evaluatie.
\item $\eta$-conversie: Equivalentie onder redundante $\lambda$-abstracties.
\item $\alpha$-conversie: Hernoemen van variabelen,
\item $\beta$-conversie: Functie evaluatie,
\item $\eta$-conversie: Eliminatie van redundante $\lambda$-abstracties.
\end{itemize}

Een vierde conversieregel, $\delta$-conversie wordt meestal niet vermeld. Dat is de evaluatie van ingebouwde functies.
Expand All @@ -539,7 +539,7 @@ \subsubsection{Vraag 1 (Bijvraag 3)}

\textit{Laat daarna zien hoe je in zuivere lambda-calculus recursieve functies kan defini\"eren. Doe dat m.b.v. een voorbeeld recursieve functie verschillend van FAC uit de cursus.}

Het is mogelijk om in $\lambda$-calculus een recursieve functie gebruik te maken van een vastpuntcombinator. Dat is een zelf-replicerende expressie. De meest voorkomende vastpuntcombinator werd voorgesteld door Haskell Curry:
Het is mogelijk om in $\lambda$-calculus voor een recursieve functie gebruik te maken van een vastpuntcombinator. Dat is een zelf-replicerende expressie. De meest voorkomende vastpuntcombinator werd voorgesteld door Haskell Curry:
\begin{equation*}
Y\ F = F\ (Y\ F) \text{ met } Y = \lambda f.\ (\lambda x.\ f\ (x\ x))\ (\lambda x.\ f\ (x\ x))
\end{equation*}
Expand Down
1 change: 1 addition & 0 deletions samenvatting.tex
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ \subsection{Griekse letters}
Beta & $\beta$ & \\
Delta & $\delta$ & $\Delta$ \\
Epsilon & $\varepsilon, \epsilon$ & \\
Eta & $\eta$ & \\
Gamma & $\gamma$ & $\Gamma$ \\
Mu & $\mu$ & \\
Omega & $\omega$ & $\Omega$ \\
Expand Down
4 changes: 2 additions & 2 deletions voorbeelden/lambdarecurse.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
H = \lambda f,a,b.\ (IF\ (=\ b\ 0)\ a\ (f\ (INC\ a)\ (DEC\ b))) \text{ met } PLUS = H\ PLUS
\end{equation*}

$H$ is het vastpunt voor $PLUS$, nu kunnen de defini\"erende vergelijking $PLUS = H\ PLUS$ vervangen met de vastpuntcombinator, zodat we $PLUS = Y H$ bekomen.
$H$ is het vastpunt voor $PLUS$, nu kunnen we de defini\"erende vergelijking $PLUS = H\ PLUS$ vervangen met de vastpuntcombinator, zodat we $PLUS = Y H$ bekomen.

We kunnen nu een bewerking met deze functie uitvoeren:

Expand All @@ -14,7 +14,7 @@
Y\ H\ 4\ 1 = \\
H\ (Y\ H)\ 4\ 1 = \\
\lambda f,a,b.\ (IF\ (=\ b\ 0)\ a\ (f\ (INC\ a)\ (DEC\ b)))\ (Y\ H)\ 4\ 1 \longrightarrow \\
\lambda a,b.\ (IF\ (=\ b\ 0)\ a\ ((Y\ PLUS)\ (INC\ a)\ (DEC\ b)))\ 4\ 1 \stackrel{*}{\longrightarrow} \\
\lambda a,b.\ (IF\ (=\ b\ 0)\ a\ ((Y\ H)\ (INC\ a)\ (DEC\ b)))\ 4\ 1 \stackrel{*}{\longrightarrow} \\
(IF\ (=\ 1\ 0)\ 4\ ((Y\ H)\ (INC\ 4)\ (DEC\ 1))) \longrightarrow \\
(IF\ FALSE\ 4\ ((Y\ H)\ (INC\ 4)\ (DEC\ 1))) \longrightarrow \\
(Y\ H)\ (INC\ 4)\ (DEC\ 1) \stackrel{*}{\longrightarrow} \\
Expand Down
2 changes: 1 addition & 1 deletion voorbeelden/plcfg.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Stel dat er voor een taal $L = \{a^nb^nc^n|n\geq\}$ over $\Sigma = \{a,b,c\}$ een pomplengte $p$ bestaat en stel dat we voor een string $s = a^pb^pc^p$ met $|s| \geq p$ een opdeling $s=uvxyz$ maken met $|vy| > 0$. Dan zijn er slechts twee mogelijkheden voor die opdeling:
Stel dat er voor een taal $L = \{a^nb^nc^n|n\geq 0\}$ over $\Sigma = \{a,b,c\}$ een pomplengte $p$ bestaat en stel dat we voor een string $s = a^pb^pc^p$ met $|s| \geq p$ een opdeling $s=uvxyz$ maken met $|vy| > 0$. Dan zijn er slechts twee mogelijkheden voor die opdeling:
\begin{itemize}
\item $v$ is van de vorm $\alpha^i$ en $y$ van de vorm $\beta^j$ waarbij $\alpha,\beta \in \Sigma$ met $i+j>0$: $uv^2xy^2z \notin L$ kan niet bestaan uit een gelijk aantal $a$'s, $b$'s en $c$'s.
\item $v$ en/of $y$ bestaan uit meer dan \'e\'en symbool uit $\Sigma$: $uv^2xy^2z \notin L$ of meer specifiek $v^2$ en/of $y^2$ bevatten symbolen die niet in de juiste volgorde staan.
Expand Down
2 changes: 1 addition & 1 deletion voorbeelden/plre.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
\begin{itemize}
\item $y$ bevat enkel $a$'s: $xyyz$ bevat dan meer $a$'s dan $b$'s, dus $xyyz \notin L$ of $xz$ bevat dan meer $b$'s dan $a$'s, dus $xz \notin L$
\item $y$ bevat enkel $b$'s: $xyyz$ bevat dan meer $b$'s dan $a$'s, dus $xyyz \notin L$ of $xz$ bevat dan meer $a$'s dan $b$'s, dus $xz \notin L$
\item $y$ is van de vorm $a^ib^j$ met $i,b \in \nat_0$: $xyyz \notin L$ want het aantal $a$'s en $b$'s blijft enkel gelijk indien $i=j$ en zelfs dan wordt de volgorde niet meer gerespecteerd, er zullen $a$'s en $b$'s door elkaar staan.
\item $y$ is van de vorm $a^ib^j$ met $i,j \in \nat_0$: $xyyz \notin L$ want het aantal $a$'s en $b$'s blijft enkel gelijk indien $i=j$ en zelfs dan wordt de volgorde niet meer gerespecteerd, er zullen $a$'s en $b$'s door elkaar staan.
\end{itemize}

0 comments on commit 46819d2

Please sign in to comment.