Sie sind auf Seite 1von 19

AUTOMATAS FINITOS

Un autmata es una mquina, ya sea real o virtual, que se


utiliza para el reconocimiento de patrones, es decir,
buscar una cadena de smbolos determinada de entre
varias vlidas. Una aplicacin real es la construccin de
compiladores, que comprueban que las palabras
reservadas de las estructuras estn bien puestas (parte del
anlisis lxico).

En un Autmata se tiene que:
La entrada es un conjunto de patrones y
La salida define si la entrada cumple o no cumple con
una condicin
Definicin
AUTOMATAS FINITOS
DETERMINISTAS

Quntupla M= (Q, , , q
0
, F) con
Q : conjunto finito de estados
: alfabeto de la mquina
: funcin de transicin Qx Q
q
0
: estado inicial, q
0
Q
F : conjunto de estados de
aceptacin, F Q
(p,x) = q M pasa del estado p al q al
leer el smbolo x
Definicin formal
M reconoce una cadena x1 x2 ... xn una
serie en S, s0, s1 ... sn con
s0 = q0
sn F
(sj-1, xj) = sj, j [0, n]
M reconoce un lenguaje si reconoce
exclusivamente la coleccin de cadenas de dicho
lenguaje.
Definicin formal
AUTOMATAS FINITOS
DETERMINISTAS
Se deduce que...
Todo autmata finito determinista definido para un
alfabeto con n smbolos debe contener al menos
n transiciones.
Un autmata finito determinista acepta la cadena
vaca si y slo si su estado inicial es un estado de
aceptacin.
Definicin formal
AUTOMATAS FINITOS
DETERMINISTAS

Diagrama que representa un autmata finito en trminos
de un grafo.
Consiste en una coleccin finita de smbolos (que
representan a los estados), que se pueden rotular con
fines de referencia, conectados con flechas que reciben el
nombre de arcos (que representan a las transiciones).
Cada arco se etiqueta con un smbolo o categora de
smbolos que podra presentarse en la cadena de entrada
que el autmata analiza. Uno de los estados se distingue
con un apuntador y representa el estado inicial.
Diagrama de transiciones
AUTOMATAS FINITOS
DETERMINISTAS

Los denotados con crculos dobles designan
estados en los cuales se ha reconocido una
cadena vlida (estados de aceptacin).
Habitualmente en estos diagramas slo se
representan las transiciones que conducen al
reconocimiento de alguna cadena,
considerndose implcito un denominado "estado
de captacin global", donde se entiende que
llegan los arcos omitidos
Diagrama de transiciones
AUTOMATAS FINITOS
DETERMINISTAS
Una tabla de transiciones es una representacin
tabular convencional de una funcin como , que
recibe dos argumentos y devuelve un valor. Las
filas de la tabla corresponden a los estados, y las
columnas a las entradas. El valor correspondiente
a la fila del estado q y a la columna de la entrada
a es el estado (q, a).

Tablas de transiciones
AUTOMATAS FINITOS
DETERMINISTAS
Diagrama de transiciones y tabla de transiciones
El estado inicial se marca con una flecha, y
los estados de aceptacin con *.
AFD que acepta nicamente todas las cadenas de ceros y unos que contienen
la secuencia 01 en algn lugar de la cadena:
={0,1}
L={w|w tiene la forma x01y, donde x e y son cadenas que solo constan de los
smbolos 0 y 1}
q0
q1
q2
Inicio
0
1
0, 1 0
1
AUTOMATAS FINITOS
DETERMINISTAS
Bsqueda de una cadena valida en el
diagrama de transiciones
La cadena 01 pertenece al lenguaje
La cadena 11010 pertenece al lenguaje
La cadena 100011 pertenece al lenguaje

La cadena no pertenece al lenguaje
La cadena 0 no pertenece al lenguaje
La cadena 111000 no pertenece al lenguaje
q0
q1
q2
0
1
0, 1 0
1
AUTOMATAS FINITOS
DETERMINISTAS
No devuelve cambio
Los refrescos valen $ 1
Admite monedas de $ 0.25, $ 0.5 y $ 1
Por lo que se tiene:
={$ 0.25, $ 0.5 y $ 1}
L={w|w tiene como suma $ 1}

