\documentclass[a4paper,11pt]{article}
\usepackage[croatian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{concrete,amsmath,amsthm,amssymb,stmaryrd,fancyhdr,graphicx}

\addtolength{\hoffset}{-1cm}\addtolength{\textwidth}{2cm}
\addtolength{\voffset}{-2cm}\addtolength{\textheight}{2cm}
\setlength{\headheight}{3em}
\setlength{\arraycolsep}{2pt}
\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}

\pagestyle{fancy}
\fancyhead[L]{Filip Nikšić}
\fancyhead[R]{MTR---Zadaća 2, originalni dio}

%%% Enumeracije
\renewcommand{\labelenumi}{(\alph{enumi})} % redefinira labelu countera u enumeracijama prve dubine

%%% Konkretna matematika
\newcommand{\rast}[1]{\overline{#1}}
\newcommand{\pad}[1]{\underline{#1}}
\newcommand{\hiper}[3]{\ensuremath{\left(\genfrac{}{}{0pt}{}{#1}{#2}\,\Big|\,#3\right)}}

%%% Logicki simboli
\newcommand{\ekv}{\ensuremath{\ \Leftrightarrow\ }}
\newcommand{\Ekv}{\ensuremath{\ \Longleftrightarrow\ }}
\newcommand{\slijedi}{\ensuremath{\ \Rightarrow\ }}
\newcommand{\Slijedi}{\ensuremath{\ \Longrightarrow\ }}

%%% Relacije
\renewcommand{\ge}{\geqslant}
\renewcommand{\le}{\leqslant}
\newcommand{\tmanje}{\trianglelefteqslant} % treba paket stmaryrd

%%% Matematicka teorija racunarstva
\newcommand{\fix}{\ensuremath{\text{fix}\,}}

%%% Ostalo
\renewcommand{\tt}{\texttt}
\newcommand{\potez}[1]{\overline{#1}}
\newcommand{\id}{\ensuremath{\text{id}}}
\renewcommand{\epsilon}{\varepsilon}

\theoremstyle{definition}
\newtheorem{zad}{Zadatak}

\renewcommand{\qedsymbol}{$\blacksquare$}

\title{Matematička teorija računarstva\\ Zadaća 2}
\author{Filip Nikšić\\ \tt{fniksic@gmail.com}}
\date{10.~ožujka 2008.}

\begin{document}

\maketitle

\section*{Originalni dio}

%\setcounter{zad}{0}

\begin{zad}
  Opišite riječima najmanje tri jezika te za njih konstruirajte regularne izraze.
\end{zad}

\begin{proof}[Rješenje]
  Neka je $\Sigma = \{\tt{0}, \tt{1}, \ldots, \tt{9}, \tt{a}, \tt{b}, \ldots, \tt{z} \}$ skup koji sadrži znamenke
  i mala slova engleske abecede.
  \begin{itemize}
    \item $L_1 = \bigl\{ w \in \Sigma^\star\ \big|\ w\text{ sadrži riječ \tt{filip} kao podriječ} \bigr\}$

      Regularan izraz za ovaj jezik je jednostavan: $ \Sigma^\star\tt{filip}\Sigma^\star $.
    \item $L_2 = \bigl\{ w \in \{\tt{0}, \tt{1}\}^\star\ \big|\ \text{iza svake \tt{0} nalazi se točno jedna \tt{1}} \bigr\}$
      
      Regularan izraz je opet jednostavan: $\tt{1}^\star(\tt{01})^\star$.
    \item $L_3 = \bigl\{ w \in \Sigma^\star\ \big|\ w \text{ sadrži paran broj pojava podriječi \tt{filip}} \bigr\}$

      Ovaj put regularan izraz nije toliko očit. No nije toliko teško konstruirati DKA koji prepoznaje $L_3$.

      \begin{center}
        \includegraphics{automat4.1}
      \end{center}

      Konstruiramo skupovne jednadžbe ($\Sigma\backslash\tt{x}$ je skraćena oznaka za $\Sigma\backslash\{\tt{x}\}$):
      \begin{align*}
        A &= (\Sigma\backslash\tt{f})A + \tt{f}B + \epsilon & F &= (\Sigma\backslash\tt{f})F + \tt{f}G \\
	B &= (\Sigma\backslash\tt{i})A + \tt{i}C + \epsilon & G &= (\Sigma\backslash\tt{i})F + \tt{i}H \\
	C &= (\Sigma\backslash\tt{l})A + \tt{l}D + \epsilon & H &= (\Sigma\backslash\tt{l})F + \tt{l}I \\
	D &= (\Sigma\backslash\tt{i})A + \tt{i}E + \epsilon & I &= (\Sigma\backslash\tt{i})F + \tt{i}J \\
	E &= (\Sigma\backslash\tt{p})A + \tt{p}F + \epsilon & J &= (\Sigma\backslash\tt{p})F + \tt{p}A
      \end{align*}

      Uvrštavanjem unatrag $J$ u $I$, pa $I$ u $H$, pa $H$ u $G$, pa $G$ u $F$ i korištenjem Ardenove leme
      otkrivamo da je
        $$F = \bigl(\Sigma\backslash\tt{f}+\tt{f}(\Sigma\backslash\tt{i})+\tt{fi}(\Sigma\backslash\tt{l})+
	      \tt{fil}(\Sigma\backslash\tt{i})+\tt{fili}(\Sigma\backslash\tt{p})\bigr)^\star\tt{filip}A$$
      
      Nastavljamo uvrštavati unatrag: $F$ u $E$, $E$ u $D$, $D$ u $C$, $C$ u $B$ i konačno $B$ u $A$.
      \begin{align*}
        A = &\ \bigl(\Sigma\backslash\tt{f}+\tt{f}(\Sigma\backslash\tt{i})+\tt{fi}(\Sigma\backslash\tt{l})+
	      \tt{fil}(\Sigma\backslash\tt{i})+\tt{fili}(\Sigma\backslash\tt{p})\bigr)A \\
	  &+ \tt{filip}\bigl(\Sigma\backslash\tt{f}+\tt{f}(\Sigma\backslash\tt{i})+\tt{fi}(\Sigma\backslash\tt{l})+
	     \tt{fil}(\Sigma\backslash\tt{i})+\tt{fili}(\Sigma\backslash\tt{p})\bigr)^\star\tt{filip}A \\
	  &+ \tt{fili}+\tt{fil}+\tt{fi}+\tt{f}+\epsilon
      \end{align*}

      Još jednim iskorištavanjem Ardenove leme dobivamo konačan regularan izraz. Zbog kraćeg zapisa uvodimo
      oznaku $\Lambda = \bigl(\Sigma\backslash\tt{f}+\tt{f}(\Sigma\backslash\tt{i})+\tt{fi}(\Sigma\backslash\tt{l})+
      \tt{fil}(\Sigma\backslash\tt{i})+\tt{fili}(\Sigma\backslash\tt{p})\bigr)$.
      $$ A = \bigl( \Lambda + \tt{filip}\,\Lambda^\star\,\tt{filip} \bigr)^\star (\tt{fili}+\tt{fil}+\tt{fi}+\tt{f}+\epsilon) $$
  \end{itemize}
\end{proof}

%\newpage

\begin{zad}[10 bodova]
  Riješite sustav skupovnih jednadžbi:
  \begin{align*}
    U &= \epsilon + \tt{d}V + \tt{a}\Lambda + \tt{g}U \\
    V &= \tt{f}U + \tt{e}V \\
    \Lambda &= \tt{c}U + \tt{b}\Lambda
  \end{align*}
\end{zad}

\begin{proof}[Rješenje]
  Prvo izražavamo $V$ i $\Lambda$ preko $U$ i uvrštavamo to u jednadžbu za $U$:
  \begin{align*}
    V &= \tt{e}^\star\tt{f}U \\
    \Lambda &= \tt{b}^\star\tt{c}U \\
    U &= \epsilon + \tt{d}\tt{e}^\star\tt{f}U + \tt{a}\tt{b}^\star\tt{c}U + \tt{g}U
  \end{align*}
  Korištenjem Ardenove leme dobivamo $U$ pa to koristimo da dobijemo $V$ i $\Lambda$:
  \begin{align*}
    U &= (\tt{d}\tt{e}^\star\tt{f} + \tt{a}\tt{b}^\star\tt{c} + \tt{g})^\star \\
    V &= \tt{e}^\star\tt{f}(\tt{d}\tt{e}^\star\tt{f} + \tt{a}\tt{b}^\star\tt{c} + \tt{g})^\star \\
    \Lambda &= \tt{b}^\star\tt{c}(\tt{d}\tt{e}^\star\tt{f} + \tt{a}\tt{b}^\star\tt{c} + \tt{g})^\star
  \end{align*}
\end{proof}

%\newpage

\begin{zad}[20 bodova]
  Neka su $\Sigma$ i $\Gamma$ dvije (ne nužno različite) abecede i neka je $f\colon\Sigma\to\Gamma^\star$
  proizvoljna funkcija. Proširimo $f$ na riječi nad abecedom $\Sigma$:
  $$f(\epsilon):=\epsilon,\quad f(w_1 w_2\ldots w_n) := f(w_1)f(w_2)\ldots f(w_n),\quad w_1, \ldots, w_n\in\Sigma$$
  Dokažite ili opovrgnite: Za regularan jezik $L\subseteq\Sigma^\star$ slika $f(L):=\{f(v)\,|\,v\in L\}$
  je također regularan jezik.
\end{zad}

\begin{proof}[Rješenje]
  Definirajmo transformaciju regularnog izraza $R$ nad $\Sigma$ u regularan izraz $R'$ nad $\Gamma$
  na sljedeći način: za sve $x\in\Sigma$ svaku pojavu znaka $x$ u $R$ zamijenimo sa $f(x)$.

  Indukcijom po duljini izraza $R$ dokazujemo da je $L(R')=f(L(R))$. Za $R=\varnothing$ i $R=\epsilon$
  tvrdnja očito vrijedi. Za $R=x$ gdje je $x\in\Sigma$ je $R'=f(x)$ pa zbog $f(L(x))=f(\{x\})=\{f(x)\}=L(f(x))$
  tvrdnja vrijedi.

  Pretpostavimo da tvrdnja vrijedi za sve regularne izraze čija je duljina manja od $n$ za neki $n>1$. Neka
  je $R$ izraz duljine $n$. Tad je $R$ oblika $R_1+R_2$, $R_1R_2$ ili $R_1^\star$.
  
  U prvom slučaju $R'$ je očito oblika $R_1'+R_2'$. Vrijedi
    $$ f(L(R)) = f(L(R_1+R_2)) = f(L(R_1)\cup L(R_2))=f(L(R_1))\cup f(L(R_2))\,.$$
  Duljina $R_1$ i $R_2$ strogo je manja od $n$ pa po pretpostavci indukcije dalje vrijedi
    $$ f(L(R)) = L(R_1')\cup L(R_2') = L(R_1'+R_2') = L(R') \,.$$

  U slučaju kad je $R$ oblika $R_1R_2$ očito je $R'$ oblika $R_1'R_2'$. Imamo:
    $$ f(L(R)) = f(L(R_1R_2)) = f(L(R_1)L(R_2)) $$
  Zbog definicije funkcije $f$ vrijedi $f(uv)=f(u)f(v)$ gdje su $u$ i $v$ riječi iz $\Sigma^\star$. To
  povlači $f(L(R_1)L(R_2))=f(L(R_1))f(L(R_2))$ pa uvažavajući i pretpostavku indukcije vrijedi:
    $$ f(L(R)) = L(R_1')L(R_2') = L(R_1'R_2') = L(R') \,.$$

  Treći slučaj je zbog definicije zvijezde kombinacija prethodna dva pa se dokazuje analogno.

  Tvrdnja zadatka sad direktno slijedi iz dokazanog. Naime, za regularan jezik $L$ koji je opisan regularnim
  izrazom $R$, slika $f(L)$ je opisana regularnim izrazom $R'$ pa je ona također regularan jezik.
\end{proof}

%\newpage

\begin{zad}[15 bodova]
  Dokaži ili opovrgni: regularni izrazi $R=\tt{a}^\star(\tt{ba}+\tt{aa})^\star$,
  $S=\tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star$ i
  $T=\tt{a}^\star\bigl(\tt{ba}(\tt{aa}+\tt{ba})^\star + \epsilon\bigr)$ svi opisuju
  isti regularan jezik.
\end{zad}

\begin{proof}[Rješenje]
  Dokažimo da $R$ i $S$ opisuju iste jezike. Naime, neka je $w$ riječ iz jezika opisanog
  izrazom $R=\tt{a}^\star(\tt{aa}+\tt{ba})^\star$. Ukoliko $w$ ne sadrži znak $\tt{b}$,
  očito je $w\in\tt{a}^\star\subseteq\tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star$.
  Ako $w$ sadrži $\tt{b}$, onda je $w$ oblika
  $$w=\tt{a}^k(\tt{aa})^{l_1}(\tt{ba})^{m_1}\ldots(\tt{aa})^{l_n}(\tt{ba})^{m_n}(\tt{aa})^{l_{n+1}}$$
  pri čemu je BSO $m_i\neq 0$. (Ako je $m_i=0$, spojimo $(\tt{aa})^{l_i}(\tt{aa})^{l_{i+1}}=
  (\tt{aa})^{l_i+l_{i+1}}$.) Sad imamo:
  \begin{align*}
    w &= \tt{a}^{k+2l_1}(\tt{ba})^{m_1-1}\bigl(\tt{ba}(\tt{aa})^{l_2}\bigr)\ldots(\tt{ba})^{m_n-1}
         \bigl(\tt{ba}(\tt{aa})^{l_{n+1}}\bigr) \\
      &\in \tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^{m_1-1}\bigl(\tt{ba}(\tt{aa})^\star\bigr)
         \ldots\bigl(\tt{ba}(\tt{aa})^\star\bigr)^{m_n-1}\bigl(\tt{ba}(\tt{aa})^\star\bigr) \\
      &= \tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^{m_1+\ldots +m_n} \\
      &\subseteq \tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star
  \end{align*}

  Obrnuto je lakše. Naime
    $$\tt{aa}\subseteq\tt{ba}+\tt{aa}\quad\Slijedi\quad (\tt{aa})^\star\subseteq(\tt{ba}+\tt{aa})^\star\,.$$
  Nadalje, $\tt{ba}\subseteq\tt{ba}+\tt{aa}$ pa imamo
  \begin{align*}
    \tt{ba}(\tt{aa})^\star &\subseteq(\tt{ba}+\tt{aa})(\tt{ba}+\tt{aa})^\star\subseteq (\tt{ba}+\tt{aa})^\star \\
    \bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star &\subseteq \bigl((\tt{ba}+\tt{aa})^\star\bigr)^\star = (\tt{ba}+\tt{aa})^\star \\
    \tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star &\subseteq \tt{a}^\star(\tt{ba}+\tt{aa})^\star
  \end{align*}

  Dokažimo da $S$ i $T$ opisuju iste jezike. Prvo pokažimo da je $\bigl(\tt{ba}(\tt{aa})^\star\bigr)^k
  \subseteq \tt{ba}(\tt{ba}+\tt{aa})^\star$ za svaki $k>0$. Naime, za $k=1$ tvrdnja očito vrijedi.
  Pretpostavimo da vrijedi za neki $k>0$. Tad je
  \begin{align*}
    \bigl(\tt{ba}(\tt{aa})^\star\bigr)^{k+1} &= \bigl(\tt{ba}(\tt{aa})^\star\bigr)^k\tt{ba}(\tt{aa})^\star \\
      &\subseteq \tt{ba}(\tt{ba}+\tt{aa})^\star\tt{ba}(\tt{aa})^\star \\
      &\subseteq \tt{ba}(\tt{ba}+\tt{aa})^\star(\tt{ba}+\tt{aa})(\tt{ba}+\tt{aa})^\star \\
      &\subseteq \tt{ba}(\tt{ba}+\tt{aa})^\star
  \end{align*}
  Iz ovog zaključujemo da je
  \begin{align*}
    \bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star &\subseteq \tt{ba}(\tt{ba}+\tt{aa})^\star + \epsilon \\
    \tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star &\subseteq \tt{a}^\star\bigl(\tt{ba}(\tt{ba}+\tt{aa})^\star + \epsilon\bigr)
  \end{align*}

  U obratnom slučaju pokažimo da je $\tt{ba}(\tt{aa}+\tt{ba})^\star\subseteq \bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star$. Naime,
  riječ $w$ iz jezika s lijeve strane je oblika
    $$w=\tt{ba}(\tt{aa})^{k_1}(\tt{ba})^{l_1}\ldots(\tt{aa})^{k_n}(\tt{ba})^{l_n}(\tt{aa})^{k_{n+1}}\,$$
  s tim da kao i u prvom dijelu zadatka možemo BSO pretpostaviti $l_i\neq0$. Daljnje zaključivanje je također sasvim analogno
  onom u prvom dijelu zadatka. Imamo $w\in\bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star$. Kad sve skupimo dobijemo:
  \begin{align*}
    \tt{ba}(\tt{aa}+\tt{ba})^\star+\epsilon &\subseteq \bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star \\
    \tt{a}^\star\bigl(\tt{ba}(\tt{aa}+\tt{ba})^\star+\epsilon\bigr) &\subseteq \tt{a}^\star\bigl(\tt{ba}(\tt{aa})^\star\bigr)^\star
  \end{align*}
\end{proof}

\end{document}
