You are on page 1of 101

GRAMATICA

ALFABETO
Conjunto no vaco y finito de elementos, distintos entre s e identificados, por ejemplo: nmeros,
letras, combinaciones entre ellos.
Simbologa:
Ejemplo: sea

2 es un smbolo del alfabeto se denota: 2


Otros ejemplos:

=
=

, el alfabeto de letras maysculas.

, el alfabeto binario

Operaciones con Alfabetos


Los Alfabetos, en su condicin de conjuntos, pueden ser sometidos a las operaciones
clsicas de la Teora de Conjuntos, es decir Unin, Interseccin, Diferencia y
Complementacin de Conjuntos.
Las propiedades ms importantes de dichas operaciones son:
Si

Si

) =

) =

) =

) =

Potencia de un alfabeto
Si
es un alfabeto, es posible expresar el conjunto de todas las cadenas de cierta longitud de
dicho alfabeto utilizando una notacin exponencial. Definimos como
.
Como el conjunto de cadenas de longitud k, tales que todos los smbolos que las forman
pertenecen a
Ejemplo:

.
Si

, entonces

=
Ntese adems que independiente, de cual sea el alfabeto siempre
nica cadena cuya longitud es 0.

Otra cuestin que se presta a confusin es la diferencia que existe entre

, siendo

,y

la

, donde la primera es un alfabeto con smbolos cero y uno y el segundo es un conjunto


de cadenas de longitud unitaria.
PALABRA
Se llama Palabra, Cadena o Tira a la concatenacin o secuencia finita de elementos de
un alfabeto.
Simbologa: Las palabras se denotan con las ltimas letras del alfabeto en minscula (x
= 001 , y = ai)
Ejemplo:

Longitud de una palabra.


Cada palabra tiene su longitud, es decir, el nmero o la cantidad de elementos que la
componen.
Simbologa:
Ejemplo:

(se utilizan dos barras a los costados de la palabra)


sean las palabras: x = 001, y = ai, z = ZXABK
=3

=2

=5

La longitud de una palabra o cadena puede asumir distintos valores, si la longitud es


igual a 1, la palabra es igual al elemento o smbolo del alfabeto, es decir, que cada elemento o
smbolo de un alfabeto puede ser una tira o cadena del mismo.
Ejemplo:

0
A

Palabra Vaca.
Si la longitud de una palabra es igual a 0, estamos frente a una palabra que existe pero
que no contiene elementos, llamada palabra vaca y es una cadena sobre cualquier alfabeto.
Simbologa:
Subpalabras: Prefijo y Sufijo.

=0

Se denota Sufijo a la subcadena de una palabra dada formada por los primeros
smbolos de la misma y Prefijo a la subcadena formada por los ltimos smbolos de dicha
palabra, es decir, sea v una cadena sobre una alfabeto, se llama Sufijo a la subcadena x y
Prefijo a la subcadena y de v, tal que v = xy
Ejemplo:

v = aeiou

=3

x = aei
=2

x = ou

Universo de discurso
Se llama Universo de Discurso o Lenguaje Universal al conjunto de todas las cadenas,
tiras o palabras que se pueden formar con los elementos o smbolos de un alfabeto, incluida la
palabra vaca.
Simbologa:
El
es una conjunto infinito ya que son infinitas las palabras o cadenas que
puedo formar con los smbolos de un alfabeto ya que stos no son vacos.
Ejemplo:

Operaciones palabras
Concatenacin
La Concatenacin de dos palabras (s, t) da origen a una nueva palabra (r) formada por los
elementos o smbolos de la primera palabra seguidos los smbolos de la segunda, es decir, r =
s t
Ejemplo: siendo las palabras: s = abc
r=s

t = defg

t = abcdefg

Simbologa: la concatenacin se indica con un punto entre las palabras a concatenar.


La concatenacin se puede realizar entre la palabra vaca y cualquier palabra, teniendo
como resultado la misma palabra sin ser modificada.
Ejemplo:

s=s

Propiedades de la operacin Concatenacin:


Propiedad Conmutativa: sta propiedad no se cumple para esta operacin: s

tt

Operacin Cerrada: la concatenacin de dos palabras que pertenecen a


tambin una palabra de

es

Propiedad Asociativa: (r

s)

t=r

(s

t)

Potenciacin
Se llama Potencia de una palabra v a la nueva palabra z que se obtiene de haber
concatenado v consigo misma tantas veces como indica el exponente:
= v. v. v. v. v. v. ... n

Ejemplo:

sea v = 011
Z=

= v = 011

Z=

=v

v = 011011

Z=

=v

v = 011011011

Toda potencia 0 de una palabra, por definicin, es la palabra vaca:


Reflexin
La Reflexin o refleja de una palabra o cadena x, se forma invirtiendo el orden de los
smbolos o elementos de la misma.
Ejemplo:

x = abc
= cba

EJERCICIOS RESUELTOS ALFABETO

Resolucin:

EJERCICOS RESUELTOS LENGUAJES


Ejercicio 1: Efecte la potencia correspondiente para los siguientes casos:

Resolucin:

Ejercicio 2:

1-

L1 es un lenguaje sobre el alfabeto A

2-

L1 es un lenguaje sobre el alfabeto B

3-

L2 es un lenguaje sobre el alfabeto A

4-

L2 es un lenguaje sobre el alfabeto A

5-

L3 es un lenguaje sobre el alfabeto A

6-

L3 es un lenguaje sobre el alfabeto A

7-

L1

L2 es un lenguaje sobre el alfabeto A

8-

L1

L2 es un lenguaje sobre el alfabeto A

9-

L1

L2 es un lenguaje sobre el alfabeto A

10- L1

L2 es un lenguaje sobre el alfabeto B

Resolucin:

EJERCICIOS RESUELTOS CADENAS

Ejercicio 1: Dadas las cadenas: x = abc,

y = aba; realizar las siguientes operaciones:

Resolucin:

Ejercicio 2: Dadas las cadenas: x1 = in, x2 = forma, x3 = cin; indicar si las siguientes
igualdades se cumplen:

Resolucin:

a)

no hay igualdad.

b)

no hay igualdad.

c)

hay igualdad.

EJERCICIOS RESUELTOS GRAMATICA

Ejercicio 1: Identificar en el Ejercicio 2 de Derivaciones (punto anterior) la clasificacin de


Chomsky
que le corresponde a cada uno de los conjuntos de producciones dadas.
Resolucin:
1-

TIPO 3

2-

TIPO 2

3-

TIPO 2

4-

TIPO 2

5-

TIPO 2

6-

TIPO 2

7-

TIPO 2

Ejercicio 2: Dada la siguiente Gramtica:

Indique si las siguientes cadenas pueden ser generadas o no por esta gramtica (demostrarlo
mediante la derivacin), en caso afirmativo, determine su rbol de derivacin. Para ello,
considere
las siguientes cadenas:
x = abbaaab, y = baabbaaaabb, z= baabab, p = abbaab
Resolucin:
-

x no puede ser generada por la gramtica.

y no puede ser generada por la gramtica.

z si puede ser generada por la gramtica.

p si puede ser generada por la gramtica.

1-

equivalentes

2-

ambiguas

3-

recursivas

indicando lo que sucede en cada una de las siguientes producciones (demostrarlo):

Resolucin:
a)

Recursiva directa por izquierda (S:= aSA)

b)

Recursiva directa (B:= aBb)

c)

Recursiva directa por derecha (A:= aA, B:= AB) y ambigua

d)

Recursiva directa (B:= bBa)

e)

Recursiva directa por derecha (A:= aA) y ambigua

NINGUNA ES EQUIVALENTE
Ejercicio 4: Determine la definicin algebraica y los rboles de derivacin correspondiente,
considerando las siguientes reglas gramaticales:

Resolucin:
P1: hay recursividad

P2: hay recursividad

P3: hay recursividad

Ejercicio 5: Considerando como


cuyo axioma es S = S,
establecer si las reglas de produccin dadas a continuacin, corresponden a gramticas
equivalentes. Justifique su respuesta, (demostrarlo):

Resolucin:
Caso 1: P1 y P2 no son equivalentes.
Caso 2: P1 y P2 no son equivalentes.

EJERCICIOS RESUELTOS GARMATICA BIEN FORMADA

Para cada una de las siguientes gramticas, generar la gramtica bien formada
correspondiente,
es decir, eliminando Reglas no Generativas y Reglas de Redenominacion.
Ejercicio 1:

Resolucin:
Primero debemos limpiar la gramtica

Reglas innecesarias:

(P:= P)

Smbolos inaccesibles: (P:= aM / zN)


Smbolos superfluos no terminales: no hay
Smbolos superfluos terminales: no hay

Eliminacin de Reglas no Generativas:

Ejercicio 2:

Resolucin:
Primero debemos limpiar la gramtica:
Reglas innecesarias:

(B:= B)

Smbolos inaccesibles: no hay


Smbolos superfluos no terminales: no hay
Smbolos superfluos terminales: (z)

Eliminacin de Reglas no Generativas:

Reglas de Redenominacin:

Ejercicio 3:

Resolucin:
Primero debemos limpiar la gramtica:
Reglas innecesarias:

(B:= B)

Smbolos inaccesibles: (D:= a) / (C:= aC)


Smbolos superfluos no terminales: no hay
Smbolos superfluos terminales: (c, d)

Reglas de Redenominacin: no hay

