Automatas Finitos´ - INAOE - Ciencias...

of 58 /58
Introducci ´ on a los Aut´ omatas Definici ´ on formal de un Aut ´ omata Finito Determin´ ıstico Aut ´ omata Finito No- Determin´ ıstico Aut ´ omatas Finitos y Lenguajes Formales Eliminaci ´ on de las Transiciones- Aut ´ omatas Finitos INAOE (INAOE) 1 / 58

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-