You are on page 1of 58

Introduccion a

los Automatas

Definicion
formal de un
Automata
Finito
Determinstico
Automatas Finitos
Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes INAOE
Formales

Eliminacion
de las
Transiciones-

(INAOE) 1 / 58
Contenido
Introduccion a
los Automatas

Definicion
formal de un 1 Introduccion a los Automatas
Automata
Finito
Determinstico

Automata 2 Definicion formal de un Automata Finito Determinstico


Finito No-
Determinstico

Automatas
Finitos y 3 Automata Finito No-Determinstico
Lenguajes
Formales

Eliminacion
de las 4 Automatas Finitos y Lenguajes Formales
Transiciones-

5 Eliminacion de las Transiciones-

(INAOE) 2 / 58
Introduccion a los Automatas

Introduccion a los Automatas


Introduccion a
los Automatas

Definicion
formal de un Automata: Conjunto de estados + Control Cambio de
Automata
Finito estados en respuesta a una entrada.
Determinstico
Tipo de Control:
Automata
Finito No-
Determinstico
Determinstico: Para cada entrada, hay solo un estado
Automatas al que el automata puede ir desde el estado en que se
Finitos y
Lenguajes encuentre.
Formales
No determinstico: Un automata finito es
Eliminacion
de las no-determinstico cuando se permite que el AF tenga 0
Transiciones-
o mas estados siguientes para cada par
estado-entrada.

(INAOE) 3 / 58
Introduccion a los Automatas

Automatas No-Deterministas
Introduccion a
los Automatas

Definicion
formal de un Si anadimos la propiedad de no-determinismo, no anadimos
Automata
Finito poder al automata. Osea que no podemos definir ningun
Determinstico
lenguaje que no se pueda definir con el automata
Automata
Finito No- determinstico.
Determinstico
Con la propiedad de no-determinismo se agrega eficiencia
Automatas
Finitos y al describir una aplicacion:
Lenguajes
Formales Permite programar soluciones en un lenguaje de mas
Eliminacion
de las alto nivel
Transiciones-
Hay un algoritmo para compilar un N-DFA en un DFA y
poder ser ejecutado en una computadora convencional

(INAOE) 4 / 58
Introduccion a los Automatas

Automatas No-Deterministas
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Extension del N-DFA para hacer saltos de un estado a
Determinstico otro espontaneamente, con la cadena vaca () como
Automatas
Finitos y
entrada: N-DFA. Estos automatas tambien aceptan
Lenguajes
Formales
lenguajes regulares.
Eliminacion
de las
Transiciones-

(INAOE) 5 / 58
Definicion formal de un Automata Finito Determinstico

Definicion Formal de un Automata


Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico Un AF se representa como una 5-tupla: A = (Q, , , q0 , F ).
Automata Donde:
Finito No-
Determinstico 1 Q: Un conjunto finito de estados.
Automatas
Finitos y 2 : Un conjunto finito de smbolos de entrada (alfabeto)
Lenguajes
Formales 3 q0 : El estado inicial/de comienzo.
Eliminacion
de las 4 F : cero o mas estados finales/de aceptacion.
Transiciones-

(INAOE) 6 / 58
Definicion formal de un Automata Finito Determinstico

Funcion de Transicion
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito 5 : Funcion de transicion. Esta funcion:
Determinstico
Toma un estado y un smbolo de entrada como
Automata
Finito No- argumentos.
Determinstico Regresa un estado.
Automatas Una regla de se escribe como (q, a) = p, donde q y
Finitos y
Lenguajes p son estados y a es un smbolo de entrada.
Formales
Intuitivamente: Si el AF esta en un estado q, y recibe
Eliminacion
de las una entrada a, entonces el AF va al estado p (nota:
Transiciones-
puede ser al mismo estado q = p).

(INAOE) 7 / 58
Definicion formal de un Automata Finito Determinstico

DFA
Introduccion a
los Automatas

