Las máquinas que están en varios lugares





No se puede estar en la procesión y tocando la campana — Dicho popular



Ivan Meza

Autómata finito

Es una tupla $(Q,\Sigma,q_0,A,\delta)$

  • $Q$ conjunto finito de estados
  • $\Sigma$ un alfabeto
  • $q_0$ estado inicial, $q_0 \in Q$
  • $A$ conjunto de estados finales, $A \subseteq Q$
  • $\delta$ función de transición $\delta:Q \times \Sigma \rightarrow Q$

Estrategías diferentes entre AF y ER

  • ER: definir el patrón, cachar lo extra que no rompa el patrón
    Descriptivo
  • AF: pensar que se necesita recordar para cachar el patrón
    Procedural

Mayor flexibilidad a los AF

Problema

Un cobro de una máquina chicles de 5 pesos que sólo acepta monedas de 1, 2 y 5 pesos

  • $\Sigma=\{1,2,5\}$

Secuencias posibles

  • $\{1,1,1,1,1\}$
  • $\{1,1,1,2\}$
  • $\{1,2,2\}$
  • $\{5\}$

q₀ q₁₁ q₂₁ q₃₁ q₄₁ q₅ q₀ q₁₂ q₁₁-₁₂ q₂₁-q₁₂ q₅ q₀ q₁₁ q₁₁-₁₂ q₂₁-q₁₂ q₅ q₀ q₁₁ q₂₁ q₂₁-₁₂ q₅ q₀ q₁₁ q₂₁ q₃₁ q₅ q₀ q₁₂ q₂₂ q₅ q₀ q₁₂ q₁₁-₁₂ q₅ q₀ q₁₁ q₁₁-₁₂ q₅ q₀ q₅ 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 2 2 1 2 1 2 1 2 2 5

Reorganizando

q₀ q₁₁ q₂₁ q₃₁ q₄₁ q₅ q₀ q₁₂ q₁₁-₁₂ q₂₁-q₁₂ q₅ q₀ q₁₁ q₁₁-₁₂ q₂₁-q₁₂ q₅ q₀ q₁₁ q₂₁ q₂₁-₁₂ q₅ q₀ q₁₁ q₂₁ q₃₁ q₅ q₀ q₁₂ q₂₂ q₅ q₀ q₁₂ q₁₁-₁₂ q₅ q₀ q₁₁ q₁₁-₁₂ q₅ q₀ q₅ 1 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 2 2 1 2 1 2 1 2 2 5

Juntando

q₁₁ q₂₁ q₃₁ q₄₁ q₅ q₁₂ q₁₁-₁₂ q₂₁-₁₂ q₁₁ q₁₁-₁₂ q₂₁-₁₂ q₁₁ q₂₁ q₂₁-₁₂ q₀ q₁₁ q₂₁ q₃₁ q₁₂ q₂₂ q₁₂ q₁₁-₁₂ q₁₁ q₁₁-₁₂ 1 1 1 1 1 1 2 1 1 2 1 1 1 2 1 2 1 1 1 1 2 2 2 2 1 1 2 1 2 1 5

¿Qué regla se rompe?

Automáta finito no determinístico

Es una tupla $(Q,\Sigma,q_0,A,\delta)$

  • $Q$ conjunto finito de estados
  • $\Sigma$ un alfabeto
  • $q_0 \in Q$ estado inicial
  • $A \subseteq Q$ estados finales
  • $\delta :Q \times \Sigma \rightarrow 2^Q$

El conjunto de conjuntos

Con el conjunto $C$, $2^C$ es el conjunto de todos los conjuntos posibles con elementos de $C$

  • Con $\{a,b\}$
  • $2^{\{a,b\}}=\{\emptyset, \{a\},\{b\},\{a,b\}\}$
  • Número de conjuntos $2^{|C|}$

La función de transición de un AFND

$\delta:Q \times A \rightarrow 2^Q$

$\delta$ regresa un conjunto de estados

AF vs AFND

Ambos, son una tupla $(Q,\Sigma,q_0,A,\delta)$

AFAFND
$Q$ $Q$
$\Sigma$ $\Sigma$
$q_0 \in Q$ $q_0 \in Q$
$A \subseteq Q$ $A \subseteq Q$
$\delta: Q \times A \rightarrow Q$ $\delta: Q \times A \rightarrow 2^Q$

De nuevo

