Sei sulla pagina 1di 24

MDULO IV

AUTMATAS DE ESTADO FINITO


es toda Mquina de Estado Finito en la que el conjunto de smbolos de salida es
exclusivamente O = { 0, 1 } y dnde el estado actual determina cul fue el ltimo dato de
salida. Aquellos estados para los cuales el ltimo dato de salida fue 1, se denominan
estados de aceptacin. En todo Autmata Finito, representado como A, debe haber cuando
menos un estado de aceptacin y por sentido comn se recomienda que no todos lo sean.
En forma grfica se muestra la forma como se identifican los dos tipos de estado que se
pueden presentar en este Autmata. La ? significa que no importa cal es el smbolo en la
entrada.

?/0

?/1

?/0
?/0

?/1
...

?/0

Estado de no aceptacin.

?/1

...

?/1

Estado de aceptacin.

La razn por la que el conjunto O debe ser { 0 , 1 } resulta razonable debido a que se
los utiliza en la computacin y en la electrnica digital, donde se opera con el sistema
binario.
La segunda caracterstica surge de la necesidad prctica de saber cul fue el ltimo
bit de la cadena de salida, sabiendo en qu estado se termina el recorrido en el diagrama de
transicin para una cadena de entrada, y sin importar los estados intermedios que se van
obteniendo. Si se conoce el estado final, entonces tambin se deber conocer cul fue el
ltimo bit de la cadena de salida.
En sntesis, es fcil notar que en muchos casos, lo importante no son las salidas
momentneas del modelo, sino nicamente el ltimo bit de salida, tal y como es el caso de
varios de los ejemplos presentados en el archivo de problemas por resolver
correspondientes al mdulo 3. Lo anterior es muy importante, ya que se presenta un 0 en la
salida cuando la cadena de entrada no cumple un enunciado, puesto como especificacin
de diseo del Autmata; por otro lado se presenta el 1 en la salida cuando s lo cumple.
Se podra decir que un Autmata Finito es un aceptador o rechazador de cadenas.
EJEMPLO:

Trazar el diagrama de transicin de la Mquina de Estado Finito definida en la tabla;


en caso de que sea tambin un Autmata Finito, trazar su diagrama correspondiente en la
notacin respectiva; determinar el conjunto de estados de aceptacin.

I
S

q0

q1, 0

q2, 1

q0, 1

q1, 0

q1

q1, 0

q0, 1

q1, 0

q0, 1

q2

q2 , 1

q1 , 0

q1, 0

q0, 1

Los Estados de aceptacin son q0 , q2 mientras que el Estado de no aceptacin es q 1.


Para distinguirlos, se remarca con un crculo doble cada estado de aceptacin al
representarlo ya como Autmata. Obsrvese que no es necesario describir los bits de salida
en cada arco, ya que tales smbolos son evidentemente deducibles.
El anterior es un Autmata de Estado Finito en razn de que en todos los arcos que
llegan a los estados de aceptacin se tiene la indicacin de bit de salida en 1, y por otro
lado se tiene un 0 en los de no aceptacin.
En el Autmata podremos analizar qu es lo que sucede cuando llega una cadena de
entrada, tal como yxxzwyxw, y en cuyo caso podremos especificar la secuencia de estados
por los que pasa el Autmata, de la siguiente forma:
Sin = y x x z w y x w
// cadena de entrada.
q0
q 0 q 2 q1 q0 q1 q1 q0 q1
// estados recorridos.

Si un Autmata de Estado Finito recibe como dato de entrada una cadena o arreglo,
se puede concluir el recorrido en el Autmata o en un estado de aceptacin o en uno de no
aceptacin; la clase de estado en la cul se termina, establece cundo una cadena es
aceptada por el Autmata. Como el recorrido finaliz en este caso en un estado de no
aceptacin ( q1 ), la cadena y x x z w y x w se considera que no es aceptada por el
Autmata; sto significa que no cumple con las especificaciones que se dieron en el diseo.
En este caso, al analizar las transiciones no se consideran los smbolos de salida.
Una transicin de un Autmata se considera que consta de dos etapas nicamente: ingresa
un smbolo de entrada, y hay un cambio de estado. La tabla de transicin, ya simplificada
para el Autmata, quedara:

I
S

q0

q1

q2

q0

q1

q1

q1

q0

q1

q0

q2

q2

q1

q1

q0

Representacin en la que se observa que con una flecha se apunta el estado inicial, y
que se encierra en un crculo cada estado de aceptacin. No se incluye la indicacin del
smbolo de salida, ya que tal valor se deduce segn el tipo de estado al que se accede.
IMPORTANTE: El Autmata de Estado Finito se emplea en vez de la Mquina,
cuando no es tan importante considerar las diversas salidas obtenidas al ir recibiendo
los smbolos de la cadena de entrada; solamente importa conocer el ltimo bit de
salida, para verificar el cumplimiento o no de una caracterstica especfica. Tambin es
fundamental la existencia de estados que influyen en la operacin del modelo.

DEFINICIN FORMAL DE AUTMATA DE ESTADO FINITO


