Está en la página 1de 19

AUTOMATAS FINITOS

Definición
Un autómata es una máquina, ya sea real o virtual, que se
utiliza para el reconocimiento de patrones, es decir,
buscar una cadena de símbolos determinada de entre
varias válidas. Una aplicación real es la construcción de
compiladores, que comprueban que las palabras
reservadas de las estructuras estén bien puestas (parte del
análisis léxico).

En un Autómata se tiene que:


 La entrada es un conjunto de patrones y
La salida define si la entrada cumple o no cumple con
una condición
AUTOMATAS FINITOS
DETERMINISTAS
Definición formal
Quíntupla M= (Q, , δ , q0, F) con
Q : conjunto finito de estados
 : alfabeto de la máquina
δ : función de transición Qx Q
q0 : estado inicial, q0 Q
F : conjunto de estados de
aceptación, F  Q
δ (p,x) = q  M pasa del estado p al q al
leer el símbolo x
AUTOMATAS FINITOS
DETERMINISTAS
Definición 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 colección de cadenas de dicho
lenguaje.
AUTOMATAS FINITOS
DETERMINISTAS
Definición formal
Se deduce que...
Todo autómata finito determinista definido para un
alfabeto Σ con n símbolos debe contener al menos
n transiciones.
Un autómata finito determinista acepta la cadena
vacía si y sólo si su estado inicial es un estado de
aceptación.
AUTOMATAS FINITOS
DETERMINISTAS
Diagrama de transiciones

Diagrama que representa un autómata finito en términos


de un grafo.
Consiste en una colección finita de símbolos (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 símbolo o categoría de
símbolos que podría presentarse en la cadena de entrada
que el autómata analiza. Uno de los estados se distingue
con un apuntador y representa el estado inicial.
AUTOMATAS FINITOS
DETERMINISTAS
Diagrama de transiciones

Los denotados con círculos dobles designan


estados en los cuales se ha reconocido una
cadena válida (estados de aceptación).
Habitualmente en estos diagramas sólo se
representan las transiciones que conducen al
reconocimiento de alguna cadena,
considerándose implícito un denominado "estado
de captación global", donde se entiende que
llegan los arcos omitidos
AUTOMATAS FINITOS
DETERMINISTAS
Tablas de transiciones
Una tabla de transiciones es una representación
tabular convencional de una función 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).
AUTOMATAS FINITOS
DETERMINISTAS
Diagrama de transiciones y tabla de transiciones
AFD que acepta únicamente todas las cadenas de ceros y unos que contienen
la secuencia 01 en algún lugar de la cadena:
•Σ={0,1}
• L={w|w tiene la forma x01y, donde x e y son cadenas que solo constan de los
símbolos 0 y 1}

1 0 0, 1

Inicio 0 1
q0 q2 q1

El estado inicial se marca con una flecha, y


los estados de aceptación con *.
AUTOMATAS FINITOS
DETERMINISTAS
Búsqueda 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

1 0 0, 1
0 1
q0 q2 q1
AUTOMATAS FINITOS
DETERMINISTAS
Ejemplo: Máquina de refrescos
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}
AUTOMATAS FINITOS
DETERMINISTAS
Ejemplo: Máquina de refrescos
Σ={$ 0.25, $ 0.5 y $ 1} L={w|w tiene como suma $ 1}

inicio
1
q0 q1

0.5 0.5

0.25
q3 0.25
0.25
0.25

0.5 q4
q2

Suma acumulada: q0=0, q1=1, q2=0.25, q3=0.5, q4=0.75


AUTOMATAS FINITOS
DETERMINISTAS
Ejemplo: Máquina de refrescos
Σ={$ 0.25, $ 0.5 y $ 1} L = { w | w tiene como suma $ 1}

q0
1
q1
0.25 0.5 1
q0 q2 q3 q1
0.5 0.5
* q1 error error error
0.25
q2 q3 q4 error
q3 0.25
0.25 q3 q4 q1 error
0.25 q4 q1 error error
0.5 q4
q2

Diagrama de transición Tabla de transición


AUTOMATAS FINITOS
DETERMINISTAS
Ejemplo:
Sea el lenguaje A={(ab)i | i≥1}, el cual esta representado por la
expresión regular (ab)+

a, b

q3
b

a q2
inicio b
q0
a
a
q1

La cadena debe tener al menos una copia de ab:


•Cadenas aceptadas
• : ab, abaaa, aaab, abaab, ababab, etc
AUTOMATAS FINITOS
DETERMINISTAS
Ejemplo:
Sea el lenguaje A={(ab)i | i≥0}, el cual esta representado por la expresión
regular (ab)*

inicio
a
q0 q1 δ a b
a * q0 q1 q2
b q2
q1 q2 q0
a, b q2 q2 q2

La cadena debe tener cero o más copias de ab:


•Cadenas aceptadas : ε, ab, abab, ababab, etc
•Cadena no aceptadas : aa, aaab, abaa, abbab, etc
AUTOMATAS FINITOS
DETERMINISTAS
Ejemplo:
Reconoce números múltiplos de 3, compuestos por los
dígitos 1, 2 y 3.
3 3 δ 1 2 3
inicio
2
q0 q3 q0 q1 q2 q3
3
2
1
q2 q1 q2 q3 q1
1
1
1 q2 q3 q1 q2
2
2
q1 q3 q1 q2 q3
*
3
La suma de los dígitos debe ser múltiplo de 3:
•Cadenas aceptadas : 12, 111, 1122, etc
•Cadena no aceptadas : 232, 2321, 112333, etc
AUTOMATA FINITO NO
DETERMINISTA
Definición
Un autómata finito no determinista permite
que desde un estado se realicen cero, una o
más transiciones mediante el mismo
símbolo de entrada.
b
a q1

q0
a
a
q2
AUTOMATA FINITO NO
DETERMINISTA
Definición formal
Formalmente el autómata finito no determinista
consiste en una quíntupla (S, Σ , ρ, i , F), donde

S es un conjunto finito de estados


Σ es el alfabeto de la máquina
ρ es un subconjunto de S x Σ x S (posibles
transiciones de la máquina)
i (un elemento de S) es el estado inicial
F (un subconjunto de S) es la colección de
estados de aceptación
AUTOMATA FINITO NO
DETERMINISTA
Ejemplo: AFN que acepta todas las cadenas que terminan en 01

inicio 0 1
q0 q1 q2

0, 1

Estados por los que pasa un AFN durante el proceso de la secuencia de entrada
00101

q0 q0 q0 q0 q0 q0

q1 q1 q1
muere
muere
q2 q2
0 0 1 0 1
Cadena aceptada
AUTOMATA FINITO NO
DETERMINISTA
Ejemplo: AFN que acepta todas las cadenas que terminan en 01

inicio 0 1
q0 q1 q2

0, 1

Tabla de transición del AFN anterior

0 1

q0 {q0, q1} {q0}

q1 Ø {q2}
*
q2 Ø Ø

También podría gustarte