Académique Documents
Professionnel Documents
Culture Documents
Introduccion
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
a
Introduccion
los Automatas
Definicion
formal de un a los Automatas
1 Introduccion
Automata
Finito
Determinstico
Automata formal de un Automata
2 Definicion 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-
de las Transiciones-
5 Eliminacion
(INAOE) 2 / 58
a los Automatas
Introduccion
a los Automatas
Introduccion
a
Introduccion
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-
estados siguientes para cada par
o mas
estado-entrada.
(INAOE) 3 / 58
a los Automatas
Introduccion
Automatas No-Deterministas
a
Introduccion
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
a los Automatas
Introduccion
Automatas No-Deterministas
a
Introduccion
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 aceptan
tambien
Lenguajes
Formales
lenguajes regulares.
Eliminacion
de las
Transiciones-
(INAOE) 5 / 58
formal de un Automata
Definicion Finito Determinstico
Formal de un Automata
Definicion
a
Introduccion
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 estados finales/de aceptacion.
F : cero o mas
Transiciones-
(INAOE) 6 / 58
formal de un Automata
Definicion Finito Determinstico
de Transicion
Funcion
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito 5 de transicion.
: Funcion 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
formal de un Automata
Definicion Finito Determinstico
DFA
a
Introduccion
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 de q0 con el primer smbolo (s1 ) a otro estado
transicion
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
formal de un Automata
Definicion Finito Determinstico
Ejemplo
a
Introduccion
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
de 0s y 1s }.
cadenas x y y que consisten solo
Transiciones-
(INAOE) 9 / 58
formal de un Automata
Definicion Finito Determinstico
Tabla de Transiciones
a
Introduccion
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
formal de un Automata
Definicion Finito Determinstico
Diagrama de Transiciones
a
Introduccion
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
formal de un Automata
Definicion Finito Determinstico
Convenciones
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Determinstico
Automata se utilizan:
Por convencion
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
formal de un Automata
Definicion Finito Determinstico
extendidas ()
Funciones de transicion
a
Introduccion
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 y
Termina en un estado de aceptacion,
Formales
Eliminacion
3 Tiene una secuencia de etiquetas a1 , a2 , . . . , an .
de las
Transiciones-
(INAOE) 13 / 58
formal de un Automata
Definicion Finito Determinstico
Ejemplo
a
Introduccion
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
formal de un Automata
Definicion Finito Determinstico
de Transicion
Funcion
a
Introduccion
los Automatas
Definicion
de transicion
Formalmente, podemos extendemos la funcion
formal de un w), donde w puede ser cualquier cadena de
a (q,
Automata
Finito
Determinstico
smbolos de entrada:
Automata ) = q (i.e., nos quedamos en el mismo lugar
Base: (q,
Finito No-
Determinstico si no recibimos una entrada).
Automatas
Finitos y Induccion: w) = ((q,
(q, x), a), donde x es una
Lenguajes
Formales
cadena, y a es un solo smbolo (i.e., ver a donde va el
Eliminacion para el ultimo
AF con x, luego buscar la transicion
de las
Transiciones- smbolo a partir de ese estado).
x) = p entonces (q,
Si (q, w) = (p, a)
representa rutas.
(INAOE) 15 / 58
formal de un Automata
Definicion Finito Determinstico
de Transicion
Funcion
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Determinstico
Automata
Finito No-
de Cadenas: Un AF A = (Q, , , q0 , F )
Aceptacion
Determinstico 0 , w) esta en F .
acepta la cadena w si (q
Automatas
Finitos y Lenguaje de un AF: Un AF acepta el lenguaje
Lenguajes
Formales
0 , w) F }.
L(A) = {w|(q
Eliminacion
de las
Transiciones-
(INAOE) 16 / 58
formal de un Automata
Definicion Finito Determinstico
Ejemplo:
a
Introduccion
los Automatas
las cadenas que tienen un
Un DFA que acepta todas y solo
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
formal de un Automata
Definicion Finito Determinstico
Ejemplo (cont.)
a
Introduccion
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
formal de un Automata
Definicion Finito Determinstico
Ejemplo (cont.)
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Determinstico
tabular del automata
Representacion 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
formal de un Automata
Definicion Finito Determinstico
Problema 2.2.1
a
Introduccion
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
formal de un Automata
Definicion Finito Determinstico
Problema 2.2.4
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Determinstico
Automata un DFA que acepte:
Disene
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
a
Introduccion
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
a
Introduccion
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
a
Introduccion
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
a
Introduccion
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, disenar
etc. Es facil 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- estados.
o tener mas
Un NFA acepta, al igual que un DFA, lenguajes
regulares
(INAOE) 25 / 58
Automata Finito No-Determinstico
Ejemplo
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Por ejemplo, para el NFA que acepta cadenas que acaban
Determinstico de transicion
en 01 su funcion 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
a
Extension
a
Introduccion
los Automatas
Definicion
de
Similarmente a un DFA, podemos definir la funcion
formal de un extendida como sigue:
transicion
Automata
Finito ) = q
Base: (q,
Determinstico
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 Supongamos tambien que: (q, x) = {p1 , p2 , . . . , pk }.
Finitos y Sk
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
de algunos de esos estados etiquetada con
transicion
a.
(INAOE) 27 / 58
Automata Finito No-Determinstico
Ejemplo:
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Por ejemplo, podemos calcular (q 0 , 00101) para el
Finito
Determinstico
automata anterior:
Automata
Finito No-
0 , ) = {q0 }
(q
Determinstico 0 , 0) = (q0 , 0) = {q0 , q1 }
(q
Automatas
Finitos y
0 , 00) = (q0 , 0) (q1 , 0) = {q0 , q1 }
(q
Lenguajes
Formales
0 , 001) = (q0 , 1) (q1 , 1) = {q0 } {q2 } = {q0 , q2 }
(q
Eliminacion
(q0 , 0010) = (q0 , 0) (q2 , 0) = {q0 , q1 } = {q0 , q1 }
de las
Transiciones-
0 , 00101) = (q0 , 1) (q1 , 1) = {q0 } {q2 } = {q0 , q2 }
(q
Que tiene un estado final.
(INAOE) 28 / 58
Automata Finito No-Determinstico
Lenguajes de un NFA
a
Introduccion
los Automatas
Definicion
formal de un El lenguaje aceptado por un NFA, A, es:
Automata
Finito
0 , w) F 6= }.
L(A) = {w|(q
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
de Subconjunto
Construccion
a
Introduccion 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
de Subconjunto
Construccion
a
Introduccion
los Automatas
Definicion de transicion
La funcion 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
de Subconjunto
Construccion
a
Introduccion
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
de Subconjunto
Construccion
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Lo cual es un DFA (simplemente cambiando la
Determinstico
notacion). es importante notar que no todos
Tambien
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 encontrar que solo
despues unos cuantos son
de las
Transiciones- para los estados
accesibles, es construir la tabla solo
accesibles (lazy evaluation).
(INAOE) 33 / 58
Automata Finito No-Determinstico
Ejemplo (cont.)
a
Introduccion
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.)
a
Introduccion
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
a
Introduccion
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
a
Introduccion
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
a
Introduccion
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 de para el NFA nos
Dividimos a w en xa. La definicion
dice que: N (q0 , w) = ki=1 N (pi , a).
S
Eliminacion
de las
Transiciones-
Por la construccion de subconjuntos:
D ({p1 , p2 , . . . , pk }, a) = ki=1 N (pi , a)
S
(INAOE) 38 / 58
Automata Finito No-Determinstico
Prueba de Equivalencia
a
Introduccion
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
a
Introduccion
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
a
Introduccion
los Automatas
Definicion
En este ejemplo un tanto imaginario, se disenar a 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
a
Introduccion
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.)
a
Introduccion
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.)
a
Introduccion
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
a
Introduccion
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-
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito Sea una etiqueta en arcos.
Determinstico
No hay ningun de w todava
cambio extra: la aceptacion
Automata
Finito No-
Determinstico
se da como la existencia de la ruta desde un estado de
Automatas
con etiqueta w.
inicio a un estado de aceptacion
Finitos y
Lenguajes Pero puede aparecer en los arcos, y significa que
Formales
con una cadena vaca (i.e.,
puede existir una transicion
Eliminacion
de las visible para w).
no tiene una contribucion
Transiciones-
Se les denota NFA.
(INAOE) 46 / 58
Automatas Finitos y Lenguajes Formales
Ejemplo
a
Introduccion
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.)
a
Introduccion
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
a
Introduccion
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
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Determinstico
Automata Mas
formalmente: Un -NFA es una quntupla
Finito No-
Determinstico de Q {}
(Q, , , q0 , F ), donde es una funcion
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
a
Introduccion
los Automatas
Definicion
formal de un
Automata del -NFA del ejemplo anterior es:
La tabla de transicion
Finito
Determinstico
Automata
Finito No-
Determinstico
Automatas
Finitos y
Lenguajes
Formales
Eliminacion
de las
Transiciones-
(INAOE) 51 / 58
de las Transiciones-
Eliminacion
de las Transiciones-
Eliminacion
a
Introduccion
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
para los arcos .
1 Calcular la cerradura transitiva solo
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 q a r en la entrada
de arcos , y existe una transicion
Formales a (no ), entonces an adase
de p a r con
una transicion
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
de las Transiciones-
Eliminacion
Ejemplo
a
Introduccion
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
de las Transiciones-
Eliminacion
Transiciones Extendidas
a
Introduccion
los Automatas
De la misma forma como lo hicimos anteriormente,
Definicion
formal de un podemos definir las transiciones extendidas para -NFA.
Automata
Finito ) = ECLOSE(q)
Base: (q,
Determinstico
xa) =
S
Automata Induccion: (q,
p((q,x),a) ECLOSE(p)
Finito No-
Determinstico
Por ejemplo, (q 0 , 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 } = (q 0 , 5.6)
(q2 , 6) (q3 , 6) (q5 , 6) = {q3 }
0 , 5.6) = ECLOSE(q3 ) = {q3 , q5 }
(q
(INAOE) 54 / 58
de las Transiciones-
Eliminacion
Equivalencias
a
Introduccion
los Automatas
Definicion
formal de un
Automata
Finito
Determinstico Como antes, el lenguaje aceptado por un -NFA, E, es:
Automata 0 , w) F 6= }, osea todas las cadenas
L(E) = {w|(q
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
de las Transiciones-
Eliminacion
Equivalencias
a
Introduccion
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
de las Transiciones-
Eliminacion
Equivalencias
a
Introduccion
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
de las Transiciones-
Eliminacion
Ejemplo
a
Introduccion
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