UN AUTMATA DE ESTADO FINITO CONSISTE EN:
a) Un conjunto finito I de smbolos de entrada.
b) Un conjunto finito S de estados.
c) Una funcin estado siguiente f de S x I en S.
d) Un subconjunto A S de estados de aceptacin.
e) Un estado inicial o S.
Se expresa en notacin de conjuntos como: A =
llamar la descripcin formal del Autmata.

( I , S , f , A , 0 ). A sta se la

Ntese que en las tres representaciones de un Autmata, el especificar el conjunto de


los estados de aceptacin A, hace innecesario definir la funcin g de una Mquina, por
obviedad; las transiciones que llevan a un estado de aceptacin implicaran un 1 en la

salida, por ejemplo. Por lo mismo, el conjunto de smbolos de salida (0 y 1) se omite


tambin.
Para el Autmata expresado en el ejemplo anterior, se tiene:
I = { w, x, y, z }
S = { q 0, q 1, q 2 }
A = { q0, q2 }
f = { f ( q0, w ) = q1, ... , f ( q2, z ) = q0 }
son 12 en total.

o = { q0 }

EJEMPLO:
Disear un Autmata Finito que acepte nicamente los arreglos con I = { a, b } pero que no
contengan a.(Sin = bn n 0).
Es un caso algo extrao, ya que nos podremos preguntar, por qu si la entrada a no se debe
presentar en ninguna cadena, entonces para qu la definimos como posible entrada?
Este caso debe corresponder a una situacin en la que el Autmata servira para representar
un dispositivo de control, instalado en una empresa, para monitorear fallos en distintas
partes de las instalaciones. A dicho sistema llegan seales provenientes de sensores
ubicados en sitios estratgicos; el llegar una a, podra significar avera, mientras que la b
significara bien. Si no llega ninguna de las dos, entonces no habra problema.
Esa podra ser la razn por la que es posible recibir una a, aunque tal situacin sera no
aceptada.
El diseo del Autmata requerido quedara como sigue:
b

a, b

q0

q1
a

Cuando se inicializa el Autmata, se acepta la cadena, ya que la cadena vaca no contiene


a; evidentemente, el estado inicial es de aceptacin. Inclusive, mientras se sigan recibiendo
las b en la entrada, se sigue aceptando la cadena.
La situacin cambia cuando estando en el estado q 0 se recibe una a. En ese momento, ya
no puede ser aceptada ninguna cadena, sin importar cual es el resto de la misma. Por eso,
pasamos a el estado q1, en el cual, sin importar lo que llegue, ya no puede ser aceptada la
entrada.
CRITERIOS IMPORTANTES EN EL DISEO DE UN AUTMATA FINITO

Verificar si al querer representar el sistema real con este modelo, se puede (se
identifican estados?) y se debe (no sera mejor con una Mquina de Estados?).

Cuando una entrada es trascendental, se tiene un cambio a un estado distinto al


actual; cuando una entrada, es intrascendente, se representa como un cambio al
mismo estado (grficamente, como un lazo).

Al inicio del diseo de este modelo, debemos preguntarnos: la cadena vaca


debe ser aceptada? Si la respuesta es afirmativa, entonces el estado inicial debe ser
de aceptacin. No lo es, en caso contrario.
EJEMPLO:
Construir una expresin regular que describa el lenguaje aceptado por el siguiente
Autmata:

Para resolver este problema, definamos las posibles trayectorias que nos llevan desde el
estado inicial, a todos y cada uno de los estados de aceptacin; en este caso, hay tres
estados de aceptacin. Para llegar a dos de ellos, hay uno solo de esos caminos, pero para
llegar al tercero, existen dos posibilidades, pasando por los dos estados mencionados
anteriormente, obtenindose, en total, cuatro de esas posibles trayectorias.
Finalmente, se unen todas las respuestas individuales.
De esa forma, se tiene que la respuesta sera:
L = { ab*} { ba*} { ab*a } { ba*b}
EJEMPLO:
Cules de los lenguajes descritos por las siguientes expresiones regulares para el alfabeto
{ x, y, z } son infinitos?

En este caso, los Autmatas Finitos que aceptan Lenguajes infinitos, son los indicados en
los incisos A, B y D. Eso, por el simple hecho de tener lazos en su estructura.
Adems de ser esa una caracterstica para identificar los Autmatas que aceptan este tipo
de Lenguajes, se tiene tambin que ocurre en los casos en los que se observa en el
diagrama la presencia de circuitos, es decir, de caminos cerrados. Por tanto, si uno solo de
los dos arcos que se dirigen de el estado inicial, al siguiente estado en el modelo del inciso
C, se invirtiera su sentido, ya no aceptara un Lenguaje Finito como ahora.

AUTMATAS EQUIVALENTES
Si dos Autmatas aceptan exactamente las mismas palabras, se dice que tales son
equivalentes. El conjunto I debe ser el mismo para ambos, mientras que 0 y S pueden
variar y la funcin f necesariamente cambia entre ellos.
Es evidente que siempre es mejor hacer el diseo ms simple, ya que su
implementacin deber ser ms fcil y con menor riesgo de cometer errores al disearlo.
Queda para el estudiante proponer algunos ejemplos de Autmatas equivalentes.