Recuerde que para que una gramtica se encuentre bien formada, primero debe estar limpia

EJERCICIOS RESUELTOS GRAMATICA LIMPIA

Limpiar las siguientes gramticas, determinando:


a)

reglas innecesarias

b)

smbolos inaccesibles

c)

smbolos superfluos terminales y no terminales

d)

definir la gramtica limpia

Ejercicio 1:

Resolucin:
a)

B:= B

b)

No hay

c)

No terminales: no hay, Terminales: 3

Ejercicio 2:

Resolucin:
a)

A:= A

b)

C:= 1C

c)

No hay (ni terminales, ni no terminales)

Ejercicio 3:

Resolucin:
a)

S:= S

b)

No hay

c)

No terminales: S:= 0C / B:= 1C / C:= 0C


Terminales: no hay

Ejercicio 4:

Resolucin:
a)

A:= A / B:= B

b)

No hay

c)

No terminales: A:= Cc / C:= Cc, terminales: no hay

Ejercicio 5:

Resolucin:
a)

B:= B / C:= C

b)

No hay

c)

No hay (ni no terminales, ni terminales)

EJERCICICOS RESUELTOS DERIVACIONES


Ejercicio 1: A partir de las producciones siguientes:

Se pide que realice, para cada uno de los conjuntos, lo siguiente:


1-

generar 4 cadenas, aplicando las producciones mediante el proceso de derivacin.

2-

establecer la forma algebraica del lenguaje que conforman las cadenas encontradas.

3-

determinar los componentes formales de la gramtica.

Resolucin:

Ejercicio 2: Por cada grupo de producciones, realizar todas las derivaciones posibles:
1) S:= aB / bA
A:= aB / a
B:=b
2) S:= aA
A:= bC
C:= ca /c
3) S:= caBA
A:= aC / b
B:= bA / a
C:= ab / c
4) S:= BAa
A:= Ca / a
B:= Ab / c
C:= ab
5) S:= bAB / c
A:= aC
C:= bD

B:= aD
D:= b
6) S:= aaA
A:= aa/ aaB /cB
B:= b / bC
C::= c
7) S:= abABC
A:= a / b
B:= b / a
C:= a / b
Resolucin:
P1 =

ab, ba, bab

P2 =

abca, abc

P3 = cabacb, cabaabb, cabbb, caab, cabaabac, cabacac, cabbac, caaac, caaaab, cabaaab,
cabacaab, cabaabaab
P4 =

ababa, abababa, ababaa, abaa, caa

P5 =

c, babbab

P6 =

aaaa, aaaab, aaaabc, aacb, aacbc

P7 =

ababa, abbba, abaaa, abbaa, abaab, bbaab, abbab, ababb, abbbb

EJERCICIOS RESULETOS FORMA NORMAL DE GREIBUCH

A las siguientes gramticas llevarlas a la Forma Normal de Greibach, de acuerdo a los


siguientes pasos:
a)

limpiar la gramtica

b)

eliminar recursividad por izquierda

c)

llevar a la F.N.G.

Ejercicio 1:

Resolucin:
a) gramtica limpia
b) Regla1:

C:= C1

X:= 1 / 1X
C:= 0 / 0X

c) grupo 3: B:= A1

B:= CB1 (grupo 2)


B:= 21

Grupo 2: B:= CB1

B:= 2Y para Y:= 1

B:= 0B1

B:= 0BY para Y:= 1

B:= 0XB1
A:= CB

B:= 0XBY para Y:= 1

A:= 0B
A:= 0XB

Ejercicio 2:

Resolucin:
a) gramtica limpia
b) Regla1:

B:= B0

X:= 0 / 0X
B:= 0 / 0X / 1 / 1X

c) grupo 3: no hay
Grupo 2: A:= B0

A:= 0X0
A:= 00

A:= 0XY para Y:= 0


A:= 0Y

A:= 10

A:= 1Y

A:= 1X0

A:= 1XY

S:= 0A1

S:= 0AZ para Z:= 1

A:= 0A1

A:= 0AZ

Ejercicio 3:

Resolucin:
a) gramtica limpia
b)

no hay

c) grupo 3:

B:= A0

grupo 2: S:= A0

B:= 0A0

B:= 0AY para Y:= 0

B:= 10

B:= 1Y para Y:= 0

S:= 0A0

S:= 0AY para Y:=0

S:= 10
B:= 1B0

S:= 1Y para Y:= 0


B:= 1BY para Y:= 0

Ejercicio 4:

Resolucin:
a) gramtica limpia
b)no hay
c) grupo 3: no hay

Grupo 2: S:= BC

S:= 0BC
S:= 0C
S:= 1C

S:= CB

S:= 0CB
S:= 0B

S:= 0C1

S:= 0CX para X:= 1

EJERCICOS RESUELTOS DE FORMA NORMAL DE CHOMSKY

A las cuatro gramticas obtenidas de los ejercicios de Gramtica


Limpia, llevarlas a la F.N.C. y derivar dos palabras con la gramtica
anterior y despus de haber aplicado la F.N.C.
Resolucin Ejercicio 1:
a) X:= 0
A:= 0B

A:= XB

B:= 0A

B:= XA

F.N.C.:

G1 = ({ 0, 1, 2 }, { A, B, X }, A, P1 )
P1 = { (A:= XB / 2), (B:= XA / 1), (X:= 0) }

b) Antes:

A
A

Despus:

0B

XB
2

Resolucin Ejercicio 2:
a) X:= 0
Z:= 1
Y:= A1

002

A
A

00A

Y:= AZ

0B

0XA

00A

002

a)

S:= 0A1

S:= XY

A:= 0A1

A:= XY

A:= 0B

A:= XB

B:= 0B

B:= XB

Antes:

Despus:

0A1

00B1

0A1

001

XY

XY

0Y
0Y

0001

0AZ

0XBZ

00BZ

0AZ

00Z

001

aBZ

abZ

abc

Resolucin Ejercicio 3:
a) X:= 0
Y:= 1
S:= 0A

S:= XA

S:= 1B

S:= YB

A:= 0A

A:= XA

A:= 1S

A:= YS

B:= 1BB

B:= ZB

Z:= 1B

Z:= YB

B:= 0S

B:= XS

b) Antes:

S:= aBc
S:= aAc

Despus:

S:= AY
S:= AW

abc
aac
aY
aAC

aaZ

aac

000Z

0001

Resolucin Ejercicio 5:
a) X:= 0
Z:= 1
S:= 0C1
Y:= C1
B:= OB1
W:= B1
C:= 0C1

S:= XY
Y:= CZ
B:= XW
W:= BZ
C:= XY

PRACTICAS
LENGUAJES

Ejercicio 6: Determine si las cadenas x, y , z, pertenecen a algunos de los lenguajes L1, L2,

L3.
Ejercicio 7: Determine la clausura o cierre, y la clausura positiva de los alfabetos y lenguajes
descriptos anteriormente.
Ejercicio 8: La Municipalidad de Crdoba desea construir un sistema que sea capaz de
determinar la secuencia de smbolos que forma la patente de un automvil. Se pide disear el
lenguaje que servir de base para dicho sistema.
Ejercicio 9: Continuando con el ejercicio anterior, tambin se desea obtener un sistema que
determine el n de documento del propietario de la patente, como as tambin, su nombre
completo, teniendo en cuenta dos nombres y dos apellidos.

CADENAS

DETERMINE:
Ejercicio1: Determine la longitud de las cadenas

Ejercicio 2: Determine todas las subcadenas prefijas de cada palabra dada y su longitud.
Ejercicio 3: Determine todas las subcadenas sufijas de cada palabra dada y su longitud.
Ejercicio 4: Realice las siguientes operaciones:

GRAMATICA BIEN FORMADA

Para cada una de las siguientes gramticas, generar la gramtica bien formada
correspondiente, es decir, eliminando Reglas no Generativas y Reglas de Redenominacin.

Recuerde que para que una gramtica se encuentre Bien Formada, primero debe estar
limpia

GRAMATICA LIMPIA

Limpiar las siguientes gramticas, determinando:


a)

reglas innecesarias

b)

smbolos inaccesibles

c)

smbolos superfluos terminales y no terminales

d)

definir la gramtica limpia

DERIVACIONES

Ejercicio 1: Obtener todas las derivaciones posibles de las siguientes producciones y


determine el Lenguaje que genera cada uno:

Ejercicio 2: Elabore todas las frases que pueden ser generadas por la siguiente Gramtica,
mediante rboles sintcticos:

Ejercicio 3: Muestre la derivacin de las cadenas: - 010, +111, -10101, + 0001

(Para resolver este ejercicio debe aplicar RECURSIVIDAD las veces que sea necesario para
llegar al resultado.)
Ejercicio 4: Considerando las siguientes reglas de produccin, determine las derivaciones por
izquierda y por derecha de la misma. Defina algebraicamente el lenguaje que genera:

FORMA NORMAL DE CHOMSKY

A las cuatro gramticas obtenidas de los ejercicios de Gramtica Limpia, llevarlas a la F.N.C. y
derivar dos palabras con la gramtica anterior y despus de haber aplicado la F.N.C.