Definicion
El lenguaje de un DFA es el conjunto de todas las
formal de un
Automata
cadenas que el DFA acepta
Finito
Determinstico Dada una cadena (e.g., s1 , s2 , . . . , sn ) el DFA empieza
Automata en su estado inicial (e.g., q0 ), consulta si existe una
Finito No-
Determinstico transicion de q0 con el primer smbolo (s1 ) a otro estado
Automatas (e.g., q1 ) y si existe (i.e., (q0 , s1 ) = q1 ) se mueve al
Finitos y
Lenguajes estado descrito en la transicion.
Formales

Eliminacion
Procesa el siguiente smbolo de la cadena (i.e., s2 ) y
de las
Transiciones-
as continua.
Si logra procesar toda la cadena y el estado al que
llega es uno de los estados finales, entonces se dice
que el automata acepta esa cadena.

(INAOE) 8 / 58
Definicion formal de un Automata Finito Determinstico

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico Un Automata A que acepta L = {x01y|x y {0, 1} }
Automata
Finito No- El DFA acepta cadenas que tienen 01 en alguna parte
Determinstico
de la cadena
Automatas
Finitos y El lenguaje del DFA es el conjunto de cadenas que
Lenguajes
Formales acepta {w|w tiene la forma x01y para algunas
Eliminacion
de las
cadenas x y y que consisten solo de 0s y 1s }.
Transiciones-

(INAOE) 9 / 58
Definicion formal de un Automata Finito Determinstico

Tabla de Transiciones
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico El automata anterior puede ser representado con una tabla
Automata de transiciones, definido como
Finito No-
Determinstico A = ({q0 , q1 , q2 }, {0, 1}, , q0 , q1 ), de la siguiente forma:
Automatas 0 1
Finitos y
Lenguajes q0 q2 q0
Formales
?q1 q1 q1
Eliminacion
de las q2 q2 q1
Transiciones-

(INAOE) 10 / 58
Definicion formal de un Automata Finito Determinstico

Diagrama de Transiciones
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes Cada estado tiene un nodo asociado
Formales

Eliminacion Cada transicion de estados tiene un arco asociado


de las
Transiciones- etiquetado con el/los smbolos correspondientes
Existe una etiqueta de inicio para el estado inicial y un
doble crculo asociado a los estados finales

(INAOE) 11 / 58
Definicion formal de un Automata Finito Determinstico

Convenciones
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata Por convencion se utilizan:


Finito No-
Determinstico a, b, etc., o dgitos para los smbolos de entrada
Automatas
Finitos y
u, v , . . . , z para las cadenas de smbolos de entrada
Lenguajes
Formales q, p, etc., para los estados
Eliminacion
de las
Transiciones-

(INAOE) 12 / 58
Definicion formal de un Automata Finito Determinstico

Funciones de transicion extendidas ()


Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico
Intuitivamente, un FA acepta una cadena w = a1 a2 . . . an si
Automata
Finito No- hay una ruta en el diagrama de transiciones que:
Determinstico

Automatas 1 Empieza en el estado de inicio,


Finitos y
Lenguajes 2 Termina en un estado de aceptacion, y
Formales

Eliminacion
3 Tiene una secuencia de etiquetas a1 , a2 , . . . , an .
de las
Transiciones-

(INAOE) 13 / 58
Definicion formal de un Automata Finito Determinstico

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico Ejemplo: El siguiente AF acepta la cadena 01101:
Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 14 / 58
Definicion formal de un Automata Finito Determinstico

Funcion de Transicion
Introduccion a
los Automatas

