Vous êtes sur la page 1sur 17

Universidad de San Carlos de Guatemala USAC

Curso: Lenguajes Formales y de Programacin


Secciones: A- / B-

Autmatas Finitos

Guatemala, agosto 2010.


1

Autmata Finito
Formalmente, un autmata finito (AF) es una 5-tupla (Q, , q0, ,
F) donde:
Q es un conjunto finito de estados
es un alfabeto finito, conjunto de terminales permitidos
q0 es el estado inicial, donde q0 Q
es una funcin de transicin
F es un conjunto de estados finales o de aceptacin y F es un
subconjunto de Q

Autmata Finito
Funcionamiento
En el comienzo del proceso de reconocimiento de una cadena de entrada, el AF se

encuentra en el estado inicial y a medida que procesa cada smbolo de la cadena va


cambiando de estado de acuerdo a lo determinado por la funcin de transicin. Cuando
se ha procesado el ltimo de los smbolos de la cadena de entrada, el autmata se
detiene. Si el estado en el que se detuvo es un estado de aceptacin, entonces la cadena
pertenece al lenguaje reconocido por el autmata; en caso contrario, la cadena no
pertenece a dicho lenguaje.
Note que el estado inicial q0 de un AF siempre es nico, en tanto que los estados finales

pueden ser ms de uno, es decir, el conjunto F puede contener ms de un elemento.


Tambin puede darse el caso de que un estado final corresponda al mismo estado inicial.

Autmata Finito
Representacin como diagramas de estados

Los autmatas finitos se pueden representar mediante grafos particulares, tambin llamados
diagramas de estados finitos, de la siguiente manera:

Los estados se representan como vrtices, etiquetados con su nombre en el interior.

Una transicin desde un estado a otro, dependiente de un smbolo del alfabeto, se representa
mediante una arista dirigida que une a estos vrtices, y que est etiquetada con dicho smbolo.

El estado inicial se caracteriza por tener una arista que llega a l, proveniente de ningn otro
vrtice.

El o los estados finales se representan mediante vrtices que estn encerrados a su vez por otra
circunferencia.

Este autmata finito est definido sobre el


alfabeto ={0,1}, posee dos estados s1 y s2, y sus
transiciones son (s1,0)=s2, (s1,1)=s1,
(s2,0)=s1 y (s2,1)=s2. Su estado inicial es s1,
que es tambin su nico estado final.

Autmata Finito
Representacin como tabla de transiciones

Otra manera de describir el funcionamiento de un autmata finito es mediante el uso de tablas de transiciones de
estados.
Ejemplo: Se muestra la tabla de transiciones para el autmata que se muestra:

Estado \

* S1

S2

S1

S2

S1

S2

Los estados de aceptacin (o estados finales) se marcan con un asterisco; en este ejemplo solamente tenemos un estado de
aceptacin.

Autmata Finito Determinista


Un autmata finito determinista (abreviado AFD o DFA)
es un autmata finito que adems es un sistema determinista;
es decir, para cada estado q Q en que se encuentre el
autmata, y con cualquier smbolo a del alfabeto ledo,
existe siempre a lo ms una transicin posible (q,a).
En un AFD no pueden darse ninguno de estos dos casos:
Que existan dos transiciones del tipo (q,a)=q1 y (q,a)=q2,
siendo q1 q2;
Que existan transiciones del tipo (q, ), salvo que q sea un
estado final, sin transiciones hacia otros estados.
6

Autmata Finito No Determinista


Un autmata finito no determinista (abreviado AFND o NFA) es aquel que, a
diferencia de los autmatas finitos deterministas, posee al menos un estado q Q, tal que
para un smbolo a del alfabeto, existe ms de una transicin (q,a) posible.
Haciendo la analoga con los AFDs, en un AFND puede darse cualquiera de estos dos casos:
Que existan transiciones del tipo (q,a)=q1 y (q,a)=q2, siendo q1 q2;
Que existan transiciones del tipo (q, ), siendo q un estado no-final, o bien un estado
final pero con transiciones hacia otros estados.
La cadena vaca: = psilon, tambin se le conoce como l.

Cuando se cumple el segundo caso, se dice que el autmata es un autmata finito no


determinista con transiciones vacas o transiciones (abreviado AFND-).
Estas transiciones permiten al autmata cambiar de estado sin procesar ningn smbolo
de entrada.
La interpretacin que se suele hacer en el cmputo de un AFND es que el automta puede
estar en varios estados a la vez, generndose una ramificacin de las configuraciones
existentes en un momento dado. Otra interpretacin puede ser imaginar que la mquina
"adivina" a qu estado debe ir, eligiendo una transicin entre varias posibles.

