Sei sulla pagina 1di 10

DEFINICION FORMAL DE AUTOMATAS FINITOS

Los autmatas finitos son las herramientas empleadas como reconocedores de


tokens,
a) Anlisis lxico, b) Interior del analizador lxico.
Un autmata finito es capaz de reconocer un conjunto regular, es decir, un
conjunto de cadenas denotado por cualquier expresin regular. Recordemos que
una expresin regular denota a un lenguaje regular.
Un autmata finito es un reconocedor para un lenguaje, su programacin no es
una tarea compleja, su entrada es una cadena x y responde si si x es una
sentencia del lenguaje, no de otra manera.
Los autmatas finitos se clasifican en :
a) Determinsticos.
b) No Determinsticos.
DIAGRAMA DE TRANSICIONES
Un diagrama de transiciones es una coleccin finita de crculos, los cuales se
pueden rotular para fines de referencia, conectados por flechas que reciben el
nombre de ARCOS.
DT, Diagrama de Transiciones de ejemplo

Cada uno de estos arcos se etiqueta con un smbolo o categora de smbolos que
podra presentarse en la cadena de entrada que se analiza. Uno de los crculos se
designa con un apuntador, y representa una posicin inicial. Adems, por lo menos

uno de los crculos se representa como un crculo doble; estos crculos dobles
designan posiciones del diagrama en las cuales se ha reconocido una cadena
valida.
Decimos que una cadena de smbolos es aceptada por un diagrama de
transiciones si los smbolos que aparecen en la cadena (de izquierda a derecha)
corresponden a una secuencia de arcos rotulados que conducen del crculo
designado por el apuntador a un crculo doble.
Los crculos de un diagrama de transiciones representan posiciones, o estados,
donde no podemos encontrar al evaluar una cadena de smbolos. Es comn
llamar estados a los crculos de un diagrama de transiciones. l circulo de partida
se llama estado inicial y los crculos dobles, estados de aceptacin.

ALGORITMO DE CONVERSIN DE UN AFN A UN AFD


1. Se calcula la C_ del estado inicial del AFN, el resultado ser el estado
inicial S0 del AFD.
S0 ser el estado inicial del AFD y el primer Si del AFD.
2. Se calcula para cada Si la operacin Ir_A para cada , la cual arrojara
un estado Si (Pudiendo repetirse).
3. Se realiza la operacin 2 con todos los estados hasta que ya no surjan
estadosdiferentes.
El estado inicial del AFD ser S 0 y los estados finales sern todos aquellos
Si que contengan al estado final del AFN original.
La funcin de transicin es el resultado de todas las operaciones Ir_A
sobre los Si.
Ejemplo 01
Convertir el autmata finito no determinista de la expresin regular (b|b*a)a, a un
autmata finito determinista.

C_ (q0)={q0,q1,q2,q3,q5,q8}=A
Ir_A(A,a)= C_ (Mover(A,a))= C_ {q6}={q6,q7,q10}=B
Ir_A(A,b)= C_ (Mover(A,b))= C_ {q4,q9}={q4,q3,q5,q9,q10}=C

Ir_A(B,a)= C_ (Mover(B,a))= C_ {q11}={q11}=D


Ir_A(B,b)= C_ (Mover(B,b))= C_ {}={}
Ir_A(C,a)= C_ (Mover(C,a))= C_ {q6,q11}={q6,q7,q10,q11}=E
Ir_A(C,b)= C_ (Mover(C,b))= C_ {q4}={q4,q3,q5}=F
Ir_A(D,a)= C_ (Mover(D,a))= C_ {}={}
Ir_A(D,b)= C_ (Mover(D,b))= C_ {}={}
Ir_A(E,a)= C_ (Mover(E,a))= C_ {q11}={q11}=D
Ir_A(E,b)= C_ (Mover(E,b))= C_ {}={}
Ir_A(F,a)= C_ (Mover(F,a))= C_ {q6}={q6,q7,q10}=B
Ir_A(F,b)= C_ (Mover(F,b))= C_ {q4}={q4,q3,q5}=F
El estado inicial es A, ya que originalmente contiene a q0.
Los estados finales son D y E ya que contienen a q11.
f