Definicion
Formalmente, podemos extendemos la funcion de transicion
formal de un
Automata
a (q, w), donde w puede ser cualquier cadena de
Finito
Determinstico
smbolos de entrada:
Automata Base: (q, ) = q (i.e., nos quedamos en el mismo lugar
Finito No-
Determinstico si no recibimos una entrada).
Automatas
Finitos y Induccion: (q, w) = ((q, x), a), donde x es una
Lenguajes
Formales cadena, y a es un solo smbolo (i.e., ver a donde va el
Eliminacion AF con x, luego buscar la transicion para el ultimo
de las
Transiciones- smbolo a partir de ese estado).
Si (q, x) = p entonces (q, w) = (p, a)
representa rutas.

(INAOE) 15 / 58
Definicion formal de un Automata Finito Determinstico

Funcion de Transicion
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata Aceptacion de Cadenas: Un AF A = (Q, , , q0 , F )


Finito No-
Determinstico acepta la cadena w si (q0 , w) esta en F .
Automatas
Finitos y Lenguaje de un AF: Un AF acepta el lenguaje
Lenguajes
Formales L(A) = {w|(q0 , w) F }.
Eliminacion
de las
Transiciones-

(INAOE) 16 / 58
Definicion formal de un Automata Finito Determinstico

Ejemplo:
Introduccion a
los Automatas
Un DFA que acepta todas y solo las cadenas que tienen un
Definicion
formal de un numero par de 0s y tambien un numero par de 1s
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 17 / 58
Definicion formal de un Automata Finito Determinstico

Ejemplo (cont.)
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 18 / 58
Definicion formal de un Automata Finito Determinstico

Ejemplo (cont.)
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico
Representacion tabular del automata anterior:
Automata
Finito No- 0 1
Determinstico
? q0 q2 q1
Automatas
Finitos y q1 q3 q0
Lenguajes
Formales q2 q0 q3
Eliminacion q3 q1 q2
de las
Transiciones-

(INAOE) 19 / 58
Definicion formal de un Automata Finito Determinstico

Problema 2.2.1
Introduccion a
los Automatas Cada vez que entra una canica en alguno de las dos
Definicion
formal de un entradas (A o B) cae y mueve la compuerta. La salida D es
Automata
Finito
exito y la C fracaso. Modelarlo como un DFA.
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 20 / 58
Definicion formal de un Automata Finito Determinstico

Problema 2.2.4
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata Disene un DFA que acepte:


Finito No-
Determinstico Todas las cadenas que acaban en 00
Automatas
Finitos y Todas las cadenas con 000 en algun lugar
Lenguajes
Formales Todas las cadenas con una sucadena 001
Eliminacion
de las
Transiciones-

(INAOE) 21 / 58
Automata Finito No-Determinstico

Automata Finito No-Determinstico


Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito Un automata finito es no-determinstico cuando se permite
Determinstico
que el AF tenga 0 o mas estados siguientes para cada par
Automata
Finito No- estado-entrada:
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 22 / 58
Automata Finito No-Determinstico

Automata Finito No-Determinstico


Introduccion a
los Automatas

Definicion En el ejemplo anterior, se puede apreciar que de q0 se


formal de un
Automata puede ir a q0 o a q1 con la entrada 0, y esto hace al
Finito
Determinstico AF ser no-determinista.
Automata
Finito No- Un NFA puede estar en varios estados a la vez o se
Determinstico
puede ver que adivina a que estado ir.
Automatas
Finitos y Por ejemplo, el siguiente automata acepta todas las
Lenguajes
Formales cadenas que terminan en 01:
Eliminacion
de las
Transiciones-

(INAOE) 23 / 58
Automata Finito No-Determinstico

Automata Finito No-Determinstico


Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito Lo que pasa al procesar como entrada a 00101 es:
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 24 / 58
Automata Finito No-Determinstico

Automata Finito No-Determinstico


Introduccion a
los Automatas