AUTOMATAS Y MAQUINAS
INTRODUCCION
Las Mquinas de estados o Autmatas, son tambin denominadas mquinas tericas o
mquinas abstractas, stas son dispositivos tericos capaces de recibir y transmitir
informacin. Para poder realizar esta tarea, manipulan cadenas de smbolos que se le
presentan como entrada, produciendo como salida otra tira o cadena de smbolos.
Para poder realizar esta tarea y determinar cuando corresponde producir un determinado
smbolo de salida, lo realiza a travs de un conjunto de estados finitos, en los cuales se puede
encontrar la mquina en un determinado intervalo de tiempo discreto, y este estado contendr
la informacin de la salida a producir dependiendo del smbolo de entrada
Como se mencion en el prrafo anterior, la conducta de la mquina est gobernada por el
estado en que se encuentre, y que ante una determinada entrada producida desde el exterior,
la mquina podr cambiar de estado y eventualmente producir una salida determinada.

Los orgenes de estos autmatas y el desarrollo posterior de las variantes tienen motivaciones
diferentes, ya que se puede concluir que la Teora de Autmatas proviene del campo de la
Ingeniera Elctrica, en donde principalmente los trabajos desarrollados por Shannon,
demostraban la aplicacin de la lgica matemtica a los circuitos combinatorios y secuenciales.
A posteriori, estos trabajos ms los esfuerzos realizados por Church, Minsky, y otros , mas el
postulado presentado por Alan Turing que dio origen a la mquina que lleva su nombre,
culminaron con la formulacin terica de la Teora de Autmatas. Se debe a Moore la
presentacin del primer tratado riguroso sobre autmatas, y recin en la dcada del 50 se
comenz a ver la utilidad de los autmatas con los lenguajes y las gramticas
CLASIFICACION DE LAS MAQUINAS ABSTRACTAS
Es posible encontrar una gran variedad de clasificaciones de mquinas de estados, en nuestro
caso y desde la perspectiva de la teora de la computacin, presentaremos un esquema
evolutivo, en donde cada nueva mquina presentada de acuerdo a las limitaciones impuestas
genera una familia o conjunto en donde cada nueva definicin ampliar las potencialidad de las
anteriores.
Cada nueva mquina puede ser definida a partir de la definicin de la anterior en donde se le
levantar alguna restriccin o se le proveer de alguna capacidad adicional.

.
Esta primer divisin entre Mquinas Secuenciales y Mquinas de Estados, se debe a que las
primeras no poseen estado inicial ni estados de finalizacin previstos, mientras que las
Mquinas de Estados, a diferencia de las anteriores tienen un estado inicial que es por donde
comenzar a aplicarse la secuencia de transiciones en su ejecucin y un conjunto de estados
de finalizacin.

OTRAS CLASIFICACIONES

Es posible encontrar otros tipos de clasificaciones para el conjunto de mquinas abstractas,


una de ellas pueden clasificarse en mquinas traductoras y mquinas reconocedores. Entre las
mquinas traductoras encontramos a las mquinas secuenciales ya que stas producirn una
salida, que se corresponder con la entrada desde el exterior. Con respecto a las mquinas
reconocedoras, estas son las que a diferencia de las anteriores, solo de dedican a aceptar o no
aceptar cadenas recibidas desde el exterior.
Otra clasificacin posible, estar en funcin a como sern las transiciones entre estados, las
cuales pueden plantearse de dos maneras posibles: Deterministas y no Deterministas. Las
transiciones deterministas son aquellas que al encontrarse la mquina en un determinado
estado y ante una entrada tendr la posibilidad de transitar a uno y solo uno de los estados
posibles. Por otro lado las no deterministas, sern aquellas que a diferencia de las anteriores
tendrn la posibilidad de transitar a mas de un estado, o ms an tambin se podr presentar
cuando estando la mquina en un determinado estado tenga la posibilidad de transitar a un
nuevo estado sin haber recibido una entrada (este tipo de transicin de la denominar
Transiciones

CARACTERSTICAS COMUNES A TODAS LAS MQUINAS ABSTRACTAS

A continuacin se presentarn un conjunto de definiciones, y partes componentes que se


utilizarn para definir al conjunto de mquinas.
Definiciones de propiedades comunes
En este apartado, se intenta realizar una aproximacin al comportamiento general comn a
todas las mquinas, el cul lo reflejan las definiciones siguientes:

Tiempo discreto: en esencia significa que el tiempo avanza en unidades de tiempo


considerados como intervalos de tiempo discretos, y que en cada uno de estos
intervalos las mquinas se encontrarn en una configuracin determinada, y realizan
una accin determinada.

Conjunto finito de estados: En un determinado intervalo de tiempo la mquina slo


se puede encontrar en uno y solo uno de los posibles estados.

Cinta de entrada: La informacin que se recibe desde el exterior ser por medio de
una cinta de entrada, los smbolos que pueden estar contenidos en esta cinta,
pertenecen al Alfabeto de Entrada.

Alfabeto de Entrada: Los estmulos que la mquina recibe desde el exterior,


pertenecen a un determinado conjunto denominado Alfabeto de Entrada.

Intencionalidad de la mquina: La funcionalidad para el cul tiene propsito la


mquina esta dada por su funcin de transicin, que tiene como misin fundamental,
dependiendo de la mquina, cual es el prximo estado al que debe pasar la mquina,
dependiendo de estado actual y el estmulo (entrada) que recibe.

Informacin hacia el exterior: En el caso que se tratase de una mquina traductora,


devuelve informacin hacia el exterior, dependiendo de la mquina que se trate,
tendr una cinta especial en donde grabar la informacin de salida o tendr la

capacidad de regrabar la cinta nica.


Elementos constitutivos de las mquinas abstractas
A continuacin se provee de la simbologa y el significado que tendr cada uno de los
componentes que sern utilizados en la descripcin de las mquinas.

Smbolo Significado

Alfabeto de Entrada: Est presente en todas las mquinas

Conjunto finito de Estados: Presente en todas las mquinas

Funcin de transicin: Est presente en todas las mquinas, pero


dependiendo de la mquina en cuestin variar su definicin

Alfabeto de Salida: Solo estar presente en las mquinas traductoras:

Alfabeto de Cinta: Solo para el caso que la mquina sea traductora y tenga
una sola cinta para entrada y salida. En este caso
estar incluido en

Alfabeto de Pila: En el caso de que la mquina necesite una estructura de


datos adicional, esta se comportar como estructura de pila y A representa
el alfabeto de smbolos que se podr grabar en ella.

q0

Estado Inicial: Para el caso de las mquinas de estados, este ser un


estado particular en que se encontrar la mquina en el comienzo de su
ejecucin. Con q0 Perteneciente al conjunto Q.

Conjunto de estados finales de aceptacin: Este ser un subconjunto del


conjunto de estados Q por los cuales puede transitar la mquina. Al
detenerse la mquina.

a0

Smbolo inicial de Pila: En el caso de utilizacin de memoria de pila, este


ser un smbolo perteneciente al alfabeto de pila con el que se marcara el
tope o cima de la pila.

Funcin de Salida: En el caso de tratarse de una mquina secuencial, esta


necesita por ser traductora un funcin especial que indique cul es la salida
que debe producir en un intervalo de tiempo determinado.

Definicin y Representacin
Cada una de las mquinas en lo que se refiere a su descripcin, necesitar una enunciacin
formal de todos sus componentes, y adems deber describir la funcin de transicin en
todas las mquinas y adicionalmente la funcin de salida en el caso que se tratase de una
mquina traductora secuencial.
Representaciones de la funcin de Transicin
Bsicamente existen tres formas de describir el funcionamiento de una mquina abstracta, y
esta se puede realizar por medio de la declaracin explcita de la funcin de transicin, por
medio de una tabla de doble entrada en donde bsicamente se representar el estado actual
en que se encuentra la mquina, las entradas a producirse y el estado al cul transitar, y por
medio de un Grafo dirigido. Cada una de las representaciones respectivas sern equivalentes
en cuanto a su definicin, pero tendrn distinto grado de aceptacin en cuanto su utilizacin.
Tabla de doble entrada
Bsicamente esta forma de describir la funcin de transicin permite una
representacin que facilita hacer el seguimiento de la mquina a travs de los
sucesivos intervalos de tiempo por los cuales la mquina transitar e ira cambiando de
estados en funcin a las sucesivas entradas que se produzcan.
La tabla, tendr como mnimo la estructura que presentamos a continuacin para todas
las mquinas, pero diferir de acuerdo a la mquina que se refiera, en la informacin
que contendr en la interseccin de las filas y columnas. En las columnas se
representarn las posibles entradas de acuerdo al alfabeto de entrada, mientras que el
las filas se describirn los posibles estados de acuerdo al alfabeto de estados.

Detalle explcito funcin de transicin


Esta forma de representar a la funcin de transicin, si bien es efectiva es la que
menos inters despierta ya que no facilita el seguimiento de mquina abstracta en su
ejecucin.
Como ejemplo de define:

En donde cada uno de los smbolos significa:


pi

f
Funcin de Transicin
Estado en el que se encuentra la mquina en un determinado tiempo i
ei
Entrada a producirse en el tiempo i
qi+1 Estado que se encontrar en tiempo i+1
Grafo Dirijido

Este es la forma de representacin mas expresiva, ya que al tratarse de una


representacin grfica, facilita no solo evidenciar sus partes componentes y su funcin
de transicin, si no que permite hacer un seguimiento de la mquina abstracta en
ejecucin.
Las partes constitutivas del grafo sern las siguientes:

Estados: Se representarn por medios de Nodos, los cuales


se rotularn con el nombre del estado que represente

Transiciones: Se representarn mediante arcos dirigidos, en


donde el nodo donde arranca el arco representa el estado
actual, el nodo a donde apunta el arco es el estado al cul
transitar y el rtulo del arco nos indica la entrada que
producir tal transicin o cambio de estado.

Estado Inicial: Se representar mediante un nodo apuntado


por una flecha

Estado Final: Es el estado que pertenece al subconjunto F, de


estados finales de aceptacin y se representar mediante un
nodo con doble circulo.

MQUINAS SECUENCIALES

Estas mquinas, son en esencia mquinas traductoras, ya que dada una palabra en la
entrada generan otra palabra en la salida.
Por lo expuesto en el prrafo anterior, para poder producir la correspondiente
transformacin estas mquinas debern estar compuestas por:
Dos cintas asociadas, una que permita alojar una cadena de smbolos a la entrada, que
sern ledos uno por vez, y otra cinta que permita registrar las salidas que se irn
produciendo en la ejecucin de la mquina.
Debern contener un conjunto finito de estados, los que son capaces de memorizar, en
cada momento la parte de la palabra de entrada leda en ese instante de tiempo, cambiar de
estado y producir una salida.
Es importante resaltar que en un determinado intervalo de tiempo, las mquinas
secuenciales realizarn tres acciones que sern indivisibles (consideradas como una
unidad), las cuales son:

1.

Realizan una lectura sobre la cinta de entrada.

2.
3.

Cambiar de estado.

Grabar un smbolo en la cinta de salida

Otro caracterstica importante a destacar sobre este tipo de mquinas, es que no


disponen de un estado inicial previsto, por lo tanto en el momento de comenzar su
funcionamiento podrn hacerlo desde cualquiera de sus estados, produciendo
eventualmente salidas diferentes.
2.5.1. Mquina de Mealy (ME)
Esta mquina la simbolizaremos con ME, y quedar formalmente definida mediante una
quntupla como sigue:
ME = {

, Q, f, g}

Conjunto de smbolos de entrada


Conjunto de smbolos de salida
Q

Conjunto finito de estados

Funcin de transicin de estados definida como

Funcin de salida definida como

Interpretacin
La mquina de Mealy permanece en un cierto estado mientras no recibe ningn estmulo del
exterior. Cuando recibe un smbolo del exterior (Perteneciente al conjunto de smbolos de

entrada) realiza otras dos acciones en forma simultnea:


12-

Transita a otro estado (que puede ser el mismo en el que est pero igual se produce el
transito) . De acuerdo con la funcin de transicin f
Emite un smbolo a la salida (smbolo que pertenece al conjunto de smbolos de salida).
de acuerdo con la funcin de salida

Estas tres acciones: lectura de un smbolo desde exterior (cinta de Entrada), Transicin de
estado, y Grabado (Cinta de Salida), sern indivisibles dentro de un intervalo de tiempo.
De esta manera al transitar desde un intervalo de tiempo discreto i hasta i+1 la mquina
realizar:
Accin

Significado

Estando en el intervalo de tiempo i en el estado q i y recibiendo desde la cinta


q i+1 =
de
entrada
e i,
la
mquina
transita
al
estado
q i+1
f( qi, ei)

Que la salida producida en el intervalo de tiempo i estar solo en funcin del


Si
=
estado en que se encuentra en ese tiempo i, y la salida que producir ser la
f( qi, ei)
correspondiente al smbolo del estado que este despus de realizar la transicin.

Si analizamos esta mquina en relacin a la mquina de Mealy, notamos que la diferencia


que existe entre ambas radica solo en como se comporta la funcin de salida q
Ejemplo:
Describiremos una mquina de Moore, que resuelve el mismo ejercicio resuelto por la
Mquina de Mealy anterior.
La mquina nos queda:
MO = ({0,1}, {p,i}, {q0,q1}, f, g)
Descripcin explcita de la funciones f y g

Tablas de doble entrada:

Funcin Transicin f

Grafo:

Resultado de ejecucin
De igual manera que en el ejemplo de Mealy probaremos el funcionamiento de la mquina
de Moore sobre las mismas cadenas:
a)

