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

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

3.3 verbeterd.

File size: 10.3 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.
42\end{abstract}
43
44\section{Opgave 3.3}
45Als $L \subseteq \Sigma^*$ is regulier dan is de taal
46\begin{equation}
472L := {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
48\end{equation}
49regulier. Zie dat er een `verdubbeling' optreed van symbolen, dit gedrag is de
50modelleren in een \DFA. Omdat $L$ regulier is bestaat er een \DFA $M =
51(Q,\Sigma,\delta,q_0,F)$ die $L$ beschrijft. Construeer nu een nieuwe \DFA $P$
52die de nieuwe taal $2L$ gaat beschrijven, neem hiervoor het alfabet ($\Sigma$),
53en de begintoestand $q_0$ over van $L$. De toestanden ($Q$) worden verdubbeld.
54$voor~alle~q \in Q:~voeg~q'~toe~aan~Q$. Neem ook de transities over van $M$,
55maar maak aanpassingen zodanig dat de nieuwe toestanden ook gelezen worden. Dus
56$\delta(q,x)$ wordt $\delta(q,q'),\delta(q',x)$. De acceptatie toestand $F$
57is gelijkt aan de oude acceptatie toestand.
58\\
59De nieuwe \DFA $P$ beschrijft $2L$ en dus is $2L$ regulier.
60\qed
61
62
63\section{Opgave 3.20}
64Laat $\Sigma = \{0,1\}$ zijn. Een voorbeeld van de taal $L \subseteq
65\Sigma^*$ voor welke geldt dat, de Myhill-Nerode\cite{JS2009}[pg. 77--81]
66gelijkheid relatie $R_L$ de eigenschap heeft dat elk woord in $\Sigma^*$ zijn
67eigen equivalentie klasse is. Dit wilt zeggen dat voor alle $z \in \Sigma^*$,
68is er een $xz \in L$ dan en slechts als $yz \in L$. Omdat hier gezocht wordt
69naar een taal waarbij de woorden allemaal equivalentie klassen op-zich zijn, zal
70alle elementen met elkaar vergeleken kunnen worden door middel van $R_L$ en hier mogen geen
71positieve 'gevallen' uitkomen.
72
73Een mooi voorbeeld is de taal van \emph{PRIMES2}\cite{JS2009}[pg. 2], waarbij
74de priemgetallen in een binair stelsel worden vertegenwoordigd. Door op unieke
75'start' van de woorden zullen deze nooit in elkaar vervallen en zal dus elk
76woord zijn eigen klasse zijn.
77
78
79\section{Opgave 3.22}
80Om aan te tonen dat een \emph{2DFA} exponentieel meer expressief is dan een
81\DFA voor bepaalde talen kijken we naar de volgende taal; Laat $n$ een integer
82$\ge1$ en $F_n \subseteq \{0,1,2,3,4\}^*$ als volgende gedefinieerd:
83\begin{equation}
84 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\}
85\end{equation}
86
87Als eerste kan de $F_n$ door een \emph{2DFA} van $O(n)$ toestanden geaccepteerd
88worden, welke aan te tonen is door eerst te kijken naar de eigenschappen van
89$F_n$ hierbij is de zien dat de $0$-reeks van de lengte $i^k$ zowel voor als na
90de $2^k$ moet voorkomen. Waarbij $2^k$ aangeeft, waar deze $0$-reeks gevonden
91kan worden e.g. bij welke $i_x$. De \emph{2DFA} moet dus twee dingen doen. Het
92aantal keer nul op twee plekken vergelijken. Waarbij 1 plek vast staat en de
93tweede plek variabele wordt gedefinieerd. Dit lijkt mij controleren op twee los
94staande feiten. Hiervoor heb ik \underline{geen} antwoord gevonden. Ik kan
95enkel wat voor $O(n^2)$ bedenken, welke een idee is in Figuur~\ref{fig:idee}
96uitgewerkt is.
97
98
99\begin{figure}
100\center
101\begin{tikzpicture}
102\node[place,pin={[pin edge={style=<-,blue,thick,decorate,decoration={snake, pre length=4pt}}]left:}] (q0) {};
103\node[place] (q1) [below=of q0] {};
104\node[place] (q2) [below=of q1] {};
105\node[place,pin={[pin edge={style=-<,thick,decorate,decoration={snake, pre length=4pt}}]below:}] (q3) [below=of q2] {};
106\node[place] (q01) [right=3cm of q1] {};
107\node[place] (q02) [right=3cm of q2] {};
108\path[->]
109 (q0) edge [decorate,decoration={snake}] node[left] {goto-2} (q1)
110 (q1) edge node[left] {2} (q2)
111 (q2) edge node[left] {2} (q3)
112 (q1) edge [decorate,decoration={snake}] node[above] {0-length-check} (q01)
113 (q2) edge [decorate,decoration={snake}] node[above] {0-length-check} (q02)
114 ;
115\end{tikzpicture}
116\caption{Idee voor Opdracht 2.22a}
117\label{fig:idee}
118\end{figure}
119
120Om te laten zien dat een \DFA minstens $n^n$ toestanden nodig heeft moet je
121gebruik maken van het feit dan een \DFA niet terug kan lopen. Het zal dus een
122`geheugen' moeten maken om het maximale $0$ woord voor de `splitsing' ($2^k$)
123te kunnen onthouden om zo te kijken of het overeen komt het $0$ woord na de
124`splitsing'. Omdat je voor elke $F_i$ waarbij $1 \ge i \ge n$ minimaal $n$
125toestanden nodig hebt om te kunnen tellen en hiervan weer $n$ unieke sets
126bestaan, heb je dus minimaal $n^n$ toestanden nodig.
127
128\section{Opgave 3.47}
129
130Om te bewijzen dat `de klasse van talen geaccepteerd door \DFA' => `de klasse van
131talen gespecificeerd door de reguliere expressies'\cite{JS2009}[Theorem 1.4.2, (b) => (a)]
132aan de hand van het volgende voorbeeld:
133Laat $M = (Q,\Sigma, \delta, q_1,F)$ een \DFA zijn, waarbij $Q =
134\{q_1,q_2,\ldots,q_n\}$. Definieer nu $R_{i,j,k}$ als de taal van alle woorden
135die van toestand $i$ naar toestand $j$ gaan zonder door toestanden te gaan die
136hoger als $k$ genummerd zijn.
137
138Om dit te doen is een recursieve formule nodig, welke $R_{i,j,k}$ als invoer
139heeft. a) Kijk welke transities er mogelijk zijn in $\delta$ met toestand $i$ als
140begin positie. Plaats deze op de `stapel'. b) Werk de elementen op de stapel
141stuk voor stuk af volgens dezelfde methodiek. Stop pas als de $\delta$
142resultaat $j$ bevat. Let erop dat oneindige herhalingen gedetecteerd moeten
143worden om het algoritme te laten termineren. Je kan het zien als het volledig
144doorzoeken van een boom met in de wortel de knoop $i$.
145
146\section{Opgave 3.54}
147
148Laat $\Sigma = \{1,2,3,\ldots,n\}$ zijn en definieer:
149\begin{equation}
150L_n = \{w \in \Sigma^* : |w|_i = 1~voor~alle~i\}
151\end{equation}
152Dit zijn dus de woorden waarbij alle elementen precies \'{e}\'{e}n keer in voor
153komen. Bijvoorbeeld $L_3 = \{123,132,213,231,312,321\}$.
154
155Om te laten zijn dat er minimal een reguliere expressie van lengte $2^{n-1}$
156nodig is om $L_n$ te specificeren, moet de \emph{Myhill-Nerode} stelling
157toegepast worden. Vanwege de eigenschap dat prefix uniek is, zat het nooit
158mogelijk worden om aan beiden woorden hetzelfde toe te voegen zodanig dat ze in
159elkaars klasse terecht komen. (elk `bit' informatie is relevant). Voor alle
160klasse zal dus apart gekeken worden of aan de eisen voldaan wordt. Om dus alle
161getallen $n$ van de string te controleren of zij uniek is zijn minimaal
162$2^{n-1}$ toestanden nodig.
163
164Echter voor $\overline{L_n}$ is wel een reguliere expressie te vinden en wel
165in de grootte $O(n^2)$. Door simpelweg voor elke $i \in \Sigma^*$ een reguliere
166expressie te maken van de vorm $x^*~i~x^*~i~x^*$ waarbij $x = Sigma^* - i$.
167
168\section{Opgave 3.68}
169
170Voor een woord $w \in \Sigma^*$, is een palc($w$) de korte palindroom $x$
171zodanig dat $w$ een prefix is van $x$. en palc($L$) = $\bigcup_{w \in L}\{palc(w)\}$.
172
173Om te laten zien dat palc($w$) = $wt^{-1}w^R$, waarbij $wt^{-1}$ het woord is $w$
174waar het suffix $t$ eraf gehaald is en $t$ de langste palindroom suffix van $w$
175is, moet er gebruik gemaakt worden van een tegenstelling. Als $w$ nog een
176palindroom aan het einde zal bevatten $uu$, dan ziet $x$ er als volgt uit
177$wuuuuw$, dit is niet de korte palindroom ($ww$), welke $uuuu$ er nog makkelijk
178uit weggehaald had kunnen worden. Een willekeurige suffix van $w$ kan ook geen
179palindroom vormen die nog `weggesneden' kan worden, omdat hij anders al in den
180beginne een palindroom had moeten zijn.
181
182Als $L$ is regulier, dan is palc($L$) ook regulier, welke er een unieke
183`vertaling' van een woord $w$ naar zijn palc($w$). De nieuwe woorden zullen in
184het slechtste geval evenveel blijven, maar de taal kan ook kleiner worden.
185
186De andere kant op geldt dit \underline{niet}, als $L$ regulier is, dan is het
187onbeslist of palc\textsuperscript{-1}($L$) ook regulier is. Het kan namelijk
188zeer goed dat een (ingewikkelde) functie die woorden genereerde welke een
189palindroom zijn en die aan een vast prefix ($p$) toegevoegd. De \emph{palc}
190functie zal deze allen naar \'{e}\'{e}n woord omzetten, welke dan regulier is.
191
192
193\section{Opgave 3.69}
194
195Laat $x_1,x_2,\ldots,x_k \in \Sigma^*$. Om te laten zien dat $\Sigma^* -
196x_{1}^{*}x_{2}^{*} \cdots x_{k}^*$ eindig is dan en slechts als $|\Sigma| = 1$
197en gcd($|x_1|,|x_2|,\ldots,|x_k|$) = 1 moet er een paar dingen bewezen worden
198a) aantonen dat het \underline{niet} geldt voor de tegenvoorbeelden a) $gcd
199> 1$ b) $|\Sigma| > 1$ en tevens moet aangetoond worden waarom de eindigheid
200 voor dit specifieke geval geldt.
201
202Merk op dat met een gcd van 1 alle getallen in de verzameling \{1,
203priemgetallen\} zitten. Bij een alfabet van 1 letter hoeft er enkel maar
204gesproken worden over lengtes. Standaard zitten alle lengtes in de taal.
205Aangezien de `deel-lengtes' ($x_1,x_2,\ldots,x_k$) nul of meer keer in de
206verzameling in de verzameling mogen zitten. Zal je uiteindelijk overblijven met
207een eindige set lengtes. In het geval dat er lengte 1 gevonden wordt, zal zelfs
208de lege set het antwoord zijn.
209
210a) Als $|\Sigma| > 1$, bijvoorbeeld $\{1,2\}$ dan kan er een oneindige
211verzameling gemaakt worden, door $x_1,x_2,\ldots,x_k \in 1^*$. De $2*$ zal dan een
212oneindige verzameling vormen.
213
214b) $gcd > 1$, bijvoorbeeld $2$ dan kan er een oneindige verzameling gemaakt
215worden, doordat niet alle woorden gemaakt kunnen worden. Enkel worden van
216`even' lengte in dit geval. Waardoor de `oneven' woorden een eindige string
217gaan vormen. Bij grotere waardes ($r$) kunnen ook 'groepen' (de $|r|* - 1$)
218bijvoorbeeld niet meer bereikt worden, welke dan tot een oneindige verzameling
219kunnen groeien.
220
221\begin{thebibliography}{1}
222\bibitem[JS2009]{JS2009}Jeffrey Shallit, \emph{A second course in formal
223languages and automata theory }, \emph{Cambridge University Press}, 2009.
224\end{thebibliography}
225\newpage
226\end{document}
Note: See TracBrowser for help on using the repository browser.