Definicion
formal de un
Un NFA es una herramienta importante para disenar
Automata
Finito
procesadores de cadenas, e.g., grep, analizadores
Determinstico lexicos, etc. Es facil disenar NFAs que encuentren
Automata
Finito No-
secuencias de palabras en texto.
Determinstico
NFA: Formalmente, un NFA es una quntupla
Automatas
Finitos y A = (Q, , , q0 , F ), donde todo es un DFA, pero (q, a)
Lenguajes
Formales nos regresa un conjunto de estados en lugar de un solo
Eliminacion estado. De hecho puede ser vaco, tener un solo estado
de las
Transiciones- o tener mas estados.
Un NFA acepta, al igual que un DFA, lenguajes
regulares

(INAOE) 25 / 58
Automata Finito No-Determinstico

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Por ejemplo, para el NFA que acepta cadenas que acaban
Determinstico
en 01 su funcion de transicion es:
Automata
Finito No-
Determinstico 0 1
Automatas
Finitos y
q0 {q0 , q1 } {q0 }
Lenguajes
Formales
q1 {q2 }
Eliminacion
*q2
de las
Transiciones-
Como puede observarse, todo se especifica en conjuntos.

(INAOE) 26 / 58
Automata Finito No-Determinstico

Extension a
Introduccion a
los Automatas

Definicion
Similarmente a un DFA, podemos definir la funcion de
formal de un transicion extendida como sigue:
Automata
Finito
Determinstico
Base: (q, ) = q
Automata Induccion: Supongamos w es de la forma w = xa,
Finito No-
Determinstico donde a es el smbolo terminal y x es el resto de w.
Automatas
Finitos y
Supongamos
Sk tambien que: (q, x) = {p1 , p2 , . . . , pk }.
i=1 (pi , a) = {r1 , r2 , . . . , rm }.
Lenguajes
Formales

Eliminacion
Entonces (q, w) = {r1 , r2 , . . . , rm }.
de las
Transiciones- En otras palabras calculamos (q, w) primero
calculando (q, x) y despues siguiendo cualquier
transicion de algunos de esos estados etiquetada con
a.

(INAOE) 27 / 58
Automata Finito No-Determinstico

Ejemplo:
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Por ejemplo, podemos calcular (q0 , 00101) para el
Determinstico
automata anterior:
Automata
Finito No- (q0 , ) = {q0 }
Determinstico
(q0 , 0) = (q0 , 0) = {q0 , q1 }
Automatas
Finitos y (q0 , 00) = (q0 , 0) (q1 , 0) = {q0 , q1 }
Lenguajes
Formales (q0 , 001) = (q0 , 1) (q1 , 1) = {q0 } {q2 } = {q0 , q2 }
Eliminacion (q0 , 0010) = (q0 , 0) (q2 , 0) = {q0 , q1 } = {q0 , q1 }
de las
Transiciones- (q0 , 00101) = (q0 , 1) (q1 , 1) = {q0 } {q2 } = {q0 , q2 }
Que tiene un estado final.

(INAOE) 28 / 58
Automata Finito No-Determinstico

Lenguajes de un NFA
Introduccion a
los Automatas

Definicion
formal de un El lenguaje aceptado por un NFA, A, es:
Automata
Finito L(A) = {w|(q0 , w) F 6= }.
Determinstico

Automata
Finito No-
Determinstico
Equivalencia entre un DFA y un NFA
Automatas
Finitos y Un NFA es normalmente mas facil de definir, aunque al
Lenguajes
Formales mismo tiempo, para cualquier NFA N existe un DFA D tal
Eliminacion
de las
que L(D) = L(N) y viceversa.
Transiciones- Para esto se usa la construccion de subconjunto que
muestra un ejemplo de como un automata se puede
construir a partir de otro.

(INAOE) 29 / 58
Automata Finito No-Determinstico

Construccion de Subconjunto
Introduccion a Para cada NFA existe un DFA equivalente (acepta el mismo
los Automatas
lenguaje). Pero el DFA puede tener un numero exponencial
Definicion
formal de un de estados.
Automata
Finito Sea N = (QN , , N , q0 , FN ) un NFA. El DFA equivalente
Determinstico
construido a partir del subconjunto de construccion es
Automata
Finito No- D = (QD , , D , {q0 }, FD ), donde:
Determinstico

