Vous êtes sur la page 1sur 73

Monografia N2

Automatas finitos
AFD, AFND
Maquina de turing.

















Nombre: Abraham Martinez Esparza.
Asignatura: Teoria de automatas y lenguajes formales.
Docente: Sergio Figueroa.
Universidad mayor.














Autmatas Finitos

AUTMATAS FINITOS DETERMINISTAS (AFD).

DEFINICIN DE AFD.
Un autmata finito determinista es una quntupla que
denotaremos de manera genrica por M=( Q,,q0,,F)
donde:

Q es un conjunto finito cuyos elementos llamaremos
estados.
es un alfabeto que llamamos alfabeto de entrada.
q 0 Q es un estado sealado que llamamos estado
inicial.
F es un subconjunto de Q no vaco, cuyos elementos
llamamos estados finales.
es una aplicacin de Q Q , que llamamos funcin
de transicin.

La funcin de transicin es la verdadera clave de la
mquina. Obsrvese que es una aplicacin, as cada
pareja posible formada por un estado y un smbolo del
alfabeto debe tener una imagen y slo una, es decir (
q,a) Q, cualquiera que sean q Q y a .


DEFINICIN DE AFD.
Un autmata finito determinista es una quntupla que
denotaremos de manera genrica por M=( Q,,q0,,F)
donde:

Q es un conjunto finito cuyos elementos llamaremos
estados.
es un alfabeto que llamamos alfabeto de entrada.
q 0 Q es un estado sealado que llamamos estado
inicial.
F es un subconjunto de Q no vaco, cuyos elementos
llamamos estados finales.
es una aplicacin de Q Q , que llamamos funcin
de transicin.

La funcin de transicin es la verdadera clave de la
mquina. Obsrvese que es una aplicacin, as cada
pareja posible formada por un estado y un smbolo del
alfabeto debe tener una imagen y slo una, es decir (
q,a) Q, cualquiera que sean q Q y a .

Ejemplos:

Sea M1 = (Q, , , q0,F) donde Q={p,q,r}, ={a,b}, Sea
p el estado inicial, F={r} y
definida como sigue:

(p,a)=q (p,b)=r
(q,a)=p (q,b)=q
(r,a)=r
(r,b)=r
Tabla 2.1. Funcin de transicin de M1.

Segn nuestra definicin M1 es un AFD.

Para visualizarlo de alguna forma imaginemos una especie
de circuito electrico con tantas bombillas como estados, las
correspondientes a los estados finales de color verde, las
dems amarillas. Sobre una cinta de entrada escribimos
una palabra con smbolos del alfabeto de entrada. Al poner
a funcionar la mquina se enciende la bombilla
correspondiente al estado inicial. A partir de ese momento
se procesa el smbolo actual en la cinta de entrada
transitando al estado definido en cada momento por la
funcin de transicin hasta que la palabra de la entrada
haya sido leido completa.

Si la palabra a procesar fuese aabbab, se enciende el
estado p inicial y a continuacin qprrrr. El estado que
queda encendido es r que es final. Si la palabra a procesar
fuese abbb la secuencia de estados sera pqqqq.

2.1.2 REPRESENTACIN DE UN AFD.
Tenemos dos maneras de representar un AFD
Con una tabla:
Se ponen tantas filas como estados, y tantas columnas
como smbolos forman el alfabeto. Marcamos el estado
inicial con una flecha de entrada y cada uno de los estados
finales con un asterisco. En el cruce de la fila marcada con
el estado q y la columna marcada con el smbolo a del
alfabeto ponemos el estado (q,a).

Con un diagrama:
Cada estado no final se representa con un crculo; cada
estado final se representa con un doble crculo; se seala
el estado inicial con una flecha entrando, sin 20
2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
Sea M1 = (Q, , , q0,F) donde Q={p,q,r}, ={a,b}, Sea p el
estado inicial, F={r} y
definida como sigue:

(p,a)=q (p,b)=r
(q,a)=p (q,b)=q
(r,a)=r
(r,b)=r
Tabla 2.1. Funcin de transicin de M1.

Segn nuestra definicin M1 es un AFD.

Para visualizarlo de alguna forma imaginemos una especie
de circuito electrico con tantas bombillas como estados, las
correspondientes a los estados finales de color verde, las
dems amarillas. Sobre una cinta de entrada escribimos
una palabra con smbolos del alfabeto de entrada. Al poner
a funcionar la mquina se enciende la bombilla
correspondiente al estado inicial. A partir de ese momento
se procesa el smbolo actual en la cinta de entrada
transitando al estado definido en cada momento por la
funcin de transicin hasta que la palabra de la entrada
haya sido leido completa.

Si la palabra a procesar fuese aabbab, se enciende el
estado p inicial y a continuacin qprrrr. El estado que
queda encendido es r que es final. Si la palabra a procesar
fuese abbb la secuencia de estados sera pqqqq.

2.1.2 REPRESENTACIN DE UN AFD.
Tenemos dos maneras de representar un AFD
Con una tabla:
Se ponen tantas filas como estados, y tantas columnas
como smbolos forman el alfabeto. Marcamos el estado
inicial con una flecha de entrada y cada uno de los estados
finales con un asterisco. En el cruce de la fila marcada con
el estado q y la columna marcada con el smbolo a del
alfabeto ponemos el estado (q,a).

Con un diagrama:
Cada estado no final se representa con un crculo; cada
estado final se representa con un doble crculo; se seala
el estado inicial con una flecha entrando, sin 20


2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
etiqueta; por cada transicin (q,a)=t se dibuja una flecha
dirigida del estado de partida q al de llegada llegada t
etiquetada a

Ejemplos:
La mquina M1 del ejemplo se representa con una tabla

a b
p q r
q
p q
*r r r
Tabla 2.2. Autmata finito determinista M1.

bien se representa con un diagrama

Fig. 2.1 Autmata finito determinista M1.

Observemos que cada una de ambas representaciones
contiene toda la informacin del autmata.

2.1.3 DIAGRAMAS

INCOMPLETOS: ESTADO DE ABSORCIN.
Con frecuencia nos encontramos AFDs como el M2
siguiente.


Fig. 2.2 autmata finito determinista M2.




2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
etiqueta; por cada transicin (q,a)=t se dibuja una flecha
dirigida del estado de partida q al de llegada llegada t
etiquetada a

Ejemplos:
La mquina M1 del ejemplo se representa con una tabla

a b
p q r
q
p q
*r r r
Tabla 2.2. Autmata finito determinista M1.

bien se representa con un diagrama

Fig. 2.1 Autmata finito determinista M1.

Observemos que cada una de ambas representaciones
contiene toda la informacin del autmata.

2.1.3 DIAGRAMAS

INCOMPLETOS: ESTADO DE ABSORCIN.
Con frecuencia nos encontramos AFDs como el M2
siguiente.


Fig. 2.2 autmata finito determinista M2.


2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
Si observamos con un poco de atencin vemos que la
transicin (p,1) no est representada, lo que contradice la
definicin de AFD puesto que hemos afirmado que
es una aplicacin. Lo que ocurre en realidad es que la
mquina no ha sido completamente dibujada, por
comodidad y claridad. Debemos entender que todas las
transiciones que falten en el diagrama de un AFD van a un
nico estado no final, que llamamos genricamente estado
de absorcin. As el diagrama completo de M2 es: Fig.2.3.
Autmata finito determinista M2 con el estado de
absorcin.

El estado s es el estado de absorcin y con frecuencia
desaparece del grfico del autmata, pero no debemos
olvidar que est ah aunque no lo dibujemos.

2.1.4

EXTENSIN DE LA FUNCIN DE TRANSICIN
Se trata de definir una funcin que describa qu estado se
alcanza desde un estado q si a continuacin en vez de
entrar un slo smbolo (en cuyo caso se alcanzara el
estado descrito por (q,a)), entrara una palabra *.
Definimos : Q
*
Q por recurrencia sobre la longitud de la palabra .
Si || = 0 entonces = y definimos q
Q
, ( q,) = q (si no hay entrada no
hay cambio de estado).
Supongamos definido ( q,x) para cada x , tal que |
x| n.
Sea * tal que | |=n+1, entonces se puede
escribir = xa con | x|=n y a.
Ahora definimos q
Q
, ( q, ) =

( q,xa) = (
( q,x) ,a).

Ejemplo:
En nuestra mquina M1 sera


2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
Si observamos con un poco de atencin vemos que la
transicin (p,1) no est representada, lo que contradice la
definicin de AFD puesto que hemos afirmado que
es una aplicacin. Lo que ocurre en realidad es que la
mquina no ha sido completamente dibujada, por
comodidad y claridad. Debemos entender que todas las
transiciones que falten en el diagrama de un AFD van a un
nico estado no final, que llamamos genricamente estado
de absorcin. As el diagrama completo de M2 es: Fig.2.3.
Autmata finito determinista M2 con el estado de
absorcin.

El estado s es el estado de absorcin y con frecuencia
desaparece del grfico del autmata, pero no debemos
olvidar que est ah aunque no lo dibujemos.

2.1.4

EXTENSIN DE LA FUNCIN DE TRANSICIN
Se trata de definir una funcin que describa qu estado se
alcanza desde un estado q si a continuacin en vez de
entrar un slo smbolo (en cuyo caso se alcanzara el
estado descrito por (q,a)), entrara una palabra *.
Definimos : Q
*
Q por recurrencia sobre la longitud de la palabra .
Si || = 0 entonces = y definimos q
Q
, ( q,) = q (si no hay entrada no
hay cambio de estado).
Supongamos definido ( q,x) para cada x , tal que |
x| n.
Sea * tal que | |=n+1, entonces se puede
escribir = xa con | x|=n y a.
Ahora definimos q
Q
, ( q, ) =

( q,xa) = (
( q,x) ,a).

Ejemplo:
En nuestra mquina M1 sera

2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
( q,ba) = (
( q,b) ,a) = ( q,a) = p ( q,bab) = (
( q,ba) ,b)= ( p,b) = r En el diagrama se pueden
seguir los arcos desde q, con los smbolos bab
consecutivamente y se observa que terminamos en el
estado r.

2.1.5
PALABRA ACEPTADA POR UN AFD.

Decimos que * es una palabra aceptada por el
autmata finito determinista M si desde el estado inicial
entrando consecutivamente de izquierda a derecha los
smbolos de la palabra en cuestin, se alcanza un estado
final. Expresado con smbolos si ( q ,
.
0
) F

Ejemplos:
Las cadenas abb, baa, b, abbaaa son palabras aceptadas
por M1. Las cadenas 01, 0001, 001001 son palabras
aceptadas por M2.

2.1.6
LENGUAJE ACEPTADO POR UN AFD.

Es el conjunto de todas las palabras aceptadas, es decir:
L( M ) = {
*


: ( q ,

0
) F}

Ejemplos:
El lenguaje de M2 son todas las cadenas de ceros y unos
que empiezan por cero y tiene al menos un uno
L( M ) = {
*
x 1 y : x, y }

2.1.7
EQUIVALENCIA DE AFDS.

