Tema 2.   Autòmats Finits

Teoria

  • M. Sipser,
    Introduction to the Theory of Computation, Third edition, Cengage Learning, 2012
    Section 1.1 Finite Automata
    Section 1.2  Nondeterminism
    No conté una secció explícita per a la Minimització d’Autòmats, només Problems 1.51 i 1.52.

Veure els següents vídeos:

Exercicis per a l’avaluació contínua

ACLARIMENT: Quan diem “calcula explícitamente", volem dir calculeu l’autòmat aplicant l’algorisme pertinent (intersecció d’autòmats, reunió d’autòmats, …) explicant la costrucció de l’autòmat (intersecció, reunió, ….) i si cal l’algorisme de determinització i l’algorisme de minimització.

Exercici 2.1.

Obtén los DFA’s mínimos A1,A2A_{1},A_{2} para L1={xaayx,y{a,b}*}L_{1}=\{xaay\mid x,y\in\{a,b\}^{*}\} y L2={xbbyx,y{a,b}*}L_{2}=\{xbby\mid x,y\in\{a,b\}^{*}\}, respectivamente, y calcula explícitamente el DFA intersección A1A2A_{1}\cap A_{2}, determinízalo y minimízalo.

Exercici 2.2.

Obtén los DFA’s mínimos A1,A2A_{1},A_{2} para L1={xaayx,y{a,b}*}L_{1}=\{xaay\mid x,y\in\{a,b\}^{*}\} y L2={xbbyx,y{a,b}*}L_{2}=\{xbby\mid x,y\in\{a,b\}^{*}\}, respectivamente, y calcula explícitamente el DFA unión A1A2A_{1}\cup A_{2}, determinízalo y minimízalo.

Exercici 2.3.

Obtén los DFA’s mínimos A1,A2A_{1},A_{2} para L1={xayx,y{a,b}*}L_{1}=\{xay\mid x,y\in\{a,b\}^{*}\} y L2={xbbbyx,y{a,b}*}L_{2}=\{xbbby\mid x,y\in\{a,b\}^{*}\}, respectivamente, y calcula explícitamente el DFA unión A1A2A_{1}\cup A_{2}, determinízalo y minimízalo.

Exercici 2.4.

Obtén el DFA mínimo AA para L={aaww{a,b}*}L=\{aaw\mid w\in\{a,b\}^{*}\}, y calcula explícitamente A¯\overline{A}.

Exercici 2.5.

Obtén el DFA mínimo AA para L={w{0,1}*𝚟𝚊𝚕𝚘𝚛2(w)3˙}L=\{w\in\{0,1\}^{*}\mid\mathtt{valor}_{2}(w)\in\dot{3}\}, y calcula explícitamente A¯\overline{A}.

Exercici 2.6.

Obtén el DFA mínimo AA para L={w{0,1}*|w|3˙+1}L=\{w\in\{0,1\}^{*}\mid|w|\in\dot{3}+1\}, y calcula explícitamente A¯\overline{A}.

Exercici 2.7.

Obtén los DFA’s mínimos A1,A2A_{1},A_{2} para L1={xayax,y{a,b}*}L_{1}=\{xaya\mid x,y\in\{a,b\}^{*}\} y L2={bxbyx,y{a,b}*}L_{2}=\{bxby\mid x,y\in\{a,b\}^{*}\}, respectivamente, y calcula explícitamente el λ\lambda-NFA concatenación A1A2A_{1}\cdot A_{2}, determinízalo y minimízalo.

Exercici 2.8.

Obtén los DFA’s mínimos A1,A2A_{1},A_{2} para L1={xaayx,y{a,b}*}L_{1}=\{xaay\mid x,y\in\{a,b\}^{*}\} y L2={bxbx{a,b}*}L_{2}=\{bxb\mid x\in\{a,b\}^{*}\}, respectivamente, y calcula explícitamente el NFA concatenación A1A2A_{1}\cdot A_{2}, determinízalo y minimízalo.

Exercici 2.9.