Automatas
|QD | = 2|QN | ; i.e., QD es el conjunto de todos los
Finitos y
Lenguajes
subconjuntos de QN .
Formales
FD es el conjunto de conjuntos S en QD tal que
Eliminacion
de las S FN 6= .
Transiciones-
Para cualquier S QN y a ,
S
D (S, a) = pS N (p, a), osea, la union de todos los
estados a partir de p con entrada a.
D ({q1 , q2 , . . . , qk }, a) =
N (p1 , a) N (p2 , a) . . . N (pk , a).
(INAOE) 30 / 58
Automata Finito No-Determinstico

Construccion de Subconjunto
Introduccion a
los Automatas

Definicion La funcion de transicion D del NFA anterior es:


formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 31 / 58
Automata Finito No-Determinstico

Construccion de Subconjunto
Introduccion a
los Automatas
Al existir 3 estados, tenemos 8 subconjuntos. Esto mismo lo
Definicion
formal de un podemos poner como:
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 32 / 58
Automata Finito No-Determinstico

Construccion de Subconjunto
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Lo cual es un DFA (simplemente cambiando la
Determinstico notacion). Tambien es importante notar que no todos
Automata
Finito No-
los estados pueden ser alcanzados. En particular, solo
Determinstico
los estados B, E y F son accesibles, por lo que los
Automatas
Finitos y demas los podemos eliminar.
Lenguajes
Formales Una forma de no construir todos los subconjuntos para
Eliminacion despues encontrar que solo unos cuantos son
de las
Transiciones- accesibles, es construir la tabla solo para los estados
accesibles (lazy evaluation).

(INAOE) 33 / 58
Automata Finito No-Determinstico

Ejemplo (cont.)
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico
Para el ejemplo anterior: D ({q0 }, 0) = {q0 , q1 }
Automata
Finito No- D ({q0 }, 1) = {q1 }
Determinstico
D ({q0 , q1 }, 0) = {q0 , q1 }
Automatas
Finitos y D ({q0 , q1 }, 1) = {q0 , q2 } = N (q0 , 1) N (q1 , 1)
Lenguajes
Formales D ({q0 , q2 }, 0) = {q0 , q1 }
Eliminacion D ({q0 , q2 }, 1) = {q0 }
de las
Transiciones-

(INAOE) 34 / 58
Automata Finito No-Determinstico

Ejemplo (cont.)
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito Lo que nos queda:
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 35 / 58
Automata Finito No-Determinstico

Prueba de Equivalencia
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata Teorema clave: induccion de |w| (la prueba esta en el


Finito No-
Determinstico libro): D ({q0 }, w) = N (q0 , w). Lo que queremos probar es
Automatas que si D = (QD , , D , {q0 }, FD ) es construido a partir del
Finitos y
Lenguajes NFA N = (QN , , N , q0 , FN ) usando construccion de
Formales
subconjuntos, entonces L(D) = L(N).
Eliminacion
de las
Transiciones-

(INAOE) 36 / 58
Automata Finito No-Determinstico

Prueba de Equivalencia
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico Queremos probar por induccion en w que
Automata D ({q0 }, w) = N (q0 , w).
Finito No-
Determinstico Las dos funciones de transicion regresan conjuntos de
Automatas
Finitos y
estados de QN , pero la determinstica lo interpreta
Lenguajes
Formales
como uno solo de sus estados QD .
Eliminacion Base: w = , en este caso
de las
Transiciones- D ({q0 }, ) = N (q0 , ) = {q0 }.

(INAOE) 37 / 58
Automata Finito No-Determinstico

Prueba de Equivalencia
Introduccion a
los Automatas