Sean M y M dos AFDs, decimos que son equivalentes si
L(M)=L(M`).

Segn lo que hemos dicho hasta el momento los AFDs se
caracterizan por las palabras que aceptan y es menos
importante la estructura interna de la mquina, el nmero
de 23


2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
( q,ba) = (
( q,b) ,a) = ( q,a) = p ( q,bab) = (
( q,ba) ,b)= ( p,b) = r En el diagrama se pueden
seguir los arcos desde q, con los smbolos bab
consecutivamente y se observa que terminamos en el
estado r.

2.1.5
PALABRA ACEPTADA POR UN AFD.

Decimos que * es una palabra aceptada por el
autmata finito determinista M si desde el estado inicial
entrando consecutivamente de izquierda a derecha los
smbolos de la palabra en cuestin, se alcanza un estado
final. Expresado con smbolos si ( q ,
.
0
) F

Ejemplos:
Las cadenas abb, baa, b, abbaaa son palabras aceptadas
por M1. Las cadenas 01, 0001, 001001 son palabras
aceptadas por M2.

2.1.6
LENGUAJE ACEPTADO POR UN AFD.

Es el conjunto de todas las palabras aceptadas, es decir:
L( M ) = {
*


: ( q ,

0
) F}

Ejemplos:
El lenguaje de M2 son todas las cadenas de ceros y unos
que empiezan por cero y tiene al menos un uno
L( M ) = {
*
x 1 y : x, y }

2.1.7
EQUIVALENCIA DE AFDS.

Sean M y M dos AFDs, decimos que son equivalentes si
L(M)=L(M`).

Segn lo que hemos dicho hasta el momento los AFDs se
caracterizan por las palabras que aceptan y es menos
importante la estructura interna de la mquina, el nmero
de


2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
estados, cuntos estados finales tenga, etc Digamos que
un AFD es principalmente una especie de filtro de todas las
cadenas posibles sobre el alfabeto de entrada. Los AFDs
tienen muchas utilidades, en particular a nosotros nos
interesa especialmente su utilidad como analizadores
lxicos. Cuando, por ejemplo, en un programa necesitamos
una expresin algebraica del tipo (a+b)*c/(d+e) debe estar
correctamente escrita y de comprobarlo se encarga
precisamente un analizador construido a partir de un
autmata.
Lo ms normal es que tengamos un lenguaje de inters L
sobre un alfabeto y construyamos un AFD cuyo lenguaje
sea precisamente L.

Ejemplo:
Construir un AFD sobre el alfabeto ={0,1} cuyo lenguaje
sea

L={cadenas que terminan en 00}

Un AFD para este lenguaje es

Fig, 2.4. AFD cuyo lenguaje es L={cadenas que terminan
en 00}.

Antes de terminar esta seccin damos alguna definicin
ms

2.1.8
ESTADOS INACCESIBLES.

Sea M=(Q,,,q0,F) un AFD. Un estado qQ decimos que
es inaccesible, si no existe ninguna palabra sobre el
alfabeto de entrada que partiendo desde q0 llegue a q. Con
smbolos ser

q inaccesible si
*

, ( q ,

0
) q

Los estados que no son inaccesibles decimos que son
accesibles. Si eliminamos los estados inaccesibles y todas
sus transiciones el AFD obtenido es equivalente al dado.


2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)
estados, cuntos estados finales tenga, etc Digamos que
un AFD es principalmente una especie de filtro de todas las
cadenas posibles sobre el alfabeto de entrada. Los AFDs
tienen muchas utilidades, en particular a nosotros nos
interesa especialmente su utilidad como analizadores
lxicos. Cuando, por ejemplo, en un programa necesitamos
una expresin algebraica del tipo (a+b)*c/(d+e) debe estar
correctamente escrita y de comprobarlo se encarga
precisamente un analizador construido a partir de un
autmata.
Lo ms normal es que tengamos un lenguaje de inters L
sobre un alfabeto y construyamos un AFD cuyo lenguaje
sea precisamente L.

Ejemplo:
Construir un AFD sobre el alfabeto ={0,1} cuyo lenguaje
sea

L={cadenas que terminan en 00}

Un AFD para este lenguaje es

Fig, 2.4. AFD cuyo lenguaje es L={cadenas que terminan
en 00}.

Antes de terminar esta seccin damos alguna definicin
ms

2.1.8
ESTADOS INACCESIBLES.

Sea M=(Q,,,q0,F) un AFD. Un estado qQ decimos que
es inaccesible, si no existe ninguna palabra sobre el
alfabeto de entrada que partiendo desde q0 llegue a q. Con
smbolos ser

q inaccesible si
*

, ( q ,

0
) q

Los estados que no son inaccesibles decimos que son
accesibles. Si eliminamos los estados inaccesibles y todas
sus transiciones el AFD obtenido es equivalente al dado.



2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)

Ejemplo:
En el AFD M3 de la figura, el estado r es inaccesible por
que no se puede alcanzar a partir del estado inicial

Fig. 2.5. M3 con el estado r inaccesible.

2.1.9 AUTMATA
CONEXO.

Un AFD decimos que es conexo si no tiene estados
inaccesibles. Si un AFD no es conexo basta eliminar los
estados inaccesibles y todas sus transiciones (las de
entrada y las de salida) para obtener un nuevo AFD conexo
equivalente al de partida.

Ejemplo:
El AFD M4 obtenido quitando a M3 el estado r y sus
transiciones, es conexo Fig. 2.6. M4 que es conexo y
equivalente a M3.




2. Autmatas Finitos

2.1 Autmatas Finitos Deterministas (AFD)

Ejemplo:
En el AFD M3 de la figura, el estado r es inaccesible por
que no se puede alcanzar a partir del estado inicial

Fig. 2.5. M3 con el estado r inaccesible.

2.1.9 AUTMATA
CONEXO.

Un AFD decimos que es conexo si no tiene estados
inaccesibles. Si un AFD no es conexo basta eliminar los
estados inaccesibles y todas sus transiciones (las de
entrada y las de salida) para obtener un nuevo AFD conexo
equivalente al de partida.

Ejemplo:
El AFD M4 obtenido quitando a M3 el estado r y sus
transiciones, es conexo Fig. 2.6. M4 que es conexo y
equivalente a M3.


2.1 Autmatas Finitos Deterministas (AFD)
2.1.10 CONSTRUCCIN DE UN ANALIZADOR LXICO
A PARTIR DE UN
AFD.

Daremos a continuacin un mtodo genrico de
construccin de un trozo de programa que nos vale como
analizador de las palabras del lenguaje de un AFD dado,
M=(Q, , q0, , F).
Como datos de entrada se introducen el alfabeto de
entrada de la mquina y una tabla M=( m ij) de orden rc
siendo r=|Q| y c=|| +1 donde la filas se rotulan con el
nombre de los estados del autmata, las c primeras
columnas se rotulan con los smbolos del alfabeto de
entrada y la ltima con fdc (fin de cadena); en la posicin
(i,j) se escribe m = q , a para i=1,,r y j=1,,(c-1), es
decir las (c-1) primeras ij
( i j)
columnas son exactamente la tabla del autmata, sin
marcar el estado inicial ni los finales, y la ltima columna se
rellena de la siguiente manera: si la fila corresponde a un
estado final q iF, entonces m ic="aceptar", pero si q iF,
entonces m ic="e".

Un algoritmo genrico, debe tratar de emular el
funcionamiento del AFD, para ello se inicializa una variable
'estado' con el estado inicial de la mquina concreta que
tengamos y a partir de ah se manda leer de la entrada,
clasificar el smbolo ledo, y en caso de que sea vlido
cambiar de estado segn lo que diga la matriz introducida.
Si cuando se ha acabado de leer la palabra completa, es
decir cuando el smbolo actual en la cinta de entrada es la
marca de 'fin de cadena', no se ha alcanzado un estado
final, la palabra leda no es del lenguaje del AFD y en la
tabla se lee 'e' (recurdese como se construy la columna
de la matriz de entrada rotulada con 'fdc') y debe dar un
mensaje de error; si la palabra ha logrado llegar a un
estado final el estado que se alcance ser
'Aceptar'. Este modelo es vlido para cualquier AFD.
Pasamos estas ideas a un algoritmo genrico:

ESTADO:=q0
REPETIR
LEER siguiente smbolo

CASO smbolo DE
SI
smbolo, ENTRADA:=smbolo


SI smbolo es la marca de fin de cadena, ENTRADA:="fdc"


SI smbolo no es ninguno de los anteriores, salir a la rutina
de ERROR
FIN
CASO
ESTADO:= Tabla(ESTADO, ENTRADA)
SI ESTADO:="e" ENTONCES salir a la rutina de ERROR


2.1 Autmatas Finitos Deterministas (AFD)
2.1.10 CONSTRUCCIN DE UN ANALIZADOR LXICO
A PARTIR DE UN
AFD.

Daremos a continuacin un mtodo genrico de
construccin de un trozo de programa que nos vale como
analizador de las palabras del lenguaje de un AFD dado,
M=(Q, , q0, , F).
Como datos de entrada se introducen el alfabeto de
entrada de la mquina y una tabla M=( m ij) de orden rc
siendo r=|Q| y c=|| +1 donde la filas se rotulan con el
nombre de los estados del autmata, las c primeras
columnas se rotulan con los smbolos del alfabeto de
entrada y la ltima con fdc (fin de cadena); en la posicin
(i,j) se escribe m = q , a para i=1,,r y j=1,,(c-1), es
decir las (c-1) primeras ij
( i j)
columnas son exactamente la tabla del autmata, sin
marcar el estado inicial ni los finales, y la ltima columna se
rellena de la siguiente manera: si la fila corresponde a un
estado final q iF, entonces m ic="aceptar", pero si q iF,
entonces m ic="e".

Un algoritmo genrico, debe tratar de emular el
funcionamiento del AFD, para ello se inicializa una variable
'estado' con el estado inicial de la mquina concreta que
tengamos y a partir de ah se manda leer de la entrada,
clasificar el smbolo ledo, y en caso de que sea vlido
cambiar de estado segn lo que diga la matriz introducida.
Si cuando se ha acabado de leer la palabra completa, es
decir cuando el smbolo actual en la cinta de entrada es la
marca de 'fin de cadena', no se ha alcanzado un estado
final, la palabra leda no es del lenguaje del AFD y en la
tabla se lee 'e' (recurdese como se construy la columna
de la matriz de entrada rotulada con 'fdc') y debe dar un
mensaje de error; si la palabra ha logrado llegar a un
estado final el estado que se alcance ser
'Aceptar'. Este modelo es vlido para cualquier AFD.
Pasamos estas ideas a un algoritmo genrico:

ESTADO:=q0
REPETIR
LEER siguiente smbolo

CASO smbolo DE
SI
smbolo, ENTRADA:=smbolo


SI smbolo es la marca de fin de cadena, ENTRADA:="fdc"


SI smbolo no es ninguno de los anteriores, salir a la rutina
de ERROR
FIN
CASO
ESTADO:= Tabla(ESTADO, ENTRADA)
SI ESTADO:="e" ENTONCES salir a la rutina de ERROR

2.1 Autmatas Finitos Deterministas (AFD)
FIN SI
HASTA ESTADO:="aceptar"

Ejemplo:
La matriz correspondiente a nuestra mquina M1 es:

a
b fdc
p q
r e
q p
q e
r r
r
aceptar
Tabla 2.2. Tabla del analizador lxico del autmata M1.

en la rutina anterior basta sustituir la inicializacin de la
variable ESTADO en la primera lnea del algoritmo por
ESTADO:=p, puesto que en nuestro autmata el estado
inicial es p.

Si nuestro AFD est incompleto en la matriz de entrada del
analizador podemos suprimir la fila correspondiente al
estado de absorcin y en las casillas correspondientes a
transiciones que lleguen a dicho estado escribimos una "e".

Ejemplo:
La matriz asociada a M3 es
0 1 fdc
p q s e
q r q e
r s s aceptar
s s s e
Tabla 2.2. Tabla del analizador lxico del autmata M3
completo.

bien

0 1 fdc
p q e
e
q r
q e
r e
e
aceptar

2.1 Autmatas Finitos Deterministas (AFD)
FIN SI
HASTA ESTADO:="aceptar"

Ejemplo:
La matriz correspondiente a nuestra mquina M1 es:

a
b fdc
p q
r e
q p
q e
r r
r
aceptar
Tabla 2.2. Tabla del analizador lxico del autmata M1.

en la rutina anterior basta sustituir la inicializacin de la
variable ESTADO en la primera lnea del algoritmo por
ESTADO:=p, puesto que en nuestro autmata el estado
inicial es p.

Si nuestro AFD est incompleto en la matriz de entrada del
analizador podemos suprimir la fila correspondiente al
estado de absorcin y en las casillas correspondientes a
transiciones que lleguen a dicho estado escribimos una "e".

Ejemplo:
La matriz asociada a M3 es
0 1 fdc
p q s e
q r q e
r s s aceptar
s s s e
Tabla 2.2. Tabla del analizador lxico del autmata M3
completo.

bien

0 1 fdc
p q e
e
q r
q e
r e
e
aceptar


2.1 Autmatas Finitos Deterministas (AFD)
Tabla 2.3. Tabla del analizador lxico del autmata M3 sin
el estado de absorcin.

2.1.11 MINIMIZACIN DE UN AFD.
Dado un AFD se trata de construir otro equivalente pero
que sea mnimo en cuanto al nmero de estados.

Sea (Q, , q0, , F) un AFD. Definimos una relacin de
equivalencia en Q: Dos estados p,qQ son equivalentes,
pEq, si *, se tiene ((p,)F(q,)F)
El conjunto de estados del AFD mnimo es el conjunto
cociente de esta relacin de equivalencia de estados Q/E.
Para el clculo de este conjunto cociente definimos:
Dos estados p,qQ son equivalentes de orden r (r0),
pErq, si * tal que ||r se tiene ((p,)F(q,)F)
Para cada r la relacin Er es de equivalencia. De las
definiciones anteriores se tiene pEqpErq, r0.

Para obtener Q/E se va calculando Q/E0, Q/E1,... hasta
que Q/Er=Q/Er+1=Q/E.
Lo hacemos por recurrencia sobre r.
Para r=0, como (p,)=p, dos estados p y q pueden ser
equivalentes de orden 0
slo si ambos son estados finales (p,qF) o si ambos son
estados no finales (p,qF) as el conjunto cociente de la
relacin de equivalencia E0 ser Q/E0 = { F, F }.
Supongamos que hemos calculado el conjunto cociente
para la relacin de equivalencia de estados de orden r,
Q/Er={C1,C2,,Ci,,Ck}.
Queremos construir Q/Er+1.
Para cada CiQ/Er ocurre uno de los dos casos
excluyentes siguientes: i) Para todo a, existe un j tal
que (Ci, a)Cj , entonces incluimos Ci en Q/Er+1.
ii) Existe a tal que para todo j=1,,k, (Ci,a) Cj,
entonces hacemos Ci=Ci1Ci2 de manera que para cada
uno de los dos subconjuntos creados
Tabla 2.3. Tabla del analizador lxico del autmata M3
sin el estado de absorcin.

MINIMIZACIN DE UN AFD.
Dado un AFD se trata de construir otro equivalente pero
que sea mnimo en cuanto al nmero de estados.

Sea (Q, , q0, , F) un AFD. Definimos una relacin de
equivalencia en Q: Dos estados p,qQ son equivalentes,
pEq, si *, se tiene ((p,)F(q,)F)
El conjunto de estados del AFD mnimo es el conjunto
cociente de esta relacin de equivalencia de estados Q/E.
Para el clculo de este conjunto cociente definimos:
Dos estados p,qQ son equivalentes de orden r (r0),
pErq, si * tal que ||r se tiene ((p,)F(q,)F)
Para cada r la relacin Er es de equivalencia. De las
definiciones anteriores se tiene pEqpErq, r0.

Para obtener Q/E se va calculando Q/E0, Q/E1,... hasta
que Q/Er=Q/Er+1=Q/E.
Lo hacemos por recurrencia sobre r.
Para r=0, como (p,)=p, dos estados p y q pueden ser
equivalentes de orden 0
slo si ambos son estados finales (p,qF) o si ambos son
estados no finales (p,qF) as el conjunto cociente de la
relacin de equivalencia E0 ser Q/E0 = { F, F }.
Supongamos que hemos calculado el conjunto cociente
para la relacin de equivalencia de estados de orden r,
Q/Er={C1,C2,,Ci,,Ck}.
Queremos construir Q/Er+1.
Para cada CiQ/Er ocurre uno de los dos casos
excluyentes siguientes: i) Para todo a, existe un j tal
que (Ci, a)Cj , entonces incluimos Ci en Q/Er+1.
ii) Existe a tal que para todo j=1,,k, (Ci,a) Cj,
entonces hacemos Ci=Ci1Ci2 de manera que para cada
uno de los dos subconjuntos creados

existan j y k tales que (Ci1,a) Cj y (Ci2, a) Ck e
incluimos Ci1 y Ci2 en Q/Er+1 eliminando Ci.

Ejemplo:
Sea el AFD M4 dado por la tabla

a b
p r q
q
r
q
*r s
t
*s r
t
t
t
q
u
u
p
Tabla 2.4. Tabla del autmata M4.

Vamos a minimizarlo. Primero observamos que no es
conexo y que 'u' es un estado inaccesible. Eliminamos
dicho estado y sus transiciones y nos queda a b
p r q
q
r
q
*r s t
*s r t
t
t
q
Tabla 2.5. Tabla del autmata M4 sin el estdo inaccesible
u.

Cuidamos de que estn todas las transiciones (el AFD
debe estar completo antes de minimizarlo).
Consideramos ahora el cociente

Q/E0={ F, F }={[r,s],[p,q,t]}={C01, C02}.

Veamos si los estados r y s son equivalentes de orden 1.
Consideramos (C01, a) = ([r,s],a) = {r,s} C01
(C01,b) = ([r,s],b) ={t} C02

existan j y k tales que (Ci1,a) Cj y (Ci2, a) Ck e
incluimos Ci1 y Ci2 en Q/Er+1 eliminando Ci.

Ejemplo:
Sea el AFD M4 dado por la tabla

a b
p r q
q
r
q
*r s
t
*s r
t
t
t
q
u
u
p
Tabla 2.4. Tabla del autmata M4.

Vamos a minimizarlo. Primero observamos que no es
conexo y que 'u' es un estado inaccesible. Eliminamos
dicho estado y sus transiciones y nos queda a b
p r q
q
r
q
*r s t
*s r t
t
t
q
Tabla 2.5. Tabla del autmata M4 sin el estdo inaccesible
u.

Cuidamos de que estn todas las transiciones (el AFD
debe estar completo antes de minimizarlo).
Consideramos ahora el cociente

Q/E0={ F, F }={[r,s],[p,q,t]}={C01, C02}.

Veamos si los estados r y s son equivalentes de orden 1.
Consideramos (C01, a) = ([r,s],a) = {r,s} C01
(C01,b) = ([r,s],b) ={t} C02


vemos que se ajusta al punto i) anterior, luego esa clase
entera pasa a ser una clase tambin en Q/E1.
Veamos ahora lo que ocurre con la clase C 02 de Q/E0.
Consideramos ( C 02, a) = ([ p,q,t], a) = { r,t}
( C 02, b) = ([ p,q,t], b) = { q} C 2

como ( C 02, a) C 01 y ( C 2, a) C 02, estos tres
estados no son equivalentes de orden 1. Estamos en el
caso descrito en el punto ii) por lo que tenemos que dividir
esa clase en dos subclases que s verifiquen la propiedad
mencionada. La divisin correcta es

C 02 = C 021 C 022 con C 021={ p,q} y C 022={ t}

de manera que (C021, a)={r}C1 y (C022, a)={t}C2.
Tenemos ahora el conjunto cociente Q / E = C ,C ,C
que renombramos C =
, C =
y
12
{ p, }
q
11
{ r, }
s
1
{ 01 021 022}
C =
(con el primer subndice indicamos siempre a que cociente
pertenece, en 13
{ t}
este caso a Q/E1).
Estudiamos ahora el conjunto Q/E2. La clase C 11 pasa
tal cual (comprobarlo), la clase C13 tambin porque es una
clase unitaria y no se puede subdividir ms. En cuanto a la
clase C12 = {p,q} ser

(C12,a) = {r}C1
(C12,b) = {q}C2

luego el conjunto cociente es Q/E1=Q/E2 y hemos
terminado.

Este proceso se suele escribir ordenadamente en una tabla
cuyas filas son clases y cuyas columnas van rotuladas con
los smbolos del alfabeto de entrada. En el cruce de fila y
columna se pone el conjunto imagen de la clase completa
con el smbolo correspondiente. Si est contenido en
alguna de las clases actuales se mantiene y si no est
contenido en ninguna se subdivide y se vuelve a empezar.
En nuestro caso quedara algo as
vemos que se ajusta al punto i) anterior, luego esa clase entera
pasa a ser una clase tambin en Q/E1.
Veamos ahora lo que ocurre con la clase C 02 de Q/E0.
Consideramos ( C 02, a) = ([ p,q,t], a) = { r,t}
( C 02, b) = ([ p,q,t], b) = { q} C 2

como ( C 02, a) C 01 y ( C 2, a) C 02, estos tres
estados no son equivalentes de orden 1. Estamos en el
caso descrito en el punto ii) por lo que tenemos que dividir
esa clase en dos subclases que s verifiquen la propiedad
mencionada. La divisin correcta es

C 02 = C 021 C 022 con C 021={ p,q} y C 022={ t}

de manera que (C021, a)={r}C1 y (C022, a)={t}C2.
Tenemos ahora el conjunto cociente Q / E = C ,C ,C
que renombramos C =
, C =
y
12
{ p, }
q
11
{ r, }
s
1
{ 01 021 022}
C =
(con el primer subndice indicamos siempre a que cociente
pertenece, en 13
{ t}
este caso a Q/E1).
Estudiamos ahora el conjunto Q/E2. La clase C 11 pasa
tal cual (comprobarlo), la clase C13 tambin porque es una
clase unitaria y no se puede subdividir ms. En cuanto a la
clase C12 = {p,q} ser

(C12,a) = {r}C1
(C12,b) = {q}C2

luego el conjunto cociente es Q/E1=Q/E2 y hemos
terminado.

Este proceso se suele escribir ordenadamente en una tabla
cuyas filas son clases y cuyas columnas van rotuladas con
los smbolos del alfabeto de entrada. En el cruce de fila y
columna se pone el conjunto imagen de la clase completa
con el smbolo correspondiente. Si est contenido en
alguna de las clases actuales se mantiene y si no est
contenido en ninguna se subdivide y se vuelve a empezar.
En nuestro caso quedara algo as



a
b
[r,s]
{r,s}C1
qC2
[p,q,t] {r,t}C1,C2
[p,q]
{r}C1 {q}C21
[t]
{t}C22 {q}C21
Tabla 2.6. Tabla para la minimizacin de M4.

El AFDmn equivalente tiene slo tres estados y su tabla es


a
b


a
b
*C1 C1 C3