A
B

B
D

Es posible omitir el estado , para una fcilinterpretacin, pero es importante hacer


notar que puede ser tratado como un estado ms (estado pozo o de error), y es
necesario para la implementacin correcta del autmata.

REPRESENTACIN DE UNA EXPRESIN REGULAR USANDO


AUTMATAS FINITOS NO DETERMINSTICOS
el algoritmo utilizado para la construccin del autmata finito no
determinstico AFND, es relativamente sencillo de aplicar, ya que se
basa en reglas simples. Existen muchas variantes de este algoritmo
denominado Algoritmo de Thompson
EXPRESION
REGULAR

ALGORITMO

AFND

DE
THOMSON

Carta Entrada-Proceso-Salida (EPS) para el algoritmo de construccin


de Thompson.
Entrada
Expresin regular r definida sobre un alfabeto _.

Proceso
Primero, reconocemos las sub expresiones que constituyen a r. Usando las reglas (1) y
(2), construimos los AFNDs para cada smbolo bsico en r. Guiados por la estructura
sintctica de la expresin regular r, combinamos estos AFNDs de manera inductiva
usando la regla (3) hasta obtener el AFND para la expresin regular r.

Salida

Un AFND que reconoce al lenguaje L ( r ).

Las reglas a las que hace mencin el algoritmo de Thompson son las
siguientes :

1. Para el smbolo , construir el AFND :

i es el nuevo estado inicial, y f es el nuevo estado de aceptacin. Este


AFND reconoce a { }

2. Para cualesquier smbolo a del alfabeto _, construir el AFND :

De nuevo, i es el nuevo estado inicial, y f es el nuevo estado de


aceptacin. Este
autmata reconoce { a }.

3. Supongamos que N(s) y N(t) son AFNDs para las expresiones

regulares s y t,
respectivamente.
a) Para la expresin regular s | t (alternancia), construir el siguiente
AFND, N(s|t) :

i es el nuevo estado inicial, y f es el nuevo estado de aceptacin. Se


aade una transicin desde i hacia los estados de inicio de N(s) y de

N(t). Adems, se aade una transicin desde los estados de


aceptacin N(s) y de N(t) hacia el nuevo estado de aceptacin f.
Los estados de inicio y de aceptacin de N(s) y de N(t) no son los
estados de inicio y de aceptacin del autmata N(s|t). Este AFND
reconoce, L(s) U L(t).
b) Para la expresin regular st (concatenacin), construir el AFND, N(st)
:

El estado de inicio de N(s) es ahora el estado de inicio para el AFND


N(st), y el estado de aceptacin de N(t) se vuelve el estado de
aceptacin del AFND, N(st). El estado de aceptacin de N(s) es mezclado
con el estado inicial de N(t); esto significa que todas las transiciones,
desde el estado inicio de N(t) son ahora arcos o transiciones desde el
estado de aceptacin de N(s). El nuevo estado que resulta de esta
mezcla, pierde su estatus de estado de inicio o aceptacin para el nuevo
AFND. El AFND as construido, reconoce el lenguaje L(s) L(t).
c) Para la expresin regular s*, construir el AFND, N(s*) :

i es un nuevo estado inicial, y f es un nuevo estado de aceptacin. Con


el nuevo AFND se reconoce el lenguaje ( L(s) ) *.
MINIMIZACIN DE ESTADOS EN UN AUTOMATA FINITO
Supongamos que para un AFD M = (Q, , , q0, F) definimos la siguiente
relacin RM:

xRMy ssi (q0, x) = (q0, y)


