Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Teoría de la Computación
Autómatas finitos No Deterministas
Profesor Guía: Alexander Espina-Leyton (al.espina@uandresbello.edu)
Nicolás Hormazábal Santibáñez
Fecha: 31-03-2021 1
Contenido
2
Tabla de contenidos
● Definición
● El lenguaje de un AFN
● Equivalencia (Transformar un AFN a un
AFD)
● Ejercicios
3
Definición
4
Autómata Finito No Determinista
Un autómata finito “no determinista” (AFN o AFND) tiene la capacidad de
estar en varios estados a la vez. Esta capacidad a menudo se expresa
como la posibilidad de que el autómata “conjeture” algo acerca de su
entrada.
Para la búsqueda de palabras claves, dentro de una cadena de texto larga,
resulta últi “conjeturar” que estamos al principio de una de estas cadenas y
utilizar una secuencia de estados únicamente para comprobar la aparición
de la cadena, caracter por caracter.
Conjeturar: Del lat. coniecturāre. 1. tr. Formar juicio de algo por indicios u observaciones.
5
Página 42 del libro guía.
Autómata Finito No Determinista
Revisemos el siguiente ejemplo:
6
Autómata Finito No Determinista
La primera diferencia respecto a un AFD, la encontramos en que podemos
tener dos transiciones de un mismo símbolo a distintos estado (“a”).
7
Autómata Finito No Determinista
Según la definición, un AFD es un autómata que no puede estar en varios
estados a la vez.
8
Autómata Finito No Determinista
Una segunda diferencia, es que un AFD se debe asegurar que todo el
alfabeto sea ocupado en la transición, esto es, todas las transiciones
posibles desde un estado, para evitar caídas.
En un AFN, no necesariamente se debe
ocupar todo el alfabeto, pudiendo estar en 0, 1
o n estados según su uso.
9
Autómata Finito No Determinista
Según la definición, un AFN es un autómata que puede estar en varios
estados a la vez.
10
Autómata Finito No Determinista
Veamos este otro ejemplo.
- ¿Qué hace este ejemplo?
11
Página 47 del libro guía.
Autómata Finito No Determinista
Una de las capacidades de este AFN, es aceptar todas las cadenas que
terminan en 01.
Observe sin embargo, que, con 0 como entrada estando en q0, puede
avanzar a q1 o quedarse en q0.
Esto significa que el autómata se encuentra en q0 y q1.
12
Página 47 del libro guía.
Autómata Finito No Determinista
13
Página 47 del libro guía.
Autómata Finito No Determinista
Formalizando, un AFN se presenta esencialmente como un AFD.
A = (𝒬,∑,𝛿,q0, F), donde:
1. 𝒬 es un conjunto finito de estados.
2. ∑ es un conjunto finito de símbolos de entrada.
3. q0, un elemento de 𝒬, es el estado inicial.
4. F, un subconjunto de 𝒬, es el conjunto de estados finales (o de aceptación).
5. 𝛿, la función de transición, es una función que toma como argumentos un
estado de 𝒬 y un símbolo de entrada de ∑ y devuelve un subconjunto de 𝒬.
Observe que la única diferencia entre un AFN y un AFD se encuentra en el
tipo de valor que devuelve: un conjunto de estados en el caso de un AFN y
un único estado en el caso de AFD.
14
Página 48 del libro guía.
Autómata Finito No Determinista
● Tal como lo dice su definición, la principal diferencia está en la función
de transición.
○ Un AFD, la función de transición retorna sólo un estado. Un AFN
puede retornar más de un estado.
○ ¿Cual es la tabla de transición de estos autómatas?
a) b)
15
Autómata Finito No Determinista
El AFN siguiente, se puede especificar formalmente como:
A =({q0,q1,q2},{0,1},𝛿,q0,{q2})
16
Página 48 y 49 del libro guía.
Lenguaje de un
AFN
17
Función de transición extendida
Como para los AFD, necesitamos extender la
función de transición 𝛿 de un AFN a una función ~𝛿
que tome un estado q y una cadena de símbolos
de entrada 𝛚, y devuelva un conjunto de estados
en los que el AFN se encontrará si se inicia en el
estado q y procesa la cadena 𝛚.
18
Función de transición extendida
Considerando el autómata visto anteriormente, la
figura sugiere
19
Función de transición extendida
Base: ~𝛿(q, 𝜀) = {q}. Es decir, si no leemos ningún símbolo de
entrada, estaremos en el estado en el que hayamos comenzado.
Paso Inductivo: Supongamos que 𝛚 tiene la forma 𝛚 = 𝓍𝒶, donde 𝒶
es el símbolo final de 𝛚 y 𝓍 es el resto de 𝛚. Supongamos también
que ~𝛿(q, 𝓍) = {p1,p2,...,pk}. Sea
𝐔ki=1𝛿(pi, 𝒶) = {r1, r2, …,rm}
Entonces ~𝛿(q, 𝛚) = {r1, r2, …,rm}. Menos formalmente, para
calcular ~𝛿(q, 𝛚) obtenemos primero ~𝛿(q, 𝓍), y después seguimos
todas las transiciones de estos estados que estén etiquetados con 𝒶.
20
Función de transición extendida
Para entender mejor el procedimiento, observemos lo siguiente:
~𝛿(q0,𝜀) = {q0}.
~𝛿(q0,0) = 𝛿(q0,0) = {q0,q1}
~𝛿(q0,00) = 𝛿(q0,0) ∪ 𝛿(q1,0) = {q0,q1} ∪ ∅ = {q0,q1}
~𝛿(q0,001) = 𝛿(q0,1) ∪ 𝛿(q1,1) = {q0} ∪ {q2} = {q0,q2}
~𝛿(q0,0010) = 𝛿(q0,0) ∪ 𝛿(q2,0) = {q0,q1} ∪ ∅ = {q0,q1}
~𝛿(q0,00101) = 𝛿(q0,1) ∪ 𝛿(q1,1) = {q0} ∪ {q2} = {q0,q2}
22
Página 49 y 50 del libro guía.
Función de transición extendida
Observemos el siguiente autómata
23
Función de transición extendida
Si A =({q0,q1,q2,q3,q4},{0,1},𝛿,q0,{q2,q4}) |
𝛚 = 01001, entonces ~𝛿(q0,𝛚):
24
Función de transición extendida
Si A =({q0,q1,q2,q3,q4},{0,1},𝛿,q0,{q2,q4}) |
𝛚 = 01001, entonces ~𝛿(q0,𝛚):
~𝛿(q0,𝜀) = {q0}
~𝛿(q0,0) = {q0,q1}
~𝛿(q0,01) = 𝛿(q0,1) ∪ 𝛿(q1,1) = {q0,q3} ∪ ∅ = {q0,q3}
~𝛿(q0,010) = 𝛿(q0,0) ∪ 𝛿(q3,0) = {q0,q1} ∪ ∅ = {q0,q1}
~𝛿(q0,0100) = 𝛿(q0,0) ∪ 𝛿(q1,0) = {q0,q1} ∪ {q2} = {q0,q1,q2}
~𝛿(q0,01001) = 𝛿(q0,1) ∪ 𝛿(q1,1) ∪ 𝛿(q2,1) = {q0,q3} ∪ ∅ ∪ {q2}
25
Ejercicios
26
27
Facultad de Ingeniería
Ejercicios
● Diseñe un AFN para reconocer el siguiente
lenguaje:
○ Palabras que comienzan comienzan con 0 y
terminan con 1
28
Autómata Finito No Determinista
29
Página 47 del libro guía.
Autómata Finito Determinista
30
Equivalencia de AFD y AFN
Aunque existen muchos lenguajes para los que un AFN
es más fácil de construir que un AFD, como por
ejemplo el autómata anterior que acepta las palabras
que terminan en 01, resulta sorprendente el hecho de
que todo lenguaje cual pueda describirse mediante
algún AFN también puede ser descrito mediante algún
AFD.
31
Página 51 del libro guía.
AFN
Observemos el siguiente AFN
32
Equivalencia de AFD y AFN
Informalmente, pasos de AFN a AFD:
1. Se aplica desde el estado inicial (q0), una operación de transición para cada
símbolo del alfabeto.
2. Como resultado de la transición, obtendremos un conjunto de estados que
añadiremos a una lista de nuevos estados.
3. Cada conjunto estados se considerará un nuevo estado. Se debe aplicar
una operación de transición por cada nuevo estado.
4. Si como resultado de una transición aparece un conjunto ya existente, éste
se ignora como nuevo estado.
5. Se repiten los pasos 2, 3 y 4 hasta que no aparezcan nuevos estados
6. Serán estados de aceptación aquellos estados que contengan algún estado
de aceptación en AFN.
7. Por último se dibuja el diagrama de transiciones, desde el estado inicial
original, como estado inicial 33
Equivalencia de AFD y AFN
34
Equivalencia de AFD y AFN
Representación como AFD:
madebyevan.com/fsm
35
AFN - búsqueda
de Texto
36
Búsqueda de Texto
Supongamos que tenemos un conjunto de palabras, que
denominaremos palabras clave, y deseamos hallar las
apariciones de estas palabras. En aplicaciones de este tipo, una
forma útil de proceder consiste en diseñar un AFN que indique,
mediante un estado de aceptación, que ha encontrado una de
las palabras clave. El texto de un documento se introduce
caracter a caracter en este AFN, el cual reconoce a continuación
las palabras claves de dicho texto.
37
Página 58 del libro guía.
Búsqueda de Texto
1. Hay un estado inicial con una transición a sí mismo para cada uno de los
símbolos de entrada, por ejemplo, todos los caracteres ASCII imprimibles,
si estamos examinando texto. Intuitivamente, el estado inicial presenta una
“conjetura” de que todavía no hemos detectado una de las palabras clave,
incluso aunque hayamos encontrado algunas letras de esas palabras.
2. Para cada palabra clave 𝒶1𝒶2....𝒶k, existen k estados, por ejemplo,
q1,q2,...,qk. Existe una transición desde el estado inicial a q1 para el
símbolo 𝒶1, una transición desde q1 a q2 para el símbolo 𝒶2, etc. El estado
qk es un estado de aceptación que indica que se ha encontrado la palabra
clave 𝒶1𝒶2....𝒶k.
38
Búsqueda de Texto
Ejemplo, suponga que deseamos diseñar un AFN para reconocer las
apariciones de las palabras web y ebay. A continuación el diagrama de
transiciones diseñado utilizando las reglas anteriores. El estado 1 es el estado
inicial y utilizamos ∑ para definir el conjunto de todos los caracteres ASCII
imprimibles. Los estados 2 hasta 4 tienen que reconocer la palabra web,
mientras los estados 5 hasta 8 tienen el trabajo de reconocer la palabra ebay.
39
Página 59 del libro guía.
AFD 40
● Los números de los
estados, representan
Facultad de Ingeniería
el conjunto de
estados del AFN.
e.g., El estado 135, es el
estado 1,3 y 5 del AFN.
Uso de Transiciones-𝜀
Una de las extensiones del autómata finito es la “característica” que permite
transiciones para 𝜀, la cadena vacía. Así, un AFN-𝜀 puede hacer una transición
espontáneamente, sin recibir un símbolo de entrada. Esto no expande la clase
de lenguajes que los autómatas finitos pueden aceptar, pero proporciona
algunas “facilidades de programación”.
Utilizaremos las transiciones 𝜀 como una etiqueta y 𝛿(9,𝜀) = {1,0}.
41
Página 62 del libro guía.
Uso de Transiciones-𝜀
Ejemplo. Un AFN-𝜀 que acepta números decimales que constan de:
1. Un signo opcional, + o -
2. Una cadena de dígitos
3. Un punto decimal
4. Otra cadena de dígitos. Esta cadena o la cadena (2) pueden ser la cadena vacía, aunque al
menos una de las dos cadenas de dígitos debe ser no vacía
42
Página 61 del libro guía.
Uso de Transiciones-𝜀
1. Tabla de transiciones para el ejemplo anterior.
* 43
Página 63 del libro guía.
Ejercicios
44
45
Facultad de Ingeniería
Ejercicios
Transforme este AFN en un AFD:
46
Facultad de Ingeniería
Solución
47
Facultad de Ingeniería
Ejercicios
Convierta en un AFD el siguiente AFN:
48
Facultad de Ingeniería
Solución
A={p};B={p,q};C={p,r};D={p,q,r};E={p,q,s};
F={p,q,r,s};G={p,r,s};H={p,s};
0 1
->A B A
B D C
C E A
D F C
*E F G
*F F G
*G E H
*H E H
49
Facultad de Ingeniería
Ejercicios
Considere el siguiente AFN-𝜀
Facultad de Ingeniería
Solución AFN-𝜀
51
Facultad de Ingeniería
Solución AFN-𝜀 - AFD
● 𝛿(p,a) = {p}
● 𝛿(p,b) = {q} ∪ {p} = {p,q} (el 𝜀 nos lleva de q a p)
● 𝛿(p,c) = {q} ∪ {p} ∪ {r} = {p,q,r}
● 𝛿({p,q},a) = {p,q}
● 𝛿({p,q},b) = {p,q,r}
● 𝛿({p,q},c) = {p,q,r}
● 𝛿({p,q,r},a) = {p,q,r}
● 𝛿({p,q,r},b) = {p,q,r}
● 𝛿({p,q,r},c) = {p,q,r}
52
Facultad de Ingeniería
Solución AFD
Anexos
53
Equivalencia de AFD y AFN
1. AFN a AFD: Estados Nuevos
2. ∑={a,b}
{q1,q2}
3. 𝛿({q0}, a) = {q1,q2}
4. 𝛿({q0}, b) = {∅} {∅}
5. 𝛿( {q1,q2}, a) = {∅}
{q3}
6. 𝛿( {q1,q2}, b) = {q3}
7. 𝛿({∅}, a) = 𝛿({∅}, b) = {∅} {q2}
8. 𝛿( {q3}, a) = {q2}
9. 𝛿( {q3}, b) = {∅}
10. 𝛿( {q2}, a) = {∅}
11. 𝛿( {q2}, b) = {q3}
54
Función de transición extendida
Para entender mejor el procedimiento, observemos lo siguiente:
~𝛿(q0,𝜀) = {q0}
~𝛿(q0,0) = 𝛿(q0,0) = {q0,q1}
~𝛿(q0,00) = 𝛿(q0,0) ∪ 𝛿(q1,0) = {q0,q1} ∪ ∅ = {q0,q1}
~𝛿(q0,001) = 𝛿(q0,1) ∪ 𝛿(q1,1) = {q0} ∪ {q2} = {q0,q2}
~𝛿(q0,0010) = 𝛿(q0,0) ∪ 𝛿(q2,0) = {q0,q1} ∪ ∅ = {q0,q1}
~𝛿(q0,00101) = 𝛿(q0,1) ∪ 𝛿(q1,1) = {q0} ∪ {q2} = {q0,q2}
● La función de transición extendida se diferencia con la función de transición en que esta última recibe un único símbolo como entrada
● La función de transición extendida recibe un único estado como entrada y su salida será un conjunto de estados (CE). Para procesar el siguiente
símbolo de la palabra (w = xa), por cada estado del CE se ejecutará la función de transición (normal) con el siguiente símbolo (*producto cruz CE y el
símbolo), y su salida será otro conjunto de estados (OCE) por cada estado del CE. Todos esos OCE, deben unirse entre sí, representando la
salida de la función de transición extendida desde el primer estado, y luego de haber procesado todos los símbolos hasta este último símbolo recién
procesado.
● Se puede apreciar que no es posible conocer el estado de una máquina luego de procesar una serie de símbolos, hasta que estos se hayan
procesado.
55
56
Facultad de Ingeniería
57
Facultad de Ingeniería
Fuentes
➢ Ponencias Curso Carlos Rey Barra
➢ Ponencias Curso Carlos Gómez-Pantoja
➢ J. Hopcroft, R. Motwani, J. Ullman. (2001).
Introduction to Automata Theory, Languages,
and Computation. Pearson Education.