AutomataFinito Lengujes Formales Ing
AutomataFinito Lengujes Formales Ing
AutomataFinito Lengujes Formales Ing
Autmatas Finitos
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
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:
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.
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.
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
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
alfabeto ={a,b}
estados S = { X , Y }
Ejemplo
Disear un AFD que acepte todas las palabras sobre {0, 1} que tengan un
1
qpar
0
11
qimpar
Ejemplo
Disear un AFD que reconozca palabras que contienen la cadena 001
q
1
12
0,1
q0
q00
q001
Ejemplo
Disear un AFD que acepte exactamente el lenguaje sobre {0, 1} en
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
Ejemplo
Definir un AFND, para el alfabeto ={0 , 1}, y que reconozca
17