Claramente, podemos notar que esta relacin es de equivalencia e
invariante por
la derecha con respecto a concatenacin. Esto ltimo quiere decir que
xRMy xzRMyz para todo z
.
Intuitivamente, xRMy significa que M no puede distinguir a x de y.
Cuntas clases de equivalencia tiene esta relacin?
Respuesta: El nmero de estados que posee el autmata. La idea de la
minimizacin de autmatas finitos es obtener una relacin de
equivalencia con las caractersticas de la anterior, pero de un ndice lo
ms pequeo posible.
Por ejemplo, si para un AFD arbitrario M = (Q, , , q0, F) tenemos que
(q1, x) F ssi (q2, x) F, para todo x
Sabemos que esencialmente los estados q1 estn cumpliendo la misma
funcin;
es decir, son indistinguibles.
Formalmente, diremos que dos estados p y q del autmata M son
distinguibles
ssi existe w tal que
(p, w) F y (q, w) 6 F
Supongamos el siguiente AFD:

Claramente aqu los estados q1 y q2 son indistinguibles.


Retomando la idea de las relaciones de equivalencia, supongamos que
pudisemos

definir para un lenguaje regular cualquiera L, una relacin de


equivalencia:
xRLy ssi xz L yz L, para todo z
Es posible imaginar que cada una de las clases de equivalencia de esta
relacin
Representan estados de algn autmata.
De esta manera, si x pertenece a la clase de equivalencia representada
por q e y
Pertenece a una clase de equivalencia q0 distinta entonces x 6RLy y por
lo tanto
q y q0 son indistinguibles.

APLICACIONES DE LOS AUTOMATAS


Los autmatas programables aparecieron en los Estados Unidos de Amrica en
los aos 1969 70, y ms particularmente en el sector de la industria del
automvil; fueron empleados en Europa alrededor de dos aos ms tarde. Su
fecha de creacin coincide, pues con le comienzo de la era del microprocesador y
con la generacin de la lgica cableada modular.
El autmata es la primera mquina con lenguaje, es decir, un calculador lgico
cuyo juego de instrucciones se orienta hacia los sistemas de evolucin secuencial.
Hay que apreciar que, cada vez ms, la universalidad de los ordenadores tiende a
desaparecer, el futuro parece abrirse hacia esta nueva clase de dispositivos:
maquina para proceso de seales, para la gestin de bases de datos...etc.
El autmata programable satisface las exigencias tanto de procesos continuos
como discontinuos.
Regula presiones, temperaturas, niveles y caudales as como todas las funciones
asociadas de temporizacin, cadencia, conteo y lgica. Tambin incluye una
tarjeta de comunicacin adicional, el autmata se transforma en un poderoso
satlite dentro de una red de control distribuida.
El autmata programable es un aparato electrnico programable por un usuario
programador y destinado a gobernar, dentro de un entorno industrial, maquinas o
procesos lgicos secuenciales.
Sistema que realiza dos acciones:
Queremos que un sistema realice dos acciones A y B. Hay un pulsador de
MARCHA que inicia el proceso. Si MARCHA est pulsada durante ms de un
segundo el sistema realiza la accin A y si est pulsada un segundo o menos el
sistema realiza la accin B. A dura un mnimo de 10 segundos y B un mnimo de

15 segundos. El pulsador de PARO devuelve al sistema al estado inicial.


ENTRADAS:
- MARCHA Canal 000.00 Normalmente Abierto
- PARO Canal 000.01 NA
SALIDAS
- Accin A Canal 100.00 NA
- Accin B Canal 100.01 NA

BIBLIOGRAFIA:
INSTITUTO POLITECNICO NACIONAL
Escuela superior de computo Teora computacional
M. en C. Edgardo Adrin Franco Martnez
http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
edfrancom@ipn.mx
TECNOLOGICO DE LA LAGUNA
Ing. Fco. Ros Acosta
friosam@prodigy.net.mx
Autmatas Finitos

Potrebbero piacerti anche