Que salida le corresponder a una entrada 1 = 0100 , comenzando la ejecucin de la


mquina por el estado q0.
La salida producida para la entrada 1, ser : piii
b) Que salida le corresponder a una entrada 2 = 1011100 , comenzando la ejecucin
de la mquina por el estado q0.
La salida producida para la entrada 2, ser : iipippp
2.5.3. Comparacin de representacin entre Mquinas Mealy y Moore

Con respecto a la ejecucin de ambas mquinas de acuerdo a los ejemplos anteriormente


resueltos, notamos que para las mismas cadenas de entrada, y comenzando por el mismo
estado, se obtendrn las mismas salidas.
Las diferencias que se observan, con respecto a las diferentes formas de representacin
entre las mquinas radican fundamentalmente en las diferencias que tienen ambas
mquinas en la constitucin de la funcin de salida g.
Ahora si analizamos las diferentes formas de representacin de las funciones f y g notamos
lo siguiente:
Con respecto a la notacin explcita, vemos que lo que cambia es la definicin de la funcin
g ya que en Moore la salida depender solamente del estado al que transitar la mquina.
Con respecto a las tablas, notamos que en Moore en el caso de la representacin de la
funcin g, dejar de ser una matriz como es en el caso de Mealy para convertirse en un
vector.

Con respecto al grafo, los cambios que se producirn son en la rotulacin de las
transiciones, ya que en Moore solamente se deber indicar que entrada produce la
transicin de estado, y en la rotulacin del estado ahora se deber indicar tambin cul es la
salida que producir.
2.5.4. Equivalencia entre Mquinas de Mealy y Mquina de Moore
Las funciones de salidas de ambas mquinas se representan como sigue:
MEALY

g:Qx

MOORE

g:Q

Por lo tanto las salidas correspondientes en un determinado tiempo i se obtendrn de la


siguiente manera:

MEALY

Si
= Que la salida producida en el intervalo de tiempo i estar en funcin del
f( qi, ei) estado en que se encuentra y la entrada que recibe en el mismo tiempo i

Que la salida producida en el intervalo de tiempo i estar solo en funcin


Si = f( del estado en que se encuentra en ese tiempo i, y la salida que se
MOORE
qi )
producir ser la correspondiente al smbolo del estado que este
despus de realizar la transicin
Bsicamente la diferencia entre ambas mquinas est dada en la respuesta que producen
ambas mquinas secuenciales.
En la mquina de Mealy se dice que la respuesta es inmediata ya que la salida la produce
en forma directa despus de recibir la entrada. Mientras que en la mquina de Moore, la
respuesta solo depende del estado en que se encontrar la mquina despus de realizar
cada transicin.
De acuerdo a lo expresado anteriormente, se puede demostrar que la salida en una
mquina de Moore, experimenta un retardo de tiempo respecto de su entrada. Esta
apreciacin es razonable, ya que la respuesta depende solo del estado al que transitar la
mquina pero esta transicin se deber a la entrada anterior que dio origen al estado en el
cul se encuentra la mquina.
En Moore: En un determinado intervalo de tiempo i la mquina se encuentra en un
determinado estado qi, y recibe un smbolo ei y se producir una transicin de estado y una
salida como sigue:
f ( qi , ei ) = q i+1
g ( qi ) = si
pero para haber estado en el estado qi que produjo la salida si debi en un intervalo de
tiempo anterior haber recibido una entrada que lo llevo a este estado.
f ( qi-1 , ei-1 ) = q i
g ( qi ) = g (f ( qi-1 , ei-1 )) = si
En donde se evidencia que la salida si en la mquina de Moore en un intervalo i
depende en forma directa de la entrada ei-1
2.5.5. Conversin de Mquinas Secuenciales

Toda mquina de Mealy se puede transformar en una mquina de Moore y viceversa. Los
procedimientos sern los que siguen.
2.5.5.1. De Mealy a Moore:
Dada la Mquina de Mealy:
ME = {

, Q, f, g}

M0 = {

Construiremos La Mquina de Moore

, Q, f, g} de la siguiente manera.

En donde por cada combinacin de estado/entrada :


f(q,a)=p
( con q,p Q ; a

g(q,a)=b
Se
1)
Un estado:
funcin salida:

pb

crea:
Q , al que le corresponder la siguiente

g(pb) = b

Una transicin: f( qs , a ) = pb , para cada estado qs , s

2)

Si a un determinado estado q
etiquetado con q

;b

Q no llegase ninguna transicin, se crear un nodo

.
Ejemplo:

Dada la mquina de Mealy


ME1 = ({0 , 1}, {a , b}, { r, s, t }, f, g)
Funcin Transicin f

Funcin Salida g

Su grafo:

y la salida que corresponde a una entrada = 00011001 comenzando en el estado r ser :


aaabaaab

Ahora comenzaremos el proceso de conversin a una mquina de Moore


equivalente:

MO1 = ({0 , 1}, {a , b}, Q, f, g)


donde:
f(r, 0) = r ,
ra
f(r, 1) = t ,
tb
f(s, 0) = r ,
ra
f(s, 1) = s ,
sb
f(t, 0) = r ,
rb
f(t, 1) = s ,
sa