[p,q
[r,s] [p,q]
C2 C1 C2
bien
*[r,s] [r,s]
[t]
C3 C3 C2

[t]
[t]
[p,q]
Tabla 2.7. AFD mnimo equivalente a M4.

Grficamente la maquina M4 y su equivalente mnimo son


Fig 2.7. Diagrama de M4 y de su equivalente mnimo.


AUTMATA FINITO NO DETERMINISTA (AFND).


DEFINICIN DE AFND.

El tipo de autmata que vamos a definir a continuacin es
esencialmente muy parecido al que definimos como AFD.
La diferencia fundamental es que ahora permitiremos que
desde un estado, con un smbolo del alfabeto se alcance
no un nico estado, sino un

2.
a
b
[r,s]
{r,s}C1
qC2
[p,q,t] {r,t}C1,C2
[p,q]
{r}C1 {q}C21
[t]
{t}C22 {q}C21
Tabla 2.6. Tabla para la minimizacin de M4.

El AFDmn equivalente tiene slo tres estados y su tabla es


a
b


a
b
*C1 C1 C3

[p,q
[r,s] [p,q]
C2 C1 C2
bien
*[r,s] [r,s]
[t]
C3 C3 C2

[t]
[t]
[p,q]
Tabla 2.7. AFD mnimo equivalente a M4.

Grficamente la maquina M4 y su equivalente mnimo son


Fig 2.7. Diagrama de M4 y de su equivalente mnimo.


2.2 AUTMATA FINITO NO DETERMINISTA (AFND).

DEFINICIN DE AFND.

El tipo de autmata que vamos a definir a continuacin es
esencialmente muy parecido al que definimos como AFD.
La diferencia fundamental es que ahora permitiremos que
desde un estado, con un smbolo del alfabeto se alcance
no un nico estado, sino un




subconjunto de estados (incluido el vaco). Formalmente un
autmata finito no determinista M es una quntupla (Q, ,
q0 ,, F) donde

Q es un conjunto finito a cuyos elementos llamamos
estados
es un alfabeto que llamamos alfabeto de entrada
q0 es un estado sealado que llamamos estado inicial
F es un subconjunto de Q, no vaco, cuyos elementos
llamamos estados finales es una aplicacin de
QP(Q), que llamamos funcin de transicin Obsrvese
que ahora, desde un estado, con un smbolo de entrada se
alcanza un conjunto de estados. Con smbolos (q,a) =
AQ.

Ejemplo:
Sea M5= (Q,,q0,,F) siendo Q={p,q,r,s}, ={0,1,2}, sea p
el estado inicial, F={q,s} y la funcin de transicin dada
por

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

Segn nuestra definicin M5 es un AFND.

2.2.2

REPRESENTACIN DE UN AFND.
Tenemos dos maneras de representar un AFND

Con una tabla: se ponen tantas filas como estados, y
tantas columnas como smbolos forman el alfabeto.
Marcamos el estado inicial con una flecha de entrada y
cada uno de los estados finales con un asterisco. En cruce
de la fila marcada con el estado q y la columna marcada
con el smbolo a del alfabeto ponemos el conjunto de
estados dado por (q,a).

Con un diagrama: Cada estado no final se representa
con un circulo; cada estado final se representa con un
doble circulo; se seala el estado inicial con una flecha


subconjunto de estados (incluido el vaco). Formalmente un
autmata finito no determinista M es una quntupla (Q, ,
q0 ,, F) donde

Q es un conjunto finito a cuyos elementos llamamos
estados
es un alfabeto que llamamos alfabeto de entrada
q0 es un estado sealado que llamamos estado inicial
F es un subconjunto de Q, no vaco, cuyos elementos
llamamos estados finales es una aplicacin de
QP(Q), que llamamos funcin de transicin Obsrvese
que ahora, desde un estado, con un smbolo de entrada se
alcanza un conjunto de estados. Con smbolos (q,a) =
AQ.

Ejemplo:
Sea M5= (Q,,q0,,F) siendo Q={p,q,r,s}, ={0,1,2}, sea p
el estado inicial, F={q,s} y la funcin de transicin dada
por

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

Segn nuestra definicin M5 es un AFND.

2.2.2

REPRESENTACIN DE UN AFND.
Tenemos dos maneras de representar un AFND

Con una tabla: se ponen tantas filas como estados, y
tantas columnas como smbolos forman el alfabeto.
Marcamos el estado inicial con una flecha de entrada y
cada uno de los estados finales con un asterisco. En cruce
de la fila marcada con el estado q y la columna marcada
con el smbolo a del alfabeto ponemos el conjunto de
estados dado por (q,a).

Con un diagrama: Cada estado no final se representa
con un circulo; cada estado final se representa con un
doble circulo; se seala el estado inicial con una flecha






entrando, sin etiqueta; si (q,a)=A, por cada estado rA se
dibuja una flecha dirigida del estado de partida q al de
llegada r etiquetada a.

Ejemplo:
La mquina M5 del ejemplo se representa con una tabla

0 1
p q,r
*q q
q,s
r

s
*s p

Tabla 2.8. Tabla de transiciones de M5.

Y con un diagrama


Fig. 2.8. Diagrama de M5.

Observemos que este AFND presenta dos puntos de no
determinismo: uno en 'p' con 0
que pasa a 'q' y a 'r', y otro en 'q' con uno que pasa a 'q' y a
's'. Observemos tambin que tanto la tabla como el
diagrama contienen toda la informacin del autmata.

Podemos visualizarlo casi como un AFD: bombillas que se
vern encendidas cuando el estado en cuestin est
activo, las bombillas de estado final de un color diferente-
digamos, verde- y una palabra que ser procesada smbolo
a smbolo en la cinta de entrada. Al comenzar se enciende
slo el estado inicial; a partir de ese momento y a
diferencia de lo que sucede en los AFDs, en cada
momento podra verse encedido un solo estado, varios o
incluso apagarse todos, precisamente debido a que las
transiciones


)


entrando, sin etiqueta; si (q,a)=A, por cada estado rA se
dibuja una flecha dirigida del estado de partida q al de
llegada r etiquetada a.

Ejemplo:
La mquina M5 del ejemplo se representa con una tabla

0 1
p q,r
*q q
q,s
r

s
*s p

Tabla 2.8. Tabla de transiciones de M5.

Y con un diagrama


Fig. 2.8. Diagrama de M5.

Observemos que este AFND presenta dos puntos de no
determinismo: uno en 'p' con 0
que pasa a 'q' y a 'r', y otro en 'q' con uno que pasa a 'q' y a
's'. Observemos tambin que tanto la tabla como el
diagrama contienen toda la informacin del autmata.

Podemos visualizarlo casi como un AFD: bombillas que se
vern encendidas cuando el estado en cuestin est
activo, las bombillas de estado final de un color diferente-
digamos, verde- y una palabra que ser procesada smbolo
a smbolo en la cinta de entrada. Al comenzar se enciende
slo el estado inicial; a partir de ese momento y a
diferencia de lo que sucede en los AFDs, en cada
momento podra verse encedido un solo estado, varios o
incluso apagarse todos, precisamente debido a que las
transiciones

ahora son conjuntos de estados. (En los AFDs en todo
momento se encuentra exactamente un estado activo).

EXTENSIN DE LA FUNCIN DE TRANSICIN.
Se trata, como ya hicimos con los AFD, de definir una
funcin que describa qu estados se alcanzan desde un
estado q si a continuacin en vez de entrar un slo smbolo
(en cuyo caso se alcanzaran los estados descritos por
(q,a)), entrara una palabra *.
Antes de continuar convenimos que para AQ escribiremos

( A,a) = ( r,a)
r A

Definimos Q *

+
+
P( Q), por recurrencia sobre la longitud de la palabra .
Si ||=0 entonces = y definimos ( q,) = q para
cada estado (si no hay entrada no hay cambio de estado).
Supongamos definido ( q,x) para cada x* tal que
|x|n.
Sea * tal que ||=n+1, entonces se puede escribir
=xa con |x|=n y a.
Ahora definimos qQ ,
( q,xa) = (
( q,x) ,a) = ( r,a)

r ( q,x)
Para las palabras de longitud 1 se tiene
( q, ) =
a
( q,a) = (
( q,) ,a)= ( q,a)
es decir la funcin de extensin a palabras y la funcin de
transicin original coinciden para palabras de longitud 1.

2.2.4 PALABRA
ACEPTADA POR UN AFND.

Sea * decimos que es una palabra aceptada por el
AFND si partiendo del estado inicial logra alcanzar alguno
de los estados finales, es decir si ( q ,

0
) F

Ejemplo:


ahora son conjuntos de estados. (En los AFDs en todo
momento se encuentra exactamente un estado activo).

2.2.3

EXTENSIN DE LA FUNCIN DE TRANSICIN.
Se trata, como ya hicimos con los AFD, de definir una
funcin que describa qu estados se alcanzan desde un
estado q si a continuacin en vez de entrar un slo smbolo
(en cuyo caso se alcanzaran los estados descritos por
(q,a)), entrara una palabra *.
Antes de continuar convenimos que para AQ escribiremos

( A,a) = ( r,a)
r A

Definimos Q *

+
+
P( Q), por recurrencia sobre la longitud de la palabra .
Si ||=0 entonces = y definimos ( q,) = q para
cada estado (si no hay entrada no hay cambio de estado).
Supongamos definido ( q,x) para cada x* tal que
|x|n.
Sea * tal que ||=n+1, entonces se puede escribir
=xa con |x|=n y a.
Ahora definimos qQ ,
( q,xa) = (
( q,x) ,a) = ( r,a)

r ( q,x)
Para las palabras de longitud 1 se tiene
( q, ) =
a
( q,a) = (
( q,) ,a)= ( q,a)
es decir la funcin de extensin a palabras y la funcin de
transicin original coinciden para palabras de longitud 1.

2.2.4 PALABRA
ACEPTADA POR UN AFND.

Sea * decimos que es una palabra aceptada por el
AFND si partiendo del estado inicial logra alcanzar alguno
de los estados finales, es decir si ( q ,

0
) F

Ejemplo:

Las palabras 0, 01, 010101 son aceptadas por M5.

LENGUAJE ACEPTADO POR UN AFND.

Es el conjunto de todas las palabras aceptadas es decir

L( M)={ * : ( q0,) F }

Los autmatas finitos deterministas son un caso particular
de los no deterministas en que la imagen de cada par ( q,
a) es un conjunto unitario.


CONSTRUCCIN DE UN AFD EQUIVALENTE A UN
AFND DADO.

Sea M = (Q, , q0, , F) un AFND que supondremos
conocido. Queremos construir un AFD, M, tal que
L(M)=L(M). Antes de continuar debemos recordar que los
autmatas se caracterizan por su lenguaje asociado y que
la tcnica que vamos a presentar garantiza la existencia de
un AFD equivalente, pero en ningn caso se da la unicidad,
es decir hay muchos AFDs equivalentes a M. Nosotros
construiremos uno de ellos.

La idea para la construccin de la nueva mquina es que al
ser Q un conjunto finito, el nmero de sus subconjuntos
tambin lo es. Si tenemos que para cierto estado qQ y
para cierto smbolo del alfabeto a, (q,a) = AP(Q), a fin
de cuentas ese subconjunto podra ser representado por
un nico estado en la nueva mquina que queremos
construir. De modo que como conjunto de estados para M
tomamos Q = P(Q), como alfabeto de entrada tomamos
por supuesto el mismo , como estado inicial tomamos
{q0}, como conjunto de estados finales tomamos todos los
subconjuntos de Q que contengan algn estado final,
formalmente

F = {BP(Q) : BF }

y definimos la nueva funcin de transicin :QQ
como sigue: (A,a)=(A,a)=qA(q,a)


Las palabras 0, 01, 010101 son aceptadas por M5.

2.2.5
LENGUAJE ACEPTADO POR UN AFND.

Es el conjunto de todas las palabras aceptadas es decir

L( M)={ * : ( q0,) F }

Los autmatas finitos deterministas son un caso particular
de los no deterministas en que la imagen de cada par ( q,
a) es un conjunto unitario.

2.2.6

CONSTRUCCIN DE UN AFD EQUIVALENTE A UN
AFND DADO.

Sea M = (Q, , q0, , F) un AFND que supondremos
conocido. Queremos construir un AFD, M, tal que
L(M)=L(M). Antes de continuar debemos recordar que los
autmatas se caracterizan por su lenguaje asociado y que
la tcnica que vamos a presentar garantiza la existencia de
un AFD equivalente, pero en ningn caso se da la unicidad,
es decir hay muchos AFDs equivalentes a M. Nosotros
construiremos uno de ellos.

La idea para la construccin de la nueva mquina es que al
ser Q un conjunto finito, el nmero de sus subconjuntos
tambin lo es. Si tenemos que para cierto estado qQ y
para cierto smbolo del alfabeto a, (q,a) = AP(Q), a fin
de cuentas ese subconjunto podra ser representado por
un nico estado en la nueva mquina que queremos
construir. De modo que como conjunto de estados para M
tomamos Q = P(Q), como alfabeto de entrada tomamos
por supuesto el mismo , como estado inicial tomamos
{q0}, como conjunto de estados finales tomamos todos los
subconjuntos de Q que contengan algn estado final,
formalmente

F = {BP(Q) : BF }

y definimos la nueva funcin de transicin :QQ
como sigue: (A,a)=(A,a)=qA(q,a)



es decir la unin de todos los estados que se alcanzan en
la mquina dada desde los estados que estn en A, con el
smbolo a. Ahora M=(Q, , {q0}, , F) es un AFD y
afirmamos que L(M)=L(M).

Con esta construccin queda demostrado que el no
determinismo no aporta nada nuevo al conjunto de los
lenguajes que son abarcables por medio de los AFDs, es
decir
{L* : M=AFD, L=L(M)}={ L* : M =AFND, L=L(M)}.

Ejemplo:
Vamos a construir un AFD equivalente a M5. Aunque
hemos dicho de forma genrica que el conjunto de estados
para la mquina nueva es P(Q), la mayora de las veces
muchos de estos nuevos estados van a ser inaccesibles
por lo que podremos eliminarlos.
Lo que se hace es ir aadiendo estados a partir del estado
inicial que en este caso es {p}, segn vayan apareciendo al
definir la nueva tabla de transiciones. As, al comenzar, es
una tabla abierta, no sabemos cuntos de los nuevos
estados sern accesibles. (Por comodidad no escribimos
las llaves de conjunto).
Las tablas de M5 y M5 son respectivamente





0 1
0 1

p q,r
p q,r
*q,r
q
q,s
*q
q
q,s




r

s

q
q
q,s
*s
p

*q,s
p,q
q,s

*p,q
q,r
q,s
Tabla 2.9. M5 (izquierda) y M5 (derecha), AFD equivalente
a M5.

Y grficamente la nueva mquina equivalente es

es decir la unin de todos los estados que se alcanzan en
la mquina dada desde los estados que estn en A, con el
smbolo a. Ahora M=(Q, , {q0}, , F) es un AFD y
afirmamos que L(M)=L(M).

Con esta construccin queda demostrado que el no
determinismo no aporta nada nuevo al conjunto de los
lenguajes que son abarcables por medio de los AFDs, es
decir
{L* : M=AFD, L=L(M)}={ L* : M =AFND, L=L(M)}.

Ejemplo:
Vamos a construir un AFD equivalente a M5. Aunque
hemos dicho de forma genrica que el conjunto de estados
para la mquina nueva es P(Q), la mayora de las veces
muchos de estos nuevos estados van a ser inaccesibles
por lo que podremos eliminarlos.
Lo que se hace es ir aadiendo estados a partir del estado
inicial que en este caso es {p}, segn vayan apareciendo al
definir la nueva tabla de transiciones. As, al comenzar, es
una tabla abierta, no sabemos cuntos de los nuevos
estados sern accesibles. (Por comodidad no escribimos
las llaves de conjunto).
Las tablas de M5 y M5 son respectivamente





0 1
0 1

p q,r
p q,r
*q,r
q
q,s
*q
q
q,s




r

s

q
q
q,s
*s
p

*q,s
p,q
q,s

*p,q
q,r
q,s
Tabla 2.9. M5 (izquierda) y M5 (derecha), AFD equivalente
a M5.

Y grficamente la nueva mquina equivalente es




Fig.2.9. Diagrama de M5.

Debemos hacer un par de observaciones. El estado
marcado refleja la situacin de todos los estados
inactivos en la mquina original -todas las bombillas
apagadas- y es el estado de absorcin, por tanto si
queremos dibujar el diagrama correspondiente no hace
falta que lo incluyamos. Por otra parte es un estado en s
mismo y debemos recordar que si ahora queremos
minimizar el AFD obtenido es uno de los estados no finales
y no debemos olvidarnos de incluirlo. Lo ms cmodo es
renombrar en este punto los estados.

Fig, 2.10. M5 con los estados renombrados


2.3 AUTMATA FINITO NO DETERMINISTA CON -
TRANSICIONES (AFND-)
Una de las caractersticas de los autmatas vistos hasta
ahora es que sin lectura de un smbolo del alfabeto no hay
transicin. El tipo de mquina que vamos a definir a
continuacin elimina esta restriccin permitiendo cambios
de estado sin lectura.






Fig.2.9. Diagrama de M5.

Debemos hacer un par de observaciones. El estado
marcado refleja la situacin de todos los estados
inactivos en la mquina original -todas las bombillas
apagadas- y es el estado de absorcin, por tanto si
queremos dibujar el diagrama correspondiente no hace
falta que lo incluyamos. Por otra parte es un estado en s
mismo y debemos recordar que si ahora queremos
minimizar el AFD obtenido es uno de los estados no finales
y no debemos olvidarnos de incluirlo. Lo ms cmodo es
renombrar en este punto los estados.

Fig, 2.10. M5 con los estados renombrados


2.3 AUTMATA FINITO NO DETERMINISTA CON -
TRANSICIONES (AFND-)
Una de las caractersticas de los autmatas vistos hasta
ahora es que sin lectura de un smbolo del alfabeto no hay
transicin. El tipo de mquina que vamos a definir a
continuacin elimina esta restriccin permitiendo cambios
de estado sin lectura.


DEFINICIN DE AFND-.
Un autmata finito no determinista con -transiciones es
una quntupla M=(Q,,q0,,F) donde todos los elementos
estn definidos como en los autmatas ya vistos, salvo la
funcin de transicin :Q({})P(Q). Es decir ahora no
slo hay transiciones del tipo (q,a) donde qQ y a, sino
que tambin se definen transiciones del tipo (q,)=AQ.

Ejemplo:
Si la mquina M5 aadimos las transiciones

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

obtenemos una nueva mquina M6.


REPRESENTACIN DE UN AFND-
La forma de representacin es similar a lo visto hasta
ahora

Con una tabla: Se ponen tantas filas como estados
rotuladas con los nombres de los estados; tantas columnas
como smbolos tenga el alfabeto de entrada rotuladas con
los nombres de los smbolos y se aade una columna
rotulada . En el cruce de fila y columna se escribe el
conjunto (q,a), como es habitual.

Mediante un diagrama: Se dibuja un crculo por cada
estado no final y un doble crculo por cada estado final; se
marca el estado inicial con una flecha que entra sin
etiquetar; si r(q,a) se dibuja una flecha con origen en q y
final en r, rotulada a (donde a es un smbolo del alfabeto o
).

Ejemplo:
Para la mquina M6 la tabla es

0 1
p q,r r
*q q
q,s p

DEFINICIN DE AFND-.
Un autmata finito no determinista con -transiciones es
una quntupla M=(Q,,q0,,F) donde todos los elementos
estn definidos como en los autmatas ya vistos, salvo la
funcin de transicin :Q({})P(Q). Es decir ahora no
slo hay transiciones del tipo (q,a) donde qQ y a, sino
que tambin se definen transiciones del tipo (q,)=AQ.

Ejemplo:
Si la mquina M5 aadimos las transiciones

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

obtenemos una nueva mquina M6.

2.3.2

REPRESENTACIN DE UN AFND-
La forma de representacin es similar a lo visto hasta
ahora

Con una tabla: Se ponen tantas filas como estados
rotuladas con los nombres de los estados; tantas columnas
como smbolos tenga el alfabeto de entrada rotuladas con
los nombres de los smbolos y se aade una columna
rotulada . En el cruce de fila y columna se escribe el
conjunto (q,a), como es habitual.

Mediante un diagrama: Se dibuja un crculo por cada
estado no final y un doble crculo por cada estado final; se
marca el estado inicial con una flecha que entra sin
etiquetar; si r(q,a) se dibuja una flecha con origen en q y
final en r, rotulada a (donde a es un smbolo del alfabeto o
).

Ejemplo:
Para la mquina M6 la tabla es

0 1
p q,r r
*q q
q,s p

s

*s p

Tabla 2.10. Tabla para el AFND-,M6.

Y el diagrama

Fig. 2.11. Diagrama del AFND-,M6.



2.3.3

-CLAUSURA DE UN ESTADO
La -clausura de un estado p es el conjunto de estados a
los que se puede llegar desde p slo por caminos
etiquetados .
Se debe observar que siempre p-cl( p) y por tanto -
cl(p).

Ejemplo:
Vamos a escribir las -clausuras de cada uno de los
estados de M6.

-cl(p)={p,r} -cl(q)={p,q,r} -cl(r)={r} -cl(s)={q,s}
Como ya hicimos anteriormente con los AFND para un
subconjunto A de estados escribimos
(A,a)=rA(r,a)

Es sencillo demostrar que -cl(-cl(A))=-cl(A).


2
s

*s p

Tabla 2.10. Tabla para el AFND-,M6.

Y el diagrama

Fig. 2.11. Diagrama del AFND-,M6.



2.3.3

-CLAUSURA DE UN ESTADO
La -clausura de un estado p es el conjunto de estados a
los que se puede llegar desde p slo por caminos
etiquetados .
Se debe observar que siempre p-cl( p) y por tanto -
cl(p).

Ejemplo:
Vamos a escribir las -clausuras de cada uno de los
estados de M6.

-cl(p)={p,r} -cl(q)={p,q,r} -cl(r)={r} -cl(s)={q,s}
Como ya hicimos anteriormente con los AFND para un
subconjunto A de estados escribimos
(A,a)=rA(r,a)

Es sencillo demostrar que -cl(-cl(A))=-cl(A).


EXTENSIN DE LA FUNCIN DE TRANSICIN.
Se trata de nuevo de definir una funcin que describa qu
estados se alcanzan desde un estado q si en vez de entrar
un slo smbolo, entrara una palabra *.
Ser ahora :Q*P(Q) y definimos como siempre
(q,) por recurrencia sobre la longitud de .
Si ||=0 entonces =, definimos qQ, (q,)=-cl(q)
(desde q, sin entrada de ningn smbolo, se alcanzan todos
los estados de la -cl(q)).
Supongamos definido ( q,x) para cada palabra x tal
que |x|n.
Sea * tal que ||=n+1, entonces se puede escribir
=xa con |x|=n. Ahora definimos qQ
(q,xa)=-cl(( (q,x),a)).
Para las palabras de longitud 1 se tiene

( q, ) =
a
( q,a) = cl( (
( q,) ,a) = cl( ( cl( q) , a) es decir la funcin
de extensin a palabras y la funcin de transicin
original no tienen por qu coincidir para palabras de
longitud 1, es decir los smbolos del alfabeto.


PALABRA ACEPTADA POR UN AFND-.
Sea * decimos que es una palabra aceptada por el
AFND- si desde el estado inicial y leyendo la palabra
completa alguno de los estados que se alcanzan es final,
es decir si
( q ,

0
) F


2.3.6

LENGUAJE ACEPTADO POR UN AFND-.
Es el conjunto de todas las palabras aceptadas es decir

L( M ) = { *
: ( q ,

0
) F }

Los AFND son un caso particular de AFND- en que todos
las imgenes (q,) son el conjunto vaco.


EXTENSIN DE LA FUNCIN DE TRANSICIN.
Se trata de nuevo de definir una funcin que describa qu
estados se alcanzan desde un estado q si en vez de entrar
un slo smbolo, entrara una palabra *.
Ser ahora :Q*P(Q) y definimos como siempre
(q,) por recurrencia sobre la longitud de .
Si ||=0 entonces =, definimos qQ, (q,)=-cl(q)
(desde q, sin entrada de ningn smbolo, se alcanzan todos
los estados de la -cl(q)).
Supongamos definido ( q,x) para cada palabra x tal
que |x|n.
Sea * tal que ||=n+1, entonces se puede escribir
=xa con |x|=n. Ahora definimos qQ
(q,xa)=-cl(( (q,x),a)).
Para las palabras de longitud 1 se tiene

( q, ) =
a
( q,a) = cl( (
( q,) ,a) = cl( ( cl( q) , a) es decir la funcin
de extensin a palabras y la funcin de transicin
original no tienen por qu coincidir para palabras de
longitud 1, es decir los smbolos del alfabeto.

2.3.5

PALABRA ACEPTADA POR UN AFND-.
Sea * decimos que es una palabra aceptada por el
AFND- si desde el estado inicial y leyendo la palabra
completa alguno de los estados que se alcanzan es final,
es decir si
( q ,

0
) F


2.3.6

LENGUAJE ACEPTADO POR UN AFND-.
Es el conjunto de todas las palabras aceptadas es decir

L( M ) = { *
: ( q ,

0
) F }

Los AFND son un caso particular de AFND- en que todos
las imgenes (q,) son el conjunto vaco.
CONSTRUCCIN DE UN AFND EQUIVALENTE A UN
AFND- DADO.
Sea M=(Q,,q0,,F) un AFND- que supondremos
conocido. Queremos construir un AFND M tal que L(M) =
L(M).

Antes de continuar debemos de nuevo recordar que esta
construccin garantiza la existencia de un AFND
equivalente, pero en ningn caso se garantiza la unicidad,
es decir hay muchos AFNDs equivalentes a M; nosotros
construiremos uno de ellos.

La idea para la construccin de la nueva mquina es que
desde cualquier estado q de la mquina original, cuando se
lee en cinta un smbolo a del alfabeto, se alcanzan los
nuevos estados en tres tiempos: los que se alcanzan
desde q por transiciones (la -
clausura de q); los que se alcanzan por la lectura del
smbolo ledo, que son ( - cl( q),a) y los que se alcanzan
a partir de stos por las transiciones , que son -
cl( ( cl( q), a)) en definitiva un subconjunto de estados,
concretamente ( q,a).
Adems si ocurre que desde q 0 se llega a algn estado
final por caminos etiquetados , o lo que es lo mismo si -
cl( q 0) F, una de las palabras aceptadas es ; en tal
caso, para que la nueva mquina acepte el estado inicial
debe ser final. De modo que tomamos M=(Q,, q0,,F),
siendo

F
si cl( q 0 ) F =
F' =

F { q 0} si cl( q 0 ) F

y la nueva funcin de transicin como sigue: :QP(Q),

'
( q, ) =
a
( q,a) = cl( ( cl( q) ,a) Ahora M es un AFND y
afirmamos que L(M)=L(M).


Con esta construccin queda demostrado que las
transiciones no aportan nada nuevo al conjunto de los
lenguajes que son abarcables por medio de los AFNDs-.


CONSTRUCCIN DE UN AFND EQUIVALENTE A UN
AFND- DADO.

Sea M=(Q,,q0,,F) un AFND- que supondremos
conocido. Queremos construir un AFND M tal que L(M) =
L(M).

Antes de continuar debemos de nuevo recordar que esta
construccin garantiza la existencia de un AFND
equivalente, pero en ningn caso se garantiza la unicidad,
es decir hay muchos AFNDs equivalentes a M; nosotros
construiremos uno de ellos.

La idea para la construccin de la nueva mquina es que
desde cualquier estado q de la mquina original, cuando se
lee en cinta un smbolo a del alfabeto, se alcanzan los
nuevos estados en tres tiempos: los que se alcanzan
desde q por transiciones (la -
clausura de q); los que se alcanzan por la lectura del
smbolo ledo, que son ( - cl( q),a) y los que se alcanzan
a partir de stos por las transiciones , que son -
cl( ( cl( q), a)) en definitiva un subconjunto de estados,
concretamente ( q,a).
Adems si ocurre que desde q 0 se llega a algn estado
final por caminos etiquetados , o lo que es lo mismo si -
cl( q 0) F, una de las palabras aceptadas es ; en tal
caso, para que la nueva mquina acepte el estado inicial
debe ser final. De modo que tomamos M=(Q,, q0,,F),
siendo

F
si cl( q 0 ) F =
F' =

F { q 0} si cl( q 0 ) F

y la nueva funcin de transicin como sigue: :QP(Q),

'
( q, ) =
a
( q,a) = cl( ( cl( q) ,a) Ahora M es un AFND y
afirmamos que L(M)=L(M).


Con esta construccin queda demostrado que las
transiciones no aportan nada nuevo al conjunto de los
lenguajes que son abarcables por medio de los AFNDs-.

{ L *
: M
= AFND ,L = L( M )}
= { L *
: M = AFND,L = L( M )}
= { L *
: M = AFD,L = L( M )}

Los tres tipos de Autmatas vistos, a los que a partir de
ahora llamaremos simplemente Autmatas Finitos, son
equivalentes en cuanto a los lenguajes que pueden
abarcar.

Ejemplo:
Construimos un AFND equivalente a M6

0 1 -clausura
0 1
p q,r r
p,
r p p,q,r s
*q
q
q,s p
p, q, r
*q
p,q,r p,q,r,s
r
s

r
r

s
*s p s
*s
p,r

Tabla 2.11. Autmata M5(izquierda) y su equivalente sin -
transiciones (derecha).


2.4 EQUIVALENCIA DE AUTMATAS FINITOS Y
GRAMTICAS
REGULARES.

Recordemos que una gramtica decimos que es regular
lineal por la derecha si sus reglas son de una de las tres
formas siguientes S:= o A:= a o A:= a B siendo A,B y S
smbolos no terminales, S el axioma y a un smbolo
terminal.
Lo que veremos a continuacin es que para cualquier
autmata finito existe una gramtica regular lineal a la
derecha equivalente y, recprocamente, que dada una
gramtica regular lineal a la derecha existe un autmata
finito equivalente. O lo que es lo mismo
{ L *
: AF

,L = L( AF )}= { L *
: G
, L = L G
3
( 3)}

Se demuestra por separado cada uno de los trminos de la
doble inclusin.



{ L *
: M
= AFND ,L = L( M )}
= { L *
: M = AFND,L = L( M )}
= { L *
: M = AFD,L = L( M )}

Los tres tipos de Autmatas vistos, a los que a partir de
ahora llamaremos simplemente Autmatas Finitos, son
equivalentes en cuanto a los lenguajes que pueden
abarcar.

Ejemplo:
Construimos un AFND equivalente a M6

0 1 -clausura
0 1
p q,r r
p,
r p p,q,r s
*q
q
q,s p
p, q, r
*q
p,q,r p,q,r,s
r
s

r
r

s
*s p s
*s
p,r

Tabla 2.11. Autmata M5(izquierda) y su equivalente sin -
transiciones (derecha).


2.4 EQUIVALENCIA DE AUTMATAS FINITOS Y
GRAMTICAS
REGULARES.

Recordemos que una gramtica decimos que es regular
lineal por la derecha si sus reglas son de una de las tres
formas siguientes S:= o A:= a o A:= a B siendo A,B y S
smbolos no terminales, S el axioma y a un smbolo
terminal.
Lo que veremos a continuacin es que para cualquier
autmata finito existe una gramtica regular lineal a la
derecha equivalente y, recprocamente, que dada una
gramtica regular lineal a la derecha existe un autmata
finito equivalente. O lo que es lo mismo
{ L *
: AF

,L = L( AF )}= { L *
: G
, L = L G
3
( 3)}

Se demuestra por separado cada uno de los trminos de la
doble inclusin.



GRAMTICA REGULAR EQUIVALENTE A UN AF
DADO.
Sea M =(Q,,q0,,F) un autmata conocido (debe ser un
autmata sin -transiciones).
Queremos construir una gramtica G = (T,N,S,P) tal que
L(M) = L(G).

Tomamos como alfabeto de terminales el alfabeto de
entrada del autmata, ; como conjunto de smbolos no
terminales tomamos Q; como axioma para la gramtica
tomamos q0, el estado inicial del autmata; por ltimo
traducimos las transiciones del autmata en reglas para la
gramtica de la forma siguiente:
si (p,a) = q y qF aadimos la regla p:=aq
si (p,a) = q y qF aadimos las reglas p:=aq y p:=a
si q0F aadimos la regla q0:=.

Ejemplo:
Sea M7 el AFND dado por la tabla

0 1
p q,r
*q q q,s
r
s
*s p
Tabla 2.12. Tabla de M7.

Una gramtica equivalente es G ={{0,1},{p,q,r,s},p, P},
siendo P las reglas p:= 0q / 0 / 0r
q:= 0q / 0 /1q / 1 / 1s
r:= 1s / 1
s:= 1p

Por la transicin (p,0) = q, introducimos las reglas p:= 0q /
0, por ser q estado final. Por la transicin (p,0)=r,
introducimos la regla p:= 0r, por ser r un estado no final.
Y as sucesivamente.



GRAMTICA REGULAR EQUIVALENTE A UN AF
DADO.
Sea M =(Q,,q0,,F) un autmata conocido (debe ser un
autmata sin -transiciones).
Queremos construir una gramtica G = (T,N,S,P) tal que
L(M) = L(G).

Tomamos como alfabeto de terminales el alfabeto de
entrada del autmata, ; como conjunto de smbolos no
terminales tomamos Q; como axioma para la gramtica
tomamos q0, el estado inicial del autmata; por ltimo
traducimos las transiciones del autmata en reglas para la
gramtica de la forma siguiente:
si (p,a) = q y qF aadimos la regla p:=aq
si (p,a) = q y qF aadimos las reglas p:=aq y p:=a
si q0F aadimos la regla q0:=.

Ejemplo:
Sea M7 el AFND dado por la tabla

0 1
p q,r
*q q q,s
r
s
*s p
Tabla 2.12. Tabla de M7.

Una gramtica equivalente es G ={{0,1},{p,q,r,s},p, P},
siendo P las reglas p:= 0q / 0 / 0r
q:= 0q / 0 /1q / 1 / 1s
r:= 1s / 1
s:= 1p

Por la transicin (p,0) = q, introducimos las reglas p:= 0q /
0, por ser q estado final. Por la transicin (p,0)=r,
introducimos la regla p:= 0r, por ser r un estado no final.
Y as sucesivamente.


AUTMATA
FINITO EQUIVALENTE A UNA GRAMTICA DADA.
Suponemos que la gramtica G=(T,N,S,P) es conocida
(debe ser una gramtica regular a la derecha). Queremos
construir un autmata M = (Q,,q0,,F) tal que L(G)= L(M).

Como conjunto de estados tomamos N { f} donde f es un
smbolo que no pertenece al alfabeto de no terminales;
como alfabeto de entrada se toma el alfabeto de terminales
de la gramtica, T; como estado inicial se toma el estado
representado por el axioma S de la gramtica; como
conjunto de estados finales tomamos F={f}; por ltimo
definimos las transiciones traduciendo las reglas de la
gramtica de la forma siguiente: Si A:=aB es una regla,
definimos la transicin (A,a)=B.
Si A:=a es una regla, definimos la transicin (A,a)=f.
Si S:= es una regla, definimos la transicin (S,)=f.

Ejemplo:
Sea la gramtica G1={{0,1},{A,B,C,D},A,P}, siendo P las
reglas

A:= 0B / 0 / 0C
B:= 0B / 0 /1B / 1 / 1D
C:= 1D / 1
D:= 1A

Para construir un AF equivalente tomamos Q={A,B,C,D,f},
={0,1}, estado inicial A, estado final f y la tabla

0 1
A B,C,f
B B,f
B,D,f
C
D,f
D
A
*f


Tabla 2.12. Autmata equivalente a la gramtica G1.

Por la regla A:=0B hemos puesto la transicin (A,0)=B.
Por la regla A:=0 hemos puesto la transicin (A,0)=f. Y as
sucesivamente.


AUTMATA
FINITO EQUIVALENTE A UNA GRAMTICA DADA.
Suponemos que la gramtica G=(T,N,S,P) es conocida
(debe ser una gramtica regular a la derecha). Queremos
construir un autmata M = (Q,,q0,,F) tal que L(G)= L(M).

Como conjunto de estados tomamos N { f} donde f es un
smbolo que no pertenece al alfabeto de no terminales;
como alfabeto de entrada se toma el alfabeto de terminales
de la gramtica, T; como estado inicial se toma el estado
representado por el axioma S de la gramtica; como
conjunto de estados finales tomamos F={f}; por ltimo
definimos las transiciones traduciendo las reglas de la
gramtica de la forma siguiente: Si A:=aB es una regla,
definimos la transicin (A,a)=B.
Si A:=a es una regla, definimos la transicin (A,a)=f.
Si S:= es una regla, definimos la transicin (S,)=f.

Ejemplo:
Sea la gramtica G1={{0,1},{A,B,C,D},A,P}, siendo P las
reglas

A:= 0B / 0 / 0C
B:= 0B / 0 /1B / 1 / 1D
C:= 1D / 1
D:= 1A

Para construir un AF equivalente tomamos Q={A,B,C,D,f},
={0,1}, estado inicial A, estado final f y la tabla

0 1
A B,C,f
B B,f
B,D,f
C
D,f
D
A
*f


Tabla 2.12. Autmata equivalente a la gramtica G1.

Por la regla A:=0B hemos puesto la transicin (A,0)=B.
Por la regla A:=0 hemos puesto la transicin (A,0)=f. Y as
sucesivamente.
















Autmata a pila



Introduccin


De igual manera que los lenguajes regulares se pueden representar mediante
autmatas finitos deterministas, los lenguajes independientes del contexto tienen su
correspondencia en otro tipo de dispositivo: el Autmata a Pila (AP).

Un autmata a pila es un dispositivo que tiene acceso a:


Una secuencia de smbolos de entrada, que en general se representa por
una cinta que se desplaza frente a un mecanismo de captacin de dichos
smbolos.
El smbolo superior de una memoria en pila (LIFO)

Un autmata a pila se encuentra en cada momento en un estado determinado y el
estado siguiente depende de los tres elementos siguientes:



estado actual
smbolo de entrada
smbolo superior de la pila

Generalmente, el autmata a pila es no determinista en el sentido de que se permite
que haya varias acciones posibles en cada momento.














Un AP puede realizar dos tipos de operaciones elementales: 1. Dependientes de
la entrada.
Se lee la cinta y se avanza la cabeza lectora, En funcin:

del estado actual (q
i
)

del smbolo ledo en la cinta (a)

del smbolo en la cima de la pila (Z)

Se pasa a un nuevo estado, se elimina el elemento Z de la cima de la pila y
se introduce en su lugar una cadena de smbolos.

2. Independientes de la entrada.

Las mismas operaciones que en el caso anterior, slo que no se lee la cinta,
ni se avanza la cabeza lectora. Se maneja la pila sin la informacin de
entrada.
























Definicin formal de un AP


Un autmata a pila es una sptupla:
AP= (, , Q, A
0
, q
0
, f, F)

donde :
1. es el alfabeto de entrada
2. es el alfabeto de la pila
3. Q es un conjunto finito de estados
4. A
0
es el smbolo inicial de la pila
5. q
0
Q el estado inicial del autmata
6. F Q es el subconjunto de estados finales
7. f es una aplicacin denominada funcin de transicin
de ternas (estado, smbolo de entrada o , smbolo de pila) en el
conjunto de las partes Q*

f : Q{{}} 2
Q*
(subconjunto finito)

Un AP comienza su funcionamiento en la configuracin inicial:
en el estado inicial (q
0
)
con slo un smbolo en la pila (A
0
)
con la cabeza lectora en el primer smbolo de la entrada


A partir de esta configuracin realiza transiciones segn la definicin de la
funcin f.











Interpretacin de la funcin de transicin


Representaremos con:

(a, b,...) los elementos de (A, B, C..)
los de
(x, y, z,...) los de * (X, Y,
Z,...) los de *

La interpretacin de f es:
a) f(q, a, A) = {(q
1
, Z
1
), (q
2
, Z
2
),... (q
n
, Z
n
)}

cuando el autmata se encuentra en el estado q, lee el smbolo de entrada a y tiene
el smbolo A en la cima de la pila; el autmata pasar a algn estado q
i
(recordar que
es no determinista), eliminar el smbolo A de la pila e introducir en ella la palabra Z
i

, quedando la cabeza de Z
i
en la cima de la pila.
b) f(q, , A) = {(q
1
, Z
1
), (q
2
, Z
2
),... (q
n
, Z
n
)}

cuando el autmata se encuentra en el estado q, y tiene el smbolo A en la cima de la
pila; el autmata pasar a algn estado q
i
(recordar que es no determinista), eliminar
el smbolo A de la pila e introducir en ella la palabra Z
i
, quedando la cabeza de Z
i
en
la cima de la pila.

Se entiende que el resultado de la funcin f para las configuraciones (estado,
smbolo de entrada y smbolo de pila) no explcitamente especificadas es el conjunto
vaco. Estas representan configuraciones muertas del autmata.






Representacin grfica


AP=({a,b,c},{S,A,B,b},{p,q,r},S,p,f,{r})

f(p,a,S)={(p,SAB), (q,b)}
f(p,,S)={(p,SAB)}
f(q,b,b)={(q,)} f(q,b,B)={(q,)}
f(q,c,A)={(q,A),(q,)}
f(q,,B)={(r,)}



S

(a,S,b)
(,B,)

p q

r*




(b,b,)
(a,S,SAB)
(c,A,A)

(c,A,)

(,S,SAB)


(b,B,)




Cada estado corresponde a un nodo en el grafo y est etiquetado con el nombre
del estado (si es un estado final se marca adems con *)
Cada transicin (q, Z)f(p, a, A) corresponde a un arco del nodo p al nodo q y
tiene la etiqueta (a,A,Z).
Las etiquetas de los arcos pueden tener la forma:
(a,A,), (a,A,B), (a,A,BC...), (,A,), (,A,B), (,A,BC...) siendo (a, A,B,C).
No hay transiciones de forma:
(..., , ...), (ab..., ..., ...) o (..., AB..., ...)









Descripcin instantnea


Una descripcin instantnea o configuracin es una terna (q, x, Z) donde qQ, x*,
Z* que define: el estado del autmata, la entrada que resta por leer y el contenido
de la pila en un momento dado.



Movimientos


Un movimiento es el paso de una descripcin instantnea a otra y se produce como
resultado de la aplicacin de la funcin f. Se representa por el smbolo , que se lee
como precede a.

Hay dos tipos de movimientos:
(q, az, AZ) (p, z, YZ)
si (p, Y)f(q, a, A)
(q, z, AZ) (p, z, YZ)
si (p, Y)f(q, , A)

(q,pQ, a, A, z*, Z,Y*)




Utilizaremos el smbolo * para expresar el cierre transitivo y reflexivo de . Es decir
se entiende por I
i
* I
j
el resultado de una serie movimientos tales que
I
i
* I
j
I
i
I
k
...... I
j









Lenguaje aceptado por un autmata a pila


Se describe el proceso de aceptacin o rechazo de una palabra de * mediante una
sucesin de movimientos.

Un AP= ( , , Q, A
0
, q
0
, f, F) puede reconocer palabras del alfabeto de entrada
de dos formas distintas:

- por estado final:
L
F
(AP) = {x | (q
0
, x, A
0
) * (p, , X), con pF, X*} - por vaciado de pila :

L
V
(AP) = { x | (q
0
, x, A
0
) * (p, , ) con pQ}



L
F
(AP) y L
V
(AP) representan a los lenguajes reconocidos por el autmata AP por
estado final y por vaciado de pila respectivamente.

Cuando la aceptacin se realiza por vaciado de pila, el conjunto de estados finales F
es irrelevante.


Equivalencia de AP


Dos autmata a pila (por vaciado de pila o por estado final), AP
1
y AP
2
, son
equivalentes, si aceptan el mismo lenguaje, es decir, si L(AP
1
)=L(AP
2
).






Ejemplo:

Autmata a pila para el lenguaje L={a
n
b
n
| n > 0}
APV=({a,b},{S,A},{p,q},S,p,f,) f(p,a,S)={(p,A)}
f(p,a,A)={(p,AA)}
f(p,b,A)={(q, )}
f(q,b,A)={(q, )}

S
p
(b,A,)
q


(a,S,A)
(b,A,) (a,A,AA)




APF=({a,b},{S,A},{p,q,r},S,p,f,{r})
f(p,a,S)={(p,AS)}
f(p,a,A)={(p,AA)}
f(p,b,A)={(q,)}
f(q,b,A)={(q,)}
f(q,,S)={(r,S)}
S
p
(b,A,) q (,S,S) r*
(a,S,AS) (b,A,)
(a,A,AA)

Movimientos para (p,aabb,S) (p,abb,S) (p,aab,S)


Otro ejemplo:
Autmata a pila para el lenguaje
L={ww
R
| w{a,b}*, w
R
imagen inversa de w}.

Autmatas a pila deterministas


Decimos que un autmata a pila es determinista si se verifica lo siguiente:

1. qQ, A:
f(q, , A) a: f(q, a, A) = 2. qQ, A,
a {}:
f(q, a, A) contiene como mximo un elemento.


A lo sumo, desde una configuracin cualquiera existe como mucho un posible
movimiento.

A diferencia de los autmatas finitos, se entiende que un AP es no determinista, a
menos que se diga lo contrario.


Autmatas Probabilsticos

En su funcionamiento interviene el concepto de probabilidad,
asociada a que se produzca una determinada transicin.
Son autmatas finitos en los que las transiciones entre estados
a partir de smbolos de entrada pueden no producirse de forma
segura (probabilidad = 1) sino que existe una determinada
probabilidad asociada a que se produzca la transicin.
No se habla del estado en el que se encuentra el autmata en
un determinado instante, sino de la probabilidad de que se
encuentre en cada uno de los estados del autmata.
Aplicaciones reales basadas en comportamientos probabilsticos
de transicin, pej. Movimiento de robots, reconocimiento de voz,
lenguaje natural, etc.


Definicin
Los autmatas probabilsticos nos permiten tener una idea de cmo la transicin entre
estados de un autmata puede no ser factible (probabilidad 1) sino que puede llegar a
existir una probabilidad asociada a que se realice una determinada transicin. Por lo
tanto no podemos estar seguros de que el autmata se encuentre en un determinado
estado en cierto momento solo podemos llegar a saber la probabilidad de que esto
suceda. Los autmatas probabilsticos se definen con una quintupla:
AFP = (, Q, M, P (0), F)
Donde:
- es el alfabeto de los smbolos de entrada.
- Q es el conjunto de estados.
- M es el conjunto de matrices de probabilidad de transicin entre estados,
- M = {M (a)|a }.
- P (0) es el vector de estado inicial.
- F Q es el conjunto de estados finales.
En los AFP por cada smbolo del alfabeto tenemos una matriz de probabilidad, la cual
la podemos definir formalmente como:

Aplicaciones
Existen muchas aplicaciones que hacen uso de este tipo de AFP como puede ser:
Reconocimiento de voz
Cuando una persona habla a un micrfono el sistema puede generar como salida las
palabras dichas por esta persona, para ello se hace uso de AFP llamadas cadenas de
Mrkov. Por poner un ejemplo si despus de una a tenemos un 10 % de probabilidades
de tener una d y un 1 % de tener una e, el autmata se construir tendr en cuenta
estas probabilidades para su funcionamiento y reconocimiento de los caracteres.
Robtica
Cuando un robot est en movimiento y quiere saber lo que le rodea se hacen uso de
los AFP ya que los sensores siempre pueden tener un error, o existir un rozamiento en
las ruedas que afecte a su percepcin de los elementos que le rodean, etc. Podemos
implementar en los robots un AFP para segn los elementos que le rodean y las
consecuencias de las acciones del robot en el entorno, este acte de una forma u otra.
Matrices de probabilidad de transicin
Por cada smbolo de la matriz de entrada existe un matriz de probabilidad M (a), que
nos muestra la probabilidad de que un estado reciba un determinado smbolo y pueda
pasar a otro estado.w---D


Donde:
- n es el nmero de estados, n = |Q|;
- es la probabilidad de que estando en el estado y recibiendo una como
entrada, transite al estado ;
- para cada , se cumple y
- para cada estado , .
Vectores de estados
El vector de estados en un instante de tiempo , tiene un componente por cada
estado y el contenido de cada estado dado por la posicin i del vector , y esto
muestra la probabilidad de autmata en estar en ese estado i en el momento t.
La frmula de clculo para el vector completo ser:

Lenguaje aceptado por un AFP
A veces necesitamos saber si un autmata acepta o no una determinada palabra,
para ello hacemos uso de lo que vamos a conocer como umbral.
Cuanto mayor sea el umbral, ms restrictivo ser el AFP ya que este aceptar
menos palabras.
El lenguaje aceptado por dicho AFP ser todas las palabras cuyas transiciones
lleven a algn estado final con una probabilidad mayor o igual que el umbral.
AF como AFP
Los Autmatas Finitos Deterministas y No Deterministas son un caso particular de
AFP, en el que las probabilidades son 0 1. Si se tiene un AFD = (, Q, f, P (0), F,
q), se puede obtener el AFP equivalente:
AFP = (, Q, M, P (0), F, q)
Donde:
- el vector inicial debe de reflejar la idea de que slo se est inicialmente en un
estado y en ninguno ms. Por tanto,
si ,
en caso contrario
- todas las transacciones permitidas por la funcin de transicin tienen
probabilidad igual a 1, mientras que las que no se producen, tienen
probabilidad igual a 0. Por tanto, para cada smbolo
si
en caso contrario
- el umbral debe ser mayor que cero, siendo vlido cualquier valor.



MQUINAS DE TURING

Definimos una mquina de Turing como una 7-tupla M = (Q s, , F

Q es un conjunto finito de estados

alfabeto de la cinta
s e Q es el estado inicial
e
F _ Q es el conjunto de estados finales o de aceptacin
Q Q {L, R} es una funcin parcial que se llama funcin de
transicin.

La mquina de Turing posee una cinta dividida en celdas, cada celda es capaz de
almacenar un smbolo. Adems posee una cabeza lectora/escritora que lee y escribe
un smbolo en la cinta. Inicialmente la cinta contiene b en todas sus celdas. La funcin
q p, t, X), donde p es el
siguiente estado, t es el smbolo escrito en la cinta y X es el movimiento de la cabeza
lectora/escritora, que puede ser L o R.

q
1
, a) = (q
5
, b, R) provoca que la mquina pase de una
configuracin




Otra posibilidad es anteponer el estado actual al carcter sealado por la cabeza
lectora/escritora como se muestra

q
1
abb bq
5
bb

Mquinas de Turing como aceptadores de lenguajes

Sea M = (Q s, , F,
por M es

L(M) = {w e
*
| q
1
w
*
w
1
pw
2
para p e F y w
i
e
*
}

Los lenguajes aceptados por las mquinas de Turing se conocen como lenguajes
recursivamente enumerables.

El siguiente grafo muestra una mquina de Turing transforma una cadena de la forma
a
n
ba
m
en a
n+m
b mediante la siguiente funcin de transicin:

q
1
, a) = (q
1
, a, R)
q
1
, b) = (q
2
, a, R)
q
2
, a) = (q
2
, a, R)
q
2
, ) = (q
3
, , L)
q
3
, a) = (q
4
, b, L)
q
4
, a) = (q
4
, a, L)
q
4
, ) = (q
5
, , R)