q₁₁ q₂₁ q₃₁ q₄₁ q₅ q₁₂ q₁₁-₁₂ q₂₁-₁₂ q₁₁ q₁₁-₁₂ q₂₁-₁₂ q₁₁ q₂₁ q₂₁-₁₂ q₀ q₁₁ q₂₁ q₃₁ q₁₂ q₂₂ q₁₂ q₁₁-₁₂ q₁₁ q₁₁-₁₂ 1 1 1 1 1 1 2 1 1 2 1 1 1 2 1 2 1 1 1 1 2 2 2 2 1 1 2 1 2 1 5

Autómata ejemplo

  • $Q=\{q_0,q_{11/1},q_{11/2},q_{11/3},q_{11/4},q_{11/5},q_{12/6},q_{12/7},q_{12/8},$ $q_{21/1},q_{11-12/2},q_{11-12/3},q_{21/4},q_{21/5},q_{22/6},q_{11-21/7},q_{11-21/8},$ $q_{31/1}, q_{21-12/3},q_{21-12/4},q_{31/5},q_{21-12/8},$ $q_{41/1},q_{5}\}$
  • $\Sigma=\{1,2,5\}$
  • $q_0=q_0$
  • $A=\{q_5\}$

Función de transición

Q 1 2 5
$q_0$ $\{q_{11/1},q_{11/2},q_{11/3},q_{11/4},q_{11/5}\}$ $\{q_{12/6},q_{12/7},q_{12/8}\}$ $\{q_5\}$
$q_{11/1}$ $\{q_{21/1}\}$ $\emptyset$ $\emptyset$
$q_{21/1}$ $\{q_{31/1}\}$ $\emptyset$ $\emptyset$
$q_{31/1}$ $\{q_{41/1}\}$ $\emptyset$ $\emptyset$
$q_{41/1}$ $\{q_5\}$ $\emptyset$ $\emptyset$
$q_{11/2}$ $\emptyset$ $\{q_{11-12/2}\}$ $\emptyset$
$q_{11-12/2}$ $\emptyset$ $\{q_5\}$ $\emptyset$

Función de transición (cont.)

Q 1 2 5
$q_{11/3}$ $\emptyset$ $\{q_{11-12/3}\}$ $\emptyset$
$q_{11-12/3}$ $\{q_{21-12/3}\}$ $\emptyset$ $\emptyset$
$q_{21-12/3}$ $\{q_5\}$ $\emptyset$ $\emptyset$
$q_{11/4}$ $\{q_{21/4}\}$ $\emptyset$ $\emptyset$
$q_{21/4}$ $\emptyset$ $\{q_{21-12/4}\}$ $\emptyset$
$q_{21-12/4}$ $\{q_5\}$ $\emptyset$ $\emptyset$
$q_{11/5}$ $\{q_{21/5}\}$ $\emptyset$ $\emptyset$
$q_{21/5}$ $\{q_{31/5}\}$ $\emptyset$ $\emptyset$
$q_{31/5}$ $\emptyset$ $\{q_5\}$ $\emptyset$

Función de transición (cont. 2)

Q 1 2 5
$q_{12/6}$ $\emptyset$ $\{q_{22/6}\}$ $\emptyset$
$q_{22/6}$ $\{q_5\}$ $\emptyset$ $\emptyset$
$q_{12/7}$ $\{q_{11-12/7}\}$ $\emptyset$ $\emptyset$
$q_{11-12/7}$ $\emptyset$ $\{q_5\}$ $\emptyset$
$q_{12/8}$ $\{q_{11-12/8}\}$ $\emptyset$ $\emptyset$
$q_{11-12/8}$ $\{q_{21-12/8}\}$ $\emptyset$ $\emptyset$
$q_{21-12/8}$ $\{q_5\}$ $\emptyset$ $\emptyset$

Cadenas aceptadas por un AFND

$\delta^*=\begin{cases} \delta^*(q,\epsilon)=\{q\} & q \in Q \\ \delta^*(q,wa)= \bigcup\limits_{r \in \delta^*(q,w)}\delta(r,a) & q,r \subseteq Q, w \subseteq \Sigma^*, a \subseteq \Sigma \\ \end{cases}$

