Está en la página 1de 38

Tema 2: Autmatas finitos

Teora de autmatas y lenguajes formales I

Bibliografa
Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introduccin a la Teora de Autmatas, Lenguajes y Computacin. Addison Wesley. 2002.
captulos 2 y 4

Sudkamp, Thomas A. Languages and machines : an introduction to the theory of computer science. Addison-Wesley Publishing Company, 1998.
captulo 6

Manuel Mucientes

Tema 2: Autmatas finitos

Introduccin
Mquinas secuenciales
Mealy Moore

Autmatas de estados finitos: son mquinas secuenciales Reconocen los lenguajes regulares Clasificacin
Determinista (AFD): el autmata no puede estar en ms de un estado simultneamente No determinista (AFN): puede estar en varios estados al mismo tiempo

No determinismo
no aade ningn lenguaje a los ya definidos por los AFD aumento de la eficiencia en la descripcin de una aplicacin

Manuel Mucientes

Tema 2: Autmatas finitos

Autmatas finitos deterministas (AFD)


Determinista: para cada entrada, existe un nico estado al que el autmata puede llegar partiendo del estado actual Consta de:
un conjunto finito de estados, Q un conjunto finito de smbolos de entrada, una funcin de transicin () que, dados un estado y una entrada, devuelve un estado. (q, a) = p un estado inicial (uno de los estados de Q), q0 un conjunto de estados finales o de aceptacin (subconjunto de Q), F

A = (Q, , , q0, F)

Manuel Mucientes

Tema 2: Autmatas finitos

Funcionamiento de un AFD
Lenguaje del AFD: conjunto de las cadenas que acepta Ejemplo: AFD que acepta todas las cadenas de ceros y unos que contienen la secuencia 01 en algn lugar de la cadena
{w | w tiene la forma x01y, donde x e y son cadenas de smbolos 0 y 1} {x01y | x e y son cadenas cualesquiera de 0 y 1}

se ha ledo la secuencia 01: independientemente de las futuras entradas, el estado debe ser de aceptacin no se ha ledo la secuencia 01, pero la entrada ms reciente es 0: si se lee un 1, se pasa a estado de aceptacin no se ha ledo la secuencia 01, y la entrada ms reciente es un 1 o no existe: se aceptar la cadena cuando se lea 01 A = ({q0, q1, q2}, {0, 1}, , q0, {q1})

Manuel Mucientes

Tema 2: Autmatas finitos

Diagrama de transiciones
Es un grafo
un nodo por cada estado de Q un arco de q a p etiquetado con a para cada (q, a) = p una flecha dirigida al estado inicial los estados finales estn marcados por un doble crculo

Manuel Mucientes

Tema 2: Autmatas finitos

Tabla de transiciones
Representacin tabular de la funcin filas: estados columnas: entradas estado inicial: flecha estados finales: *
0 ->q0 q2 q1 q2 1 q0 q1 q1

q1 q2

Manuel Mucientes

Tema 2: Autmatas finitos

Extensin a cadenas
Funcin de transicin: Funcin de transicin extendida:
dado un estado q y una cadena w, devuelve un estado p

Definicin por induccin de la funcin de transicin extendida Base: ( q,) = q


Paso inductivo: w = xa

( q, w) = (( q, x ), a )

Ejemplo: Disear el AFD que acepte el lenguaje L = {w | w tiene un nmero par tanto de 0 como de 1}. Probar la entrada 110101 Lenguaje de un AFD: lenguaje regular

L( A) = {w ( q 0, w) pertenece a F }
Manuel Mucientes

Tema 2: Autmatas finitos

Problemas
1. Construir los AFD que acepten los siguientes lenguajes sobre el alfabeto {0, 1}
1. El conjunto de cadenas con 011 como subcadena 2. El conjunto de cadenas terminadas en 00 3. El conjunto de cadenas cuyo tercer smbolo desde el extremo derecho sea un 1 4. El conjunto de cadenas que empiezan o terminan por 01

2. Dado el siguiente AFD, describir de manera informal el lenguaje que acepta, y demostrarlo por induccin sobre la longitud de la cadena de entrada.
0 ->A A *B
Manuel Mucientes

1 B A
9

Tema 2: Autmatas finitos

Autmatas finitos no deterministas