IMPLEMENTACIN DE UN AUTMATA
Los Autmatas de Estado Finito, al igual que las Mquinas, tienen la gran ventaja de
que SE PUEDEN PROGRAMAR, con lo que se transforman en una herramienta muy
valiosa para todo el profesional que intenta simular el funcionamiento de un sistema
real, inicialmente representado con este modelo matemtico.
EJEMPLO:
Disear e implementar por medio de un Autmata Finito, un analizador que acepte las
cadenas que representan los nombres de identificadores vlidos de un lenguaje de
programacin tpico como C o Pascal. Este diseo es un pequeo subconjunto de un
analizador lxico.
Se definen las clases para los smbolos de entrada que se consideran en los arcos
como tipos de datos para simplificar la representacin del diagrama:
dgito: 0, 1, 2, ..., 9.
letra: A, B, C, ... , Z, a, b, c, ..., z, _ .
otro: +, -, @, ;, sp, , $, %,
...

etc.

Se tomar como base el criterio de que un identificador inicia con una letra y despus
puede llevar dgitos y/o letras, pero nunca caracteres diferentes a estos dos tipos.

Al dibujar el diagrama de transicin se debe tomar en cuenta que por conveniencia,


los arcos que corresponderan a situaciones de no aceptacin se omiten, quedando como
entendido que iran todos a un estado de rechazo (como q 1) del que no se podra salir. En
realidad el estado q1 se puede omitir debido a que llegando a l, de todos modos la cadena
no va a ser aceptada, pero se incluye, para que con tres estados el ejemplo sea ms
demostrativo.
La primera versin de la implementacin puede ser en base a la siguiente propuesta
de un pseudocdigo:
Estado 0
LEER siguiente smbolo de entrada
MIENTRAS no ( fin de cadena ) HACER

OPCIN ( Estado ) DE
0: SI ( Smbolo actual = letra )
ENTONCES ( Estado 2 )
SINO SI ( Smbolo actual = dgito )
ENTONCES ( Estado
1)
SINO ( Error_rutina )
1: Error_rutina
2: SI ( Smbolo actual = letra )
ENTONCES ( Estado 2 )
SINO SI ( Smbolo actual = dgito )
ENTONCES ( Estado
2)
SINO ( Error_rutina )
FINOPCIN
LEER Siguiente smbolo de entrada
FINMIENTRAS
SI ( Estado 2 ) ENTONCES (Error_rutina)
Sin embargo, la opcin anterior, con anidamiento de instrucciones if, no debe
utilizarse para implementar un Autmata, pues en un diseo en el que existan varios estados
con muchas entradas posibles, resultara en una instruccin alternativa mltiple (switch o
case) con un rango gigantesco, como se podr observar y sera difcil su mantenimiento.
Una segunda versin, mucho ms prctica, utiliza una tabla de transiciones en la que
se consulta cul ser el valor del siguiente estado. La gran ventaja de esta variante es que
para cambios en el diseo original del Autmata, las modificaciones se hacen en la tabla
solamente. A esta representacin la denominaremos Autmata Matricial.

letra

dgito

FDC

q0

q2

q1

q1

q2

q2

q2

El siguiente paso, consiste en traducir esta tabla a un formato de estructura de datos


bidimensional simple, por ejemplo un arreglo, para que pueda ser combinada con el
programa principal, que se menciona a continuacin.

Estado 0
REPETIR
LEER siguiente smbolo de entrada
OPCIN (smbolo) DE
letra: Entrada
letra
dgito: Entrada
dgito
FDC : Entrada
FDC

Otro : Error_rutina
FINOPCIN
Estado Tabla ( Estado, Entrada )
SI ( Estado = error ) ENTONCES Error_rutina
HASTA ( Estado = aceptar ).
La transicin de Autmata se determina en la sentencia marcada en negritas en el
algoritmo anterior, y que permite actualizar la variable que define el estado actual. Los
valores de la tabla de transicin se pueden incluir al inicio del algoritmo en forma de un
arreglo bidimensional, por ejemplo. Dicha estructura tendra tantos renglones como estados
resultaran en el modelo, y tantas columnas como tipos de datos diferentes. Se recomienda
que "aceptar" ( ) y "error" (X) se vinculen con un entero cada uno, para hacerlos
homogneos con el resto del contenido de la tabla, mismo que puede ser representado por
el entero que indique el subndice de la q correspondiente.
Este es un pseudocdigo y por ello se le asignan a la variable llamada Entrada,
valores tipo cadena, pero es evidente que sera mejor asignarle valores de tipo entero,
segn sea el tipo de smbolo de entrada.
Ntese que en realidad se est haciendo la misma implementacin de software que
corresponde a un grafo dirigido, tema que se estudi en el curso de Matemticas Discretas.
EJEMPLO:
Disear e implementar por medio de un autmata matricial, un analizador que
reconozca cadenas que representen los nmeros reales sin signo, pero slo aquellos
que inicien con dgito, tanto en notacin decimal como en exponencial.