Acepta el siguiente pago: $122$

  • $\delta^*(q_0,122)=$ $\bigcup\limits_{r_1\in\delta^*(q_0,12)}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\bigcup\limits_{r_2\in\delta^*(q_0,1)}\delta(r_2,2)}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\bigcup\limits_{r_2\in\bigcup\limits_{r_3\in\delta^*(q_0,\epsilon)}\delta(r_3,1)}\delta(r_2,2)}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\bigcup\limits_{r_2\in\bigcup\limits_{r_3\in\{q_0\}}\delta(r_3,1)}\delta(r_2,2)}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\bigcup\limits_{r_2\in\bigcup\limits_{r_3\in\{q_0\}}\delta(r_3,1)}\delta(r_2,2)}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\bigcup\limits_{r_2\in\delta(q_0,1)}\delta(r_2,2)}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\bigcup\limits_{r_2\in\{ q_{11/1},q_{11/2},q_{11/3},q_{11/4},q_{11/5} \}}\delta(r_2,2)}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\{ \delta(q_{11/1},2) \cup \delta(q_{11/2},2) \cup \delta(q_{11/3},2) \cup \delta(q_{11/4},2) \cup \delta(q_{11/5},2) \}}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\{ \emptyset \cup \{q_{11-12/2}\} \cup \{q_{11-12/3}\} \cup \emptyset \cup \emptyset \}}\delta(r_1,2)$
  • $=\bigcup\limits_{r_1\in\{ q_{11-12/2},q_{11-12/3}\} \}}\delta(r_1,2)$
  • $=\delta(q_{11-12/2},2) \bigcup \delta(q_{11-12/3},2) $
  • $=\{q_5 \} \bigcup \emptyset $
  • $=\{q_5 \}$

Para el AFND $M=(Q,\Sigma,q_0,A,\delta)$

La cadena $w\in \Sigma^*$ se acepta si:

  • $\delta^*(q_0,w) \bigcap A \not = \emptyset$

$L(M)$ es el lenguaje conformado por cadenas aceptadas por $M$

  • $\delta^*(q_0,122)=\{q_5\}$
  • $\{q_5\} \cap A = \{q_5\} \cap \{q_5\} = \{q_5\} \not = \emptyset$

La cadena se acepta

Reduciendo el AFND a un AF

Comenzar por codificar los estados de forma binaria

$|q_0,q_{11/1},q_{11/2},q_{11/3},q_{11/4},q_{11/5},q_{12/6},q_{12/7},q_{12/8},$ $q_{21/1},q_{11-12/2},q_{11-12/3},q_{21/4},q_{21/5},q_{22/6},q_{11-21/7},q_{11-21/8},$ $q_{31/1},q_{21-12/3},q_{21-12/4},q_{31/5},q_{21-12/8},$ $q_{41/1},q_{5}|=24$

0-00000000-00000000-00000-0-0

$2^Q$ 1 2 5
$1:00000000$ $00000000$ $00000:0:0$ $0:11111000:$ $00000000$ $00000:0:0$* $0:00000111$ $00000000$ $00000:0:0$* $0:00000000$ $00000000$ $00000:0:1$*
$2^Q$ 1 2 5
$1:00000000$ $00000000$ $00000:0:0$ $0:11111000:$ $00000000$ $00000:0:0$ $0:00000111$ $00000000$ $00000:0:0$ $0:00000000$ $00000000$ $00000:0:1$
$0:11111000$ $00000000$ $00000:0:0$ $0:00000000$ $10011000$ $00000:0:0$* $0:00000000$ $01100000$ $00000:0:0$* $\emptyset$
$0:00000111$ $00000000$ $00000:0:0$ $0:00000000$ $00000011$ $00000:0:0$* $0:00000000$ $00000100$ $00000:0:0$* $\emptyset$
$0:00000000$ $00000000$ $00000:0:1$ $\emptyset$ $\emptyset$ $\emptyset$
$2^Q$ 1 2 5
$0:00000000$ $10011000$ $00000:0:0$ $0:00000000$ $00000000$ $10010:0:0$* $0:00000000$ $00000000$ $00100:0:0$* $\emptyset$
$0:00000000$ $01100000$ $00000:0:0$ $0:00000000$ $00000000$ $01000:0:0$* $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$
$0:00000000$ $00000011$ $00000:0:0$ $0:00000111$ $00000000$ $00001:0:0$* $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$
$0:00000000$ $00000100$ $00000:0:0$ $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$ $\emptyset$
$2^Q$ 1 2 5
$0:00000000$ $00000000$ $10010:0:0$ $0:00000000$ $00000000$ $00000:1:0$* $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$
$0:00000000$ $00000000$ $00100:0:0$ $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$ $\emptyset$
$0:00000000$ $00000000$ $01000:0:0$ $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$ $\emptyset$
$0:00000111$ $00000000$ $00001:0:0$ $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$ $\emptyset$
$2^Q$ 1 2 5
$0:00000000$ $00000000$ $00000:1:0$ $0:00000000$ $00000000$ $00000:0:1$ $\emptyset$ $\emptyset$