Obtén los DFA’s mínimos A1,A2A_{1},A_{2} para L1={xayax,y{a,b}*}L_{1}=\{xaya\mid x,y\in\{a,b\}^{*}\} y L2={bxbx{a,b}*}L_{2}=\{bxb\mid x\in\{a,b\}^{*}\}, respectivamente, y calcula explícitamente el NFA concatenación A1A2A_{1}\cdot A_{2}, determinízalo y minimízalo.

Exercici 2.10.

Obtén el DFA mínimo AA para L={xay{a,b}*|y|=1}L=\{xay\in\{a,b\}^{*}\mid|y|=1\}, y calcula explícitamente el NFA estrella A*A^{*}, determinízalo y minimízalo.

Exercici 2.11.

Obtén el DFA mínimo AA para L={xaby{a,b}*|y|=1}L=\{xaby\in\{a,b\}^{*}\mid|y|=1\}, y calcula explícitamente el NFA estrella A*A^{*}, determinízalo y minimízalo.

Exercici 2.12.

Obtén el DFA mínimo AA para L={axaby{a,b}*|y|=1}L=\{axaby\in\{a,b\}^{*}\mid|y|=1\}, y calcula explícitamente el NFA estrella A*A^{*}, determinízalo y minimízalo.

Exercici 2.13.

Obtén el DFA mínimo AA para L={w{a,b}*w1,w2(w=w1aw2|w1|b2˙)}L=\{w\in\{a,b\}^{*}\mid\forall w_{1},w_{2}(w=w_{1}aw_{2}\Rightarrow|w_{1}|_{b}% \in\dot{2})\}, y calcula explícitamente el NFA reverso ARA^{R}, determinízalo y minimízalo.

Exercici 2.14.

Obtén el DFA mínimo AA para L={w{a,b}*w1,w2(w=w1aw2|w1|b2˙+1)}L=\{w\in\{a,b\}^{*}\mid\forall w_{1},w_{2}(w=w_{1}aw_{2}\Rightarrow|w_{1}|_{b}% \in\dot{2}+1)\}, y calcula explícitamente el NFA reverso ARA^{R}, determinízalo y minimízalo.

Exercici 2.15.

Obtén el DFA mínimo AA para L={w{a,b}*w1,w2(w=w1aw2|w1|2˙)}L=\{w\in\{a,b\}^{*}\mid\forall w_{1},w_{2}(w=w_{1}aw_{2}\Rightarrow|w_{1}|\in% \dot{2})\}, y calcula explícitamente el NFA reverso ARA^{R}, determinízalo y minimízalo.

Exercici 2.16.

Obtén el DFA mínimo AA para L={axbyax,y{a,b}*}L=\{axbya\mid x,y\in\{a,b\}^{*}\}, y dado el morfismo definido por σ(a)=aa,σ(b)=ba\sigma(a)=aa,\;\sigma(b)=ba, calcula explícitamente el NFA imagen σ(A)\sigma(A), determinízalo y minimízalo.

Exercici 2.17.

Obtén el DFA mínimo AA para L={axbycx,y{a,b,c}*}L=\{axbyc\mid x,y\in\{a,b,c\}^{*}\}, y dado el morfismo definido por σ(a)=ab,σ(b)=b,σ(c)=λ\sigma(a)=ab,\;\sigma(b)=b,\;\sigma(c)=\lambda, calcula explícitamente el NFA imagen σ(A)\sigma(A), determinízalo y minimízalo.

Exercici 2.18.

Obtén el DFA mínimo AA para L={xbcyax,y{a,b,c}*}L=\{xbcya\mid x,y\in\{a,b,c\}^{*}\}, y dado el morfismo definido por σ(a)=bbb,σ(b)=a,σ(c)=λ\sigma(a)=bbb,\;\sigma(b)=a,\;\sigma(c)=\lambda, calcula explícitamente el NFA imagen σ(A)\sigma(A), determinízalo y minimízalo.

Exercici 2.19.

Sea AA el DFA mínimo que reconoce a los números binarios múltiples de 33. Calcula σ1(A)\sigma^{-1}(A) tomando como σ\sigma los morfismos:

  1. (aa)  

    σ(a)=01,σ(b)=0,σ(c)=λ\sigma(a)=01,\;\sigma(b)=0,\;\sigma(c)=\lambda.

  2. (bb)  

    σ(a)=10,σ(b)=0,σ(c)=λ\sigma(a)=10,\;\sigma(b)=0,\;\sigma(c)=\lambda.

  3. (cc)  

    σ(a)=00,σ(b)=11,σ(c)=λ\sigma(a)=00,\;\sigma(b)=11,\;\sigma(c)=\lambda.

  4. (dd)  

    σ(a)=001,σ(b)=101,σ(c)=0\sigma(a)=001,\;\sigma(b)=101,\;\sigma(c)=0.

