Anda di halaman 1dari 14

AUTMATAS FINITOS

Haciendo una comparacin con la rama combinacional de Electrnica Digital, el lgebra de Boole era la herramienta matemtica para poder llevar a cabo la reduccin de las
frmu- las lgicas, y por lo tanto, del circuito de conmutacin.
En el caso de los circuitos secuenciales, esta herramienta no nos basta debido a la dependencia temporal. Por lo tanto, necesitamos otra herramienta para minimizar la dependencia
temporal de estos circuitos; esta herramienta es la teora de autmatas finitos.
Un autmata finito o mquina de estado finito es un modelo matemtico de un sistema
que recibe una cadena constituida por smbolos de un alfabeto y determina si esa cadena
pertenece al lenguaje que el autmata reconoce.

Definicin.
En primer lugar, vamos a definir lo que se entiende por autmata finito. Una posible
defi- nicin de autmata finito es la siguiente:
Un autmata finito es un vector de cinco
elementos
M = (I,S, F)
donde I es el conjunto finito de entradas, S es el conjunto finito de estados
(no vaco), es la funcin de transicin de estados y F es el conjunto finito de
estados finales (incluidos en S).
El hecho de que todos los conjuntos sean finitos, le otorga a este elemento el atributo de finito.
Tambin se puede desprender de la definicin que un autmata finito es un tipo especial de
mquina secuencial, en la cual no existen seales de salida como tal sino que slo hay seales
de entrada y estado, como suceda en la mquina de Moore.
Debido a este motivo, las mquinas secuenciales cumplen todos los axiomas de los autmatas finitos. Siendo sta la razn por la cual empezaremos el estudio de la teora desarrollada
alrededor de los autmatas finitos.
Al igual que en las mquinas secuenciales, la representacin de los autmatas finitos
puede llevarse a cabo de dos formas diferentes: mediante un diagrama de estados; o mediante
una tabla de estados. De estas dos representaciones, la ms intuitiva para una traduccin partiendo de unas especificaciones de diseo es el diagrama de estados. No obstante, el trabajo
con los diagramas de estado no es sencillo ni intuitivo. Por lo tanto, para un posterior procesado utilizaremos la tabla de estados.

Diagramas de Estado.
En los diagramas de estado podemos encontrar dos elementos: estados y transiciones.
Los estados son las letras o smbolos enmarcados (dentro de un crculo generalmente). En
cambio, las transiciones son arcos dirigidos que llevan asociadas una/s etiquetas.
Los estados se pueden definir como las posibles situaciones a las que puede llegar el
autmata que estemos describiendo. Dentro de estos estados podemos distinguir entre estados
estables y estados inestables. Cuando existe alguna transicin para la cual se llega al mismo
estado desde el que se parte, se dice que es un estado estable. Mientras que si no existe ninguna transicin que cumpla la condicin anterior, se dice que es un estado inestable. En el
caso de la mquina de ventas de refresco, los posibles estados pueden ser:
No hay dinero en el interior de la mquina
Existe el dinero suficiente para sacar un refresco
En el interior de la mquina estn cada una de las cantidades permitidas. Por ejemplo
si slo se admiten monedas de 10, 20 y 50 c., el refresco cuesta 60 c. y no se devuelve
dinero, las cantidades pueden ser 10, 20, 30, 40, 50 y 60 c.
Las transiciones correspondern a los eventos en las entradas que producirn los
cambios de estado en el sentido de la flecha del arco. El cambio de estado se producir si la
condicin de entrada coincide con la etiqueta asociada a dicha transicin. De nuevo, en el caso
de la mquina de refresco, las posibles condiciones de entrada podran ser:
Introducir las diferentes monedas permitidas: 10, 20 y 50 c.
Pulsar el botn para obtener el refresco.
As pues, una posible parte del diagrama del autmata se puede ver en la figura 2.1:

10 c.
0 c.

10 c.

Figura 2.1.- Porcin del diagrama de estado correspondiente a la mquina de refresco.


Dicha porcin del diagrama se leera del siguiente modo:
... si no hay dinero almacenado en la mquina (estado de 0c.) e introducimos
una moneda de 10 c. (evento), pasaremos a la situacin de tener
almacenado
10 c. (estado de 10c.)...
Si realizamos la descripcin a travs de la tabla de estado, la porcin anterior del
diagrama se mostrara en la tabla 2.1.