Sin embargo un compilador no debe aceptar nmeros con exponentes tan grandes
como 2.34E-345261. Cmo se modificara el diagrama de transicin para que el exponente
tenga 1 2 dgitos solamente?

dgito

E , e

+,-

FDC

q0

q1

q1

q1

q2

q4

q2

q3

q3

q3

q4

q4

q6

q5

q5

q6

q6

q6

A la tabla anterior se le da un formato de arreglo bidimensional (o alguna otra


estructura de datos de dos dimensiones). Enseguida se implementa el Autmata de la
siguiente forma:

Estado 0
REPETIR
LEER siguiente smbolo de entrada
OPCIN (smbolo) DE
0, ... , 9 :
Entrada dgito
:
Entrada punto
E, e :
Entrada letra E
+, - :
Entrada signo
FDC :
Entrada FDC
Otro :
Error_rutina
FINOPCIN
Estado Tabla ( Estado, Entrada )
SI (Estado = error) ENTONCES (Error_rutina)
HASTA (Estado = Aceptar).
En este caso, la asignacin en negritas es la parte ms importante del algoritmo, y
consiste en accesar en la celda correspondiente del arreglo que representa la Tabla de
Transicin previamente diseada, para actualizar la variable del estado.
Ntese que, en esencia, cualquier Autmata Finito se disea bajo el mismo formato
bsico. Lo nico que cambia de un caso a otro es el contenido del rango de la instruccin
Opcin, segn sean los smbolos que componen el alfabeto de las cadenas que se deben

aceptar, y distribuidas segn sea su tipo. Inclusive, cuando los smbolos de entrada no
son tan variados, no se requiere la instruccin Opcin en el algoritmo.
Cmo se modificara el algoritmo anterior para implementar una Mquina de Estado
Finito, considerando que en ella se deben actualizar no uno, sino dos parmetros (estado y
salida) y que en la transicin la que ocurre primero es la salida? Es obvio que se debern
definir dos tablas o arreglos en el algoritmo, una para el siguiente estado (como en el
Autmata) y otra para la salida. En el lugar adecuado se deber insertar la sentencia:
Salida Tabla2 ( Estado, Entrada ).
Como parte de los criterios de evaluacin, el alumno deber desarrollar la
implementacin de algunos proyectos, que permitirn demostrar que tiene la habilidad de
poderlos programar. Los mismos se desarrollarn por equipos para que los estudiantes
adquieran la habilidad de trabajar eficientemente en equipo, como ocurre en las empresas.
La indicacin FDC significa un Fin De Cadena y se incluye como si fuese entrada,
pero solamente en la Tabla de Transicin. Su funcin es indicarle al programa que la cadena
ha sido introducida en su totalidad y que deseamos conocer el diagnstico correspondiente.
La clave para implementar Autmatas Finitos consiste en aprender esta estructura bsica
del programa en seudocdigo:
Estado 0
HACER
LEER siguiente smbolo de entrada
OPCIN (smbolo)
A, ..., Z, a, ..., z, _ : Entrada letra
0, ... , 9
: Entrada dgito
+, - : Entrada signo

. : Entrada punto
...
// y as con todas las entradas, si es necesario .
FDC
: Entrada FDC
Otro :
Error_rutina
FINOPCIN
Estado Tabla ( Estado, Entrada )
SI (Estado = error) ENTONCES (Error_rutina)
HASTA (Estado = ACEPTAR)
...

APLICACIN DE AUTMATAS Y MQUINAS DE ESTADO FINITO


MQUINA PARA VENTA DE REFRESCOS
Disear una mquina que reciba monedas de 5, 10 y 25 centavos y que cuando complete
30 entregue al usuario, una lata con refresco.

Primera versin (Autmata):


I = { 5, 10, 25 }
S = { 0, 5, 10, 15, 20, 25, 30+ }
o = { 0 }
A = { 30+ }
// significa 30 centavos o ms (no da cambio).
En vez de incluir los valores de las funciones f y g, incluiremos el diagrama de
transicin. Corregir un error contenido en una de las transiciones.

Limitaciones del modelo propuesto anteriormente:

No regresa el cambio, pues la salida es exclusivamente, entrega o no entrega una


lata de refresco, dependiendo si se llega al estado de aceptacin. Recordar que los
Autmatas no muestran salidas.

La salida consiste en un solo tipo de refresco por esa misma razn.

Para regresar al estado inicial se debe agregar una entrada que reinicialice el
sistema.
Se podra considerar que el estado de aceptacin es el que activa un mecanismo
electromecnico que permite seleccionar la marca de refresco y que ya no forma parte del
modelo. Los diferentes estados de aceptacin son matemticamente equivalentes.
Segunda versin (Mquina):
I = { 5, 10, 25, Bn, Bd }
O = { n, 5, 10, 15, 20, 25, Normal, Dieta }
S = { 0, 5, 10, 15, 20, 25, 30 }
o = { 0 }
Bn es botn normal, Bd es botn dieta, n es nada; Normal y Dieta son los refrescos.

Se propone el siguiente diagrama de transicin, el cual contiene el mismo error que el


diseo anterior, en la transicin que sale del estado inicial, con entrada 25 centavos.