q
1
, a) = (q
2
, c, R)
q
2
, a) = (q
2
, a, R)
q
2
, d) = (q
2
, d, R)
q
3
, b) = (q
3
, d, L)

q
3
, d) = (q
3
, d, L)
q
3
, a) = (q
3
, a, L)
q
3
, c) = (q
1
, c, R)

q
1
, d) = (q
4
, d, R)
q
4
, d) = (q
4
, d, R)
q
4
, ) = (q
5
, , L)


Lenguajes aceptados por Mquinas de Turing

Definicin. Una lenguaje L recursivamente
enumerable si es aceptado por alguna mquina de Turing. Es decir, L es
recursivamente enumerable si para alguna mquina de Turing M tenemos que

L(M) = {w e
*
| qw
*
upv para p e F y u, v e
*
}

(donde q es el estado inicial de M y F es el conjunto de estados finales de M).
Un lenguaje L es recursivo si L es recursivamente enumerable y hay alguna mquina
de Turing que para sobre todas las entradas que acepta L.

Lenguajes regulares, independientes del contexto, recursivos y recursivamente
enumerables

Sea M = (Q s, F
mquina de Turing M = (Q s, , F L(M) = L(M) por medio de:

Q = Q {q}, donde q es un nuevo estado que no esta en Q.

{}
F = {q}
q q R), para q e Q e
q, ) = (q, , S), para todo q e F, donde S es la directiva de cinta no
moverse

