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 2


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 3


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 4


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 5


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 6


Tabla de transiciones
Representacin tabular de la funcin
filas: estados
columnas: entradas
estado inicial: flecha
estados finales: *

0 1
->q0 q2 q0
q1 q1
q1
*
q2 q2 q1

Manuel Mucientes Tema 2: Autmatas finitos 7


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 8
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 1
->A A B
*B B A

Manuel Mucientes Tema 2: Autmatas finitos 9


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 1
->q0 {q0, q1} {q0}
q1 {q2}
q2

Manuel Mucientes Tema 2: Autmatas finitos 11


Funcin de transicin extendida
Base: ( q,) = {q}

Paso inductivo:
w = xa,

( q, x ) = { p1, p 2, ..., pk } ( q, w) = {r1, r 2, ..., rm }


k

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

Ejemplo: describir el proceso de la entrada 00101 para el


autmata:

Lenguaje de un AFN: L( A) = {w | ( q 0, w) F }
Manuel Mucientes 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 ) = U N ( p, a )
p en S

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 1
->p {p, q} {p}
q {r, s} {t}
r {p, r} {t}
*s
*t

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

Manuel Mucientes Tema 2: Autmatas finitos 17


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

Solucin:
0 1
->A B A A = {p}
B D C B = {p, q}
C = {p, r}
C E A D = {p, q, r}
D F C E = {p, q, s}
*E F G F = {p, q, r, s}
G = {p, r, s}
*F F G H = {p, s}
*G E H
*H E H
Manuel Mucientes Tema 2: Autmatas finitos 18
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:

+, - . 0, 1, ..., 9
->q0 {q1} {q1}
q1 {q2} {q1, q4}
q2 {q3}
q3 {q5} {q3}
q4 {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}
k

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

( q, w) = U CLAUS ( rj )
j =1
Lenguaje de un AFN-, E=(Q, , , q0, F):
L( E ) = {w | ( q0, w) F }
Ejemplo: calcular ( q0, 5.6) para el autmata 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}

k

U ( p , a ) = {r , r , ... , r }
i 1 2 m
i =1
m
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) Solucin:

a b c a b c A = {p}
->p {p} {q} {r} ->A A B C B = {p, q}
q {p} {q} {r} B B C C C = {p, q, r}
*r {q} {r} {p} *C C C C

b) Solucin:

a b c a b c
->p {q, r} {q} {r} ->*A A B A A = {p, q, r}
q {p} {r} {p, q} B = {q, r}
*B A C A C = {r}
*r *C D D 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) Solucin: b) Solucin:
AyG A, D y G
0 1 ByF 0 1 B, E y H
->A B A CyE C, F e I
->A B E
B A C B C F
0 1
C D F *C D H 0 1
->A B A
*D D A D E H ->A B B
B A C
E D F E F I B C C
C D B
F G E *F G B *C A B
*D D A
G F G G H B
H G D H I C
*I A E

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