Ntese que en este caso, el modelo de la Mquina es ms recomendable, debido a


que se deben considerar salidas variadas y no solamente aceptacin o rechazo de ciertas
condiciones. Las limitaciones del modelo de Autmata se ven eliminadas en su totalidad.
Obsrvese que la Mquina no tiene estados de aceptacin o de no aceptacin ; es
comn que el alumno se confunda y haga en ocasiones una extraa mezcla de los dos
modelos.

CIRCUITOS DIGITALES SECUENCIALES


RECONOCEDOR DE IMPARIDAD DE PULSOS.
Encontrar un Autmata Finito cuyo comportamiento corresponda al del circuito anexo,
en que los estados finales correspondan a una salida 1. Supngase que existe el tiempo
suficiente entre cada cambio de los valores de la entrada para que las seales se
propaguen y para que la red alcance una configuracin estable.

En este caso se tiene un circuito digital secuencial en virtud de que para saber cul
sera la salida obtenida, se debe conocer adems de la entrada, lo que sucede en los puntos
marcados como y1 y y2. Los valores de voltajes presentes en esos puntos, en combinacin,
determinaran el estado del sistema.

I
S

1
I

y1 y2

0
0
1
1

0
1
0
1

y1 y2
0
1
0
1

y1 y2
0
1
0
1

0
0
1
1

1
1
0
0

q0 q0
q1 q3
q2 q0
q3

1
q1
q1
q2

q3

q2

Se muestra el circuito original, las tablas de transicin obtenidas (considerando la


operacin de las compuertas lgicas) y el diagrama de transicin obtenido. Aqu q 3 es el
estado de aceptacin porque en ese caso las dos entradas a la AND (F) son 1.
Qu ventajas tiene el modelo representado en este Autmata y que no tiene el
diagrama del circuito electrnico? Ser ms fcil el anlisis del funcionamiento del circuito
en el Autmata que en el diagrama electrnico original?
Los circuitos electrnicos secuenciales, son muy propicios para ser representados por
Mquinas y Autmatas, ya que en ellos la entrada por s sola no determina la salida, sino
que sta se define tambin por los estados internos presentes en el circuito. Consultar textos
sobre la materia y ver cmo se emplean esos modelos, no slo para la representacin de
estos circuitos, sino tambin para su diseo.
Una ventaja de modelar matemticamente los circuitos digitales secuenciales es
que el anlisis es ms sencillo en el diagrama de transicin que en el diagrama
electrnico. Adems, sto ha permitido la creacin de aplicaciones como StateCAD,
Workbench o Spice, donde se trabaja con un modelo matemtico del circuito real.

APLICACIONES EN INTELIGENCIA ARTIFICIAL


ESPACIOS DE ESTADOS

En la orilla norte de un ro se encuentra un hombre junto con un lobo, una gallina y


una cubeta con maz. Hay un bote con capacidad suficiente para transportar al hombre y
otra cosa. Todos los elementos deben cruzar al ro sin que queden solos lobo-gallina o
gallina-maz o lobo-gallina-maz. Cmo se resuelve el problema?
Representamos los protagonistas: Hombre (H), Lobo (L), Gallina (G), Maz (M).
I = { H, HL, HG, HM }
// Indica quin est cruzando el ro.

En cada estado se muestra al separarlos en dos renglones, qu personajes estn en


cada una de las orillas, tal que en el estado inicial todos se encuentran del mismo lado, y en
el de aceptacin se encuentran en el otro. La entrada seala en forma abreviada, quin o
quines atraviesan el arroyo, debiendo en todos los casos viajar el hombre, solo o
acompaado. A esta representacin, que sirve para representar la bsqueda de las
soluciones, se le llama en Inteligencia Artificial un Espacio de Estados.

REDES NEURONALES

Histricamente, los Autmatas Finitos se utilizaron por primera vez para modelar Redes de
Neuronas. Disear un Autmata Finito Determinstico cuyo comportamiento sea equivalente
a la Red Neuronal de la figura. Los estados finales del Autmata corresponden a una salida
1 de la red. Cada neurona tienen sinapsis excitantes ( O ) e inhibitorias ( ). Una neurona
produce una salida 1 si el nmero de sinapsis excitantes con entrada 1 excede al de las
inhibitorias con entrada 1, por al menos el umbral de la neurona (el nmero que se
encuentra dentro del tringulo). Supngase que existe tiempo suficiente entre cada cambio
de valor de entrada para que las seales se propaguen y para que la Red alcance una
configuracin estable.

En realidad, una Red Neuronal no es tan sencilla como aparece en este ejemplo, pero
de aqu se pueden obtener conceptos muy importantes para entender como opera una Red
ms compleja. Obsrvese la gran similitud que existe en su funcionamiento con los circuitos
digitales secuenciales.
El factor ms importante, que determina en gran medida el hecho de poder emplear
un Autmata Finito para este caso, es el de presentarse una retroalimentacin, lo cual
implica que los valores actuales de los puntos marcados como y 1, y2 y y3 determinan un
estado actual de la red de neuronas.

I
S
y1 y2 y3
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

