Você está na página 1de 14

AUTMATAS FINITOS

Autmatas y Compiladores
Autmatas Finitos
Un autmata finito es una mquina terica de
computacin que reconoce cadenas de un lenguaje
regular definido sobre un alfabeto determinado.
Salidas:
Reconoce, no reconoce cadenas de un lenguaje regular;
0o1

29/04/2017 2
Elementos

Cadena de
a b a b b a entrada

Cabezal q0
Luz de
de lectura qn q1
aceptacin
q2
qi
Control q3
q4
de estados

29/04/2017 3
Tipos de Autmatas Finitos
Los autmatas finitos se pueden clasificar en funcin del tipo
de control como:
Deterministas No Deterministas
el autmata nicamente el autmata puede estar en
puede estar en un estado en varios estados
un momento determinado simultneamente
Las transiciones se efectan Las transiciones de un estado a
en respuesta a entradas o otro pueden ocurrir de manera
estmulos externos espontnea
Ambos definen los mismos lenguajes (regulares), sin embargo
los No deterministas permiten describir ms eficientemente
determinados problemas.
Autmata Finito Determinista (AFD)
Un AFD es una quintupla A= (Q,,,q0,F), donde:
Q es el conjunto finito y no vaco de estados
es el alfabeto del lenguaje que reconoce el AFD
: QxQ, es la funcin de transicin.
q0Q es el estado inicial.
FQ es el conjunto de estados finales de aceptacin.

Determinista hace referencia al hecho de que:


Para cada combinacin de qQ y a la funcin
especifica uno y slo un estado de transicin
29/04/2017 5
Autmata Finito Determinista (AFD)
Ejemplo:
AFD que reconoce el lenguaje {(01)n1 / n0}
A = ({q0, q1, q2, q3}, {0, 1}, , q0, {q2}), donde la
funcin de transicin viene dada por:
(q0, 0) = q1 (q0, 1) = q2
(q1, 0) = q3 (q1, 1) = q0
(q2, 0) = q3 (q2, 1) = q3
(q3, 0) = q3 (q3, 1) = q3

29/04/2017 6
Representacin de AF
Tabla de Transiciones
Diagrama de Transiciones
Tabla de Transiciones
Es una matriz de Q x
En las filas se colocarn los estados y en las columnas los
smbolos del alfabeto de entrada.
Cada interseccin fila (estado q) - columna (smbolo a)
corresponde al estado (q,a).
El estado inicial se representa con
Los estados finales con un *

29/04/2017 8
Diagrama de Transiciones
Grafo dirigido y etiquetado en el cual los nodos representan
los estados de la mquina y los arcos son obtenidos de la
funcin de transicin.

1 Estado
Estado
1 inicial
Estado
1 final
Transicin

29/04/2017 9
Representacin de AF
Ejemplo: AFD que Ejemplo: AFD que acepta
reconoce cadenas sobre el lenguaje: L={ancbm /
el alfabeto {0,1} que n>0 y m0}
contienen al menos dos
ceros consecutivos. D = ({e0,e1,e2}, {a,b,c}, ,
D = ({q0,q1,q2}, {0,1}, , q0, e0, {e2})
{q2})
a b
0 1
a c
e0 e1 e2
q0 q1 q0
q1 q2 q0
*q2 q2 q2
29/04/2017 10
Procesamiento de cadenas
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.
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.
Ejemplo
Disear un AFD que acepte todas las cadenas de {0, 1} que tengan
un nmero impar de 1s.
No se necesita saber cuantos 1s se han ledo sino slo si llevamos un
nmero par o impar de 1s. Los 0s no afectan la cantidad de 1s.
Representar esto como una lista de posibilidades y asignar un estado a
cada posibilidad: a) par hasta ahora. b) impar hasta ahora.
Asignar las transiciones.
Definir el estado inicial, el que corresponde a la cadena nula.
Definir el estado final, el que corresponde a cadenas de longitud
impar. 1
0
0 qpar qimpar

1
Otro ejemplo
Disear un AFD que reconozca cadenas de 0s y 1s que
contienen la subcadena 001.
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 0 0,1

0 0 1
q q0 q00 q001

1
Un ejemplo mas
Construir un AFD que reconozca el lenguaje descrito por la
expresin regular (0|1)*1.

0 1
1
A B
0

Você também pode gostar