Vous êtes sur la page 1sur 58

a

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

Vous aimerez peut-être aussi