I
y1 y2 y3
0
0
0
0
0
0
1
1

0
1
1
1
0
1
1
1

0
1
0
1
0
0
0
0

0
y1 y2 y3
0
0
1
1
1
1
1
1

0
0
0
1
0
0
0
1

1
1
1
1
0
1
0
1

1
q0
q1
q2
q3
q4
q5
q6
q7

q0 q1
q3 q1
q2 q5
q3 q7
q0 q4
q2 q5
q6 q4
q6 q7

Cuando y2 y y3 estn en 1, sin importar el valor presente en y 1, se activa la neurona D,


porque slo aquellas estn conectadas a la entrada de la neurona. Esta situacin se
presenta cuando se est en el estado q 3 o en el q7 exclusivamente, por lo que tales son los
estados de aceptacin.
Disear el diagrama de transicin y analizar cmo se puede interpretar el hecho de
que dos estados queden inconexos ( q2 y q5 ). Eso significa que dichos estados,
considerados en un principio como posibles, en realidad son inalcanzables.

AUTMATA FINITO DETERMINISTA (AFD)


Es un dispositivo que puede estar en uno cualquiera de un nmero finito de estados,
uno de los cuales es el estado inicial y por lo menos uno es un estado de aceptacin. A este
dispositivo est asociado un flujo de entrada que consiste en una secuencia de smbolos de
un alfabeto determinado.
El modelo tiene la capacidad de detectar los smbolos conforme llegan y, basndose
en el estado actual y el smbolo recibido, ejecutar una transicin, que puede consistir en un
cambio a otro estado o la permanencia en el actual.
La representacin de un AFD no debe contener ambigedades, de lo cual le viene el
nombre de determinista; el nombre de finito es debido a que aunque analice una cantidad
infinita de posibles cadenas de entrada, la cantidad de estados es limitada. Los Autmatas
estudiados hasta este momento, en el curso, son de este tipo. Por cada smbolo de
entrada hay un arco que sale de cada estado posible.
Consultar con el profesor o en otra fuente de consulta, a qu se refiere el trmino
Determinstico, o inclusive el de No Determinstico. Originalmente implican connotaciones
filosficas muy importantes, referentes al destino de los seres vivos.

AUTMATA FINITO NO DETERMINISTA (AFND)

Se llama as cuando en el Autmata se presenta en por lo menos una ocasin el


siguiente caso: de algn estado parten arcos mltiples con el mismo smbolo x, si x es un
dato de entrada; la situacin es no determinista, ya que no es seguro el siguiente estado. Un
ejemplo de un AFND, con su tabla de transicin correspondiente, sera:

I
S

q0

b
a

q0
q1
q2

{q1 }
{q0, q2}

{q0}

{q0, q2}

b
a

q1

q2
a

El no determinismo ocurre en virtud de que estando en q 1 y llegando una a, o bien,


estando en q2 y llegando una b, no sabemos con certeza cul ser el siguiente estado.
Dada una cadena de entrada S in, se considera que tal arreglo es aceptado si existe
por lo menos un recorrido en el Autmata que nos lleve a un estado de aceptacin, sin
importar que existan otros para la misma cadena que terminen en uno de no aceptacin.
Por ejemplo, sea la cadena de entrada Sin = aab. En este caso hay tres formas de
recorrer el Autmata, y como en un caso se finaliza en un estado de aceptacin, entonces se
dice que es una cadena aceptada. Sin embargo, si S in = abbaab, obsrvese que cuando
llega el segundo smbolo de entrada (b) es en una situacin en la que se est en un estado
(q1) en el cual no est definido lo que sucede para esa b; en ese caso la cadena de entrada
se rechaza.
Este tipo de Autmatas, no puede implementarse con el algoritmo que se estudi
anteriormente, en este documento. Sin embargo, es imprescindible estudiar este modelo, ya
que se presenta en muchos casos prcticos y no se lo puede evitar; afortunadamente,
existen procedimientos para transformarles en Autmatas Determinsticos, como se
estudiar ms adelante.

RELACIN ENTRE AUTMATAS Y GRAMTICAS


Una Gramtica Regular y un Autmata de Estado Finito son, en esencia, lo mismo ya
que cualquiera de ellos es una especificacin de un Lenguaje Regular. Hay una estrecha
relacin entre una Gramtica Regular que produce un determinado Lenguaje Regular, y el
Autmata Finito que acepta exactamente las cadenas de ese mismo Lenguaje.
Dado el Autmata que reconoce nmeros reales y exponenciales sin signo, analizado
previamente, se puede construir una Gramtica Regular que produce tal lenguaje.
Obsrvese el siguiente fragmento del Autmata y las producciones asociadas e intentar
deducir el mtodo que se podra emplear para obtener las reglas.

dgito

dgito

Reglas de produccin:

...
.

dgito

...

(fragmento)

dgito

<A> :: = dgito <B>


<B> :: = dgito <B>
<B> :: = . <C>
<C> :: = dgito <D>
<D> ::= dgito <D> ...