g(r, 0) = a Entonces:
Q ; g( ra) = a ; f( ra , 0 ) = ra ; f( rb , 0 ) = ra
g(r, 1) = b Entonces:
Q ; g( tb) = b ; f( ra , 1 ) = tb ; f( rb , 1 ) = tb
g(s, 0) = a Entonces :
Q ; g( ra) = a ; f( sa , 0 ) = ra ; f( sb , 0 ) = ra
g(s, 1) = b Entonces:
Q ; g( sb) = b ; f( sa , 1 ) = sb ; f( sb , 1 ) = sb
g(t, 0) = b Entonces:
Q ; g( rb ) = b ; f( ta , 0 ) = rb ; f( tb , 0 ) = rb
g(t, 1) = a Entonces:
Q ; g( sa) = a ; f( ta , 1 ) = sa ; f( tb , 1 ) = sa

Nos quedar entonces: Q = { ra , tb , sb , rb , sa },vemos entonces que el estado t a


,nunca ha sido creado, por lo tanto se anularn todas las transiciones correspondientes a

dicho estado.
Funcin Transicin f

Funcin Salida g

ra

ra

tb

ra

tb

rb

sa

tb

sb

ra

sb

sb

rb

ra

tb

rb

sa

ra

sb

sa

Y el grafo correspondiente a la mquina quedar:

Si ahora, analizamos el comportamiento de esta mquina de moore, para la misma


cadena aceptada por la mquina de mealy equivalente vemos lo siguiente. Para determinar
por cual estado debemos comenzar lo haremos por aquellos estados que participaron en el
misto estado r de la mquina de mealy, estos estados sern (r a y rb )

Donde se evidencia que la mquina de Moore responde de igual manera que la


Mquina de Mealy

2.5.5.1. De Moore a Mealy :


Dada la Mquina de Moore:
MO = {
ME

,
,

, Q, f, g}
,

Construiremos La Mquina de Mealy

Q,

f,

g}

de

la

siguiente

manera.

En donde por cada transicin y salida en el que se cumpla :


f(q,a)=p
g

con

q,

Se

)
define:

g( q , a ) = b
Ejemplo:
Dada la mquina de Moore
MO2 = ({0 , 1}, {a , b}, { r, s }, f, g)
Funcin Transicin f

Funcin Salida g

Grafo:

y la salida que corresponde a una entrada

= 00100111 comenzando en el estado r ser :

aaabaaab

Ahora comenzaremos el proceso de conversin para obtener a una mquina de Mealy


equivalente:

ME2 = ({0 , 1}, {a , b}, Q, f, g)


donde:
f ( r , 0 ) = r ; g ( r ) = a ; Por lo tanto g ( r , 0 ) = a ;
f ( r , 1 ) = s ; g ( s ) = b ; Por lo tanto g ( r , 1 ) = b ;
f ( s , 0 ) = s ; g ( s ) = b ; Por lo tanto g ( r , 0 ) = b ;
f ( s , 1 ) = r ; g ( r ) = a ; Por lo tanto g ( r , 1 ) = a ;
por lo tanto las funciones f y g quedarn:

MQUINAS DE ESTADOS: AUTMATAS FINITOS DETERMINISTAS (AFD)

Comenzaremos ahora a definir este tipo de mquinas que a diferencia de las mquinas
secuenciales, estas poseen estado inicial previsto que es por donde comenzarn su
ejecucin.
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.
Definicin:

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

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

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

;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

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}

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}

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 )


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.
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.
Equivalencias entre estados de longitud n:
Dos estados p y q sern equivalentes de longitud n si: cumplen la equivalencia planteada en

la seccin anterior pero con la restriccin de que la longitud de las cadenas x e y sean menor
o igual a n.
De esta manera definiremos:
Sean p y q

Q dos estados dentro de un AFD

p E q son equivalentes de longitud n si


si

W() , | x | n - se puede alcanzar un estado final previsto tanto


comenzando desde el estado p como el de q Y

y
W() , | y |
n no se puede alcanzar un estado final previsto tanto
comenzando desde el estado p como el de q

Equivalencia entre AFD


Dos AFD A1 y A2 son equivalentes,
y se dice: A1 E A2
Si ambos autmatas aceptan las mismas cadenas o sean que reconocen
exactamente el mismo lenguaje.
Conjunto cociente Q/E
Mediante las relaciones de equivalencias entre estados se efecta la particin del
conjunto de estados en Clases de equivalencias, en la cul se encontrarn los estados que
son equivalentes entre s.
Para lograr el conjunto cociente, se comienza con la relacin de equivalencia entre
estados de longitud 0, o sea lo que primero se intenta formar el Q/E0, y en el caso de las AFD,
este conjunto se subdivide en solo dos clases, los que pertenecen al subconjunto de estados
finales de aceptacin y los que no pertenecen.
Q/E0 = [ {F} , {F}]
Se continuar con iteraciones sucesivas, incrementando en 1 la longitud de las
cadenas de entrada en cada iteracin y se verificar si los estados que siendo equivalentes
en una iteracin anterior continan siendo equivalentes en la nueva clase de equivalencia
Q/E1.
El proceso iterativo continuar, hasta conseguir la clase de equivalencia Q/E y este
proceso se detendr cuando un nuevo conjunto en una iteracin i+1 se mantiene sin
modificaciones con respecto al conjunto anterior.
Q/E i = Q/E i+1 Se detiene el proceso.
Ejemplo:
Dado el autmata, determinar el conjunto cociente mnimo
AFD3 = ( { a , b }, { p, q , r, s , t }, p, { r, t }, f ) , donde:

Resolucin:
Para la determinacin del conjunto cociente, lo que debemos buscar son el mnimo
conjuntos de estados que resultan diferentes entre s y esto lo realizamos a travs de la
determinacin de las clases de equivalencia entre estados.
Para ello partimos con la equivalencia de longitud 0 que corresponder a la divisin en
dos clases. Los estados que son de aceptacin por un lado y los que no por otro lado, y luego
en un proceso iterativo se continuar verificando los estados que continen siendo
equivalentes a medida que se incrementa en 1 la longitud de las estradas. El proceso
finalizar cuando una clase de equivalencia se mantenga constante ante un incremento en la
longitud de la entrada.
Q/E0 = [{ F } , {F}] = [{ r , t }{ p , q , s }]
Denominaremos con c1 = {r, t} y c2 = {p,q,s}
Lo que debemos hacer ahora, es verificar si las clases de equivalencias detectadas
hasta el momento ( c1 y c2) continan sindolo ante una nueva entrada, o sea debemos
verificar si sus estados integrantes siguen siendo equivalentes al incrementar la longitud de la
cadena de entrada.
c1 = {r, t}:
Al estar constituido por los estados r y t, con una nueva entrada para cada uno de
esos estados debern coincidir en que transitarn a estados que pertenecen a una misma
clase de equivalencia.
f( r,a) = p

f( r,b) = s

f( t,a) = r

f( t,b) = s

Por lo tanto f ( c1, a ) = van conjuntos cocientes diferentes de la clase anterior, y por lo tanto
los estados r y t no podrn seguir siendo equivalentes. No ocurre lo mismo con una entrada b,
ya que f(c1,b) van a una misma clases de equivalencia anterior.
Pero con que al menos con una entrada no vaya a una misma clase anterior, los estados r y t
no sern equivalentes y por lo tanto debern ser separados del conjunto c1.
c2 = {p, q, s}:
Veremos como transitan ante una nueva entrada (long. 1)
f( p,a) = s

c2

f( p,b) = t

c1

f( q,a) = t

c1

f( q,b) = p

c2

f( s,a) = p

c2

f( s,b) = t

c1

Vemos que los estados p y s pertenecientes a c2 podrn continuar siendo equivalentes ya que
sus salidas a las entradas respectivas caen dentro de una misma clase de equivalencia
anterior. No ocurre lo mismo con el estado q que deber ser separado de la clase de
equivalencia c2.
Por lo tanto Q/E1, nos quedar:
Q/E1 = [{ r } , { t } , { q }, {p , s }]
Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s}
Ahora debemos comprobar, si incrementando en uno la cadena de entrada los estados p y s
continan siendo equivalentes.
d4 = {p, s}:
Veremos que pasa con una nueva entrada para cada uno de esos estados.
f( p,a) = s
f( s,a) = p

d4

d4

f( p,b) = t

f( s,b) = t

d2
d2

De esta manera, se verifica que ante una nueva entrada, los estados p y s que son
equivalentes, continan sindolo.

Q/E2 = [{ r } , { t } , { q }, {p , s }]
Vemos ahora que: Q/E1 = Q/E2, por lo tanto el proceso se detiene, y las clases de
equivalencias resultan:
Q/E = [{ r } , { t } , { q }, {p , s }]
Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s} a los estados, y el
nuevo autmata nos quedar:
AFD3 = ( { a , b }, { d1, d2 , d3, d4 }, d4, {d1, d2}, f ) , donde:
f

d1

d4

d4

d2

d1

d4

d3

d2

d4

d4

d4

d2

Minimizacin de AFD
El objetivo de minimizacin de los AFD, es obtener un autmata equivalente al dado, o
sea que aceptar el mismo lenguaje, pero este nuevo autmata contendr un menor nmero
de estados.
Los pasos a realizar para la obtencin del autmata mnimo son los siguientes:

Se debe encontrar el autmata conexo, para estos el autmata debe


cumplir que todos sus estados sean accesibles desde el estado inicial. Si
existiera algn estado que no cumpliera con esta condicin se lo podr
eliminar, sin que se afecte el lenguaje aceptado por el autmata.