Renombrando los estados

$Q'$ 1 2 5
$q_0$ $q_1$ $q_2$ $q_3$
$q_1$ $q_4$ $q_5$ $q_e$
$q_2$ $q_6$ $q_7$ $q_e$
$q_3$ $q_e$ $q_e$ $q_e$
$q_4$ $q_8$ $q_9$ $q_e$
$q_5$ $q_{10}$ $q_3$ $q_e$
$q_6$ $q_{11}$ $q_3$ $q_e$
$q_7$ $q_3$ $q_e$ $q_e$
$q_8$ $q_{12}$ $q_3$ $q_e$
$q_9$ $q_3$ $q_e$ $q_e$
$q_{10}$ $q_3$ $q_e$ $q_e$
$q_{11}$ $q_3$ $q_e$ $q_e$
$q_{12}$ $q_3$ $q_e$ $q_e$
q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ q₈ q₉ q₁₀ q₁₁ q₁₂ 1 2 5 1 2 1 2 1 2 2 1 1 1 1 1 1 1 1 2 2

¡Todo AFND puede ser reducido a un AF!

¿Y acepta el mismo lenguaje?

Problema

Todos los cobros de una máquina chicles de 5 pesos que sólo acepta monedas de 1, 2 y 5 pesos

  • $\Sigma=\{1,2,5\}$
q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ q₈ q₉ q₁₀ q₁₁ q₁₂ 1 2 5 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2
q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ q₈ q₉ q₁₀ q₁₁ q₁₂ 1 2 5 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 ε

AFND-$\epsilon$

Es una tupla $(Q,\Sigma,q_0,A,\delta)$

  • $Q$ conjunto finito de estados
  • $\Sigma$ un alfabeto
  • $q_0 \in Q$ estado inicial
  • $A \subseteq Q$ estados finales
  • $\delta$ función de transición $Q \times (\Sigma \cup \{\epsilon \}) \rightarrow 2^Q$

AF vs AFND vs AFND-$\epsilon$

Ambos, son una tupla $(Q,\Sigma,q_0,A,\delta)$

AFAFNDAFND-$\epsilon$
$Q$ $Q$ $Q$
$\Sigma$ $\Sigma$ $\Sigma$
$q_0 \in Q$ $q_0 \in Q$ $q_0 \in Q$
$A \subseteq Q$ $A \subseteq Q$ $A \subseteq Q$
$\delta: Q \times \Sigma \rightarrow Q$ $\delta: Q \times \Sigma \rightarrow 2^Q$ $\delta: Q \times (\Sigma \cup \{\epsilon\}) \rightarrow 2^Q$

Cadenas aceptadas por un AFND-$\epsilon$

$\delta^*=\begin{cases} \delta^*(q,\epsilon)= exp_{\epsilon}(\{q\}) & q \in Q \\ \delta^*(q,wa)= exp_{\epsilon} (\bigcup\limits_{r \in \delta^*(q,w)}\delta(r,a)) & q,r \subseteq Q, w \subseteq \Sigma^*, a \subseteq \Sigma \\ \end{cases}$

Calculo de $exp_{\epsilon}(S)$

  • Para cada $q \in S$ incluir in $S$ todo $\delta(q,\epsilon)$
  • Repetir hasta que $S$ no cambie