AFN: capacidad de estar en varios estados simultneamente Aceptan los lenguajes regulares, igual que los AFD Ms compactos y fciles de disear que los AFD Siempre es posible convertir un AFN a un AFD Ejemplo: AFN que acepta las cadenas terminadas en 01

Manuel Mucientes

Tema 2: Autmatas finitos

10

Definicin de los AFN


A = (Q, , , q0, F) devuelve ahora un conjunto de estados, y no un slo estado

Ejemplo: AFN que acepta las cadenas terminadas en 01


A=({q0, q1, q2}, {0, 1}, , q0, {q2}) 0 ->q0 {q0, q1} q1 q2
Manuel Mucientes

1 {q0} {q2}
Tema 2: Autmatas finitos 11

Funcin de transicin extendida


Base: ( q,) = {q} Paso inductivo:
w = xa,

( q, x ) = { p1, p 2, ..., pk }

U ( p , a ) = {r , r , ..., r
i 1 2 i =1

( q, w) = {r1, r 2, ..., rm }
}

Ejemplo: describir el proceso de la entrada 00101 para el autmata:

Lenguaje de un AFN:
Manuel Mucientes

L( A) = {w | ( q 0, w) F }
Tema 2: Autmatas finitos 12

Equivalencia entre AFD y AFN


Todo lenguaje descrito por un AFN tambin puede ser descrito por un AFD
peor caso:
AFN ms pequeo: n estados AFD ms pequeo: 2n estados

Demostracin de que un AFD puede hacer lo mismo que un AFN: construccin de subconjuntos
construccin de todos los subconjuntos del conjunto de estados del AFN

Manuel Mucientes

Tema 2: Autmatas finitos

13

Construccin de subconjuntos
Dado el AFN N= (QN, , N, q0, FN), obtener el AFD D= (QD, , D, {q0 }, FD) tal que L(D)=L(N)
Alfabetos iguales Estado inicial: conjunto con el estado inicial de N QD: conjunto de subconjuntos de QN. Si QN tiene n estados, QD tendr 2n. Eliminacin de estados no accesibles FD: conjunto de subconjuntos S de QN tales que S FN Para cada S QN y cada smbolo de entrada a:

D ( S , a ) =

p en S

( p, a )

Manuel Mucientes

Tema 2: Autmatas finitos

14

Evaluacin perezosa
Base: el conjunto de un elemento que contiene el estado inicial de N es accesible Paso inductivo: hemos determinado que el conjunto S de estados es accesible. Entonces, para cada smbolo de entrada a, se calcula el conjunto de estados D(S, a), que tambin sern accesibles Ejemplo: aplicar el proceso al siguiente autmata

Manuel Mucientes

Tema 2: Autmatas finitos

15

Equivalencia entre AFD y AFN


Teorema: si D= (QD, , D, {q0 }, FD) es el AFD construido a partir del AFN N= (QN, , N, q0, FN) mediante la construccin de subconjuntos, entonces L(D)=L(N) Teorema: un lenguaje L es aceptado por algn AFD si y slo si L es aceptado por algn AFN

Manuel Mucientes

Tema 2: Autmatas finitos

16

Problemas
Convertir el siguiente AFN en AFD
0 ->p q r *s *t {p, q} {r, s} {p, r} 1 {p} {t} {t}

Solucin: 0 ->A B *C *D B C C B 1 A B D A A = {p} B = {p, q} C = {p, q, r, s} D = {p, t}

Manuel Mucientes

Tema 2: Autmatas finitos

17

Problemas
Convertir el siguiente AFN en AFD
0 ->p q r *s Solucin: 0 ->A B C D *E *F *G *H
Manuel Mucientes

1 {p} {r} {s}

{p, q} {r} {s} {s}

1 A C A C G G H H
Tema 2: Autmatas finitos 18

B D E F F F E E

A = {p} B = {p, q} C = {p, r} D = {p, q, r} E = {p, q, s} F = {p, q, r, s} G = {p, r, s} H = {p, s}

Una aplicacin: bsqueda de texto


Dado un conjunto de palabras, encontrar todos los documentos que contienen una o ms de esas palabras. Motor de bsqueda: ndices invertidos Caractersticas que hacen apropiado el uso de autmatas en una aplicacin:
el depsito cambia rpidamente
noticias del da robot de compras

los documentos no pueden ser catalogados: Amazon (pginas generadas a partir de consultas)