10 c.
10 c.

0 c.

Tabla 2.1. Porcin de la tabla de estado correspondiente a la mquina de refresco.


Por lo tanto, un posible diagrama de estado para la mquina de refresco se muestra en la
figura 2.2. En este diagrama distinguimos 8 situaciones posibles: cada una de las cantidades
que se pueden almacenar segn las monedas aceptadas (0, 10, 20, 30, 40, 50 y 60 c.); y una
situacin en la que ya es posible dar el refresco. Los eventos involucrados en dicha mquina
sern la insercin de cada una de las monedas (10, 20 y 50 c.), y pulsar el botn de refresco.
Las transiciones de estado son las siguientes:
Cuando introduzcamos una moneda, pasaremos al estado con la cantidad actualizada;
pero en el caso de que sobrepasemos la cantidad del refresco, nos quedaremos en los
60 c. ya que no se devuelve cambio y no es necesario almacenar dicha cantidad superior.
Cuando pulsemos el botn de refresco, B, no suceder nada a menos que nos encontremos en el estado de 60 c., en cuyo caso se dar el refresco.
B
B

0 c.
50 c.

10 c.
20 c.
50 c.

10 c.
Refresco

B
10 c.

10 c.
20 c.

50 c.
10 c.
20 c.
50 c.

20 c.

50 c.
50 c.

60 c.

10 c.
20 c.
50 c.

20 c.
20 c.

50 c.

20 c.

10 c.

30 c.
B
10 c.

B
20 c.
50 c.

40 c.
10 c.
B

Figura 2.2.- Diagrama de estado correspondiente a la mquina de refresco.

Teoremas y Definiciones.
Como nuestro inters est centrado en el anlisis y diseo, vamos a orientar los teoremas
y definiciones de la teora de autmatas finitos hacia los sistemas secuenciales. Una vez realizada esta aclaracin, en esta teora encontramos las siguientes definiciones:
Equivalencia: Una mquina M es equivalente a otra M*, si para cualquier
secuencia de entrada es posible encontrar algn estado inicial tal que la
secuencia de salida sea la misma. Esta relacin es denotada por M = M*.
Compatibilidad: Una mquina M es compatible con otra M*, si para
cualquier secuencia de entrada es posible encontrar un estado inicial tal que
la secuen- cia de salida sea la misma, siempre y cuando sta est
especificada. Esta relacin se denota por M ~ M*.
Mquina completamente especificada: es una mquina en la cual no existen ningn estado total para los que no est especificada la funcin de
prximo estado y/o de salida. En caso contrario, se dice que la mquina est
incompletamente especificada.
A continuacin vamos a poner ejemplos de mquinas completas e incompletas. una primera mquina podra ser la siguiente:
A travs de una lnea serie va llegando bits, se desea realizar una mquina que indique la llegada de la secuencia 1 -> 0 -> 1.
En esta mquina, la seal de entrada es la lnea serie mencionada anteriormente, con las posibles combinaciones de 1 y 0. Como ambas combinaciones son posibles, no podemos
encontrar ninguna situacin de no especificacin. Por lo tanto, la mquina ser completamente
especificada, ya que tanto la salida como los prximos estados debern estar especificados
para todas las secuencias de entradas.
Una segunda mquina podra ser la descrita a continuacin:
La figura 2.3 muestra el esquema de una mquina trituradora. La mquina es cuestin debe
gobernar los motores de trituracin segn las siguientes especificaciones: cuando no exista
nada que triturar, los motores deben estar apagados; cuando la mquina est llena, ambos
motores deben estar funcionando; cuando la mquina est medio vaca, slo debe funcionar
un motor, y en particular aquel que en el estado anterior estuviera apagado (con el fin de
garantizar una mayor vida activa de ambos motores).

S1
S2
P
M1 M2
Figura 2.3.- Esquema de una mquina trituradora.