Ejemplo: Mquina de refrescos
AUTOMATAS FINITOS
DETERMINISTAS
={$ 0.25, $ 0.5 y $ 1} L={w|w tiene como suma $ 1}
Ejemplo: Mquina de refrescos
q0 q1
1
q2
0.25
q3
0.25
q4
0.25
0.25
Suma acumulada: q0=0, q1=1, q2=0.25, q3=0.5, q4=0.75
0.5
0.5
0.5
inicio
AUTOMATAS FINITOS
DETERMINISTAS
={$ 0.25, $ 0.5 y $ 1} L = { w | w tiene como suma $ 1}
Ejemplo: Mquina de refrescos
q0 q1
1
q2
0.25
q3
0.25
q4
0.25
0.25
0.5
0.5
0.5
0.25 0.5 1
q0 q2 q3 q1
q1 error error error
q2 q3 q4 error
q3 q4 q1 error
q4 q1 error error
*
Diagrama de transicin
Tabla de transicin
AUTOMATAS FINITOS
DETERMINISTAS
Sea el lenguaje A={(ab)
i
| i1}, el cual esta representado por la
expresin regular (ab)
+


Ejemplo:
q0
q3
q2
q1
inicio
a
b
a
a
a, b
b
La cadena debe tener al menos una copia de ab:
Cadenas aceptadas : ab, abab, ababab, etc
Cadena no aceptadas : aa, aaab, abaa, abbab, etc
AUTOMATAS FINITOS
DETERMINISTAS
Sea el lenguaje A={(ab)
i
| i0}, el cual esta representado por la expresin
regular (ab)*



Ejemplo:
q2
q0
q1
inicio
a
b
a
a, b
b
La cadena debe tener cero o ms copias de ab:
Cadenas aceptadas : , ab, abab, ababab, etc
Cadena no aceptadas : aa, aaab, abaa, abbab, etc
a b
q0 q1 q2
q1 q2 q0
q2 q2 q2
*
AUTOMATAS FINITOS
DETERMINISTAS
Ejemplo:
La suma de los dgitos debe ser mltiplo de 3:
Cadenas aceptadas : 12, 111, 1122, etc
Cadena no aceptadas : 232, 2321, 112333, etc
*
Reconoce nmeros mltiplos de 3, compuestos por los
dgitos 1, 2 y 3.
q0
inicio
q1
1
q2
1
q3
1
2
3
2
3
2
3
2
1
3
1 2 3
q0 q1 q2 q3
q1 q2 q3 q1
q2 q3 q1 q2
q3 q1 q2 q3
AUTOMATAS FINITOS
DETERMINISTAS
Un autmata finito no determinista permite
que desde un estado se realicen cero, una o
ms transiciones mediante el mismo
smbolo de entrada.
Definicin
AUTOMATA FINITO NO
DETERMINISTA
q0
q2
q1
a
a
b
a
AUTOMATA FINITO
NO DETERMINISTA

Formalmente el autmata finito no determinista
consiste en una quntupla (S, , , i , F), donde

S es un conjunto finito de estados
es el alfabeto de la mquina
es un subconjunto de S x x S (posibles
transiciones de la mquina)
i (un elemento de S) es el estado inicial
F (un subconjunto de S) es la coleccin de
estados de aceptacin
Definicin formal
Ejemplo: AFN que acepta todas las cadenas que terminan en 01
AUTOMATA FINITO NO
DETERMINISTA
inicio
q0 q1
0
q2
1
0, 1
q0 q0 q0
q0
q0
q1 q1 q1
q2
q0
q2
0
0 1 0 1
muere
muere
Estados por los que pasa un AFN durante el proceso de la secuencia de entrada
00101
Cadena aceptada
Ejemplo: AFN que acepta todas las cadenas que terminan en 01
AUTOMATA FINITO NO
DETERMINISTA
inicio
q0 q1
0
q2
1
0, 1
Tabla de transicin del AFN anterior
0 1
q0 {q0, q1} {q0}
q1 {q2}
q2
*

Das könnte Ihnen auch gefallen