Manuel Mucientes

Tema 2: Autmatas finitos

19

AFN para bsqueda de texto


Estado inicial con transicin a s mismo para cada smbolo de entrada (conjetura) Para cada palabra clave a1a2...ak, hay k estados, q1, q2, ..., qk Transicin del estado inicial a q1 con a1, de q1 a q2 con a2, etc. El estado qk indicar que la palabra a1a2...ak ha sido aceptada Ejemplo: AFN que reconoce las palabras web y ebay

Manuel Mucientes

Tema 2: Autmatas finitos

20

Ejemplo
Conversin del siguiente AFN en AFD

Manuel Mucientes

Tema 2: Autmatas finitos

21

AFN con transiciones (AFN- )


Transiciones para la cadena vaca, No expande la clase de lenguajes que aceptan los AF Proporciona facilidades de programacin Ejemplo: AFN- que acepta nmeros decimales

Manuel Mucientes

Tema 2: Autmatas finitos

22

Notacin
A = (Q, , , q0, F), pero ahora es una funcin de:
un estado de Q un elemento de U {}

El smbolo no puede formar parte del alfabeto Ejemplo:


q1 q2 q4 *q5 +, . {q2} {q3} 0, 1, ..., 9 {q1, q4} {q3} {q3}

->q0 {q1} {q1}

q3 {q5}

Manuel Mucientes

Tema 2: Autmatas finitos

23

Clausuras respecto de
Clausura del estado q respecto de , CLAUS(q)
Base: el estado q est en CLAUS(q) Paso inductivo: si es la funcin de transicin del AFN-, y el estado p est en CLAUS(q), entonces CLAUS(q) contiene todos los estados de (p, )

Ejemplos: determinar las clausuras de los estados de los autmatas de las siguientes figuras

Manuel Mucientes

Tema 2: Autmatas finitos

24

Transiciones y lenguajes extendidos


Definicin recursiva de
Base: ( q,) = CLAUS ( q) Paso inductivo: sea w = xa, donde a es un elemento de Sea ( q, x ) = {p1, p2, ... , pk}
Sea

U ( p , a ) = {r , r , ... , r }
i 1 2 m i =1

( q, w) =

Lenguaje de un AFN-, E=(Q, , , q0, F): Ejemplo:


L( E ) = {w | ( q0, w) F } calcular ( q0, 5.6) para el autmata

U CLAUS
j =1

( rj )

de la figura

Manuel Mucientes

Tema 2: Autmatas finitos

25

Eliminacin de transiciones
Dado un AFN- E = (QE, , E, q0, FE), encontrar un AFD D=(QD, , D, qD, FD) que acepte el mismo lenguaje
QD es el conjunto de subconjuntos de QE qD= CLAUS (q0) FD ={S | S pertenece a QD, y S FE } D(S, a): S = {p1, p2, ..., pk}

U ( p , a ) = {r , r , ... , r }
i 1 2 m i =1

D ( S , a ) = U CLAUS ( rj )
j =1

Manuel Mucientes

Tema 2: Autmatas finitos

26

Eliminacin de transiciones
Ejemplo: construir el AFD equivalente al de la figura

Teorema: un lenguaje L es aceptado por algn AFN- E=(QE, , E, q0, FE) si y slo si es aceptado por algn AFD D=(QD, , D, qD, FD)
Manuel Mucientes

Tema 2: Autmatas finitos

27

Problemas
Dados los siguientes AFN-e, calcular la clausura respecto de para cada estado, y convertir los autmatas en AFD a) ->p q {p} *r {q} a {p} {q} {r} b {q} {r} c {r} {p} ->A B *C
Solucin:

a A B C

b B C C

c C C C

A = {p} B = {p, q} C = {p, q, r}

b) ->p q *r {q, r} a {p} b {q} {r} c {r} {p, q}

Solucin:

a *B *C D

c
A = {p, q, r} B = {q, r} C = {r} D = {}

->*A A B A A C A D D D D D D

Manuel Mucientes

Tema 2: Autmatas finitos

28

Problemas
1. Disear el AFN- para los siguientes lenguajes:
a) conjunto de cadenas con cero o ms letras a seguidas de cero o ms letras b, seguidas de cero o ms letras c b) El conjunto de cadenas formadas por 01 repetido una o ms veces, o por 010 repetido una o ms veces