Esta mquina es un ejemplo claro de mquina incompleta ya que los sensores de presencia S1
y S2 nunca pueden tener la combinacin S1 S2 = 1 0, ya que es fsicamente imposible. Por
lo tanto, para esta combinacin de entrada, ni la salida ni el prximo estado estarn
especificado porque no importar cuales sean al no llegar nunca dicha combinacin. No
obstante, podemos encontrarnos mquinas en los que la salida s estar especificada pero el
prximo estado no, y viceversa.
Segn las definiciones de compatibilidad y de equivalencia, se comprueba el siguiente
teorema:
Teorema 1. Se verifica que si las mquinas M y M* estn especificadas de
forma:
completa: M = M* <=> M ~ M*
incompleta: M = M* => M ~ M*
Demostracin.- De las definiciones de equivalencia y compatibilidad se desprende que la primera engloba a la segunda por lo que la direccin hacia la derecha de las implicaciones
queda demostrada. En cuanto a la direccin de la izquierda, slo se puede verificar a
priori cuando las dos definiciones sean iguales, caso que slo se puede dar cuando se
trata de mquinas completamente especificadas.
Cubrimiento. Una mquina M* cubre a otra M si cualquier secuencia de
entrada aplicada a M* produce la misma secuencia de salida que si se aplica
a M, siempre y cuando M est completamente especificada. Esta relacin es
denotada por M M*.
Estados compatibles: Dos estados internos Si y Sj se denominan compatibles, si para cualquier secuencia de entrada, tomando ambos estados como
iniciales, las dos secuencias de salida correspondientes resultan idnticas
siempre que ambos estados de salida estn completamente especificados.
Esta relacin es denotada por Si ~ Sj. En caso contrario, los estados se
deno- minan incompatibles.
La definicin de compatibilidad se reduce a comprobar que tienen el mismo
valor de salida y sus prximos estados son compatibles para cualquier condicin de entrada, ya que la aplicacin de la definicin de forma directa es
invia- ble.
Clase de compatibilidad o clases o compatibles: Consiste en un conjunto
de estados, los cuales son compatibles dos a dos.
Clase mximal o mximo compatible: Ser aquella clase que no es un
sub- conjunto de ninguna otra clase, y por lo tanto no est contenida
totalmente en ninguna otra.
Coleccin de clases cerrada: Es un conjunto de clases, en el cual los prximos estados correspondientes a cada clase estn contenidos al menos en
una clase de la coleccin, para cualquier secuencia de entradas.
Cubrimiento de una tabla de estados: Se trata de una coleccin de clases
que cubre a una tabla de estados, si cada estado interno de la tabla est
con- tenido en una clase de la coleccin como mnimo.

Autmatas Finitos Deterministas (AFD)


Este tipo de autmatas admite su definicin de dos maneras bien diferentes:: Como autmatas
traductores o reconocedores. La definicin como autmatas traductores continua a la definicin de las
mquinas secuenciales, y se los podra definir como una subclase de estas, ya que los autmatas finitos
tendran como limitante no poder iniciar desde cualquier estado como lo hacen en las mquinas
secuenciales.
La forma que adoptaremos para la definicin de los autmatas finitos deterministas es como autmatas
reconocedores, ya que se ajusta con los contenidos de la informtica terica y utilizacin que se les da
dentro del diseo de los analizadores lxicos.
Estos autmatas solo se limitarn a aceptar o no una determinada cadena recibida en la entrada,
por lo tanto podemos decir que la salida de los mismos solo tendr dos valores posibles aceptar o no
aceptar a la palabra de entrada.
Al igual que en las mquinas secuenciales, estos autmatas transitarn entre un conjunto finito
de estados posibles, a medida que reciban sucesivamente los caracteres de entrada, en un instante
determinado de tiempo el autmata solo podr estar en uno y solo uno de los estados posibles.
Una caracterstica importante de este tipo de autmatas es el determinismo, lo cul significa que estando
en un estado y recibiendo una entrada del exterior el autmata tendr la posibilidad de transitar a uno y
solo un estado del conjunto de estados posibles.
Con respecto al conjunto de estados ahora se pueden clasificar en tres tipos: Estado Inicial, que
es pon donde comenzar la ejecucin de la mquina; Estados finales o de aceptacin que ser un
subconjunto del conjunto de estados por los que transitar la mquina, y si cuando se hayan terminado
de procesar todos los smbolos de entrada y no reste ningn smbolo por leer, la mquina quede
posicionada en uno de estos estados de aceptacin, se concluir que la cadena procesada ser
aceptada por el autmata. y Estados Intermedios, que tienen comportamiento idntico a los definidos
en las mquinas secuenciales.

1.

Definicin:

2.
Los autmatas finitos deterministas quedarn formalmente definida mediante una quntupla
como sigue:
AFD = ( , Q, q0, F, f )
donde:

Alfabeto de smbolos de entrada.

Conjunto finito de estados

q0

q0

F
Q - es el conjunto de estado
finales de aceptacin.

Funcin de transicin de estados


definida como

Q estado inicial previsto

f: Q x

3.

Interpretacin de funcionamiento:

Este autmata recibir una cadena en la cinta de entrada e ira procesando de uno a la vez los
smbolos de entrada. Comenzar su funcionamiento posicionada en el estado inicial, y desde este
estado comenzar su ejecucin.
En cada intervalo de tiempo discreto realizar dos acciones las cuales sern consideradas como
acciones indivisibles en un determinado intervalo de tiempo.
Las acciones que realiza son:

Leer el prximo smbolo, desde la cinta de entrada.

Transitar, cambiar de estado

4.

Extensin a palabras

El autmata finito determinista realizar transiciones de estados a travs de la funcin f solo


cuando reciba un smbolo de entrada. Esto puede generalizarse a una palabra completa, o cuando
reciba la palabra vacia, en este caso se denominar una funcin de transicin f como la funcin
f : Q x *

Donde:
f (q, ax) = f(f(q,a),x)
f (q,

)= q

con a

5.

;x

* ; q

Aceptacin de Palabras:

Una palabra ser aceptada por un AFD si estando formada pos smbolos pertenecientes al
alfabeto de entrada, al finalizar de procesar la misma, el autmata queda posicionado en una de los
estados perteneciente al conjunto de estados finales de aceptacin.

Dada:
x
W()
f ( q0, x) = qn Si qn

6.

F la cadena x es aceptada

Lenguaje reconocido por un AFD:

Es el conjunto de todas las palabras reconocidas por el Autmata Finito Determinista.

L AFD = { x / x

* y f ( q0, x) = qn con qn

F}

7.

Ejemplo:

Dado el siguiente AFD definido como:

AFD1 = ( , Q, qi, F, f ), donde:


= { 0,1 } (Conjunto de smbolos de entrada del AFD)
Q= { p, q, r } (Conjunto de estados del AFD)
qi = p (estado inicial del AFD (p Q))
F= {q } (Conjunto de estados de aceptacin del AFD ({q } Q))
f: funcin de transicin de estados del AFD
Donde la funcin f ser:

Tambin puede expresarse como:

f(p, 0)= q

f(p, 1)= r

f(q, 0)= p

f(q, 1)= q

f(r, 0)= r

f(r, 1)= r

Representando su comportamiento por medio del grafo dirigido:

En donde el lenguaje aceptado por esta AFD ser:

L AFD1 = {x / x

* y x = 0.1n con n

0}

8.

Accesibilidad entre estados (A)

Dados dos estados dentro de un autmata, se dice que uno de los estado es accesible desde el
otro, si existe una palabra x formada por smbolos del alfabeto de entrada que hace que partiendo de
este estado y a travs de la aplicacin de la funcin de transicin se pueda llegar hasta el otro.
De esta manera definiremos:
Sean p y q
existe x

Q dos estados dentro de un AFD y


W() tal que:

f( q , x ) = p Entonces se dice que:


pAq ( Se lee p es accesible desde q )

9.

Conjunto Conexo

Un conjunto conexo es aquel en donde todos sus estados son accesibles desde el estado inicial.
Por lo tanto un AFD ser conexo si todo estado perteneciente al conjunto de estados es accesible desde
el estado inicial.
Si en un AFD existieran estados que no son accesibles desde el estado inicial, los mismos
pueden ser eliminados, de manera de simplificar el autmata. Esta eliminacin no afectar al
comportamiento y por lo tanto continuar aceptando el mismo Lenguaje.
Ejemplo de conjunto conexo:
Dado el siguiente AFD definido como:
AFD1 = ( , Q, qi, F, f ), donde:
= { 0,1 }
Q= { p, q, r , t, s }
qi = p
F= {q ,s }
Donde la funcin f ser:

Tambin puede expresarse como:

f(p, 0)= q

f(p, 1)= r

f(q, 0)= p

f(q, 1)= q

f(r, 0)= r

f(r, 1)= r

f(t, 0)= s

f(t, 1)= q

f(s, 0)= s

f(s, 1)= t

El Grafo correspondiente ser:

Analizando, el grafo del AFD, vemos que alos estados t y s , es imposible acceder desde el
estado inicial p, por lo tanto estos estados pueden ser eliminados del AFD y el comportamiento del
autmata no se alterar.