Exercici 2.20.

Diseña un algoritmo de coste razonable para encontrar los estados no accesibles de un DFA de entrada.

Exercici 2.21.

Diseña un algoritmo de coste razonable para decidir si un DFA de entrada acepta alguna palabra.

Exercici 2.22.

Diseña un algoritmo de coste razonable para decidir si un DFA de entrada acepta infinitas palabras.

Exercici 2.23.

Cuál es el coste del algoritmo de determinización de NFA’s en DFA’s.

Exercici 2.24.

Cuál es el coste temporal de las siguentes operaciones de DFA’s:

  1. (aa)  

    intersección.

  2. (bb)  

    unión.

  3. (cc)  

    complementario.

  4. (dd)  

    concatenación (incluyendo determinización).

  5. (ee)  

    estrella (incluyendo determinización).

  6. (ff)  

    reverso (incluyendo determinización).

  7. (gg)  

    aplicación de morfismo (incluyendo determinización).

  8. (hh)  

    aplicación de morfismo inverso.

Exercici 2.25.

Cuál es el coste del algoritmo de minimización con una implementación razonable.

Exercici 2.26.

Propón un algoritmo de coste razonable para saber si dos DFA’s de entrada reconocen el mismo lenguaje.

Exercici 2.27.

Propón un algoritmo de coste razonable para saber, si dados dos DFA’s de entrada, el lenguaje generado por el primero está incluido en el lenguaje generado por el segundo.

Exercici 2.28.

Justifiqueu la veracitat o falsetat de les següents afirmacions per a DFAs mínims A,A1,A2A,A_{1},A_{2}, NFAs B,B1,B2,B3B,B_{1},B_{2},B_{3} i morfisme σ\sigma. En cas que les operacions que apareixen hagin estat definides només per a DFAs, assumiu la seva extensió natural a NFAs.

  1. (aa)  

    A1A2A_{1}\cap A_{2} és DFA mínim.

  2. (bb)  

    A1A2A_{1}\cup A_{2} és DFA mínim.

  3. (cc)  

    A¯\bar{A} és DFA mínim.

  4. (dd)  

    σ(A)\sigma(A) és DFA.

  5. (ee)  

    σ1(A)\sigma^{-1}(A) és DFA mínim.

  6. (ff)  

    A¯¯=A\bar{\bar{A}}=A.

  7. (gg)  

    (BR)R=B(B^{R})^{R}=B.

  8. (hh)  

    (B*)*=B*(B^{*})^{*}=B^{*}.

  9. (ii)  

    (B1B2)B3=B1(B2B3)(B_{1}B_{2})B_{3}=B_{1}(B_{2}B_{3}).

  10. (jj)  

    (B1B2)R=B2RB1R(B_{1}B_{2})^{R}=B_{2}^{R}B_{1}^{R}.

  11. (kk)  

    (BR)*=(B*)R(B^{R})^{*}=(B^{*})^{R}.

  12. (ll)  

    En el cas en que ARA^{R} també sigui DFA, llavors podem concloure que és mínim.

Exercici 2.29.

Decimos que un NFA es de aceptación única si para cada palabra aceptada existe una única ejecución aceptadora. Demuestra que, para un NFA de aceptación única AA, ARA^{R} es un NFA de aceptación única.

Exercici 2.30.

Dado un lenguaje LL, definimos 𝙿𝚛𝚎𝚏𝚒𝚓𝚘𝚜(L){\tt Prefijos}(L) como el lenguaje {w|x:(wxL)}\{w|\exists x:\,(wx\in L)\}. Dado un DFA AA, cómo se puede construir un DFA 𝙿𝚛𝚎𝚏𝚒𝚓𝚘𝚜(A){\tt Prefijos}(A) que cumpla (𝙿𝚛𝚎𝚏𝚒𝚓𝚘𝚜(A))=𝙿𝚛𝚎𝚏𝚒𝚓𝚘𝚜((A)){\mathcal{L}}({\tt Prefijos}(A))={\tt Prefijos}({\mathcal{L}}(A)).

