You are on page 1of 19

AUTOMATAS FINITOS

Definicin
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

AUTOMATAS FINITOS DETERMINISTAS

Definicin formal
Quntupla M= (Q, , , q0, F) con Q : conjunto finito de estados : alfabeto de la mquina : funcin de transicin Qx Q q0 : estado inicial, q0 Q F : conjunto de estados de aceptacin, F Q (p,x) = q M pasa del estado p al q al leer el smbolo x

AUTOMATAS FINITOS DETERMINISTAS

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.

AUTOMATAS FINITOS DETERMINISTAS

Definicin formal
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.

AUTOMATAS FINITOS DETERMINISTAS

Diagrama de transiciones
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.

AUTOMATAS FINITOS DETERMINISTAS

Diagrama de transiciones
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

AUTOMATAS FINITOS DETERMINISTAS

Tablas de transiciones
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).

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 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}
1
Inicio q0 0 q2 0 1 q1 0, 1

El estado inicial se marca con una flecha, y los estados de aceptacin con *.

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
1 q0

0 0
q2 1 q1

0, 1

AUTOMATAS FINITOS DETERMINISTAS

Ejemplo: Mquina 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: Mquina de refrescos


={$ 0.25, $ 0.5 y $ 1} inicio q0 1 0.5 q1 L={w|w tiene como suma $ 1}

0.5
0.25

q3 0.25

0.25

0.25
q2 0.5 q4

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

AUTOMATAS FINITOS DETERMINISTAS

Ejemplo: Mquina de refrescos


={$ 0.25, $ 0.5 y $ 1} L = { w | w tiene como suma $ 1} 1 0.5

q0 0.5 0.25

q1 * 0.25 0.25

q0 q1

q3 0.25

q2 q3 q4

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

q2

0.5

q4

Diagrama de transicin

Tabla de transicin

AUTOMATAS FINITOS DETERMINISTAS

Ejemplo:
Sea el lenguaje A={(ab)i | i1}, el cual esta representado por la expresin regular (ab)+
a, b q3 b

a inicio q0 a q1 a b

q2

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

Ejemplo:
Sea el lenguaje A={(ab)i | i0}, el cual esta representado por la expresin regular (ab)*
b inicio q0

a a b

q1 *

q0 q1 q2

a
q1 q2 q2

b
q2 q0 q2

q2
a, 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

AUTOMATAS FINITOS DETERMINISTAS

Ejemplo:
Reconoce nmeros mltiplos de 3, compuestos por los dgitos 1, 2 y 3. 1 2 3 3
inicio q0 2 1 3 2 q3

q0 q1 q2 q3 q1 q2 q3 q1

1 q2
1 1

2
q1 2

q2 q3 q1 q2
*

q3 q1 q2 q3

La suma de los dgitos debe ser mltiplo de 3: Cadenas aceptadas : 12, 111, 1122, etc Cadena no aceptadas : 232, 2321, 112333, etc

AUTOMATA FINITO NO DETERMINISTA

Definicin
Un autmata finito no determinista permite que desde un estado se realicen cero, una o ms transiciones mediante el mismo smbolo de entrada.
a q0 q1

a
q2 a

AUTOMATA FINITO NO DETERMINISTA

Definicin formal
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

AUTOMATA FINITO NO DETERMINISTA Ejemplo: AFN que acepta todas las cadenas que terminan en 01
inicio q0 0 q1 1 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 muere

q1 q2 muere 0

q1 q2 1

0 Cadena aceptada

AUTOMATA FINITO NO DETERMINISTA Ejemplo: AFN que acepta todas las cadenas que terminan en 01
inicio q0 0 q1 1 q2

0, 1
Tabla de transicin del AFN anterior

q0
q1
*

{q0, q1}

{q0}
{q2}

q2

You might also like