Manuel Mucientes

Tema 2: Autmatas finitos

29

Equivalencia de estados
Dos estados p y q de un AFD son equivalentes si para toda cadena de entrada w, ( p, w) es un estado de aceptacin si y slo si ( q, w) es un estado de aceptacin
En caso contrario, los estados sern distinguibles

Teorema: la equivalencia de estados es transitiva. Es decir, si para un AFD dos estados p y q son equivalentes y q y r son equivalentes, entonces p y r son equivalentes Teorema: si para cada estado q de un AFD se crea un bloque que contiene a q y a todos los estados equivalentes a q, los bloques de estados forman una particin del conjunto de estados.
cada estado estar en un nico bloque todos los miembros de un bloque son equivalentes dos estados de bloques diferentes no pueden ser equivalentes

Manuel Mucientes

Tema 2: Autmatas finitos

30

Equivalencia de estados (II)


Conjunto cociente, Q/E: particin del conjunto de estados en clases. Cada clase contiene estados equivalentes entre s.

Manuel Mucientes

Tema 2: Autmatas finitos

31

Equivalencia de estados (III)


Ejemplo:

E equivalente a A, B equivalente a H, F equivalente a D

Manuel Mucientes

Tema 2: Autmatas finitos

32

Equivalencia de lenguajes regulares


Sean L y M dos lenguajes representados de alguna forma
se convierten las representaciones en AFD se comprueba si los estados iniciales de ambos AFD son equivalentes si son equivalentes, entonces L = M, y si no, sern diferentes

Ejemplo:

Manuel Mucientes

Tema 2: Autmatas finitos

33

Minimizacin de un AFD
Para todo AFD es posible encontrar un AFD equivalente con igual o menor nmero de estados que cualquier AFD que acepte el mismo lenguaje. Dicho AFD es nico.

1. Se eliminan los estados no accesibles desde el inicial 2. Se divide el conjunto de estados Q en bloques de estados mutuamente equivalentes 3. Se construye el AFD mnimo B equivalente a A, utilizando los bloques como estados
1. La funcin de transicin de B es (S, a) = T, donde S y T son bloques de estados. Cualquier estado del bloque S debe llevar con entrada a a un estado del bloque T. Si no fuese as, esos estados seran distinguibles, lo que no es cierto 2. el estado inicial de B es el bloque que contiene el estado inicial de A 3. el conjunto de estados de aceptacin de B es el conjunto de bloques que contienen los estados de aceptacin de A
Manuel Mucientes

Tema 2: Autmatas finitos

34

Minimizacin de un AFD (II)

Manuel Mucientes

Tema 2: Autmatas finitos

35

Minimizacin de un AFD (III)


Ejercicio: minimizar el siguiente autmata

Resultado:

Manuel Mucientes

Tema 2: Autmatas finitos

36

Problemas
1. Dados los siguientes AFD, crear una tabla de estados distinguibles para cada uno de los autmatas, y construir los AFD equivalentes mnimos

a) 0 ->A B B A C D *D D E D F G G F H G 1 A C F A F E G D

Solucin: AyG ByF CyE

b) 0 1 ->A B E 1 A C B A B C F *C D H D E H E F I *F G B G H B H I C *I A E

Solucin: A, D y G B, E y H C, F e I

0 ->A B C *D B A D D

0 1 ->A B *C B B C C A B

Manuel Mucientes

Tema 2: Autmatas finitos

37

Problemas finales
1. Construir el autmata de estados finitos que reconozca el lenguaje formado por aquellas cadenas que tienen a 111 como subcadena. 2. Construir el autmata de estados finitos que reconozca el lenguaje formado por aquellas cadenas que contienen en algn lugar de la cadena un nmero consecutivo de 1 par (y mayor que 0). Por ejemplo, la cadena 1011100 no pertenecer al lenguaje, y la cadena 1011110101 s. 3. Construir el autmata de estados finitos que reconozca, sobre el alfabeto {0, 1}, el lenguaje formado por aquellas cadenas que comienzan por la subcadena 01, pero que no contienen dicha subcadena en ninguna otra posicin. Por ejemplo, la cadena 011100 ser reconocida, pero 011110010 no.
Manuel Mucientes

Tema 2: Autmatas finitos

38

También podría gustarte