Exercici 2.31.

Dado un lenguaje LL, definimos 𝚂𝚞𝚏𝚒𝚓𝚘𝚜(L){\tt Sufijos}(L) como el lenguaje {w|x:(xwL)}\{w|\exists x:(xw\in L)\}. Dado un DFA AA, cómo se puede construir un DFA 𝚂𝚞𝚏𝚒𝚓𝚘𝚜(A){\tt Sufijos}(A) que cumpla (𝚂𝚞𝚏𝚒𝚓𝚘𝚜(A))=𝚂𝚞𝚏𝚒𝚓𝚘𝚜((A)){\mathcal{L}}({\tt Sufijos}(A))={\tt Sufijos}({\mathcal{L}}(A)).

Exercici 2.32.

Donats dos llenguatges L1,L2Σ*L_{1},L_{2}\subseteq\Sigma^{*} , definim

𝚒𝚗𝚝𝚎𝚛𝚌𝚊𝚕𝙰𝙽𝙳(L1,L2)={x1y1xnyn|(n1)(x1,,xn,y1,,ynΣ)(x1xnL1)(y1ynL2)}{\tt intercalAND}(L_{1},L_{2})=\{x_{1}y_{1}...x_{n}y_{n}|(n\geq 1)\,\wedge\,(x% _{1},...,x_{n},y_{1},...,y_{n}\in\Sigma)\,\wedge\,(x_{1}...x_{n}\in L_{1})\,% \wedge\,(y_{1}...y_{n}\in L_{2})\}

Demostreu que si L1L_{1} i L2L_{2} són regulars, aleshores 𝚒𝚗𝚝𝚎𝚛𝚌𝚊𝚕𝙰𝙽𝙳(L1,L2){\tt intercalAND}(L_{1},L_{2}) també és regular.

Exercici 2.33.

Donat un llenguatge LL, definim 𝙵𝚒𝚛𝚜𝚝𝙷𝚊𝚕𝚏(L)={x|y:(|x|=|y|xyL)}{\tt FirstHalf}(L)=\{x\,|\exists y:\,(|x|=|y|\,\wedge\,xy\in L)\}. Demostreu que si LL és regular, aleshores 𝙵𝚒𝚛𝚜𝚝𝙷𝚊𝚕𝚏(L){\tt FirstHalf}(L) és regular.

Exercici 2.34.

Dado un natural nn definimos Ln={w{0,1}*|k:(𝚟𝚊𝚕𝚘𝚛2(w)=k2n)}L_{n}=\{w\in\{0,1\}^{*}|\exists k:\,({\tt valor}_{2}(w)=k\cdot 2^{n})\}. Justifica que cualquier LnL_{n} es regular. Cuantos estados tiene el DFA mínimo que reconoce LnL_{n}?

Exercici 2.35.

Sigui Bn={ak|kés un múltiple de n}B_{n}=\{a^{k}\,|\,k\,\text{és un múltiple de }n\}. Demostreu que per a cada n1n\geq 1, el llenguatge BnB_{n} és regular.

Exercici 2.36.

Sigui Cn={x{0,1}*|𝚟𝚊𝚕𝚘𝚛2(x)és un múltiple de n}C_{n}=\{x\in\{0,1\}^{*}\,|{\tt valor}_{2}(x)\,\text{és un múltiple de }n\}. Demostreu que per a cada n1n\geq 1, el llenguatge CnC_{n} és regular.

Exercici 2.37.

Demostreu que el llenguatge Ln={xayx,y{a,b}*|y|=n}L_{n}=\{xay\mid x,y\in\{a,b\}^{*}\;\wedge\;|y|=n\}, per a n0n\geq 0, té un DFA de 2n+12^{n+1} estats.

Exercici 2.38.

Cuantos estados tiene el DFA mínimo que reconoce las palabras sobre {a,b,c}\{a,b,c\} que contienen al menos 100100 ocurrencias de cada uno de estos tres símbolos?