Teorema. Si L es un lenguaje regular, entonces L es tambin un lenguaje recursivo.

Sea M un autmata de pila no determinista. Podemos construir una mquina de Turing
que emule el comportamiento de M. Supongamos un MT con dos cintas, la primera
contendr la cadena de entrada y la segunda se utilizar para almacenar la pila. Un
apilamiento se emula moviendo la cabeza de la segunda cinta a la derecha y
escribiendo el smbolo que se apilar.
Consideremos el siguiente ADPND dado por

Q = {q
1
, q
2
, q
3
}, s = q
1
,
a, b}, F = {q
3
},
a, b, z},
q
1
z) = {(q
3
q
1
, a, z) = {(q
1
, az)},
q
1
, a, a) = {(q
1
, aa)}, q
1
, b, a) = {(q
2

q
2
, b, a) = {(q
2
q
2
z) = {(q
3


Este ADPND reconoce a
n
b
n
. La mquina de Turing empezar en el estado q. Primero
se marca el fondo de la pila en la cinta 2. Por tanto, tendremos las transiciones

q, (a, )) = (q
1
, (a, z), (S, S))
q, (, )) = (q
1
, (, z), (S, S))

para realizar un apilamiento y consumir un smbolo se tendrn las transiciones

q
1
, (a, z)) = (p
1
, (a, z), (S, R))
d/d, R
d/d, R d/d, L
q
1
, (a, a)) = (p
1
, (a, a), (S, R))
p
1
, (a, )) = (q
1
, (a, a), (R, S))