Definicion
formal de un
Automata Induccion: Tomamos w de longitud n + 1 y suponemos
Finito
Determinstico que se cumple el enunciado para n, o sea que
Automata D ({q0 }, x) = N (q0 , x).
Finito No-
Determinstico
Sean estos dos conjuntos de estados
Automatas
Finitos y = {p1 , p2 , . . . , pk }.
Lenguajes
Formales Dividimos a w en xa. La definicion de para el NFA nos
Sk
Eliminacion dice que: N (q0 , w) = i=1 N (pi , a).
de las
Transiciones-
Por la construccion de subconjuntos:
Sk
D ({p1 , p2 , . . . , pk }, a) = i=1 N (pi , a)

(INAOE) 38 / 58
Automata Finito No-Determinstico

Prueba de Equivalencia
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico Usando esto, y que D ({q0 }, x) = {p1 , p2 , . . . , pk }
Automata tenemos que:
Finito No-
Determinstico D ({q0 }, w) = D (D ({q0 }, Skx), a) =
Automatas D ({p1 , p2 , . . . , pk }, a) = i=1 N (pi , a)
Finitos y
Lenguajes
Formales
Tanto D como N aceptan w cuando contiene un estado
Eliminacion en FN.
de las
Transiciones- Consecuencia: L(D) = L(N).

(INAOE) 39 / 58
Automata Finito No-Determinstico

Ejemplos
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico
Ejemplo: Convertir el siguiente NFA a un DFA
Automata
Finito No- 0 1
Determinstico
p {p, q} {p}
Automatas
Finitos y q {r } {r }
Lenguajes
Formales r {s}
Eliminacion s {s} {s}
de las
Transiciones-

(INAOE) 40 / 58
Automata Finito No-Determinstico

Ejemplo
Introduccion a
los Automatas

Definicion
En este ejemplo un tanto imaginario, se disenara un NFA
formal de un
Automata
para aceptar cadenas sobre el alfabeto {1, 2, 3} de tal
Finito
Determinstico
manera que el ultimo smbolo aparezca previamente, sin
Automata ninguna intervencion de un smbolo mas alto entre esa
Finito No-
Determinstico
previa aparicion del smbolo, e.g.,
Automatas . . . 11, . . . 21112, . . . 312123.
Finitos y
Lenguajes Truco: Utilizar el estado de inicio con el significado
Formales

Eliminacion
Creo que todava no se ha visto el smbolo que
de las corresponde al smbolo final.
Transiciones-
Otros tres estados representando una eleccion de que
el smbolo con que acaba la cadena se ha visto y se
recuerda de que smbolo se trata.

(INAOE) 41 / 58
Automata Finito No-Determinstico

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 42 / 58
Automata Finito No-Determinstico

Ejemplo (cont.)
Introduccion a
los Automatas

Definicion
formal de un Subconjunto de Construccion del NFA Previo.
Automata
Finito
Determinstico
Un truco practico importante utilizado por analizadores
Automata lexicos y otros procesadores de texto es ignorar los
Finito No-
Determinstico (frecuentemente muchos) estados que no son
Automatas accesibles desde el estado de inicio (i.e., no hay ruta
Finitos y
Lenguajes que lleve a ellos).
Formales
Para el ejemplo anterior de NFA, de los 32
Eliminacion
de las
Transiciones-
subconjuntos posibles, solo 15 son accesibles.
Calculando las transiciones por demanda obtenemos
el siguiente D :

(INAOE) 43 / 58
Automata Finito No-Determinstico

