source: liacs/TPFL2010/assignment1/report.tex@ 235

Last change on this file since 235 was 229, checked in by Rick van der Zwet, 14 years ago

Basic spell check done

File size: 10.4 KB
Line 
1%
2% $Id: report.tex 571 2008-04-20 17:31:04Z rick $
3%
4
5\documentclass[12pt,a4paper]{article}
6
7\frenchspacing
8\usepackage[english,dutch]{babel}
9\selectlanguage{dutch}
10\usepackage[pdftex]{graphicx}
11\usepackage{url}
12\usepackage{amssymb,amsmath}
13\usepackage{float}
14\usepackage{tikz}
15\usepackage{fixltx2e}
16
17\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri}
18
19
20
21\setlength\parindent{0pt}
22\setlength\parskip{\baselineskip}
23\floatstyle{ruled}
24\newfloat{algoritm}{thp}{lop}
25\floatname{algoritm}{Algoritme}
26
27\title{Opdracht 1 \\
28\large{Topics on Parsing and Formal Languages - fall 2010}}
29\author{Rick van der Zwet\\
30 \texttt{<hvdzwet@liacs.nl>}}
31\date{\today}
32
33
34\begin{document}
35\newcommand{\DFA}{\emph{DFA}~}
36\newcommand{\qed}{\hfill \ensuremath{\Box}}
37\maketitle
38\begin{abstract}
39Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek
40\cite{JS2009} gebruikt bij het college. In deze opdracht zullen zeven opgaven
41(3,20,22,47,54,68,69) van hoofdstuk 3 behandeld worden. De opgaven zijn
42willekeurig gekozen met behulp van een kans generator, het kans dus zijn dat
43niet alle onderwerpen van hoofdstuk 3 behandeld worden.
44\end{abstract}
45
46\section{Opgave 3.3}
47Als $L \subseteq \Sigma^*$ is regulier dan is de taal
48\begin{equation}
492L := {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}
51regulier. Zie dat er een `verdubbeling' optreed van symbolen, dit gedrag is de
52modelleren 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$
54die de nieuwe taal $2L$ gaat beschrijven, neem hiervoor het alfabet ($\Sigma$),
55en 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$,
57maar 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$
59moet ook aangepast worden, door de oude acceptatie $q$ te vervangen door $q'$.
60\\
61De nieuwe \DFA $P$ beschrijft $2L$ en dus is $2L$ regulier.
62\qed
63
64
65\section{Opgave 3.20}
66Laat $\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]
68gelijkheid relatie $R_L$ de eigenschap heeft dat elk woord in $\Sigma^*$ zijn
69eigen equivalentie klasse is. Dit wilt zeggen dat voor alle $z \in \Sigma^*$,
70is er een $xz \in L$ dan en slechts als $yz \in L$. Omdat hier gezocht wordt
71naar een taal waarbij de woorden allemaal equivalentie klassen op-zich zijn, zal
72alle elementen met elkaar vergeleken kunnen worden door middel van $R_L$ en hier mogen geen
73positieve 'gevallen' uitkomen.
74
75Een mooi voorbeeld is de taal van \emph{PRIMES2}\cite{JS2009}[pg. 2], waarbij
76de 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
78woord zijn eigen klasse zijn.
79
80
81\section{Opgave 3.22}
82Om 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}
88
89Als eerste kan de $F_n$ door een \emph{2DFA} van $O(n)$ toestanden geaccepteerd
90worden, 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
92de $2^k$ moet voorkomen. Waarbij $2^k$ aangeeft, waar deze $0$-reeks gevonden
93kan worden e.g. bij welke $i_x$. De \emph{2DFA} moet dus twee dingen doen. Het
94aantal keer nul op twee plekken vergelijken. Waarbij 1 plek vast staat en de
95tweede plek variabele wordt gedefinieerd. Dit lijkt mij controleren op twee los
96staande feiten. Hiervoor heb ik \underline{geen} antwoord gevonden. Ik kan
97enkel wat voor $O(n^2)$ bedenken, welke een idee is in Figuur~\ref{fig:idee}
98uitgewerkt is.
99
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
122Om te laten zien dat een \DFA minstens $n^n$ toestanden nodig heeft moet je
123gebruik 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$)
125te 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$
127toestanden nodig hebt om te kunnen tellen en hiervan weer $n$ unieke sets
128bestaan, heb je dus minimaal $n^n$ toestanden nodig.
129
130\section{Opgave 3.47}
131
132Om te bewijzen dat `de klasse van talen geaccepteerd door \DFA' => `de klasse van
133talen gespecificeerd door de reguliere expressies'\cite{JS2009}[Theorem 1.4.2, (b) => (a)]
134aan de hand van het volgende voorbeeld:
135Laat $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
137die van toestand $i$ naar toestand $j$ gaan zonder door toestanden te gaan die
138hoger als $k$ genummerd zijn.
139
140Om dit te doen is een recursieve formule nodig, welke $R_{i,j,k}$ als invoer
141heeft. a) Kijk welke transities er mogelijk zijn in $\delta$ met toestand $i$ als
142begin positie. Plaats deze op de `stapel'. b) Werk de elementen op de stapel
143stuk voor stuk af volgens dezelfde methodiek. Stop pas als de $\delta$
144resultaat $j$ bevat. Let erop dat oneindige herhalingen gedetecteerd moeten
145worden om het algoritme te laten termineren. Je kan het zien als het volledig
146doorzoeken van een boom met in de wortel de knoop $i$.
147
148\section{Opgave 3.54}
149
150Laat $\Sigma = \{1,2,3,\ldots,n\}$ zijn en definieer:
151\begin{equation}
152L_n = \{w \in \Sigma^* : |w|_i = 1~voor~alle~i\}
153\end{equation}
154Dit zijn dus de woorden waarbij alle elementen precies \'{e}\'{e}n keer in voor
155komen. Bijvoorbeeld $L_3 = \{123,132,213,231,312,321\}$.
156
157Om te laten zijn dat er minimal een reguliere expressie van lengte $2^{n-1}$
158nodig is om $L_n$ te specificeren, moet de \emph{Myhill-Nerode} stelling
159toegepast worden. Vanwege de eigenschap dat prefix uniek is, zat het nooit
160mogelijk worden om aan beiden woorden hetzelfde toe te voegen zodanig dat ze in
161elkaars klasse terecht komen. (elk `bit' informatie is relevant). Voor alle
162klasse zal dus apart gekeken worden of aan de eisen voldaan wordt. Om dus alle
163getallen $n$ van de string te controleren of zij uniek is zijn minimaal
164$2^{n-1}$ toestanden nodig.
165
166Echter voor $\overline{L_n}$ is wel een reguliere expressie te vinden en wel
167in de grootte $O(n^2)$. Door simpelweg voor elke $i \in \Sigma^*$ een reguliere
168expressie te maken van de vorm $x^*~i~x^*~i~x^*$ waarbij $x = Sigma^* - i$.
169
170\section{Opgave 3.68}
171
172Voor een woord $w \in \Sigma^*$, is een palc($w$) de korte palindroom $x$
173zodanig dat $w$ een prefix is van $x$. en palc($L$) = $\bigcup_{w \in L}\{palc(w)\}$.
174
175Om te laten zien dat palc($w$) = $wt^{-1}w^R$, waarbij $wt^{-1}$ het woord is $w$
176waar het suffix $t$ eraf gehaald is en $t$ de langste palindroom suffix van $w$
177is, moet er gebruik gemaakt worden van een tegenstelling. Als $w$ nog een
178palindroom 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
180uit weggehaald had kunnen worden. Een willekeurige suffix van $w$ kan ook geen
181palindroom vormen die nog `weggesneden' kan worden, omdat hij anders al in den
182beginne een palindroom had moeten zijn.
183
184Als $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
186het slechtste geval evenveel blijven, maar de taal kan ook kleiner worden.
187
188De andere kant op geldt dit \underline{niet}, als $L$ regulier is, dan is het
189onbeslist of palc\textsuperscript{-1}($L$) ook regulier is. Het kan namelijk
190zeer goed dat een (ingewikkelde) functie die woorden genereerde welke een
191palindroom zijn en die aan een vast prefix ($p$) toegevoegd. De \emph{palc}
192functie zal deze allen naar \'{e}\'{e}n woord omzetten, welke dan regulier is.
193
194
195\section{Opgave 3.69}
196
197Laat $x_1,x_2,\ldots,x_k \in \Sigma^*$. Om te laten zien dat $\Sigma^* -
198x_{1}^{*}x_{2}^{*} \cdots x_{k}^*$ eindig is dan en slechts als $|\Sigma| = 1$
199en gcd($|x_1|,|x_2|,\ldots,|x_k|$) = 1 moet er een paar dingen bewezen worden
200a) aantonen dat het \underline{niet} geldt voor de tegenvoorbeelden a) $gcd
201> 1$ b) $|\Sigma| > 1$ en tevens moet aangetoond worden waarom de eindigheid
202 voor dit specifieke geval geldt.
203
204Merk op dat met een gcd van 1 alle getallen in de verzameling \{1,
205priemgetallen\} zitten. Bij een alfabet van 1 letter hoeft er enkel maar
206gesproken worden over lengtes. Standaard zitten alle lengtes in de taal.
207Aangezien de `deel-lengtes' ($x_1,x_2,\ldots,x_k$) nul of meer keer in de
208verzameling in de verzameling mogen zitten. Zal je uiteindelijk overblijven met
209een eindige set lengtes. In het geval dat er lengte 1 gevonden wordt, zal zelfs
210de lege set het antwoord zijn.
211
212a) Als $|\Sigma| > 1$, bijvoorbeeld $\{1,2\}$ dan kan er een oneindige
213verzameling gemaakt worden, door $x_1,x_2,\ldots,x_k \in 1^*$. De $2*$ zal dan een
214oneindige verzameling vormen.
215
216b) $gcd > 1$, bijvoorbeeld $2$ dan kan er een oneindige verzameling gemaakt
217worden, doordat niet alle woorden gemaakt kunnen worden. Enkel worden van
218`even' lengte in dit geval. Waardoor de `oneven' woorden een eindige string
219gaan vormen. Bij grotere waardes ($r$) kunnen ook 'groepen' (de $|r|* - 1$)
220bijvoorbeeld niet meer bereikt worden, welke dan tot een oneindige verzameling
221kunnen groeien.
222
223\begin{thebibliography}{1}
224\bibitem[JS2009]{JS2009}Jeffrey Shallit, \emph{A second course in formal
225languages and automata theory }, \emph{Cambridge University Press}, 2009.
226\end{thebibliography}
227\newpage
228\end{document}
Note: See TracBrowser for help on using the repository browser.