Para definir la Gramtica del Lenguaje Regular aceptada por un Autmata, se sigue el
siguiente procedimiento:
a) Los smbolos de entrada de A son los terminales de G.
b) Los estados se convierten en los smbolos no terminales.
c) El estado inicial se transforma en el smbolo inicial.
d) Las composiciones corresponden a los arcos dirigidos. Si existe un arco con la
marca x de A a B se escribe la regla de produccin A --> xB. Adems, si hay un lado con la
marca x de A a un estado de aceptacin, se incluye la composicin A --> x.
Por ejemplo: La Gramtica de la derecha, produce el Lenguaje aceptado por el
Autmata de la izquierda.

aN = { A, B, C, D }

T = { a, b }
0 = { A }

D
b

P = { A aB bC bD, B aB,
C aC bD,
D aB bB bD,
A a, A b, B a,
C a, D a, D b }

Si solamente existieran los Autmatas Finitos Determinsticos, Cmo se podra


disear el Autmata asociado con esa Gramtica en particular, por ejemplo? Es muy
recomendable en los casos en que una Gramtica sea difcil de disear, mejor crear el
Autmata Finito que acepta las cadenas, y obtener del diagrama de transicin las
reglas gramaticales.
PROBLEMA INVERSO: Partiendo de una Gramtica Regular, determinar el Autmata
Finito que acepta las cadenas de L(G).

EJEMPLO:
Sea G = (N, T, P, 0) .
N = { S, A, B }
T = { a, b }
0 = { S }.
P = { S aS | bS | aB , A bB , B aB | aA | b }
Disear el AFND que acepta los arreglos de L (G), aplicando el procedimiento
anterior, en sentido inverso y obtener conclusiones.
En este caso se observa que es imposible disear un Autmata Finito siguiendo el
procedimiento al pie de la letra en sentido inverso. Se resuelve el problema agregando un
estado adicional, que llamaremos F y que ser el nico estado de aceptacin. Si es
agregado este estado nuevo, no podr resolverse el problema.

Fue necesario agregar el estado que en este caso es llamado F, y que es una especie
de "estado vaco". No obstante, no existe incongruencia en el diseo, ya que si se hiciera el
diseo de la Gramtica Regular que produce el Lenguaje aceptado por el AFND anterior, la
regla B bF se deber eliminar del resultado, ya que F no producira nada.
El algoritmo general para hacer la conversin se determina de la siguiente forma:
Sea G = (N, T, P, 0) una Gramtica Regular. Sean
I =T
S = N { F } , donde F ( N T )
f ( A, x ) = { B | A xB P } { F | A x P }
A ={F}
0 = { 0 }
Entonces el AFND llamado A acepta precisamente los arreglos de L (G).
Con esto, queda completada la relacin que ya se haba mencionado anteriormente: dada
una Gramtica Regular, que produce un Lenguaje Regular, existe tambin un Autmata
de Estado Finito (Determinstico) que acepta las cadenas producidas por dicha Gramtica.
TEOREMA: Un Lenguaje L es regular s y slo s existe un AFD que acepta
nicamente las cadenas de ese L.

CONVERSIN DE UN AFND EN UN AFD

Los Autmatas Finitos No Determinsticos son imprescindibles en muchas


aplicaciones de la Teora de la Computacin y no solamente cuando se emplean para
disear Gramticas Regulares. Sin embargo, es evidente que no pueden traducirse en un
programa de computadora, ya que un algoritmo que se pretende programar no debe
presentar ambigedades. Sin embargo, esto no es problema, ya que todo AFND puede
convertirse en un AFD equivalente, que s puede implementarse.
TEOREMA: Dado un AFND cualquiera llamado A, puede construirse un AFD
denominado A' que sea equivalente a A.
PROCEDIMIENTO: Sea A = ( I, S, f, A, o) un AFND. Sean
I'=I
S'=P(S)
A ' = { X S' | X A }
o' = { o }
f ( X, x ) =

si
X =
f ( S, x ) S X
si
X
Entonces el AFD llamado A' = ( I', S' , f' , A' , o' ) es equivalente al Autmata A.
Nota: A' consiste en los subconjuntos de S' que contienen al menos un estado de
aceptacin del AFND original.
En este caso, debido a que la conversin es algo extensa, se ha determinado
que en estas notas no se mencione cmo se resuelven ejemplos especficos, pero el
profesor deber resolver algunos problemas en clase sobre este importante tema.
TEOREMA: Si L es un Lenguaje Regular, el Lenguaje L R = { xn ... x2 x1 | x1 x2 ... xn L }
tambin es Regular.
TEOREMA: Si un Lenguaje Regular contiene cadenas de la forma x nyn para enteros
n arbitrariamente grandes, entonces debe contener tambin cadenas de la forma x myn,
donde m n. Una consecuencia inmediata de lo anterior es que L = { xnyn | n } no es
Regular. Una consecuencia un poco ms sutil es que los AFD carecen del poder suficiente
para analizar expresiones aritmticas que contienen parntesis, supuestamente bien
anidados. Si un AFD aceptara tales expresiones, entonces tambin tendra que aceptar las
de la forma (n )n para enteros n arbitrariamente grandes. Sin embargo, el teorema anterior
implica que un Autmata de este tipo tambin debe aceptar expresiones en donde el nmero
de parntesis izquierdos no sea igual al de parntesis derechos. As, tal mquina aceptara
expresiones tanto incorrectas como correctas.
Para resolver el problema anterior, se requiere de un Autmata de Pila.