las cuales apilan aes sobre la pila. Para desapilar tendremos

q
1
, (b, a)) = (q
2
, (b, a), (R, L))
q
2
, (b, a)) = (q
2
, (b, a), (R, L))

Finalmente, la cadena se acepta cuando ha sido totalmente consumida y se ha vaciado
q
1
z) = {(q
3


q
2
, (, z)) = (q
3
, (, z), (S, L))

de la mquina de Turing.

Teorema. Si L es un lenguaje independiente del contexto, entonces L es tambin un
lenguaje recursivo.

Teorema. Si L
1
y L
2
son lenguajes recursivos, entonces L
1
L
2
tambin lo es.

Lema 5.3.1. Si L es un lenguaje recursivo, entonces E
*
L es un lenguaje recursivo.

Teorema 5.3.2. Hay un lenguaje recursivamente enumerable L para el cual E
*
L no es
recursivamente enumerable.

Teorema 5.3.3. Si L
1
y L
2
son lenguajes recursivamente enumerables, entonces L
1
L
2

es tambin recursivamente enumerable.

Teorema 5.3.4. Si L es un lenguaje recursivamente enumerable para el cual E
*
L
tambin es recursivamente enumerable, entonces L es un lenguaje recursivo.

Teorema 5.3.5. Un lenguaje L es recursivamente enumerable si y solo si L es
enumerado por alguna mquina de Turing.

Definicin 5.4.1. Una gramtica no restringida (que tambin se conoce como una
gramtica estructurada por frase) es una 4-tupla G = (N S, P), donde

N es un alfabeto de smbolos no terminales
terminales con N E = C
S e N es el smbolo inicial
P es un conjunto finito de producciones de la forma o |, donde o e
(N
+
y | e (N
*
(es decir, P _ (N
+
(N
*
y es un conjunto
finito ).

Teorema 5.4.2. Si G es una gramatica no restringida, entonces L(G) es un lenguaje
recursivamente enumerable.

Teorema 5.4.3. Si L = L(M) es un lenguaje recursivamente enumerable y G se
construye de la forma descrita, entonces L = L(G).

Teorema 5.4.4. Un lenguaje L es recursivamente enumerable si y solo si L = L(G) para
alguna gramtica G, no restringida.

Definicin 5.5.1. Una gramtica G = (N S, P) es una gramtica sensible al contexto
si todas las producciones son de la forma o |, donde o,| e (N
+
y | o | s | | |.

Lema 5.5.2. El conjunto de los lenguajes sensibles al contexto contiene al conjunto de
los lenguajes independientes del contexto.

Lema 5.5.3. Sea G = (N S, P) una gramtica sensible al contexto. Entonces, existe
una gramtica G
1
= (N
1
S
1
, P
1
) sensible al contexto, para la cual L(G) = L(G
1
) y S
1

nunca aparece en el lado derecho de una produccin de P
1
.

Lema 5.5.4. Sea G = (N S, P) una gramtica sensible al contexto. Entonces, existe
una una mquina de Turing T, que para sobre toda entrada y acepta L(G).

Teorema 5.5.5. Si L es un lenguaje sensible al contexto, entonces L es recursivo.

Lema 5.5.6. Hay lenguajes recursivos que no son lenguajes sensibles al contexto.

Teorema 5.5.7. Los lenguajes sensibles al contexto contienen, propiamente, a los
lenguajes independientes del contexto. A su vez, los lenguajes recursivos contienen,
propiamente, a los lenguajes sensibles al contexto.

Teorema 5.5.8. Sobre un alfabeto dado, el conjunto de los lenguajes recursivamente
enumerable contienen propiamente a los lenguajes recursivos que contienen
propiamente al conjunto de los lenguajes sensibles al contexto que contienen
propiamente al conjunto de los lenguajes independientes del contexto. Que a su vez,
contienen propiamente los lenguajes regulares.

Vous aimerez peut-être aussi