Determinar el Conjunto cociente, en el cul nos indicar el mnimo nmero


de estados con diferente significado.

Construir el nuevo autmata, para ello se utilizarn los estados


determinados por las clases de equivalencia. El estado inicial del nuevo
autmata, pertenecer a la clase de equivalencia en donde se encuentre el
estado inicial del autmata original, y los mismo ocurrir con los estados
finales de aceptacin, en donde sern los que pertenezcan a clases de
equivalencias donde se encuentren estados finales de aceptacin del
autmata original. Con respecto a las transiciones de los nuevos estados,
estas se realizarn en funcin a las transiciones de los estados que
conforman la clase de equivalencia respectiva.

Ejemplo:
Dado el siguiente AFD definido como:
AFD4 = ( , Q, qi, F, f ), donde:
= { a , b }

Q= { p, q, r , t, s }
qi = p
F= {q , r }
Donde la funcin f ser:
f

Se pide :
a)

Grafo

b)

Autmata conexo

c)

Conjunto Cociente

d)

Autmata mnimo

e)

Grafo del nuevo autmata

f)

Identificar una cadena de longitud 5 y verificar que la misma es aceptada


por ambos autmatas

Resolucin:
a)

Grafo del Autmata

b) Autmata Conexo
Se verifica la accesibilidad de estados desde el estado inicial, y vemos que los
estados t y q resultan inaccesibles, por lo tanto pueden ser descartados y nos queda un nuevo
AFD4 , de la siguiente manera:
AFD4 = ( { a , b }, { p, r , s }, p, { r }, f ) , donde:
Donde la funcin f ser:
f'

*r

Y el nuevo grafo ser:

c) Conjunto cociente

Para la determinacin del conjunto cociente, lo que debemos buscar son el mnimo conjuntos
de estados que resultan diferentes entre s y esto lo realizamos a travs de la determinacin
de las clases de equivalencia entre estados.
Para ello partimos con la equivalencia de longitud 0 que corresponder a la divisin en
dos clases. los estados que son de aceptacin por un lado y los que no por otro lado.
Q/E0 = [ {p, s}, {r}]
Denominaremos con c1 = {p, s} y c2 = {r}
Lo que debemos hacer ahora, es verificar si las clases de equivalencias detectadas
hasta el momento continan sindolo ante una nueva entrada, o sea debemos verificar si sus
estados integrantes siguen siendo equivalentes al incrementar la longitud de la cadena de
entrada.
Por lo tanto, lo verificaremos para
c1 = {p, s}. Al estar constituido por los estados p
y s, con una nueva entrada para cada uno de esos estados debern coincidir en que
transitarn a estados que pertenecen a una misma clase de equivalencia.
f( p,a) = s
f( s,a) = p
La salida con la entrada a son los estados s , p que pertenecen a una misma clase de
equivalencia anterior por lo tanto, podemos decir que
f ( c1, a ) = c1
Con respecto a la entrada b:
f( p,b) = r
f( s,b) = r
La salida con la entrada b es el estado r por lo tanto, podemos decir que
f ( c1, b ) = c2
Con lo que se puede afirmar, que la clase de equivalencia c1, contina sindolo para una
nueva entrada y por lo tanto:
Q/E1 = [ {p, s}, {r}]
Ahora como Q/E0 = Q/E1 el proceso se detiene y la clase equivalencia con el mnimo
nmero de estados ser
Q/E = [ {p, s}, {r}] = [ {c1}, {c2}]
d) Autmata mnimo:

AFD4 = ( { a , b }, { c1, c2 }, c1, { c2 }, f ) , donde:


El estado inicial del nuevo autmata ser c1, ya que en este se encuentra contenido el estado
p que era el estado inicial del autmata equivalente.
Con respecto al estado c2, que es el estado final de aceptacin, lo es ya que tiene incluido al
estado r que lo era anteriormente.
Para el armado de la nueva funcin de transicin, lo haremos siguiendo las transiciones
originales de cada uno de los estados que componen el estado resultante de la clase de
equivalencia, por lo tanto nos queda:

f''

c1

c1

c2

* c2

c1

c1

e) Nuevo Grafo

f) Verificacin:
Dadas dos cadenas x1 y x2 ambas de longitud 5, verificaremos si ambos autmatas
son capaces de reconocerlas
x1 = aabbb
x2 = baaab
Para el caso del AFD4
f ( p, x1 ) = r
f ( p, x2 ) = r

En ambas cadenas al estado que se llega es r, el cul pertenece al conjunto F por lo tanto
ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.
Para el caso del AFD4
f ( c1, x1 ) = c2
f ( c1, x2 ) = c2
En ambas cadenas al estado que se llega es c2, el cul pertenece al conjunto F por lo tanto
ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.
Configuracin instantnea y movimiento
El concepto de configuracin instantnea o descripcin instantnea, permite describir la
configuracin del autmata en cada momento.
Representacin: Lo representaremos mediante un par ordenado ( q, w ) en donde, q
Perteneciente al conjunto de estado Q, es el estado en donde se encuentra el autmata, w
formada con los smbolos del alfabeto de entrada, ser la cadena que resta por leer.
Configuracin Inicial:
Se establecer como: ( q0 , x ) ; donde q0 ser el estado inicial, y x la cadena a ser leida
Configuracin Final:
Se establecer como:

( qn,

) =

; donde qn ser el estado en donde se detiene el

autmata, cuando no resta nada por leer ( ).


Movimiento:
Es la transicin de una configuracin a otra:
( p, a )

( q , w ) ; dados p , q

Q;a

;w

este movimiento ser posible, solo si existe una transicin mediante la aplicacin de:
f( p , a ) = q
Implementacin de un Algoritmo
Dentro de los usos que se le pueden dar a las mquinas de estados, y en particular a
los AFD, est el reconocimiento de cadenas. Para realizar este reconocimiento en forma
precisa y automatizada, el mismo puede implementarse en cualquier lenguaje de
programacin.
Ser posible que habiendo diseado un autmata que sea capaz de reconocer un conjunto de
cadenas de un lenguaje, construir un programa que implemente dicho autmata en algn
lenguaje de programacin, a tal fin el Algoritmo de funcionamiento del programa puede ser
obtenido a partir del AFD en forma directa.

Ejemplo:
AFD5 = ( {0,1}, {p,q,r,s,t}, p, {q}, f ), donde:
Donde la funcin f :
f

*q

El Grafo ser:

El lenguaje aceptado por esta autmata es:


L AFD5 = { x / x

W() / an.b.am con n,m

1}

Diagrama de flujo de algoritmo:


El diagrama de flujo elemental, asumiendo que en la entrada solo se ingresarn
smbolos a y b, y que siempre se ingresar al menos un carcter vlido es el siguiente:

Hac click sobre la imagen para verla en tamao completo

MQUINAS DE ESTADOS: AUTMATAS FINITOS DETERMINISTAS (AFD)

Comenzaremos ahora a definir este tipo de mquinas que a diferencia de las mquinas
secuenciales, estas poseen estado inicial previsto que es por donde comenzarn su
ejecucin.
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.
Definicin:
Los autmatas finitos deterministas quedarn formalmente definida mediante una
quntupla como sigue:
AFD = ( , Q, q0, F, f )
donde:

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

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}

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

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.
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.
Equivalencias entre estados de longitud n:
Dos estados p y q sern equivalentes de longitud n si: cumplen la equivalencia planteada en
la seccin anterior pero con la restriccin de que la longitud de las cadenas x e y sean menor
o igual a n.

De esta manera definiremos:


Sean p y q

Q dos estados dentro de un AFD

p E q son equivalentes de longitud n si


si

W() , | x | n - se puede alcanzar un estado final previsto tanto


comenzando desde el estado p como el de q Y

y
W() , | y |
n no se puede alcanzar un estado final previsto tanto
comenzando desde el estado p como el de q

Equivalencia entre AFD


Dos AFD A1 y A2 son equivalentes,
y se dice: A1 E A2
Si ambos autmatas aceptan las mismas cadenas o sean que reconocen
exactamente el mismo lenguaje.
Conjunto cociente Q/E
Mediante las relaciones de equivalencias entre estados se efecta la particin del
conjunto de estados en Clases de equivalencias, en la cul se encontrarn los estados que
son equivalentes entre s.
Para lograr el conjunto cociente, se comienza con la relacin de equivalencia entre
estados de longitud 0, o sea lo que primero se intenta formar el Q/E0, y en el caso de las AFD,
este conjunto se subdivide en solo dos clases, los que pertenecen al subconjunto de estados
finales de aceptacin y los que no pertenecen.
Q/E0 = [ {F} , {F}]
Se continuar con iteraciones sucesivas, incrementando en 1 la longitud de las
cadenas de entrada en cada iteracin y se verificar si los estados que siendo equivalentes
en una iteracin anterior continan siendo equivalentes en la nueva clase de equivalencia
Q/E1.
El proceso iterativo continuar, hasta conseguir la clase de equivalencia Q/E y este
proceso se detendr cuando un nuevo conjunto en una iteracin i+1 se mantiene sin
modificaciones con respecto al conjunto anterior.
Q/E i = Q/E i+1 Se detiene el proceso.
Ejemplo:
Dado el autmata, determinar el conjunto cociente mnimo
AFD3 = ( { a , b }, { p, q , r, s , t }, p, { r, t }, f ) , donde:

los estados r y t no podrn seguir siendo equivalentes. No ocurre lo mismo con una entrada b,
ya que f(c1,b) van a una misma clases de equivalencia anterior.
Pero con que al menos con una entrada no vaya a una misma clase anterior, los estados r y t
no sern equivalentes y por lo tanto debern ser separados del conjunto c1.
c2 = {p, q, s}:
Veremos como transitan ante una nueva entrada (long. 1)
f( p,a) = s

c2

f( p,b) = t

c1

f( q,a) = t

c1

f( q,b) = p

c2

f( s,a) = p

c2

f( s,b) = t

c1

Vemos que los estados p y s pertenecientes a c2 podrn continuar siendo equivalentes ya que
sus salidas a las entradas respectivas caen dentro de una misma clase de equivalencia
anterior. No ocurre lo mismo con el estado q que deber ser separado de la clase de
equivalencia c2.
Por lo tanto Q/E1, nos quedar:
Q/E1 = [{ r } , { t } , { q }, {p , s }]
Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s}
Ahora debemos comprobar, si incrementando en uno la cadena de entrada los estados p y s
continan siendo equivalentes.
d4 = {p, s}:
Veremos que pasa con una nueva entrada para cada uno de esos estados.
f( p,a) = s
f( s,a) = p

d4

d4

f( p,b) = t

f( s,b) = t

d2
d2

De esta manera, se verifica que ante una nueva entrada, los estados p y s que son
equivalentes, continan sindolo.
Q/E2 = [{ r } , { t } , { q }, {p , s }]
Vemos ahora que: Q/E1 = Q/E2, por lo tanto el proceso se detiene, y las clases de

equivalencias resultan:
Q/E = [{ r } , { t } , { q }, {p , s }]
Denominaremos con d1 = {r} ; d2 = {t} ; d3 = {q} ; d4 = {p,s} a los estados, y el
nuevo autmata nos quedar:
AFD3 = ( { a , b }, { d1, d2 , d3, d4 }, d4, {d1, d2}, f ) , donde:
f

d1

d4

d4

d2

d1

d4

d3

d2

d4

d4

d4

d2

Minimizacin de AFD
El objetivo de minimizacin de los AFD, es obtener un autmata equivalente al dado, o
sea que aceptar el mismo lenguaje, pero este nuevo autmata contendr un menor nmero
de estados.
Los pasos a realizar para la obtencin del autmata mnimo son los siguientes:

Se debe encontrar el autmata conexo, para estos el autmata debe


cumplir que todos sus estados sean accesibles desde el estado inicial. Si
existiera algn estado que no cumpliera con esta condicin se lo podr
eliminar, sin que se afecte el lenguaje aceptado por el autmata.

Determinar el Conjunto cociente, en el cul nos indicar el mnimo nmero


de estados con diferente significado.

Construir el nuevo autmata, para ello se utilizarn los estados


determinados por las clases de equivalencia. El estado inicial del nuevo
autmata, pertenecer a la clase de equivalencia en donde se encuentre el
estado inicial del autmata original, y los mismo ocurrir con los estados
finales de aceptacin, en donde sern los que pertenezcan a clases de
equivalencias donde se encuentren estados finales de aceptacin del
autmata original. Con respecto a las transiciones de los nuevos estados,
estas se realizarn en funcin a las transiciones de los estados que
conforman la clase de equivalencia respectiva.

Ejemplo:
Dado el siguiente AFD definido como:
AFD4 = ( , Q, qi, F, f ), donde:
= { a , b }
Q= { p, q, r , t, s }

qi = p
F= {q , r }
Donde la funcin f ser:
f

Se pide :
a)

Grafo

b)

Autmata conexo

c)

Conjunto Cociente

d)

Autmata mnimo

e)

Grafo del nuevo autmata

f)

Identificar una cadena de longitud 5 y verificar que la misma es aceptada


por ambos autmatas

Resolucin:
a)

Grafo del Autmata

b) Autmata Conexo
Se verifica la accesibilidad de estados desde el estado inicial, y vemos que los
estados t y q resultan inaccesibles, por lo tanto pueden ser descartados y nos queda un nuevo
AFD4 , de la siguiente manera:
AFD4 = ( { a , b }, { p, r , s }, p, { r }, f ) , donde:
Donde la funcin f ser:
f'

*r

Y el nuevo grafo ser:

c) Conjunto cociente

Para la determinacin del conjunto cociente, lo que debemos buscar son el mnimo conjuntos
de estados que resultan diferentes entre s y esto lo realizamos a travs de la determinacin
de las clases de equivalencia entre estados.
Para ello partimos con la equivalencia de longitud 0 que corresponder a la divisin en
dos clases. los estados que son de aceptacin por un lado y los que no por otro lado.
Q/E0 = [ {p, s}, {r}]
Denominaremos con c1 = {p, s} y c2 = {r}
Lo que debemos hacer ahora, es verificar si las clases de equivalencias detectadas
hasta el momento continan sindolo ante una nueva entrada, o sea debemos verificar si sus
estados integrantes siguen siendo equivalentes al incrementar la longitud de la cadena de
entrada.
Por lo tanto, lo verificaremos para
c1 = {p, s}. Al estar constituido por los estados p
y s, con una nueva entrada para cada uno de esos estados debern coincidir en que
transitarn a estados que pertenecen a una misma clase de equivalencia.
f( p,a) = s
f( s,a) = p
La salida con la entrada a son los estados s , p que pertenecen a una misma clase de
equivalencia anterior por lo tanto, podemos decir que
f ( c1, a ) = c1
Con respecto a la entrada b:
f( p,b) = r
f( s,b) = r
La salida con la entrada b es el estado r por lo tanto, podemos decir que
f ( c1, b ) = c2
Con lo que se puede afirmar, que la clase de equivalencia c1, contina sindolo para una
nueva entrada y por lo tanto:
Q/E1 = [ {p, s}, {r}]
Ahora como Q/E0 = Q/E1 el proceso se detiene y la clase equivalencia con el mnimo
nmero de estados ser
Q/E = [ {p, s}, {r}] = [ {c1}, {c2}]
d) Autmata mnimo:

AFD4 = ( { a , b }, { c1, c2 }, c1, { c2 }, f ) , donde:


El estado inicial del nuevo autmata ser c1, ya que en este se encuentra contenido el estado
p que era el estado inicial del autmata equivalente.
Con respecto al estado c2, que es el estado final de aceptacin, lo es ya que tiene incluido al
estado r que lo era anteriormente.
Para el armado de la nueva funcin de transicin, lo haremos siguiendo las transiciones
originales de cada uno de los estados que componen el estado resultante de la clase de
equivalencia, por lo tanto nos queda:

f''

c1

c1

c2

* c2

c1

c1

e) Nuevo Grafo

f) Verificacin:
Dadas dos cadenas x1 y x2 ambas de longitud 5, verificaremos si ambos autmatas
son capaces de reconocerlas
x1 = aabbb
x2 = baaab
Para el caso del AFD4
f ( p, x1 ) = r
f ( p, x2 ) = r

En ambas cadenas al estado que se llega es r, el cul pertenece al conjunto F por lo tanto
ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.
Para el caso del AFD4
f ( c1, x1 ) = c2
f ( c1, x2 ) = c2
En ambas cadenas al estado que se llega es c2, el cul pertenece al conjunto F por lo tanto
ambas cadenas x1 y x2 son aceptadas por el autmata AFD4.
Configuracin instantnea y movimiento
El concepto de configuracin instantnea o descripcin instantnea, permite describir la
configuracin del autmata en cada momento.
Representacin: Lo representaremos mediante un par ordenado ( q, w ) en donde, q
Perteneciente al conjunto de estado Q, es el estado en donde se encuentra el autmata, w
formada con los smbolos del alfabeto de entrada, ser la cadena que resta por leer.
Configuracin Inicial:
Se establecer como: ( q0 , x ) ; donde q0 ser el estado inicial, y x la cadena a ser leida
Configuracin Final:
Se establecer como:

( qn,

) =

; donde qn ser el estado en donde se detiene el

autmata, cuando no resta nada por leer ( ).


Movimiento:
Es la transicin de una configuracin a otra:
( p, a )

( q , w ) ; dados p , q

Q;a

;w

este movimiento ser posible, solo si existe una transicin mediante la aplicacin de:
f( p , a ) = q
Implementacin de un Algoritmo
Dentro de los usos que se le pueden dar a las mquinas de estados, y en particular a
los AFD, est el reconocimiento de cadenas. Para realizar este reconocimiento en forma
precisa y automatizada, el mismo puede implementarse en cualquier lenguaje de
programacin.
Ser posible que habiendo diseado un autmata que sea capaz de reconocer un conjunto de
cadenas de un lenguaje, construir un programa que implemente dicho autmata en algn
lenguaje de programacin, a tal fin el Algoritmo de funcionamiento del programa puede ser
obtenido a partir del AFD en forma directa.

Ejemplo:
AFD5 = ( {0,1}, {p,q,r,s,t}, p, {q}, f ), donde:
Donde la funcin f :
f

*q

El Grafo ser:

El lenguaje aceptado por esta autmata es:


L AFD5 = { x / x

W() / an.b.am con n,m

1}

Diagrama de flujo de algoritmo:


El diagrama de flujo elemental, asumiendo que en la entrada solo se ingresarn
smbolos a y b, y que siempre se ingresar al menos un carcter vlido es el siguiente:

Hac click sobre la imagen para verla en tamao completo

