- Timestamp:
- Nov 26, 2010, 8:46:24 PM (14 years ago)
- Location:
- liacs/TPFL2010/assignment2
- Files:
-
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
liacs/TPFL2010/assignment2/report.tex
r232 r238 25 25 \floatname{algoritm}{Algoritme} 26 26 27 \title{Opdracht 1\\27 \title{Opdracht 2 \\ 28 28 \large{Topics on Parsing and Formal Languages - fall 2010}} 29 29 \author{Rick van der Zwet\\ … … 35 35 \newcommand{\DFA}{\emph{DFA}~} 36 36 \newcommand{\qed}{\hfill \ensuremath{\Box}} 37 \newcommand{\all}{\Sigma^*} 37 38 \maketitle 38 39 \begin{abstract} 39 40 Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek 40 41 \cite{JS2009} gebruikt bij het college. In deze opdracht zullen zeven opgaven 41 ( 3,20,22,47,54,68,69) van hoofdstuk 3behandeld worden. De opgaven zijn42 willekeurig gekozen met behulp van een kans generator, het kan sdus zijn dat43 niet alle onderwerpen van hoofdstuk 3behandeld worden.42 (9, 18, 24, 26, 32, 35, 41) van hoofdstuk 4 behandeld worden. De opgaven zijn 43 willekeurig gekozen met behulp van een kans generator, het kan dus zijn dat 44 niet alle onderwerpen van hoofdstuk 4 behandeld worden. 44 45 \end{abstract} 45 46 46 \section{Opgave 3.3} 47 Als $L \subseteq \Sigma^*$ is regulier dan is de taal 48 \begin{equation} 49 2L := {a_1,a_1,a_2,a_2,\ldots,a_k,a_k}~:~elke~a_i \in \Sigma~en~a_1a_2{\cdots}a_k \in L 50 \end{equation} 51 regulier. Zie dat er een `verdubbeling' optreed van symbolen, dit gedrag is de 52 modelleren in een \DFA. Omdat $L$ regulier is bestaat er een \DFA $M = 53 (Q,\Sigma,\delta,q_0,F)$ die $L$ beschrijft. Construeer nu een nieuwe \DFA $P$ 54 die de nieuwe taal $2L$ gaat beschrijven, neem hiervoor het alfabet ($\Sigma$), 55 en de begintoestand $q_0$ over van $L$. De toestanden ($Q$) worden verdubbeld. 56 $voor~alle~q \in Q:~voeg~q'~toe~aan~Q$. Neem ook de transities over van $M$, 57 maar maak aanpassingen zodanig dat de nieuwe toestanden ook gelezen worden. Dus 58 $\delta(q,x)$ wordt $\delta(q,q'),\delta(q',x)$. De acceptatie toestand $F$ 59 moet ook aangepast worden, door de oude acceptatie $q$ te vervangen door $q'$. 60 \\ 61 De nieuwe \DFA $P$ beschrijft $2L$ en dus is $2L$ regulier. 62 \qed 47 \section{Opgave 4.9} 48 Laat $L \subseteq \all$ de taal zijn en defineer $\sigma(L) = \{x \in \all : xy 49 \in voor~alle~y \in \all\}$. Als $L$ context-vrij is $\sigma(L)$ ook 50 context-vrij. Omdat $y = \all$ is dit een reguliere taal. $xy$ zal dan een 51 context-vrije taal zijn (gesloten onder concatenatie). $xy \in L$ is vereniging 52 van $xy$ met $L$, welke onder context-vrije talen gesloten is. Hierdoor zal 53 $\sigma(L)$ (een subset) ook weer context-vrij zijn. 63 54 64 55 65 \section{Opgave 3.20} 66 Laat $\Sigma = {0,1}$ zijn. Een voorbeeld van de taal $L \subseteq 67 \Sigma^*$ voor welke geldt dat, de Myhill-Nerode\cite{JS2009}[pg. 77--81] 68 gelijkheid relatie $R_L$ de eigenschap heeft dat elk woord in $\Sigma^*$ zijn 69 eigen equivalentie klasse is. Dit wilt zeggen dat voor alle $z \in \Sigma^*$, 70 is er een $xz \in L$ dan en slechts als $yz \in L$. Omdat hier gezocht wordt 71 naar een taal waarbij de woorden allemaal equivalentie klassen op-zich zijn, zal 72 alle elementen met elkaar vergeleken kunnen worden door middel van $R_L$ en hier mogen geen 73 positieve 'gevallen' uitkomen. 56 \section{Opgave 4.18} 57 Als $L$ een context-vrije taal is en $R$ een reguliere taal dan de rechter 58 quotient $L/R = \{x \in \all: \exists y \in R~zodat~xy \in L \}$ is ook een 59 context-vrije taal. $xy$ zijn de woorden in $L$ waarbij geldt dat de suffix 60 $y$ regulier is. Stel dat $x$ geen context-vrije taal was. Dan zou $xy$ ook 61 geen context-vrije taal zijn. Wat niet kan welke $L$ context-vrij is en in die 62 hoedanigheid ook de subsets van $L$. 74 63 75 Een mooi voorbeeld is de taal van \emph{PRIMES2}\cite{JS2009}[pg. 2], waarbij 76 de priemgetallen in een binair stelsel worden vertegenwoordigd. Door op unieke 77 'start' van de woorden zullen deze nooit in elkaar vervallen en zal dus elk 78 woord zijn eigen klasse zijn. 64 \section{Opgave 4.24} 65 Als $s^{[-1]}(L) := \{x : s(x) \cap L \neq \emptyset\}$ en $s$ verbind letters 66 met reguliere talen en $L$ is context-vrij. Dan is $s^{[-1]}(L)$ niet altijd 67 CFL, L een een verzameling kan zijn van alle talen van de letters waarbij geldt 68 dat de lengte van de letters even moet zijn, welke geen context-vrije 69 verzameling is. 70 71 Hetzelfde probleem doet voor als $s$ letters aan context-vrije talen verbindt. 72 73 \section{Opgave 4.26} 74 Gegeven een PDA $M$ kan je altijd een $M^{'}$ maken welke de eigenschap heeft dat 75 geen enkele stap het huidige symbool op de stapel vervangt (geen transities van 76 de vorm $(p,\gamma Y) \in \delta(q,a,X)~waarbij~X \neq Y$). Dus dat alle 77 stappen, of een symbool van de stapel afhalen, of een string van symbolen op 78 de stapel zetten. Dit is te doen door de hudige 'subsitutie' transities te 79 vervangen door een tweetal (gekoppelde) transities. Waarbij de eerste het 80 symbool eraf haalt en de tweede de gewenste symbolen er weer op zet. 81 82 De bovengenoemde methode zorgt voor maar \'e\'en mogelijk pad. Er zal de de 83 DPDA structuur (indien present) dus niet aantasten. 79 84 80 85 81 \section{Opgave 3.22} 82 Om aan te tonen dat een \emph{2DFA} exponentieel meer expressief is dan een 83 \DFA voor bepaalde talen kijken we naar de volgende taal; Laat $n$ een integer 84 $\ge1$ en $F_n \subseteq \{0,1,2,3,4\}^*$ als volgende gedefinieerd: 85 \begin{equation} 86 F_n = \{3~0^{i_1}~1~0^{i_2} \cdots 1~0^{i_n}~2^k~0^{i_k}~4 : 1 \ge k,j,i_j \ge n\} 87 \end{equation} 86 \section{Opgave 4.32} 87 Als $\psi$ een Parikh map is, dan zijn er lange Engelse woorden over een bepaald 88 alfabet voor specifieke eigenschappen. Voorbeelden zijn te vinden in de onderstaande tabel. 88 89 89 Als eerste kan de $F_n$ door een \emph{2DFA} van $O(n)$ toestanden geaccepteerd 90 worden, welke aan te tonen is door eerst te kijken naar de eigenschappen van 91 $F_n$ hierbij is de zien dat de $0$-reeks van de lengte $i^k$ zowel voor als na 92 de $2^k$ moet voorkomen. Waarbij $2^k$ aangeeft, waar deze $0$-reeks gevonden 93 kan worden e.g. bij welke $i_x$. De \emph{2DFA} moet dus twee dingen doen. Het 94 aantal keer nul op twee plekken vergelijken. Waarbij 1 plek vast staat en de 95 tweede plek variabele wordt gedefinieerd. Dit lijkt mij controleren op twee los 96 staande feiten. Hiervoor heb ik \underline{geen} antwoord gevonden. Ik kan 97 enkel wat voor $O(n^2)$ bedenken, welke een idee is in Figuur~\ref{fig:idee} 98 uitgewerkt is. 90 \begin{tabular}{l | l | l } 91 eigenschap & woorden & alfabet \\ 92 \hline \hline 93 $\psi(w)$ alle items gelijk aan 1 & dutchwomen & $\{d,u,t,c,h,w,o,m,e,n\}$\\ 94 $\psi(w)$ alle items gelijk aan 2 & tomtom & $\{t,o,m\}$\\ 95 $\psi(w)$ alle items gelijk aan 3 & sestettes & $\{s,e,t\}$\\ 96 $\psi(w)$ alle items $\ge$ 2 & unprosperousness & $\{e,n,o,p,r,s,u\}$\\ 97 $\psi(w)$ $(1,2,2,3,3,3)$ & chincherinchee & $\{r,i,n,c,h,e\}$\\ 98 \end{tabular} 99 99 100 100 101 \begin{figure} 102 \center 103 \begin{tikzpicture} 104 \node[place,pin={[pin edge={style=<-,blue,thick,decorate,decoration={snake, pre length=4pt}}]left:}] (q0) {}; 105 \node[place] (q1) [below=of q0] {}; 106 \node[place] (q2) [below=of q1] {}; 107 \node[place,pin={[pin edge={style=-<,thick,decorate,decoration={snake, pre length=4pt}}]below:}] (q3) [below=of q2] {}; 108 \node[place] (q01) [right=3cm of q1] {}; 109 \node[place] (q02) [right=3cm of q2] {}; 110 \path[->] 111 (q0) edge [decorate,decoration={snake}] node[left] {goto-2} (q1) 112 (q1) edge node[left] {2} (q2) 113 (q2) edge node[left] {2} (q3) 114 (q1) edge [decorate,decoration={snake}] node[above] {0-length-check} (q01) 115 (q2) edge [decorate,decoration={snake}] node[above] {0-length-check} (q02) 116 ; 117 \end{tikzpicture} 118 \caption{Idee voor Opdracht 2.22a} 119 \label{fig:idee} 120 \end{figure} 121 122 Om te laten zien dat een \DFA minstens $n^n$ toestanden nodig heeft moet je 123 gebruik maken van het feit dan een \DFA niet terug kan lopen. Het zal dus een 124 `geheugen' moeten maken om het maximale $0$ woord voor de `splitsing' ($2^k$) 125 te kunnen onthouden om zo te kijken of het overeen komt het $0$ woord na de 126 `splitsing'. Omdat je voor elke $F_i$ waarbij $1 \ge i \ge n$ minimaal $n$ 127 toestanden nodig hebt om te kunnen tellen en hiervan weer $n$ unieke sets 128 bestaan, heb je dus minimaal $n^n$ toestanden nodig. 129 130 \section{Opgave 3.47} 131 132 Om te bewijzen dat `de klasse van talen geaccepteerd door \DFA' => `de klasse van 133 talen gespecificeerd door de reguliere expressies'\cite{JS2009}[Theorem 1.4.2, (b) => (a)] 134 aan de hand van het volgende voorbeeld: 135 Laat $M = (Q,\Sigma, \delta, q_1,F)$ een \DFA zijn, waarbij $Q = 136 \{q_1,q_2,\ldots,q_n\}$. Definieer nu $R_{i,j,k}$ als de taal van alle woorden 137 die van toestand $i$ naar toestand $j$ gaan zonder door toestanden te gaan die 138 hoger als $k$ genummerd zijn. 139 140 Om dit te doen is een recursieve formule nodig, welke $R_{i,j,k}$ als invoer 141 heeft. a) Kijk welke transities er mogelijk zijn in $\delta$ met toestand $i$ als 142 begin positie. Plaats deze op de `stapel'. b) Werk de elementen op de stapel 143 stuk voor stuk af volgens dezelfde methodiek. Stop pas als de $\delta$ 144 resultaat $j$ bevat. Let erop dat oneindige herhalingen gedetecteerd moeten 145 worden om het algoritme te laten termineren. Je kan het zien als het volledig 146 doorzoeken van een boom met in de wortel de knoop $i$. 147 148 \section{Opgave 3.54} 149 150 Laat $\Sigma = \{1,2,3,\ldots,n\}$ zijn en definieer: 151 \begin{equation} 152 L_n = \{w \in \Sigma^* : |w|_i = 1~voor~alle~i\} 153 \end{equation} 154 Dit zijn dus de woorden waarbij alle elementen precies \'{e}\'{e}n keer in voor 155 komen. Bijvoorbeeld $L_3 = \{123,132,213,231,312,321\}$. 156 157 Om te laten zijn dat er minimal een reguliere expressie van lengte $2^{n-1}$ 158 nodig is om $L_n$ te specificeren, moet de \emph{Myhill-Nerode} stelling 159 toegepast worden. Vanwege de eigenschap dat prefix uniek is, zat het nooit 160 mogelijk worden om aan beiden woorden hetzelfde toe te voegen zodanig dat ze in 161 elkaars klasse terecht komen. (elk `bit' informatie is relevant). Voor alle 162 klasse zal dus apart gekeken worden of aan de eisen voldaan wordt. Om dus alle 163 getallen $n$ van de string te controleren of zij uniek is zijn minimaal 164 $2^{n-1}$ toestanden nodig. 165 166 Echter voor $\overline{L_n}$ is wel een reguliere expressie te vinden en wel 167 in de grootte $O(n^2)$. Door simpelweg voor elke $i \in \Sigma^*$ een reguliere 168 expressie te maken van de vorm $x^*~i~x^*~i~x^*$ waarbij $x = Sigma^* - i$. 169 170 \section{Opgave 3.68} 171 172 Voor een woord $w \in \Sigma^*$, is een palc($w$) de korte palindroom $x$ 173 zodanig dat $w$ een prefix is van $x$. en palc($L$) = $\bigcup_{w \in L}\{palc(w)\}$. 174 175 Om te laten zien dat palc($w$) = $wt^{-1}w^R$, waarbij $wt^{-1}$ het woord is $w$ 176 waar het suffix $t$ eraf gehaald is en $t$ de langste palindroom suffix van $w$ 177 is, moet er gebruik gemaakt worden van een tegenstelling. Als $w$ nog een 178 palindroom aan het einde zal bevatten $uu$, dan ziet $x$ er als volgt uit 179 $wuuuuw$, dit is niet de korte palindroom ($ww$), welke $uuuu$ er nog makkelijk 180 uit weggehaald had kunnen worden. Een willekeurige suffix van $w$ kan ook geen 181 palindroom vormen die nog `weggesneden' kan worden, omdat hij anders al in den 182 beginne een palindroom had moeten zijn. 183 184 Als $L$ is regulier, dan is palc($L$) ook regulier, welke er een unieke 185 `vertaling' van een woord $w$ naar zijn palc($w$). De nieuwe woorden zullen in 186 het slechtste geval evenveel blijven, maar de taal kan ook kleiner worden. 187 188 De andere kant op geldt dit \underline{niet}, als $L$ regulier is, dan is het 189 onbeslist of palc\textsuperscript{-1}($L$) ook regulier is. Het kan namelijk 190 zeer goed dat een (ingewikkelde) functie die woorden genereerde welke een 191 palindroom zijn en die aan een vast prefix ($p$) toegevoegd. De \emph{palc} 192 functie zal deze allen naar \'{e}\'{e}n woord omzetten, welke dan regulier is. 101 \section{Opgave 4.35} 193 102 194 103 195 \section{Opgave 3.69}104 \section{Opgave 4.41} 196 105 197 Laat $x_1,x_2,\ldots,x_k \in \Sigma^*$. Om te laten zien dat $\Sigma^* -198 x_{1}^{*}x_{2}^{*} \cdots x_{k}^*$ eindig is dan en slechts als $|\Sigma| = 1$199 en gcd($|x_1|,|x_2|,\ldots,|x_k|$) = 1 moet er een paar dingen bewezen worden200 a) aantonen dat het \underline{niet} geldt voor de tegenvoorbeelden a) $gcd201 > 1$ b) $|\Sigma| > 1$ en tevens moet aangetoond worden waarom de eindigheid202 voor dit specifieke geval geldt.203 106 204 Merk op dat met een gcd van 1 alle getallen in de verzameling \{1,205 priemgetallen\} zitten. Bij een alfabet van 1 letter hoeft er enkel maar206 gesproken worden over lengtes. Standaard zitten alle lengtes in de taal.207 Aangezien de `deel-lengtes' ($x_1,x_2,\ldots,x_k$) nul of meer keer in de208 verzameling in de verzameling mogen zitten. Zal je uiteindelijk overblijven met209 een eindige set lengtes. In het geval dat er lengte 1 gevonden wordt, zal zelfs210 de lege set het antwoord zijn.211 212 a) Als $|\Sigma| > 1$, bijvoorbeeld $\{1,2\}$ dan kan er een oneindige213 verzameling gemaakt worden, door $x_1,x_2,\ldots,x_k \in 1^*$. De $2*$ zal dan een214 oneindige verzameling vormen.215 216 b) $gcd > 1$, bijvoorbeeld $2$ dan kan er een oneindige verzameling gemaakt217 worden, doordat niet alle woorden gemaakt kunnen worden. Enkel worden van218 `even' lengte in dit geval. Waardoor de `oneven' woorden een eindige string219 gaan vormen. Bij grotere waardes ($r$) kunnen ook 'groepen' (de $|r|* - 1$)220 bijvoorbeeld niet meer bereikt worden, welke dan tot een oneindige verzameling221 kunnen groeien.222 107 223 108 \begin{thebibliography}{1}
Note:
See TracChangeset
for help on using the changeset viewer.