5 - AFD

download 5 - AFD

of 24

description

automatas finitos deterministas

Transcript of 5 - AFD

  • 1Teora de la Computacin

    Autmatas finitos deterministas

    1

    Dra. Norka Bedregal Alpaca

    Dra. Norka Bedregal Alpaca

    2

    IntroduccinIntroduccin

    Autmatas con salidas (Mquinas Secuenciales): Mquina de Moore. Salida asociada al estado. Mquina de Mealy. Salida asociada a la

    transicin.

    Autmatas reconocedores de lenguajes regulares (Mquinas de Estado Finito):

    Autmata Finito Determinista (AFD) Autmata Finito No Determinista (AFND)E

    AUT

    MAT

    AS

  • 2Introduccin: Una mquina es un sistema que puede aceptar una

    entrada, que puede producir una salida y que tiene una memoria para llevar el registro de cierta informacin acerca de las entradas anteriores.

    La condicin interna de la mquina y de su memoria, en un instante en particular, constituye el estado de la mquina en ese instante.

    Una Mquina de Estado Finito es capaz de recordar y situarse en un estado que depende de la entrada y del estado anterior

    Dra. Norka Bedregal Alpaca

    3

    RepasoRepasoAU

    TM

    ATAS

    Dra. Norka Bedregal Alpaca

    4

    Mquina Estado FinitoMquina Estado Finito

    Definicin:

    Una mquina M, es un sextuplo M = (I, O, S, f, g, ), donde: I, alfabeto de entrada, es un conjunto finito de

    smbolos. O, alfabeto de salida, es un conjunto finito de

    smbolos. S, conjunto de estados, es un conjunto finito f: S x I SFuncin de estado siguiente G: S x I O Funcin de salidas , estado inicial, pertenece a S

    AUT

    MAT

    AS

  • 3Dra. Norka Bedregal Alpaca

    5

    Mquina Estado FinitoMquina Estado Finito

    Ejemplo: Sea M = (I, O, S, f, g, ), una mquina tal que: I = {a, b} O ={x, y, z} S={0,1,2} f: S x I S: definida por:

    f(0,a)= 2 f(1,a)= 1 f(2,a)= 0f(0,b)= 1 f(1,b)= 2 f(2,b)= 0

    g: S x I O definida por:g(0,a)= x g(1,a)= z g(2,a)= xg(0,b)= y g(1,b)= y g(2,b)= x

    = 0

    AUT

    MAT

    AS

    Dra. Norka Bedregal Alpaca

    6

    Mquina Estado FinitoMquina Estado FinitoEjemplo (continuacin): Tabla de transicin o tabla de estados

    Sf g

    a b a b0 2 1 x y1 1 2 z y2 0 0 x x

    Diagrama de transicin o diagrama de estados

    0 1

    2

    (b,y)

    (a,x)

    (a,z)

    (b,y)(b,x)

    (a,x)

    AUT

    MAT

    AS

  • 4 Un autmata finito es un conjunto de estados y un control que se mueve de un estado a otro en respuesta a entradas externas.

    Los autmatas finitos se pueden clasificar en funcin del tipo de control como:

    Deterministas, el autmata nicamente puede estar en un estado en un momento determinado.

    No Deterministas, el autmata puede estar en varios estados simultneamente.

    Ambos definen los mismos lenguajes (regulares), sin embargo los No deterministas permiten describir ms eficientemente determinados problemas.

    Dra. Norka Bedregal Alpaca

    7

    Autmatas FinitosAutmatas FinitosAU

    TM

    ATAS

    Dra. Norka Bedregal Alpaca

    8

    Autmatas finitos deterministas

    (AFD)

    Autmatas finitos deterministas

    (AFD)AUT

    MAT

    AS

  • 5Un autmata de estado finito determinista (AFD), es una mquina de estado finito:

    A = (I, O, S, f, g, )en la que el conjunto de smbolos de salida es O = {0, 1}, y donde el estado actual determina la ltima salida.Aquellos estados para los cuales la ltima salida es 1, reciben el nombre de estados de aceptacin.

    Esta definicin intuitiva se puede formalizar a travs de la utilizacin de una quntupla

    Dra. Norka Bedregal Alpaca

    9

    Autmatas finitos deterministasAutmatas finitos deterministasAU

    TM

    ATAS

    Definicin (AFD):Un autmata finito es una quntupla

    M = (Q, , , q0, F) donde: Q es un conjunto finito llamado conjunto de estados. es un conjunto finito de smbolos, llamado alfabeto

    de entrada. es una aplicacin llamada funcin de transicin

    : Q Q q0 es un elemento de Q, llamado estado inicial. F es un subconjunto de Q, llamado conjunto de

    estados finales.

    Dra. Norka Bedregal Alpaca

    10

    Autmatas finitos deterministasAutmatas finitos deterministas

    AUT

    MAT

    AS

  • 6Dra. Norka Bedregal Alpaca

    11

    Autmatas finitos deterministasAutmatas finitos deterministasAU

    TM

    ATAS

    Tabla de transicin: Es una representacin clsica de una funcin con

    dos argumentos. En las filas se colocarn los estados y en las

    columnas los smbolos del alfabeto de entrada. Cada interseccin fila (estado q) -columna (carcter

    a) corresponde al estado (q,a). El estado inicial se representa con Los estados finales con un *

    Dra. Norka Bedregal Alpaca

    12

    Representacin de un AFDRepresentacin de un AFD

    Ejemplo:

    AUT

    MAT

    AS

  • 7Dra. Norka Bedregal Alpaca

    13

    Representacin de un AFDRepresentacin de un AFDDiagramas de transicin: Es un grafo en el que los vrtices representan los

    distintos estados y los arcos las transiciones entre los estados.

    Cada arco va etiquetado con el smbolo que corresponde a dicha transicin.

    El estado inicial se representa con Los estados finales con un con doble crculo.Ejemplo:Para el autmata definido por la tabla anterior:

    AUT

    MAT

    AS

    Determinismo: No existen transiciones q Q , a , una nica (q,a):

    Una sla arista etiquetada con a para cada smbolo;

    Para cada entrada en la tabla un solo estado La indeterminacin en el caso que falten transiciones

    para algunas entradas se resuelve incluyendo un nuevo estado, llamado de absorcin o muerto.

    Al estado de absorcin llegan todas las transiciones no definidas.

    Dra. Norka Bedregal Alpaca

    14

    Representacin de un AFDRepresentacin de un AFD

    AUT

    MAT

    AS

  • 8Ejemplo:Dado el autmata definido por la tabla de transicin:

    Dra. Norka Bedregal Alpaca

    15

    Representacin de un AFDRepresentacin de un AFD

    Introduciendo un estado de absorcin M:

    AUT

    MAT

    AS

    Se trata de definir una funcin que describa qu estado se alcanza desde un estado q si en lugar de ingresar un slo smbolo (en cuyo caso se alcanzara el estado descrito por (q,a)), se ingresara una palabra *.

    Definicin (Extensin a palabras):Si M = ( Q, , , q0, F ) es un AFD se define ( por recurrencia) la funcin de transicin asociada a palabras como la funcin:

    : Q * Qdada por:1. Si || = 0 entonces = y se define q Q,

    ( q, ) = qes decir, si no hay entrada no hay cambio de estado

    Dra. Norka Bedregal Alpaca

    16

    AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.

    AUT

    MAT

    AS

  • 92. Se supone definida ( q, a ) para cada a *, tal que |a| n:

    ( q, a ) = ( q, a )

    3. Sea * tal que || = n + 1, entonces se puede escribir = ax con |x| = n , x * a .Se define q Q:

    (q, ) = (q, ax) = ( (q, a) , x )

    Dra. Norka Bedregal Alpaca

    17

    AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.AU

    TM

    ATAS

    Ejemplo:Sea M1 = (Q, , , q0,F) donde Q = {p,q,r}, = {a,b}Sea p el estado inicial, F = {r} y definida como sigue:

    (p,a) = q (p,b) = r(q,a) = p (q,b) = q(r,a) = r (r,b) = r

    Segn la definicin M1 es un AFD.Se puede construir la tabla de transicin y el diagrama de transicin de estados

    Dra. Norka Bedregal Alpaca

    18

    AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.

    AUT

    MAT

    AS

  • 10

    Ejemplo (continuacin):Siendo:

    Dra. Norka Bedregal Alpaca

    19

    AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.AU

    TM

    ATAS

    Ejemplo (continuacin):En la mquina M1 sera

    Dra. Norka Bedregal Alpaca

    20

    AFD: Extensin de f a palabras.AFD: Extensin de f a palabras.

    En el diagrama se pueden seguir los arcos desde q, con los smbolos bab consecutivamente y observar que se termina en el estado r.

    AUT

    MAT

    AS

  • 11

    Cmo procesa entradas un AFD? La entrada a un AF es un conjunto de smbolos

    tomados del alfabeto de entrada , no hay lmite en tamao de la cadena.

    Existe un puntero que en cada momento apunta a una posicin de la cadena de entrada.

    El autmata est siempre en un estado de Q, inicialmente se encuentra en el estado q0.

    Dra. Norka Bedregal Alpaca

    21

    Cmo procesa entradas un AFD?Cmo procesa entradas un AFD?AU

    TM

    ATAS

    En cada paso el autmata lee un smbolo de la entrada y segn el estado en el que se encuentre, cambia de estado y pasa a leer otro smbolo.

    As sucesivamente hasta que se terminen de leer todos los smbolos de la cadena de entrada.

    Si en ese momento el AF est en un estado qi de F, se dice que acepta la cadena, en caso contrario la rechaza.

    Dra. Norka Bedregal Alpaca

    22

    Cmo procesa entradas un AFD?Cmo procesa entradas un AFD?

    AUT

    MAT

    AS

  • 12

    Una cadena x * es aceptada por un autmata M = ( Q, , , q0, F ) si y solo si (q0, x) F.

    Es decir que, x * es una palabra (cadena) aceptada por el autmata finito determinista M si partiendo desde el estado inicial e ingresando consecutivamente de izquierda a derecha los smbolos de la palabra, se alcanza un estado final.

    En otro caso la cadena es rechazada por el autmata. El lenguaje aceptado o reconocido por un autmata es

    el conjunto de las palabras de * que acepta:L(M) = { x * / (q0, x ) F}

    Dra. Norka Bedregal Alpaca

    23

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFDAU

    TM

    ATAS

    Ejemplo:Las cadenas abb, baa, b, abbaaa son palabras aceptadas por M1.

    Dra. Norka Bedregal Alpaca

    24

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFD

    Ejemplo:Considere el diagrama de la figura:

    Se observa que la transicin (p,1) no est representada, lo que contradice la definicin de un AFD

    AUT

    MAT

    AS

  • 13

    Es necesario crear un estado de absorcin y reconstruir el diagrama, con lo que se obtiene el autmata M2:

    Dra. Norka Bedregal Alpaca

    25

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFD

    Las cadenas 01, 0001, 001001 son palabras aceptadas por M2.

    El lenguaje de M2 son todas las cadenas de ceros y unos que empiezan por cero y tienen al menos un uno

    L(M) = {x1y : x, y * }

    AUT

    MAT

    AS

    Dra. Norka Bedregal Alpaca

    26

    Diagrama de transicin

    Lenguaje aceptado: L(A) = {x *: (q0 , x) F }?

    Tabla de transicin

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFDEjercicio:Considere el autmata definido por:

    A = ( {q0, q1 , q2 ), {a, b}, , q0 , {q1} )con:

    (q0 , a) = q1 (q0, b) = q2 (q1 ,a) = q2(q1, b) = q0 (q2,a) = q2 (q2,b) = q2

    AUT

    MAT

    AS

  • 14

    Dra. Norka Bedregal Alpaca

    27

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFD

    Observacin:Otra forma de encontrar el lenguaje aceptado por un autmata es a travs de la nocin de configuracin

    Definicin:Una configuracin de un AFD M = ( Q, , , q0, F ) es un elemento de CM = Q *

    Observaciones: La idea es que la configuracin (q, x) indica que M

    est en el estado q y le falta leer la cadena x de la entrada.

    Esta es informacin suficiente para predecir lo que ocurrir en el futuro.

    Hay que describir cmo un AFD lleva de una configuracin a la siguiente.

    AUT

    MAT

    AS

    Dra. Norka Bedregal Alpaca

    28

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFDDefinicin:La relacin lleva en un paso, denotada por |-, subconjunto de CMCM se define de la siguiente manera:

    (q, ax) |- (q, x), donde a , sii (q, a) = qDefinicin:La relacin lleva en cero o ms pasos denotada por |-* es la clausura reflexiva y transitiva de |-Definicin:El lenguaje aceptado por un AFD M = ( Q, , , q0, F ) se define comoL(M) = {x *, tal que existe f F, (s, x) |-* (f, )}

    AUT

    MAT

    AS

  • 15

    Dra. Norka Bedregal Alpaca

    29

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFDEjemplo:Considere el AFD que se describe formalmente comoM = ( Q, , , q0, F ) donde Q = {0, 1, 2, 3}, = {a, b}, q0 = 0, F = {0, 1, 2}, y la funcin como sigue:

    AUT

    MAT

    AS

    Dibuje el diagrama de transicin

    Dra. Norka Bedregal Alpaca

    30

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFD

    AUT

    MAT

    AS

    El estado 3 se llama sumidero, porque una vez que se cae l, el AFD no puede salir y no puede aceptar la cadena.Considere la cadena de entrada x = abbababb y encuentre las configuraciones por las que pasa M al recibir x como entrada

  • 16

    Dra. Norka Bedregal Alpaca

    31

    Lenguaje aceptado por un AFDLenguaje aceptado por un AFDAU

    TM

    ATAS

    x = abbababb

    Por lo tanto (0, x) |-* (2, ), y como 2 F, se tiene que x L(M)

    Sean M y M dos AFD, se dice que son equivalentes si L(M)=L(M).

    Los AFD se caracterizan por las palabras que aceptan, siendo menos importante la estructura interna de la mquina, el nmero de estados, cuntos estados finales tenga, etc

    Dra. Norka Bedregal Alpaca

    32

    Equivalencia de AFDEquivalencia de AFD

    AUT

    MAT

    AS

  • 17

    Un AFD es principalmente una especie de filtro de todas las cadenas posibles sobre el alfabeto de entrada.

    Los AFD tienen muchas utilidades, en particular, como analizadores lxicos.

    Por ejemplo, para comprobar que en un programa, una expresin algebraica del tipo (a+b)*c/(d+e) est correctamente escrita, se utiliza un analizador construido a partir de un autmata.

    Lo usual es contar con un lenguaje de inters L sobre un alfabeto y construir un AFD cuyo lenguaje sea precisamente L.

    Dra. Norka Bedregal Alpaca

    33

    Importancia de los AFDImportancia de los AFDAU

    TM

    ATAS

    Ejemplo:Construir un AFD sobre el alfabeto ={0,1} cuyo lenguaje sea:

    L = {cadenas que terminan en 00}

    Dra. Norka Bedregal Alpaca

    34

    Importancia de los AFDImportancia de los AFD

    AUT

    MAT

    AS

    Un AFD para este lenguaje puede ser:

  • 18

    Sea M = ( Q, , , q0, F ) un AFD. Un estado q Q es un estado inaccesible, si no existe ninguna palabra sobre el alfabeto de entrada que partiendo desde q0 llegue a q. Simblicamente se tendr:

    q es inaccesible si * , (q0 , ) q

    Observaciones: Los estados que no son inaccesibles se denominan

    accesibles. Si se eliminan los estados inaccesibles y todas sus

    transiciones, el AFD obtenido es equivalente al dado.

    Dra. Norka Bedregal Alpaca

    35

    Estados inaccesiblesEstados inaccesiblesAU

    TM

    ATAS

    Ejemplo:En el AFD de la figura, el estado r es inaccesible por que no se puede alcanzar a partir del estado inicial

    Dra. Norka Bedregal Alpaca

    36

    Estados inaccesiblesEstados inaccesibles

    AUT

    MAT

    AS

  • 19

    Un AFD es conexo si no tiene estados inaccesibles. Si un AFD no es conexo basta eliminar los estados

    inaccesibles y todas sus transiciones (las de entrada y las de salida) para obtener un nuevo AFD conexo equivalente al de partida.

    Ejemplo:El AFD obtenido quitando al AFD del ejemplo anterior el estado r y sus transiciones, es conexo

    Dra. Norka Bedregal Alpaca

    37

    Autmata ConexoAutmata ConexoAU

    TM

    ATAS

    Laboratorio:Construccin de analizadores lxicos

    Dra. Norka Bedregal Alpaca

    38

    TrabajoTrabajo

    AUT

    MAT

    AS

  • 20

    Dado un AFD se trata de construir otro equivalente pero que sea mnimo en cuanto al nmero de estados.

    Equivalencia de estados:Sea M = ( Q, , , q0, F ) un AFD. Se define una relacin de equivalencia en Q.Se dice que dos estados p, q Q son equivalentes: p q, si *, se tiene ((p, )) F (q, ) F)

    Observacin:El conjunto de estados del AFD mnimo es el conjunto cociente Q/ de esta relacin de equivalencia de estados

    Dra. Norka Bedregal Alpaca

    39

    AUT

    MAT

    AS

    Minimizacin de un AFDMinimizacin de un AFD

    Para el clculo de este conjunto cociente se define: Dos estados p,q Q son equivalentes de orden r (r0),

    p r q, si * tal que | | r se tiene ((p, ) ) F (q, ) F

    Para cada r la relacin r es de equivalencia. De las definiciones anteriores se tiene:

    p q p r q r 0 Para obtener Q/ se calcula Q/ 0, Q/ 1 ,... hasta que

    Q/ r = Q/ r+1 = Q/

    Dra. Norka Bedregal Alpaca

    40

    Clculo del Conjunto CocienteClculo del Conjunto Cociente

    AUT

    MAT

    AS

  • 21

    Se trabaja por recurrencia sobre r. Para r = 0, como ( p, ) = p, dos estados p y q

    pueden ser equivalentes de orden 0 en los siguientes casos:

    si ambos son estados finales ( p, q F) si ambos son estados no finales ( p, q F) as el

    conjunto cociente de la relacin de equivalencia 0 ser Q/ 0 = { F, Fc }.

    Paso 1:

    Q/ 0 = { c1 = qi F, c2 = qj Q-F}Paso 2:

    Sea Q/ r = {C1, C2, , Ci, , Ck}

    Dra. Norka Bedregal Alpaca

    41

    Algoritmo para construir Q/ nAlgoritmo para construir Q/ nAU

    TM

    ATAS

    Se quiere construir Q/ r+1 , considerando que p y q estn en la misma clase si se verifican dos condiciones:

    1. p, q Ck2. a se verifica que ( p, a) y ( q, a) estn en

    la misma clase Cm de Q/ iPaso 3:Si Q/ i = Q/ i+1 entonces Q/ i = Q/ en caso contrario aplicar el paso 2, partiendo de Q/ i+1

    Dra. Norka Bedregal Alpaca

    42

    AUT

    MAT

    AS

    Algoritmo para construir Q/ nAlgoritmo para construir Q/ n

  • 22

    Dado el AFD , M = ( Q, , , q0, F ) existe un nico AFD equivalente mnimo (Autmata del conjunto cociente):

    Mm=(Qm, , m, q0m, Fm)

    definido por: Qm = Q / a , m (ci, a) = cj si p cj, q Ci tal que

    ( q, a) = p q0m = c0 si q0 c0 c0 Qm Fm ={Ci , tal que p Ci p F }

    Dra. Norka Bedregal Alpaca

    43

    Minimizacin de un AFD: conjunto cocienteMinimizacin de un AFD: conjunto cocienteAU

    TM

    ATAS

    Ejemplo: Dado el autmata M=( {q0,q1,q2,q3,q4}, {0,1}, f, q0, {q4})Encontrar su equivalente mnimo

    Dra. Norka Bedregal Alpaca

    44

    Minimizacin de un AFDMinimizacin de un AFD

    AUT

    MAT

    AS

  • 23

    Conjunto cociente1. Conjunto inicial Q/E1 = ({q0,q1,q2,q3,} , {q4 })2. Q/Ei

    2.1. Q/E2 = ({q0,q1,q2} , {q3}, {q4 })3. Q/E2 Q/E1 ir al paso 2

    2.2. Q/E3 = ({q0,q2}, {q1},{q3},{q4})4. Q/E3 Q/E2 ir al paso 2

    2.3. Q/E4 = ({q0,q2}, {q1},{q3},{q4})5. Q/E4 = Q/E3 = Q/E

    Dra. Norka Bedregal Alpaca

    45

    Minimizacin de un AFDMinimizacin de un AFDAU

    TM

    ATAS

    Autmata mnimo equivalente: Mm=(Qm, = {0,1}, m, q0m, Fm)

    con

    Qm= ( C0 = {q0,q2}, C1 = {q1}, C2 = {q3}, C3 ={q4} ) qom = C0 Fm = C3

    Dra. Norka Bedregal Alpaca

    46

    Minimizacin de un AFDMinimizacin de un AFD

    AUT

    MAT

    AS

  • 24

    Ejercicio:Compruebe que la minimizacin del autmata M4 es el autmata AFD-min

    Dra. Norka Bedregal Alpaca

    47

    Minimizacin de un AFDMinimizacin de un AFDAU

    TM

    ATAS

    Dra. Norka Bedregal Alpaca

    48

    FINFINAUT

    MAT

    AS