Acepta los pagos: $5212$

  • $\delta^*(q_0,5212)=$ $exp_{\epsilon}(\bigcup\limits_{r_1\in\delta^*(q_0,521)}\delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in exp_{\epsilon}(\bigcup\limits_{r_2\in\delta^*(q_0,52))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}(\bigcup\limits_{r_3\in\delta^*(q_0,5)}\delta(r_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}(\bigcup\limits_{ r_3\in exp_{\epsilon}(\bigcup\limits_{r_4\in\delta^*(q_0,\epsilon)}\delta(r_4,5))} \delta(r_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}(\bigcup\limits_{ r_3\in exp_{\epsilon}(\bigcup\limits_{ r_4\in exp_{\epsilon}(\{q_0\}) }\delta(r_4,5))} \delta(r_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}(\bigcup\limits_{ r_3\in exp_{\epsilon}(\bigcup\limits_{ r_4\in \{q_0\} }\delta(r_4,5))} \delta(r_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}(\bigcup\limits_{ r_3\in exp_{\epsilon}(\delta(q_0,5))} \delta(r_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}(\bigcup\limits_{ r_3\in exp_{\epsilon}( \{q_3\} )} \delta(r_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}(\bigcup\limits_{ r_3\in \{q_0,q_3\}} \delta(r_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}( \delta(q_0,2) \cup \delta(q_3,2))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in exp_{\epsilon}( \{q_2\} ))} \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}(\bigcup\limits_{ r_2\in \{q_2\} } \delta(r_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in\exp_{\epsilon}( \delta(q_2,1))} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in \exp_{\epsilon}( \{q_6\} )} \delta(r_1,2))$
  • $=\exp_{\epsilon}(\bigcup\limits_{ r_1\in \{q_6\}} \delta(r_1,2))$
  • $=\exp_{\epsilon}( \delta(q_6,2))$
  • $=\exp_{\epsilon}(\{q_3 \})$
  • $=\{q_0,q_3\}$

Pero $\{q_0,q_3\} \cap \{ q_3 \} \not = \emptyset$, se aceptan los pagos

De AFND-$\epsilon$ a AFND

  • Para cada $q \in Q$ y $a \in \Sigma$ calcular $\delta^*(q,a)$
  • Crear nueva tabla de transición
$Q'$ $\epsilon$ 1 2 5 $\delta^*(q,1)$ $\delta^*(q,2)$ $\delta^*(q,5)$
$q_0$ $\{q_e\}$ $\{q_1\}$ $\{q_2\}$ $\{q_3\}$ | $\{q_1\}$ $\{q_2\}$ $\{q_3,q_0\}$
$q_1$ $\{q_e\}$ $\{q_4\}$ $\{q_5\}$ $\{q_e\}$ | $\{q_4\}$ $\{q_5\}$ $\{q_e\}$
$\{q_2\}$ $\{q_e\}$ $\{q_6\}$ $\{q_7\}$ $\{q_e\}$ | $\{q_6\}$ $\{q_7\}$ $\{q_e\}$
$\{q_3\}$ $\{q_0\}$ $\{q_e\}$ $\{q_e\}$ $\{q_e\}$ | $\{q_e\}$ $\{q_e\}$ $\{q_e\}$
$\{q_4\}$ $\{q_e\}$ $\{q_8\}$ $\{q_9\}$ $\{q_e\}$ | $\{q_8\}$ $\{q_9\}$ $\{q_e\}$
$\{q_5\}$ $\{q_e\}$ $\{q_{10}\}$ $\{q_3\}$ $\{q_e\}$ | $\{q_{10}\}$ $\{q_0,q_3\}$ $\{q_e\}$
$\{q_6\}$ $\{q_e\}$ $\{q_{11}\}$ $\{q_0,q_3\}$ $\{q_e\}$ | $\{q_{11}\}$ $\{q_0,q_3\}$ $\{q_e\}$
$\{q_7\}$ $\{q_e\}$ $\{q_3\}$ $\{q_e\}$ $\{q_e\}$ | $\{q0,q_3\}$ $\{q_e\}$ $\{q_e\}$
$\{q_8\}$ $\{q_e\}$ $\{q_{12}\}$ $\{q_e\}$ $\{q_e\}$ | $\{q_{12}\}$ $\{q_e\}$ $\{q_e\}$
$\{q_9\}$ $\{q_e\}$ $\{q_3\}$ $\{q_e\}$ $\{q_e\}$ | $\{q_0,q_3\}$ $\{q_e\}$ $\{q_e\}$
$\{q_{10}\}$ $\{q_e\}$ $\{q_3\}$ $\{q_e\}$ $\{q_e\}$ | $\{q_0,q_3\}$ $\{q_e\}$ $\{q_e\}$
$\{q_{11}\}$ $\{q_e\}$ $\{q_3\}$ $\{q_e\}$ $\{q_e\}$ | $\{q_0,q_3\}$ $\{q_e\}$ $\{q_e\}$
$\{q_{12}\}$ $\{q_e\}$ $\{q_3\}$ $\{q_e\}$ $\{q_e\}$ | $\{q_0,q_3\}$ $\{q_e\}$ $\{q_e\}$
q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ q₈ q₉ q₁₀ q₁₁ q₁₂ 1 2 5 1 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 5 1 1 1 1 2 2 2

Dos observaciones

  • De AFND-$\epsilon$ a AFND
  • De AFND a AF

De AF (M) a ADND-$\epsilon$ (M') es trivial

$\delta'(q,\epsilon)=\emptyset$

$\delta'(q,a)=\{\delta(q,a)\}$

$Q'$ a b $\epsilon$ $a$ $b$
$q_0$ $q_0$ $q_1$ | $\emptyset$ $\{q_0\}$ $\{q_1\}$
$q_1$ $q_1$ $q_0$ | $\emptyset$ $\{q_1\}$ $\{q_0\}$

Tres observaciones

  • De AFND-$\epsilon$ a AFND
  • De AFND a AF
  • De AF a AFND-$\epsilon$

El poder de $\epsilon$

Con los siguientes lenguajes:

q₀ q₁ q₀ q₁ 1 0 1 0

$L_1:10^*$ y $L_2:1^*0$

La unión

q₀' q₁' q₀'' q₁'' q₀ 1 0 1 0 ε ε

$10^*+1^*0$

La concatenación

q₀' q₁' q₀'' q₁'' 1 0 1 0 ε

$10^*1^*0$

La cerradura

q₀' q₁' q₀ q₁ 1 0 ε ε ε ε

$(10^*)^*$

Un momento

Tenemos unión, concatenación y cerradura ¡podemos hacer cualquier expresión regular!

$(a^*ba^*ba^*)^*+a^*$

q₁ q₂ q₃ a a b

$(a^*ba^*ba^*)^*+a^*$

q₁ q₂ q₃ q₄ q₅ q₆ q₀' q₀ q₇ a a a ε b ε b ε ε a ε ε ε

Autómata mínimo

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Marcar mismos estados y no alcanzables

S $q_0$ $q_1$ $q_2$ $q_3$ $q_4$ $q_5$ $q_6$ $q_7$
$q_0$
$q_1$
$q_2$
$q_3$
$q_4$
$q_5$
$q_6$
$q_7$

Marcar diferenciables: iniciales vs finales

S $q_0$ $q_1$ $q_2$ $q_4$ $q_5$ $q_6$ $q_7$
$q_0$
$q_1$
$q_2$
$q_4$
$q_5$
$q_6$
$q_7$

Marcar pares $q_i$ y $q_j$ si $\delta(q_i,a)$ y $\delta(q_j,a)$ están marcados:
$q_0$ y $q_1$ a través de $1$

S $q_0$ $q_1$ $q_2$ $q_4$ $q_5$ $q_6$ $q_7$
$q_0$
$q_1$
$q_2$
$q_4$
$q_5$
$q_6$
$q_7$

Buscar un par que nos lleve a difenciables ya identificados

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

$q_7$ y $q_4$

S $q_0$ $q_1$ $q_2$ $q_4$ $q_5$ $q_6$ $q_7$
$q_0$
$q_1$
$q_2$
$q_4$
$q_5$
$q_6$
$q_7$

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

$q_4$ y $q_5$

S $q_0$ $q_1$ $q_2$ $q_4$ $q_5$ $q_6$ $q_7$
$q_0$
$q_1$
$q_2$
$q_4$
$q_5$
$q_6$
$q_7$

Otro par, a través de $0$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

$q_5$ y $q_6$

S $q_0$ $q_1$ $q_2$ $q_4$ $q_5$ $q_6$ $q_7$
$q_0$
$q_1$
$q_2$
$q_4$
$q_5$
$q_6$
$q_7$

Otro par, a través de $0$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Otro par, a través de $1$

q₀ q₁ q₂ q₃ q₄ q₅ q₆ q₇ 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0

Finalmente

S $q_0$ $q_1$ $q_2$ $q_4$ $q_5$ $q_6$ $q_7$
$q_0$
$q_1$
$q_2$
$q_4$
$q_5$
$q_6$
$q_7$
q₀ q₁ q₂ q₄ q₅ q₆ q₇ 0 1 1 0 1 0 0 1 0 0 1 1 1 0
q₀q₄ q₁q₇ q₂ q₅ q₆ 0 1 1 0 1 0 0 0 1

Conceptos

  • AFND
  • AFND-$\epsilon$
  • Conversiones
    • AFND $\rightarrow$ AF
    • AFND-$\epsilon$ $\rightarrow$ AFND
    • AF $\rightarrow$ AFND-$\epsilon$
  • ER $\rightarrow$ AFND-$\epsilon$
  • AF $\rightarrow$ AF-mínimo
Licencia de Creative Commons
La máquina que está en varios lugares by Ivan V. Meza Ruiz is licensed under a Creative Commons Reconocimiento 4.0 Internacional License.
Creado a partir de la obra en http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/nfae.html.