REPRESENTACIN DE UN AFD.
En forma grfica, se representa un Autmata como sigue:

...

Cabeza de lectura
qn
...

Cinta de entrada
La cabeza se
mueve en esta
direccin

q0

q1
q2

Indicador Estado
Mecanismo de Control
Los componentes de un Autmata Finito son:
Unidad de entrada: cinta de entrada con palabra de entrada, cabeza de lectura.
Unidad de memoria (opcional): cintas de memoria para resultados auxiliares,
cabezas de lectura y escritura.
Unidad de control: Controla el Autmata segn un programa.
Unidad de salida (opcional): cinta de salida para la palabra de salida, cabeza de
escritura.

AUTMATAS DE EXPRESIONES REGULARES


1. Unin de Lenguajes: L1 L2. La unin de dos Lenguajes Regulares es otro
Lenguaje Regular.
Ejemplo: Sean L1 = { xmy | m o } y L2 = { ynx | n o }. Evaluar L1 L2, y
disear el Autmata Finito que acepta esas cadenas.
L1 L2 = { xmy ynx | m, n o }.

Observemos las dos opciones que se pueden presentar como respuesta:

Entrando a la parte correspondiente del diagrama original, ya no se puede pasar a la


otra. El nuevo estado inicial sera de aceptacin slo si uno de los iniciales originales lo
fuera.
El procedimiento indica que se debe dibujar un arco con la misma etiqueta que tienen
los que salen de los anteriores estados iniciales, ahora partiendo del nuevo estado inicial
(sto por si m, n fueran 0).
2. Concatenacin de Lenguajes: L1 L2. La concatenacin de dos Lenguajes
Regulares es otro Lenguaje Regular.
Ejemplo: Sean L1 = { xmyxn | m, n o} y L2 = { yxyo | , o o} . Evaluar L1L2,
y disear el Autmata Finito que acepta estas cadenas.
L1 L2 = { xmyxnyxyo | m, n, , o o }.
El siguiente diagrama muestra cmo se hara la integracin de los diagramas.

El procedimiento indica que a partir de cada estado de aceptacin del primer


diagrama, debemos dibujar un arco hacia cada estado del segundo que sea el destino de un
arco del estado inicial de ste ltimo. Rotular cada uno de estos arcos con la etiqueta del
arco correspondiente en el segundo esquema. Dejar que los estados de aceptacin del
primero sigan sindolo slo si el estado inicial del segundo es tambin un estado de
aceptacin.

3. Estrella de Kleene o Cerradura de un Lenguaje: ( L1 )*. La cerradura de


cualquier Lenguaje Regular es tambin un Lenguaje Regular.
Ejemplo: Sea L = { xmy | m o } . Evaluar L* y disear el Autmata Finito que acepta
esas cadenas.
L* = { (xmy) * | m o }.
El Autmata resultado sera el siguiente:

El procedimiento indica que el nuevo diagrama de transicin implica la concatenacin


del esquema original hacia atrs consigo mismo, adems de que debe aceptar .
Dibujar un nuevo estado inicial y conectarlo al diagrama original, de forma similar a
cuando se hace con la unin de conjuntos: por cada estado se dibuja un arco con la misma
etiqueta del nuevo estado inicial hacia el destino de un arco del estado inicial del diagrama
original y luego se designa a ste como estado de aceptacin.
Para que puedan aceptarse las repeticiones de las subcadenas se aade un arco de
cada estado de aceptacin a cada estado que es el destino de un arco del estado inicial.
Cada uno de estos nuevos arcos se rotula con la etiqueta que corresponda al arco del
estado inicial.
Dado un alfabeto particular y usando las tres operaciones anteriores, se pueden
construir varios lenguajes a partir de bloques de construccin.
DEFINICIN: Una expresin regular ( para un alfabeto ) se define como sigue:
a) es una expresin regular.
b) Cada elemento de es una expresin regular.
c) Si p, q son expresiones regulares, entonces p q tambin lo es.
d) Si p, q son expresiones regulares, entonces p q tambin lo es.
e) Si p es expresin regular, entonces p* tambin lo es.
TEOREMA: Dado un alfabeto , los Lenguajes Regulares de son exactamente los
Lenguajes representados por las expresiones regulares de .

Si p, q, r son expresiones regulares, entonces: ( p q )*, ( q p ) r , q* ( r q ),


etc. tambin son expresiones regulares.
EJEMPLO:
Representar grficamente el Autmata de Estado Finito que acepta las cadenas de la
unin de a ( b a ) * con x ( y x ) *.

EJEMPLO:
Dibujar un diagrama de transiciones que acepte la concatenacin del lenguaje
aceptado por A1 con el aceptado por A2.

Los arcos que salen del estado inicial de A2 se reproducen en todos los estados de
aceptacin. Se eliminan los de A1 excepto cuando se acepta en A2.

Potrebbero piacerti anche