10.

Equivalencias en los AFD

A continuacin presentaremos definiciones de equivalencias para culminar con equivalencia entre


Autmatas Finitos Deterministas.
Equivalencias entre estados:
Dos estados p y q sern equivalentes si: Para toda cadena x que desde el estado p hace
transitar el autmata hasta un estado de aceptacin, tambin lo hace desde el estado q. Debiendo
ocurrir simultaneamente que para toda otra cadena y que no hacen transitar desde el estado p hasta
un estado de aceptacin, tampoco lo har desde el estado q.
De esta manera definiremos:
Sean p y q

Q dos estados dentro de un AFD

p E q ( Se lee: p y q son equivalentes)

si
cadena x
W() - se puede alcanzar un estado final previsto tanto comenzando desde el estado p
como el de q Y
otra cadena y
W() no se puede alcanzar un estado final previsto tanto comenzando desde el
estado p como el de q.

2.

Autmatas Finitos No Deterministas (AFND)

Definicin:
Un Autmata finito determinista queda definido por un quntupla, al igual que en los AFD, y que
su diferencia fundamental se encuentra, en como se definir a la funcin de transicin:

AFND = ( , Q, q0, F, f )
donde:

Alfabeto de smbolos de entrada.

Conjunto finito de estados

q0

qo

F
Q - es el conjunto de estado finales de
aceptacin.

Funcin de transicin de estados definida como

Q estado inicial previsto

f: Q x ( U {

} ) P (Q)

En donde P (Q), es el conjunto que se puede armar


con todos los subconjuntos de Q
Este tipo de autmatas se diferencia de los AFD, bsicamente en como puede constituirse la funcin
de transicin:. Esta diferencias son las siguientes:

1)

Para cada par estado entrada, el autmata puede tener la


posibilidad de transitar a mas de un estado posible.

2)

Para algn par de estado entrada, el autmata puede no


tener definido ninguna transicin. Lo que significa que podr
realizar transicin alguna.

3)

Puede realizar transiciones de un estado a otro sin leer


smbolo alguno de la entrada. A este tipo particular de
transiciones se las denomina transiciones- .

Ejemplo:
Una AFND puede definirse como sigue:

AFND1 = ( { 1 , 0 }, { p, q , r, s , t }, p, { r, t }, f ) , donde:
la funcin f puede definirse:
En forma explicita:

f (p,0) = r

f (q,1) = {s,r}

f (p,1) = {t,s}

f (r,0) = p

f (t,

f (s,0) = {p,r}

f (p, ) = t

f (s,1) = t

)=s

f (t,1) = s

Tabla de doble entrada:


Al igual que en los AFD tendremos:

En las filas los estados


si el estado es final lo anteceder un *
si el estado es inicial lo marcaremos con una
En las columnas se pondrn los smbolos del alfabeto de entrada y se aadir una columna
adicional para
En la interseccin (celdas de la matriz) se indicarn las transiciones

{t,s}

{s,r}

{p,r}

En la tabla f de la funcin de transicin, se encuentran presentes las tres situaciones que se


admiten en los AFND a diferencia de los AFD.
La situacin identificada como de no determinismo propiamente dicho, en donde para un estado
determinado y ante una misma entrada, el autmata tiene la posibilidad de transitar a uno o mas estado.
Esta situacin se presenta en tres oportunidades:
f (p,1) = {t,s}
f (q,1) = {s,r}
f (s,0) = {p,r}

y en representacin grfica de f (p,1) = {t,s} sera:

La segunda situacin cuando que es no tiene definida transicin a estado alguno se presenta en
las siguientes situaciones:

f (q,0) =
f ( r,1) =
f ( t,0) =
Y la tercer situacin es cuando tiene la posibilidad de transitar de estado, an sin leer ningn
smbolo de la entrada, esta situacin se evidencia en las siguientes situaciones:

f (p, ) = t
f (t, ) = s

Grficamente se evidencia f (p, ) = q de la siguiente manera:

Diagrama de transiciones:

Cada Nodo es un estado

El estado inicial tendr un arco entrante no identificado

Los estados finales tendrn doble crculo.

Existir un arco con sentido, etiquetado con un smbolo a entre dos nodos p y q si
existe una transicin F(p,a) = q.

Anda mungkin juga menyukai