Ejemplo (cont.)
Introduccion a
1 2 3
los Automatas {p} {pq} {pr } {ps}
Definicion
formal de un
{pq} {pqt} {pr } {ps}
Automata
Finito
{pqt} {pqt} {pr } {ps}
Determinstico {pr } {pqr } {prt} {ps}
Automata
Finito No-
{prt} {pqr } {prt} {ps}
Determinstico
{ps} {pqs} {prs} {pst}
Automatas
Finitos y {pst} {pqs} {prs} {pst}
Lenguajes
Formales {prs} {pqrs} {prst} {pst}
Eliminacion {prst} {pqrs} {prst} {pst}
de las
Transiciones- {pqs} {pqst} {prs} {pst}
{pqst} {pqst} {prs} {pst}
{pqr } {pqrt} {prt} {ps}
{pqrt} {pqrt} {prt} {ps}
{pqrs} {pqrst} {prst} {pst}
{pqrst} {pqrst} {prst} {pst}
(INAOE) 44 / 58
Automata Finito No-Determinstico

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico
Ejemplo: Disene un NFA que reconozca los siguientes
Automatas
conjuntos de cadenas: abc, abd y aacd, suponiendo que el
Finitos y
Lenguajes
alfabeto es {a, b, c, d}
Formales

Eliminacion
de las
Transiciones-

(INAOE) 45 / 58
Automatas Finitos y Lenguajes Formales

Automata Finito con Transiciones-


Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito Sea  una etiqueta en arcos.
Determinstico
No hay ningun cambio extra: la aceptacion de w todava
Automata
Finito No-
Determinstico
se da como la existencia de la ruta desde un estado de
Automatas
inicio a un estado de aceptacion con etiqueta w.
Finitos y
Lenguajes Pero  puede aparecer en los arcos, y significa que
Formales
puede existir una transicion con una cadena vaca (i.e.,
Eliminacion
de las no tiene una contribucion visible para w).
Transiciones-
Se les denota NFA.

(INAOE) 46 / 58
Automatas Finitos y Lenguajes Formales

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 47 / 58
Automatas Finitos y Lenguajes Formales

Ejemplo (cont.)
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico 001 es aceptado siguiendo la ruta q, s, r , q, r , s, con la
Automata
Finito No-
etiqueta 001 = 001.
Determinstico
Podemos disenar un automata que acepte cadenas de
Automatas
Finitos y numeros que tengan un signo al inicio opcional,
Lenguajes
Formales seguido posiblemente de una cadena de decimales,
Eliminacion seguido de un punto decimal y posiblemente de otra
de las
Transiciones- cadena de decimales.

(INAOE) 48 / 58
Automatas Finitos y Lenguajes Formales

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 49 / 58
Automatas Finitos y Lenguajes Formales

-NFA
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata Mas formalmente: Un -NFA es una quntupla


Finito No-
Determinstico (Q, , , q0 , F ), donde es una funcion de Q {}
Automatas
Finitos y
al conjunto potencia de Q.
Lenguajes
Formales Hay que evitar que  sea parte del alfabeto
Eliminacion
de las
Transiciones-

(INAOE) 50 / 58
Automatas Finitos y Lenguajes Formales

Tabla de Transicion
Introduccion a
los Automatas

Definicion
formal de un
Automata La tabla de transicion del -NFA del ejemplo anterior es:
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 51 / 58
Eliminacion de las Transiciones-

Eliminacion de las Transiciones-


Introduccion a
los Automatas Las transiciones- son una conveniencia, pero no
Definicion
formal de un
incrementan la potencia de los FAs. Para eliminar las
Automata transiciones-:
Finito
Determinstico
1 Calcular la cerradura transitiva solo para los arcos .
Automata
Finito No- Del primer ejemplo: q {q}; r {r , s}; s {r , s}.
Determinstico

Automatas
2 Si un estado p puede alcanzar al estado q por medio
Finitos y
Lenguajes
de arcos , y existe una transicion de q a r en la entrada
Formales a (no ), entonces anadase una transicion de p a r con
Eliminacion
de las
la entrada a.
Transiciones-
3 Convertir el estado p en un estado de aceptacion
siempre y cuando p pueda alcanzar algun estado de
aceptacion q por medio de arcos .
4 Eliminar todas las transiciones-.

(INAOE) 52 / 58
Eliminacion de las Transiciones-

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico

Automata
Finito No-
Determinstico

Automatas
Finitos y
Lenguajes
Formales

Eliminacion
de las
Transiciones-

(INAOE) 53 / 58
Eliminacion de las Transiciones-

Transiciones Extendidas
Introduccion a
los Automatas
De la misma forma como lo hicimos anteriormente,
Definicion
formal de un podemos definir las transiciones extendidas para -NFA.
Automata
Finito
Determinstico
Base: (q, ) = ECLOSE(q)
S
Automata Induccion: (q, xa) = p((q,x),a) ECLOSE(p)
Finito No-
Determinstico
Por ejemplo, (q0 , 5.6) es:
Automatas
Finitos y (q0 , ) = {q0 , q1 } = ECLOSE(q0 )
Lenguajes
Formales
(q0 , 5) (q1 , 5) = {q1 , q4 }
Eliminacion ECLOSE(q1 ) ECLOSE(q4 ) = {q1 , q4 }
de las
Transiciones- (q1 , .) (q4 , .) = {q2 , q3 }
ECLOSE(q2 ) ECLOSE(q3 ) = {q2 , q3 , q5 } = (q0 , 5.6)
(q2 , 6) (q3 , 6) (q5 , 6) = {q3 }
(q0 , 5.6) = ECLOSE(q3 ) = {q3 , q5 }

(INAOE) 54 / 58
Eliminacion de las Transiciones-

Equivalencias
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico Como antes, el lenguaje aceptado por un -NFA, E, es:
Automata L(E) = {w|(q0 , w) F 6= }, osea todas las cadenas
Finito No-
Determinstico w que van de un estado inicial q0 a al menos un estado
Automatas
Finitos y
final.
Lenguajes
Formales
Se puede demostrar que se puede construir un DFA a
Eliminacion partir de un -NFA siguiendo un esquema parecido al
de las
Transiciones- de construccion de subconjuntos visto para NFA.

(INAOE) 55 / 58
Eliminacion de las Transiciones-

Equivalencias
Introduccion a
los Automatas

Definicion
formal de un
Automata
Finito
Determinstico QD = {S|S QE S = ECLOSE(S)}
Automata
Finito No- qD = ECLOSE(q0 )
Determinstico

Automatas
FD = {S|S QD S FE 6= }
Finitos y S
Lenguajes D (S, a) = { ECLOSE(p)|p (t, a), t S}
Formales

Eliminacion
Lo que se calcula para todos los a y conjuntos
de las
Transiciones-
S QD .

(INAOE) 56 / 58
Eliminacion de las Transiciones-

Equivalencias
Introduccion a
los Automatas

Definicion
formal de un
Automata Se puede demostrar que un lenguaje L es aceptado por
Finito
Determinstico algun -NFA E si y solo si L es aceptado por un DFA.
Automata
Finito No- Para esto, hacia un sentido es facil (cambiando un DFA
Determinstico
a un -NFA)
Automatas
Finitos y Para el otro sentido se hace lo mismo que hemos
Lenguajes
Formales hecho antes, probando con el caso base y el caso
Eliminacion
de las
inductivo, donde partimos de w = xa, suponemos que
Transiciones- es verdad para x y probamos para w, solo que ahora
tomando la cerradura  o ECLOSE para los estados.

(INAOE) 57 / 58
Eliminacion de las Transiciones-

Ejemplo
Introduccion a
los Automatas

Definicion
formal de un
Automata
Considere el siguiente -NFA:
Finito
Determinstico
 a b c
Automata
p {p} {q} {r }
Finito No-
Determinstico
q {p} {q} {r }
Automatas r {q} {r } {p}
Finitos y
Lenguajes
Formales
a) Calcula las -closure para cada estado
Eliminacion b) Cuales son todas las cadenas de 3 o menos caracteres
de las
Transiciones- aceptadas por el automata
c) Convertirlo a un DFA

(INAOE) 58 / 58

You might also like