Autmatas Finitos
Equivalencias entre autmatas finitos
Se dice que dos autmatas finitos son equivalentes, si ambos reconocen el
mismo lenguaje regular.
Toda expresin regular (que define a su vez un lenguaje regular) puede ser
expresada como un autmata finito determinista,[8] y viceversa.[9] Dada una
expresin regular, es posible construir un AFND- que reconozca dicho
lenguaje, por ejemplo mediante el algoritmo de Thompson. Luego, todo AFND puede transformarse en un AFND equivalente, as como todo AFND puede
transformarse en un AFD equivalente, mediante el mtodo llamado
construccin de conjunto potencia. As, por transitividad, para cualquier
autmata finito no determinista siempre existe un autmata finito determinista
equivalente, y viceversa.
Normalmente en el diseo de autmatas finitos, lo primero que se hace es
construir un AFND-, que es el ms sencillo de construir, por poseer menos
restricciones en su funcin de transiciones. Luego dicho autmata se reduce a
un AFND, y finalmente a un AFD, el cual por sus caractersticas deterministas ya
puede ser implementado sin problemas utilizando un lenguaje de programacin.
8

Ejemplo
Definir un AFD que acepte palabras que cumplan ciertas especificaciones.
Correcto: que las palabras aceptadas por el AFD cumplan las

especificaciones, es decir, que no sobren palabras.


Completo: que toda palabra que cumpla las especificaciones sea aceptada por
el AFD, es decir, que no falten palabras.

Ejemplo # 1: AFD que acepte palabras sobre {a, b} que no tengan varias as
seguidas.
El AFD de la figura no es correcto porque acepta baa, aaa,
pero no acepta ba.

a
q1

>

q0

b
9

q2

Ejemplo # 1: AFD que acepte palabras sobre {a, b} que no tengan varias as seguidas.
El AFD de la figura es correcto y completo:

10

Este autmata finito determinista, s es correcto:

alfabeto ={a,b}

estados S = { X , Y }

transiciones son (X,a)=Y, (X,b)=X, (Y,b)=X

Su estado inicial es X, que es tambin es estado de finalizacin.

Estados de aceptacin o finalizacin = { X, Y }

Ejemplo

Disear un AFD que acepte todas las palabras sobre {0, 1} que tengan un

nmero impar de 1s.


No se requiere saber cuantos 1s se han ledo sino slo si llevamos un nmero par o impar

de 1s. Esta respuesta permanece igual si enseguida leemos un 0 y cambia si leemos un 1.


Representar esto como una lista de posibilidades y asignar un estado a cada posibilidad: a)
par hasta ahorita. B) impar hasta ahorita.
Asignar las transiciones.
Definir el estado inicial, el que corresponde a la palabra nula l.
Definir el estado final, el que corresponde a palabras de longitud impar.

1
qpar
0
11

qimpar

Ejemplo
Disear un AFD que reconozca palabras que contienen la cadena 001

como 0010, 1001, 11111110011111, pero no como 11, 0000, 1100,


10101.
Posibilidades:

No hemos ledo ningn smbolo. Estado q.


Hemos ledo un 0. Estado q0.
Hemos ledo 00. Estado q00.
Hemos ledo 001. Estado q001.
1

q
1
12

0,1

q0

q00

q001

Ejemplo
Disear un AFD que acepte exactamente el lenguaje sobre {0, 1} en

que las palabras no comienzan con 00.

0,1

q0

q1
1

q3
0,1
13

q2

Ejemplo
Palabras sobre {a, b, c} en las cuales toda b es inmediatamente
seguida de al menos una c.
a,c

a,c
b

q0

q1
a,b

14

a,c
b

q3
b

q0

q1
c

a,b

q2

q2

a,b,c

a,b,c

Ejemplo
Construir un autmata finito determinista que reconozca el lenguaje sobre {0, 1} que

consiste de las palabras que terminan con 10, es decir, reconoce el lenguaje (0 | 1)*10.

B
0

15

0
1

Ejemplo
Definir un AFND que acepte cadenas que representan enteros o

cadenas que representan nmeros reales con notacin decimal.

Es un Autmata Finito No Determinista, porque el estado 1 tiene

dos transiciones que nos llevan a diferente estado, con el mismo


terminal dgito.
16

Ejemplo
Definir un AFND, para el alfabeto ={0 , 1}, y que reconozca

cadenas que finalicen con la subcadena 01.

Es un Autmata Finito No Determinista, porque:


el estado qo tiene dos transiciones que nos llevan a diferente estado,
con el mismo terminal 0.
Contiene dos transiciones con psilon o vacas (l ).

17

Vous aimerez peut-être aussi