Está en la página 1de 57

Facultad de Ingeniería

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

Analicemos la lectura con un 00101

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})

Y su tabla de transición es:

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

~𝛿(q0, 001) = {q0, q2}

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}

*En la entrada, donde 𝛚 = 𝓍𝒶


21
Función de transición extendida
L(A) = {𝛚 | ~𝛿(q0,𝛚 ) ∩ F ≠ ∅}

Es decir, L(A) es el conjunto de cadenas 𝛚


pertenecientes a ∑* tal que ~𝛿(q0,𝛚 ) contiene al
menos un estado de aceptación.

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

Para el alfabeto es {0,1}


● Escriba la definición formal (la tupla) de su
autómata
Equivalencia
AFD y AFN

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-𝜀

Dibuje el diagrama AFN-𝜀 y AFD


50

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.

También podría gustarte