MQUINAS DE ESTADOS: AUTMATAS FINITOS NO DETERMINISTAS


(AFND)

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 (p,1) = {t,s}

f (p, ) = t

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

f (s,1) = t
f (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.

Conceptos asociados a los AFND


A continuacin presentaremos un conjunto de definiciones, que resultan necesarias, para
el tratamiento de este tipo de Autmatas:

Relaciones de Transiciones-

(Conjunto T).

Cierre transitivo de la relacin T ; (Conjunto T*).

Extensin a palabras.

Lenguaje Aceptado por un AFND

Equivalencias entre AFD y AFND

Relaciones de Transiciones- (Conjunto T).


Es la relacin que se establece entre los pares de estados en que existe una
transicin-.
Esta relacin tambin es reflexiva, lo que significa tambin existir una transicin
entre los estados contra ellos mismos, de esta manera se verifica que para todo estado
perteneciente al conjunto de estados existe f (q, ) = q.
Con las definiciones anteriores, se proceder a la construccin de un conjunto,
denominado conjunto T , que contendr a todos los pares de estados, que tengan
transiciones- entre ellos.
En el ejemplo del AFND1 el conjunto T resultar:
T = {(p,t) , (t,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t) }

Cierre transitivo de la relacin T (Conjunto T*)


Este nuevo conjunto ser calculado aplicando la propiedad transitiva de las relacin T , ya
que se verifica que:
si p T q y q T r entonces resulta que p T r.
En nuestro ejemplo se verifica que aparare un nuevo par de estado (p,s) ya que al
aplicar la relacin transitiva p T t y t T s entonces p T s, esta es la nica regla de transitividad
que se puede aplicar, de esta manera el nuevo conjunto T* nos quedar.

T * = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) }

Extensin a palabras
Ahora veremos como ser el comportamiento del AFND cuando la entrada deja de ser un
smbolo individual y pasa a ser una cadena de caracteres, formados con smbolos del
alfabeto.
Definiremos entonces una funcin f :
f : Q x * P (Q)
en la que su comportamiento es el siguiente:

Como los AFND pueden producir transiciones entre estados sin leer ningn smbolo desde
el exterior, para cada uno de los estados en donde se encuentra el autmata hay que
considerar estas transiciones-.
Por lo tanto estas transiciones se pueden presentar antes de leer el primer smbolo,
entre cada uno de los smbolos procesador en la entrada y tambin se lo debe hacer sobre el
final cuando se ha finalizado de procesar toda la cadena de entrada.
Estas transiciones * a las que hacemos referencias son las que aparecen en el
conjunto T* del cierre transitivo de las relaciones T (transiciones-)
En nuestro ejemplo del AFND1 :
vamos a calcular las transiciones que se producirn, tras recibir en la cinta de entrada la

cadena 101, entonces:

Lo primero que debemos realizar previo a la entrada del primer smbolo, es aplicar si
existieren las relaciones de transiciones-, y entonces como primer paso se debe aplicar:
f ( p , ) =
Y entonces lo que hacemos es buscar si existen relacin de transiciones dentro del
conjunto T* = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) }
y lo que se obtiene es lo siguiente:
f ( p , ) = {t,s,p}
Entonces significa, que el autmata podr estar en cualquiera de los estados t , s , p
antes de recibir la primer entrada, por lo tanto se deber ver cual sern las transiciones
(aplicacin de la funcin de transicin f) con la entrada para cada uno de los estados
respectivos.
Ahora entonces aplicamos la funcin f , para el primer smbolo de la entrada.

Entonces lo hecho hasta ahora es : f ( p , .1 ) = { s , t }


Ahora nuevamente debemos aplicar el conjunto T* para determinar, si desde los
estados s , t es posible que el autmata transite sin leer nada de la entrada. Al aplicar
nuevamente el conjunto T* y nos quedar:

Hasta el momento tendremos : f ( p , .1. ) = { s , t }


Veremos ahora a que estados podr transitar ante la lectura de la prxima entrada:

Y hasta el momento tendremos : f ( p , .1..0 ) = { p, r, s }


Nuevamente aplicaremos el conjunto T* y tenemos:

Y hasta el momento tendremos : f ( p , .1..0. ) = { p, r, s, t }


Nuevamente tomaremos al prximo smbolo de entrada 1 que ser el ltimo que tenemos
que procesar, y por lo tanto aplicamos la funcin f.

Vemos que f ( r , 1 ) = , no tiene definida transicin alguna, por lo tanto la descartaremos y


nos quedar.
Y hasta el momento tendremos : f ( p , .1..0..1 ) = { s, t }
Ahora nos falta aplicar sobre el final de la cadena de entrada, si existe transicin sobre los
estados ( s, t ) , para ello aplicamos por ltima vez T*

Y finalmente tendremos : f ( p , .1..0..1. ) = { s, t };


Esto significa que partiendo del estado inicial p y recibiendo la cadena de entrada 101,
y al seguir todos las combinaciones posibles de transiciones de estados (todos los caminos
que se pueden presentar), el autmata solo podr quedar posicionado en el conjunto de
estados {s , t} que esta formado por los estados s o t ,y como el estado t pertenece al
conjunto de estado finales de aceptacin, se dice que la cadena es aceptada por el AFND
Lenguaje Aceptado por un AFND
Ser el conjunto de palabras que le hacen transitar desde el estado inicial a algn
estado de finalizacin utilizando la funcin f .

L AFND = { x / x * y f (q0 , x) F

Significa que el lenguaje aceptado por un AFND estar constituido por todas las
cadenas formadas con smbolos del alfabeto de entrada, que partiendo desde el estado
inicial, el autmata quedar posicionado en un estados que pertenezca al conjunto de estados
finales de aceptacin.
Equivalencias entre AF Determinista y No determinista
La equivalencia entre autmatas AFD y AFND, siempre es posible, y esto significa que
siempre se podr dado uno de ellos obtener su equivalente. Por lo tanto, se podr asegurar
que ambos, AFD y AFND reconocern el mismo lenguaje.
Conversin de AFD a AFND :
Es fcil ver que los AFD son una particularizacin de los AFND, ya que: por un lado no
existirn transiciones- y por otro lado, las transiciones siempre producirn un estado
determinado. As tendremos que:

No existirn transiciones- por lo tanto: f (q, ) = .

| f (p,a)| = 1 ; Siempre se transita a un solo estado

Conversin de AFND a AFD:


Vamos a construir un AFD partiendo de un AFND, donde:
AFND = ( , Q, q0, F, f )
AFD = ( , Q, q0, F , f )
donde para la conversin se tendr en cuenta:

Q = P(Q)

q0 = f (q0, ) ; El nuevo estado inicial, se obtiene en forma directa de T*.

F = { c / c Q Si existe q c y q F } Un estado perteneciente al nuevo


conjunto de estados ser de finalizacin o aceptacin, solo si esta constituido
por estados que eran de aceptacin en el autmata en el AFND de origen.
f(c,a) = { c / c Q = q

f (q,a)

Lo que se har primero es calcular q0 y luego se irn calculando los dems estados
Q obtenidos a partir de P(Q) a medida que van presentando en el proceso de conversin.

Ejemplo:

Dado:
AFND1 = ( { 0 , 1 }, { p, q , r, s , t }, p, { r }, f ) , donde:

Obtendremos ahora el AFD equivalente.

T = {(p,t) , (t,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t) }


T* = {(p,t) , (p,s) , (p,p) , (q,q) , (r,r) , (s,s) , (t,t), (t,s) }
Nuevo estado inicial c0 = f ( p,
c0 = { t , s , p}

Para el estado t

c0 :

Para el estado s c0 :

) ; lo obtendremos de T*

Para el estado t c0 :

De esta manera :
f( c0 , 0 ) = { (, , ) }

Por lo tanto:

f (c0 , 0 ) = { t, s, p, r } = c1

De igual manera calcularemos a c0 pero ahora con entrada 1, pero simplificando la


representacin de los pasos y nos queda:

Ahora debemos para cada uno de los estados que vaya apareciendo, como se va
comportando ante ambas entradas. Tomamos ahora el estado c1 = { t,s,p,r }

Ahora tomamos c2 = { t, s}, y vemos como se comportar la funcin de transicin f ante


nuevas entradas 0 y 1, respectivamente.

Vemos ahora que no se ha creado ningn nuevo estado, por lo tanto hemos
terminado el proceso de construccin de la funcin f y de el conjunto Q .

Nuevo estado
Q

P(Q)

c0

{ t,s,p }

c1

{ t, s, p, r}

c2

{s,t}

Ahora estamos en condicin de formalizar el AFD equivalente al AFND1


AFD = ( { 0 , 1 }, { c0 , c1, c2 }, c0 , { c1 }, f ) , donde:
Los estados finales de aceptacin en el ADND, es el conjunto F = { r }, por lo tanto F
estar conformada por todos los nuevos estados que incluyan a dicho estado. Entonces el
estado c1 ser estado de aceptacin del nuevo autmata.

Donde la funcin de transicin ser:

Y el grafo del AFD quedar :

EJERCICIOS RESUELTOS: AUTMATA FINITO, AUTMATA A PILA Y MAQUINA DE TURING

CONSTRUCCIN DE AUTMATA FINITO

Ejercicio 1: Disear un autmata finito que acepte una cadena formada por 4 bits,
debiendo ser el primer elemento igual al tercero.

You might also like