Automatas Finitos´ - INAOE - Ciencias...
Embed Size (px)
Transcript of Automatas Finitos´ - INAOE - Ciencias...
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automatas Finitos
INAOE
(INAOE) 1 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Contenido
1 Introduccion a los Automatas
2 Definicion formal de un Automata Finito Determinstico
3 Automata Finito No-Determinstico
4 Automatas Finitos y Lenguajes Formales
5 Eliminacion de las Transiciones-
(INAOE) 2 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Introduccion a los Automatas
Introduccion a los Automatas
Automata: Conjunto de estados + Control Cambio deestados en respuesta a una entrada.Tipo de Control: Determinstico: Para cada entrada, hay solo un estado
al que el automata puede ir desde el estado en que seencuentre.
No determinstico: Un automata finito esno-determinstico cuando se permite que el AF tenga 0o mas estados siguientes para cada parestado-entrada.
(INAOE) 3 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Introduccion a los Automatas
Automatas No-Deterministas
Si anadimos la propiedad de no-determinismo, no anadimospoder al automata. Osea que no podemos definir ningunlenguaje que no se pueda definir con el automatadeterminstico.Con la propiedad de no-determinismo se agrega eficienciaal describir una aplicacion: Permite programar soluciones en un lenguaje de mas
alto nivel Hay un algoritmo para compilar un N-DFA en un DFA y
poder ser ejecutado en una computadora convencional
(INAOE) 4 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Introduccion a los Automatas
Automatas No-Deterministas
Extension del N-DFA para hacer saltos de un estado aotro espontaneamente, con la cadena vaca () comoentrada: N-DFA. Estos automatas tambien aceptanlenguajes regulares.
(INAOE) 5 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Definicion Formal de un Automata
Un AF se representa como una 5-tupla: A = (Q,, ,q0,F ).Donde:
1 Q: Un conjunto finito de estados.2 : Un conjunto finito de smbolos de entrada (alfabeto)3 q0: El estado inicial/de comienzo.4 F : cero o mas estados finales/de aceptacion.
(INAOE) 6 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Funcion de Transicion
5 : Funcion de transicion. Esta funcion: Toma un estado y un smbolo de entrada como
argumentos. Regresa un estado. Una regla de se escribe como (q,a) = p, donde q y
p son estados y a es un smbolo de entrada. Intuitivamente: Si el AF esta en un estado q, y recibe
una entrada a, entonces el AF va al estado p (nota:puede ser al mismo estado q = p).
(INAOE) 7 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
DFA
El lenguaje de un DFA es el conjunto de todas lascadenas que el DFA acepta
Dada una cadena (e.g., s1, s2, . . . , sn) el DFA empiezaen su estado inicial (e.g., q0), consulta si existe unatransicion de q0 con el primer smbolo (s1) a otro estado(e.g., q1) y si existe (i.e., (q0, s1) = q1) se mueve alestado descrito en la transicion.
Procesa el siguiente smbolo de la cadena (i.e., s2) yas continua.
Si logra procesar toda la cadena y el estado al quellega es uno de los estados finales, entonces se diceque el automata acepta esa cadena.
(INAOE) 8 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Ejemplo
Un Automata A que acepta L = {x01y |x y {0,1}} El DFA acepta cadenas que tienen 01 en alguna parte
de la cadena El lenguaje del DFA es el conjunto de cadenas que
acepta {w |w tiene la forma x01y para algunascadenas x y y que consisten solo de 0s y 1s }.
(INAOE) 9 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Tabla de Transiciones
El automata anterior puede ser representado con una tablade transiciones, definido comoA = ({q0,q1,q2}, {0,1}, ,q0,q1), de la siguiente forma:
0 1 q0 q2 q0?q1 q1 q1q2 q2 q1
(INAOE) 10 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Diagrama de Transiciones
Cada estado tiene un nodo asociado Cada transicion de estados tiene un arco asociado
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
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Convenciones
Por convencion se utilizan: a, b, etc., o dgitos para los smbolos de entrada u, v , . . . , z para las cadenas de smbolos de entrada q,p, etc., para los estados
(INAOE) 12 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Funciones de transicion extendidas ()
Intuitivamente, un FA acepta una cadena w = a1a2 . . . an sihay una ruta en el diagrama de transiciones que:
1 Empieza en el estado de inicio,2 Termina en un estado de aceptacion, y3 Tiene una secuencia de etiquetas a1,a2, . . . ,an.
(INAOE) 13 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Ejemplo
Ejemplo: El siguiente AF acepta la cadena 01101:
(INAOE) 14 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Funcion de Transicion
Formalmente, podemos extendemos la funcion de transicion a (q,w), donde w puede ser cualquier cadena desmbolos de entrada:
Base: (q, ) = q (i.e., nos quedamos en el mismo lugarsi no recibimos una entrada).
Induccion: (q,w) = ((q, x),a), donde x es unacadena, y a es un solo smbolo (i.e., ver a donde va elAF con x , luego buscar la transicion para el ultimosmbolo a partir de ese estado).
Si (q, x) = p entonces (q,w) = (p,a) representa rutas.
(INAOE) 15 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Funcion de Transicion
Aceptacion de Cadenas: Un AF A = (Q,, ,q0,F )acepta la cadena w si (q0,w) esta en F .
Lenguaje de un AF: Un AF acepta el lenguajeL(A) = {w |(q0,w) F}.
(INAOE) 16 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Ejemplo:
Un DFA que acepta todas y solo las cadenas que tienen unnumero par de 0s y tambien un numero par de 1s
(INAOE) 17 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Ejemplo (cont.)
(INAOE) 18 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Ejemplo (cont.)
Representacion tabular del automata anterior:0 1
? q0 q2 q1q1 q3 q0q2 q0 q3q3 q1 q2
(INAOE) 19 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Problema 2.2.1
Cada vez que entra una canica en alguno de las dosentradas (A o B) cae y mueve la compuerta. La salida D esexito y la C fracaso. Modelarlo como un DFA.
(INAOE) 20 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Definicion formal de un Automata Finito Determinstico
Problema 2.2.4
Disene un DFA que acepte: Todas las cadenas que acaban en 00 Todas las cadenas con 000 en algun lugar Todas las cadenas con una sucadena 001
(INAOE) 21 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Automata Finito No-Determinstico
Un automata finito es no-determinstico cuando se permiteque el AF tenga 0 o mas estados siguientes para cada parestado-entrada:
(INAOE) 22 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Automata Finito No-Determinstico
En el ejemplo anterior, se puede apreciar que de q0 sepuede ir a q0 o a q1 con la entrada 0, y esto hace alAF ser no-determinista.
Un NFA puede estar en varios estados a la vez o sepuede ver que adivina a que estado ir.
Por ejemplo, el siguiente automata acepta todas lascadenas que terminan en 01:
(INAOE) 23 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Automata Finito No-Determinstico
Lo que pasa al procesar como entrada a 00101 es:
(INAOE) 24 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Automata Finito No-Determinstico
Un NFA es una herramienta importante para disenarprocesadores de cadenas, e.g., grep, analizadoreslexicos, etc. Es facil disenar NFAs que encuentrensecuencias de palabras en texto.
NFA: Formalmente, un NFA es una quntuplaA = (Q,, ,q0,F ), donde todo es un DFA, pero (q,a)nos regresa un conjunto de estados en lugar de un soloestado. De hecho puede ser vaco, tener un solo estadoo tener mas estados.
Un NFA acepta, al igual que un DFA, lenguajesregulares
(INAOE) 25 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo
Por ejemplo, para el NFA que acepta cadenas que acabanen 01 su funcion de transicion es:
0 1 q0 {q0,q1} {q0}
q1 {q2}*q2
Como puede observarse, todo se especifica en conjuntos.
(INAOE) 26 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Extension a
Similarmente a un DFA, podemos definir la funcion detransicion extendida como sigue: Base: (q, ) = q Induccion: Supongamos w es de la forma w = xa,
donde a es el smbolo terminal y x es el resto de w .Supongamos tambien que: (q, x) = {p1,p2, . . . ,pk}.k
i=1 (pi ,a) = {r1, r2, . . . , rm}.Entonces (q,w) = {r1, r2, . . . , rm}.
En otras palabras calculamos (q,w) primerocalculando (q, x) y despues siguiendo cualquiertransicion de algunos de esos estados etiquetada cona.
(INAOE) 27 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo:
Por ejemplo, podemos calcular (q0,00101) para elautomata anterior:(q0, ) = {q0}(q0,0) = (q0,0) = {q0,q1}(q0,00) = (q0,0) (q1,0) = {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}Que tiene un estado final.
(INAOE) 28 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Lenguajes de un NFA
El lenguaje aceptado por un NFA, A, es:L(A) = {w |(q0,w) F 6= }.
Equivalencia entre un DFA y un NFAUn NFA es normalmente mas facil de definir, aunque almismo tiempo, para cualquier NFA N existe un DFA D talque L(D) = L(N) y viceversa.Para esto se usa la construccion de subconjunto quemuestra un ejemplo de como un automata se puedeconstruir a partir de otro.
(INAOE) 29 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Construccion de SubconjuntoPara cada NFA existe un DFA equivalente (acepta el mismolenguaje). Pero el DFA puede tener un numero exponencialde estados.Sea N = (QN ,, N ,q0,FN) un NFA. El DFA equivalenteconstruido a partir del subconjunto de construccion esD = (QD,, D, {q0},FD), donde: |QD| = 2|QN |; i.e., QD es el conjunto de todos los
subconjuntos de QN . FD es el conjunto de conjuntos S en QD tal que
S FN 6= . Para cualquier S QN y a ,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
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Construccion de Subconjunto
La funcion de transicion D del NFA anterior es:
(INAOE) 31 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Construccion de Subconjunto
Al existir 3 estados, tenemos 8 subconjuntos. Esto mismo lopodemos poner como:
(INAOE) 32 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Construccion de Subconjunto
Lo cual es un DFA (simplemente cambiando lanotacion). Tambien es importante notar que no todoslos estados pueden ser alcanzados. En particular, sololos estados B, E y F son accesibles, por lo que losdemas los podemos eliminar.
Una forma de no construir todos los subconjuntos paradespues encontrar que solo unos cuantos sonaccesibles, es construir la tabla solo para los estadosaccesibles (lazy evaluation).
(INAOE) 33 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo (cont.)
Para el ejemplo anterior: D({q0},0) = {q0,q1}D({q0},1) = {q1}D({q0,q1},0) = {q0,q1}D({q0,q1},1) = {q0,q2} = N(q0,1) N(q1,1)D({q0,q2},0) = {q0,q1}D({q0,q2},1) = {q0}
(INAOE) 34 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo (cont.)
Lo que nos queda:
(INAOE) 35 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Prueba de Equivalencia
Teorema clave: induccion de |w | (la prueba esta en ellibro): D({q0},w) = N(q0,w). Lo que queremos probar esque si D = (QD,, D, {q0},FD) es construido a partir delNFA N = (QN ,, N ,q0,FN) usando construccion desubconjuntos, entonces L(D) = L(N).
(INAOE) 36 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Prueba de Equivalencia
Queremos probar por induccion en w queD({q0},w) = N(q0,w).
Las dos funciones de transicion regresan conjuntos deestados de QN , pero la determinstica lo interpretacomo uno solo de sus estados QD.
Base: w = , en este casoD({q0}, ) = N(q0, ) = {q0}.
(INAOE) 37 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Prueba de Equivalencia
Induccion: Tomamos w de longitud n + 1 y suponemosque se cumple el enunciado para n, o sea queD({q0}, x) = N(q0, x).
Sean estos dos conjuntos de estados= {p1,p2, . . . ,pk}.
Dividimos a w en xa. La definicion de para el NFA nosdice que: N(q0,w) =
ki=1 N(pi ,a).
Por la construccion de subconjuntos:D({p1,p2, . . . ,pk},a) =
ki=1 N(pi ,a)
(INAOE) 38 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Prueba de Equivalencia
Usando esto, y que D({q0}, x) = {p1,p2, . . . ,pk}tenemos que:D({q0},w) = D(D({q0}, x),a) =D({p1,p2, . . . ,pk},a) =
ki=1 N(pi ,a)
Tanto D como N aceptan w cuando contiene un estadoen FN.
Consecuencia: L(D) = L(N).
(INAOE) 39 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplos
Ejemplo: Convertir el siguiente NFA a un DFA0 1
p {p,q} {p}q {r} {r}r {s} s {s} {s}
(INAOE) 40 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo
En este ejemplo un tanto imaginario, se disenara un NFApara aceptar cadenas sobre el alfabeto {1,2,3} de talmanera que el ultimo smbolo aparezca previamente, sinninguna intervencion de un smbolo mas alto entre esaprevia aparicion del smbolo, e.g.,. . . 11, . . .21112, . . .312123. Truco: Utilizar el estado de inicio con el significado
Creo que todava no se ha visto el smbolo quecorresponde al smbolo final.
Otros tres estados representando una eleccion de queel smbolo con que acaba la cadena se ha visto y serecuerda de que smbolo se trata.
(INAOE) 41 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo
(INAOE) 42 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo (cont.)
Subconjunto de Construccion del NFA Previo. Un truco practico importante utilizado por analizadores
lexicos y otros procesadores de texto es ignorar los(frecuentemente muchos) estados que no sonaccesibles desde el estado de inicio (i.e., no hay rutaque lleve a ellos).
Para el ejemplo anterior de NFA, de los 32subconjuntos posibles, solo 15 son accesibles.Calculando las transiciones por demanda obtenemosel siguiente D:
(INAOE) 43 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo (cont.)1 2 3
{p} {pq} {pr} {ps}{pq} {pqt} {pr} {ps}{pqt} {pqt} {pr} {ps}{pr} {pqr} {prt} {ps}{prt} {pqr} {prt} {ps}{ps} {pqs} {prs} {pst}{pst} {pqs} {prs} {pst}{prs} {pqrs} {prst} {pst}{prst} {pqrs} {prst} {pst}{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
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automata Finito No-Determinstico
Ejemplo
Ejemplo: Disene un NFA que reconozca los siguientesconjuntos de cadenas: abc, abd y aacd , suponiendo que elalfabeto es {a,b, c,d}
(INAOE) 45 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automatas Finitos y Lenguajes Formales
Automata Finito con Transiciones-
Sea una etiqueta en arcos. No hay ningun cambio extra: la aceptacion de w todava
se da como la existencia de la ruta desde un estado deinicio a un estado de aceptacion con etiqueta w .
Pero puede aparecer en los arcos, y significa quepuede existir una transicion con una cadena vaca (i.e.,no tiene una contribucion visible para w).
Se les denota NFA.
(INAOE) 46 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automatas Finitos y Lenguajes Formales
Ejemplo
(INAOE) 47 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automatas Finitos y Lenguajes Formales
Ejemplo (cont.)
001 es aceptado siguiendo la ruta q, s, r ,q, r , s, con laetiqueta 001 = 001.
Podemos disenar un automata que acepte cadenas denumeros que tengan un signo al inicio opcional,seguido posiblemente de una cadena de decimales,seguido de un punto decimal y posiblemente de otracadena de decimales.
(INAOE) 48 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automatas Finitos y Lenguajes Formales
Ejemplo
(INAOE) 49 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automatas Finitos y Lenguajes Formales
-NFA
Mas formalmente: Un -NFA es una quntupla(Q,, ,q0,F ), donde es una funcion de Q {}al conjunto potencia de Q.
Hay que evitar que sea parte del alfabeto
(INAOE) 50 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Automatas Finitos y Lenguajes Formales
Tabla de Transicion
La tabla de transicion del -NFA del ejemplo anterior es:
(INAOE) 51 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Eliminacion de las Transiciones-
Eliminacion de las Transiciones-
Las transiciones- son una conveniencia, pero noincrementan la potencia de los FAs. Para eliminar lastransiciones-:
1 Calcular la cerradura transitiva solo para los arcos .Del primer ejemplo: q {q}; r {r , s}; s {r , s}.
2 Si un estado p puede alcanzar al estado q por mediode arcos , y existe una transicion de q a r en la entradaa (no ), entonces anadase una transicion de p a r conla entrada a.
3 Convertir el estado p en un estado de aceptacionsiempre y cuando p pueda alcanzar algun estado deaceptacion q por medio de arcos .
4 Eliminar todas las transiciones-.
(INAOE) 52 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Eliminacion de las Transiciones-
Ejemplo
(INAOE) 53 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Eliminacion de las Transiciones-
Transiciones Extendidas
De la misma forma como lo hicimos anteriormente,podemos definir las transiciones extendidas para -NFA. Base: (q, ) = ECLOSE(q) Induccion: (q, xa) =
p((q,x),a) ECLOSE(p)
Por ejemplo, (q0,5.6) es:(q0, ) = {q0,q1} = ECLOSE(q0)(q0,5) (q1,5) = {q1,q4}ECLOSE(q1) ECLOSE(q4) = {q1,q4}(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
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Eliminacion de las Transiciones-
Equivalencias
Como antes, el lenguaje aceptado por un -NFA, E, es:L(E) = {w |(q0,w) F 6= }, osea todas las cadenasw que van de un estado inicial q0 a al menos un estadofinal.
Se puede demostrar que se puede construir un DFA apartir de un -NFA siguiendo un esquema parecido alde construccion de subconjuntos visto para NFA.
(INAOE) 55 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Eliminacion de las Transiciones-
Equivalencias
QD = {S|S QE S = ECLOSE(S)} qD = ECLOSE(q0) FD = {S|S QD S FE 6= } D(S,a) = {
ECLOSE(p)|p (t ,a), t S}
Lo que se calcula para todos los a y conjuntosS QD.
(INAOE) 56 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Eliminacion de las Transiciones-
Equivalencias
Se puede demostrar que un lenguaje L es aceptado poralgun -NFA E si y solo si L es aceptado por un DFA.
Para esto, hacia un sentido es facil (cambiando un DFAa un -NFA)
Para el otro sentido se hace lo mismo que hemoshecho antes, probando con el caso base y el casoinductivo, donde partimos de w = xa, suponemos quees verdad para x y probamos para w , solo que ahoratomando la cerradura o ECLOSE para los estados.
(INAOE) 57 / 58
-
Introduccion alos Automatas
Definicionformal de unAutomataFinitoDeterminstico
AutomataFinito No-Determinstico
AutomatasFinitos yLenguajesFormales
Eliminacionde lasTransiciones-
Eliminacion de las Transiciones-
Ejemplo
Considere el siguiente -NFA: a b c
p {p} {q} {r}q {p} {q} {r} r {q} {r} {p}
a) Calcula las -closure para cada estadob) Cuales son todas las cadenas de 3 o menos caracteres
aceptadas por el automatac) Convertirlo a un DFA
(INAOE) 58 / 58
Introduccin a los AutmatasDefinicin formal de un Autmata Finito DeterminsticoAutmata Finito No-DeterminsticoAutmatas Finitos y Lenguajes FormalesEliminacin de las Transiciones-