Está en la página 1de 35

INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED

ASIGNATURA: TEORA DE AUTMATAS I


Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.1
1.- Disee un diagrama de transiciones para reconocer expresiones aritmticas de longitud arbitraria que comprenden enteros
positivos separados por signos de suma, resta, multiplicacin o divisin.
Solucin:
dgito
operador = +, -, *, /
error
3
4
2 1
letra letra
operador
dgito
operador
dgito
operador
letra letra
operador
dgito
Comentarios:
1 No puede comenzar recibiendo un operador, por dos razones:
1 Est especificado que los nmeros son positivos.
2 Si se empieza admitiendo un operador, es estara admitiendo que la cadena empezara con * /.
2 En el diagrama dado se llega al estado de aceptacin tras leer dos y slo dos nmeros enteros de longitud arbitraria.
Si el nmero de operaciones pudiera ser mayor que una, tendramos un arco del estado 4 al 3 con etiqueta operador:
operador = +, -, *, /
error
3
4
2 1
letra letra
operador dgito
dgito
operador
dgito
letra
letra
operador
dgito
operador
operador
Ejercicios de Teora de Autmatas I 1
Jos Garza
2.- Escriba un analizador lxico directamente a partir del siguiente diagrama de transiciones:
4
5
3 1
2
:
letra
letra
dgito
dgito
=
dgito
Solucin:
Estado := 1;
Leer el siguiente smbolo de entrada
WHILE El ltimo smbolo ledo no sea el de Fin de Cadena DO
CASE Estado OF
1: CASE Smbolo actual OF
Letra : Estado := 2 ;
: : Estado := 3 ;
Dgito : Estado := 5 ;
ELSE Salir a rutina de error ;
END (* del CASE interno *)
2: CASE Smbolo actual OF
Letra : Estado := 2 ;
Dgito : Estado := 2;
ELSE Salir a rutina de error ;
END (* del CASE interno *)
3: IF Smbolo actual <> = THEN Salir a rutina de error END ;
4: IF Smbolo actual <> NIL THEN Salir a rutina de error END ;
5: IF Smbolo actual <> dgito THEN Salir a rutina de error END ;
ELSE Salir a rutina de error ;
END (* del CASE externo *)
END (* del WHILE *)
IF ( Estado=1 OR Estado=3 ) THEN Salir a rutina de error END ;
3.- Construya una tabla de transiciones a partir del diagrama del ejercicio anterior y escriba un analizador lxico basado en la tabla.
Solucin:
TABLA DE TRANSICIONES
Smbolo
Estado
letra dgito : = FDC
1 2 5 3 Error Error
2 2 2 Error Error Aceptar
3 Error Error Error 4 Error
4 Error Error Error Error Aceptar
5 Error 5 Error Error Aceptar
ANALIZADOR LXICO
Estado := 1 ;
REPEAT
Leer el siguiente smbolo de entrada ;
CASE Smbolo OF
0..9 : Entrada := dgito ;
a..z, A..Z : Entrada := letra ;
: : Entrada := : ;
= : Entrada := = ;
Marca de fin de cadena : Entrada := FDC ;
ELSE Salir a rutina de error ;
END (* del CASE *)
Estado := Tabla( Estado, Entrada ) ;
IF Estado=error THEN Salir a rutina de error END ;
Ejercicios de Teora de Autmatas I 2
UNTIL Estado=aceptar ;
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
4.- Muestre que se puede modificar un diagrama de transiciones que contiene un arco rotulado por una cadena de smbolos de
longitud dos o ms (lo cual significa que para recorrer el arco se requiere la cadena completa y no un slo smbolo) para que
contenga slo arcos rotulados con smbolos simples, pero de manera que siga aceptando las mismas cadenas que antes.
Solucin:
Inicialmente:
F I
x
1
x
2
... x
n-1
x
n
Pero si aadimos nuevos estados intermedios de la forma:
x
n
x
n-1
F
x
2
...
S
n
S
3
S
2
I
x
1
Es decir, de forma que:
Si estando en el estado I recibe la entrada x
1
, cambia al estado S
2
.
Si estando en el estado S
i
recibe la entrada x
i
, cambia al estado S
i+1
(I=2,3, ..., n-1).
Si estando en el estado S
n
recibe la entrada x
n
, cambia al estado F.
Entonces, ambos autmatas tienen idntica respuesta ante la cadena dada.
Ejercicios de Teora de Autmatas I 3
Jos Garza
EJERCICIOS DE LA SECCIN 1.2
1.- Describa las cadenas que acepta el autmata finito determinista representado en el siguiente diagrama de transiciones:
letra
letra
dgito dgito
Solucin:
La expresin regular es: digito* letra (digito letra)*
La descripcin es: cadenas formadas por cero o ms dgitos y al menos una letra, estando esta (o estas) en cualquier posicin.
2.- Modifique el siguiente esqueleto de diagrama de transiciones de manera que est completamente definido y acepte las mismas
cadenas que antes.
b b a b a
Solucin:
error
b b a b a
a b a
a b
3.- Identifique otro autmata finito determinista de la vida diaria y dibuje su diagrama de transiciones.
Solucin:
Un bolgrafo. Las entradas posibles al sistema son: x1=pulsar x2= no pulsar. La respuesta ante una misma entrada no siempre es la
misma. Depende tambin de la historia de las entradas anteriores. Dicha historia de entradas anteriores se resume diciendo que el
sistema est en un estado dado. Todo lo que puede pasar en la vida til de un bolgrafo es que su punta est dentro o est fuera. La
respuesta depende de la entrada aplicada y de si est dentro o fuera. Adems, en la definicin de autmata finito debe haber un estado
inicial. Podemos elegir un bolgrafo que inicialmente tuviera la punta dentro.
entrada
estado
x1 =no pulsar x2 =pulsar
s1=punta dentro y1 = no se mueve y2 = sale
s2 =punta fuera y1 = no se mueve y3 = entra
pulsar entra
punta dentro
pulsar sale
punta fuera
no pulsar no se mueve no pulsar no se mueve
Ejercicios de Teora de Autmatas I 4
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.3
1.- Cmo puede modificarse el autmata finito determinista M=(S, E, o, 1, F) para obtener una mquina que acepte el lenguaje E*-
L(M)?. Obsrvese que, si esto es posible, entonces, el complemento de un lenguaje regular respecto a E* tambin es regular.
Solucin:
Convirtiendo los estados de aceptacin en estados de no aceptacin; y viceversa, las cadenas que antes eran aceptables ya no lo son;
y viceversa.
Francesc Xavier Torres aporta la expresin matemtica:
Sea M = (S,E, o, i, F), entonces el M tal que L(M) = E*-L(M) es M= (S, E, o, i, S-F)
Si el autmata debiera tener por lo menos un estado de aceptacin (pgina 29 del libro de texto) deberamos contemplar esta
excepcin:
Excepcin: Cuando el autmata tiene un nico estado.
Figura 1.14 a), autmata que acepta cualquier cadena:
Ejercicios de Teora de Autmatas I 5
Jos Garza
Figura 1.14 b), autmata que no acepta ninguna cadena:
x
1
x
1
x
n
x
n
x
n
x
1
2.- Elabore una lista de los autmatas finitos deterministas basados en el alfabeto {x, y} que tengan un estado; y luego los que
tengan dos estados.
Solucin:
Recordemos que un autmata finito determinista cumple:
- Existe un estado inicial.
- De cada estado parte un arco (y slo uno) por cada una de las entradas posibles.
Adems, contra los indicado el la pgina 29 del texto base, admitiremos que un autmata puede no tener ningn estado de aceptacin.
2.a) Autmatas con un slo estado. Dos posibilidades.
01 x
y
02 x
y
El primero es el que acepta cualquier cadena (figura 1.14a).
El segundo es el que no acepta ninguna cadena. Es posible gracias a que hemos admitido que el conjunto de estados de aceptacin
puede ser vaco. Si el autmata debiera tener siempre al menos un estado de aceptacin, para analizar el lenguaje vaco se debera
utilizar el diagrama de la figura 1.14b), el cual ya no es de un solo estado:
1
2
x x
y y
2.b) Autmatas con dos estados.
Recordemos que al ser determinista, en cada estado debe haber un arco y slo un arco para cada smbolo de alfabeto. El
procedimiento para contar los autmatas es:
( )
( ) actuales posibles estados de N
estado cada en posibles arcos de N autmatas de N =
Como para un mismo smbolo (en cada estado) debe haber un nico arco, el nmero de arcos posibles en cada estado es igual al
nmero de arcos diferentes en cada estado.
( ) ( posibles siguientes estados de N alfabeto de smbolos de N
A
N diferentes arcos de N = = )
por tanto:
( ) ( )
| |
( )
| | 16
2
2 2
actuales posibles estados de N
siguientes posibles estados de N alfabeto de smbolos de N autmatas de N = = =
N x del estado inicial y del estado inicial x del estado no inicial Y del estado no inicial
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado no inicial
Al estado inicial
Al estado inicial
Al estado no inicial
Al estado no inicial
Al estado inicial
Al estado inicial
Al estado no inicial
Al estado no inicial
Al estado inicial
Al estado inicial
Al estado no inicial
Al estado no inicial
Al estado inicial
Al estado inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado no inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Al estado inicial
Ejercicios de Teora de Autmatas I 6
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
2.b.i)
Ejercicios de Teora de Autmatas I 7
Jos Garza
2.b.ii)
Hay otras 16 combinaciones, con la nica variacin respecto a las de 2.b.i) de considerar como estado de aceptacin slo el 1.
y y
x x
2
1
y y
x x
2
1
y y
x
x
2
1
y y
x x
2
1
y
y
x x
2
1
y
y
x x
2
1
y
y
x x
2
1
y
y
x
x
2
1
y
y
x x
2
1
y
y
x
x
2
1
y
y
x x
2
1
y
y
x
x
2
1
y
32
31 30 29
28 27 26 25
24 23 22 21
20 19 18 17
1
x
y
y
x
2
2
x x
y
y 1
2
x
x
y
y
1
2
x x
y
y
1
2
1
x
y
x
y
2
1
x x
y
y
2
1
x
x
y
y
2
1
x x
y
y
2
1
x
y
x
y
2
1
x x
y
y
2
1
x x
y
y
2
1
x x
y
y
2
1
x x
y y
x
x
1
2
y y
2
1
x x
y y
2
1
x x
y y
y
x x
2
1
y
y
x
x
2
1
y
y
x x
2
1
x
y
y
x
1
16
15 14 13
12
11 10 09
08 07 06 05
04 03 02 01
2
2.b.iii)
Hay otras 16 combinaciones, con la nica variacin respecto a las de 2.b.i) de considerar como estados de aceptacin el 1 y el 2.
Ejercicios de Teora de Autmatas I 8
2.b.iv)
Hay otras 16 combinaciones, con la nica variacin respecto a las de 2.b.i) de no considerar como estados de aceptacin ni el 1 ni el 2.
Estas 16 no existiran si en el autmata por lo menos uno fuera de aceptacin.
2 2 2 2
2 2 2 2
2 2 2 2
48
47 46 45
44 43 42 41
40 39 38 37
36 35 34 33
1
x
y
y
x
1
x x
y
y
1
x
x
y
y
1
x x
y
y
1
x
x
y
y
1
x x
y
y
1
x
x
y
y
1
x x
y
y
1
x
x
y
y
2
1
x x
y
y
2
1
x x
y
y
1
x x
y
y
1
x x
y y
1
x
x
y y
2
1
x x
y y
2
1
x x
y y
Comentarios:
Posible duda: No seran autmatas distintos, si el estado inicial fuera el 2, es decir 96 en total (puesto que no se habla de
autmatas como reconocedores de lenguajes, de forma que son distintos aunque reconozcan el mismo lenguaje)? Si
incluimos la variacin en la que estado inicial es el 2, el autmata obtenido no es nuevo. Por ejemplo, partiendo del autmata
N 02:
02
1
2
x x
y y
La x del estado inicial va al estado no inicial
La y del estado inicial va al estado inicial
La x del estado no inicial va al estado no inicial
La y del estado no inicial va al estado no inicial
Obtenemos este autmata:
1
2
x x
y y
En el que:
La x del estado inicial va al estado inicial
La y del estado inicial va al estado inicial
La x del estado no inicial va al estado inicial
La y del estado no inicial va al estado no inicial
El cual es el mismo (aunque los estados tengan nombres diferentes) que otro del segundo grupo de 16; en concreto el 21:
21
2
1
x x
y y
Tengamos en cuenta que cambiar de nombre los estados no hace que los autmatas sean diferentes. De no ser as,
podramos llamarlos
p
a
x x
y y
a, p, r, Bieito, Xos, Manel, Xoan, etc, y habra infinitos autmatas.
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
2.b.v)
Tambin podemos tener en cuenta un estado de error. Acaso el estado de captacin global no es un estado posible?. Pues claro que
s. No se puede tener en cuenta en los diagramas de dos estados, pues entonces seran de tres estados. Pero s se puede tener en
cuenta en el diagrama de un estado para formar diagramas de dos estados.
y
y
error
1
x x
y y
error
x x
1
error
1
y
y
x x
En conclusin, el nmero de autmatas de dos estados es 16 + 16 + 16 + 16 + 3 = 67
Si debieran tener al menos un estado de aceptacin, excluiramos los diagramas de 2.b.iv); y el nmero de autmatas de dos estados
sera 16 + 16 + 16 + 3 = 51
El estudio de combinaciones ahora ha sido ms simple, pues:
1 Los arcos que salen del estado de captacin slo pueden tener como destino el estado de captacin.
2 Los arcos que salen del estado inicial no pueden tener la combinacin en la que ambos arcos vuelven al estado inicial
pues este diagrama
Ejercicios de Teora de Autmatas I 9
Jos Garza
es equivalente a este (el cual no es de dos estados):
y y
error
1
x x
y
x
3.- Muestre que si un autmata finito determinista es capaz de aceptar un nmero de cadenas infinito, entonces debe aceptar una
cadena que consista en la concatenacin de tres segmentos tales que cualquier repeticin del segmento central (que es no vaco) d
como resultado otra cadena aceptable. Esto se conoce como lema de bombeo (pumping lemma), pues indica que pueden generarse
otras cadenas aceptables bombeando o ampliando una cadena aceptable.
Solucin:
El autmata es finito El nmero n de estados es finito
El nmero de cadenas es infinito Para cualquier c
1
de longitud l
1
, existe una cadena c
2
de longitud l
2
>l
1
.
Estos dos hechos implican el que existan cadenas de longitud l>n. Es decir, existen cadenas en las que algn estado es recorrido ms
de una vez. Estas cadenas pueden ser de esta forma:
o de esta otra forma:
Y si nos fijamos bien, vemos que al llegar al extremo final del segmento central, nada impide que ocurra la entrada que provoca la
vuelta al extremo inicial de dicho segmento. Por tanto, es posible que se repita cualquier nmero de veces; y posteriormente recorrer
desde S
j
hasta S
n
, con lo que son admisibles cadenas con un nmero cualquiera de repeticiones del segmento central.
Segmento central
Segmento central
...
S
i
S
k
S
j
... ... ...
S
1
S
n
...
S
k+1
S
k
S
k-1
S
1
S
n
...
Sergio Glvez Rojas aporta un enunciado ms formal y general; y una conclusin:
Si L es un lenguaje regular sobre T, entonces:
Existe p>0 / para todo w perteneciente a L, con |w|>=p, existe una descomposicin de la forma w=xyz con x,y,z pertenecientes a T* con
|y|>0, de manera que el bombeo de y (y
i
, para todo i>0), en su entorno, verifica:
xy
i
z pertenece a L, para todo i>=0.
Es ms, el lema nos dice que esta es la nica forma de obtener cadenas arbitrariamente largas (de longitud superior a un p dado. Si
hay alguna otra forma, entonces el lenguaje no es regular, como ocurre con el mencionado L={0
n
1
n
, n>0} en el que no hay ningn trozo
intermedio que, repitindose varias veces, siga perteneciendo al lenguaje.
4.- Muestre que no existe un autmata finito determinista M tal que L(M)={x
n
y
n
z
n
: n eN}.
Solucin:
El autmata es finito El nmero m de estados es finito.
La longitud n de x
n
y
n
z
n
puede ser todo lo grande que queramos.
Estos dos hechos implican el que en x
n
y
n
z
n
, n puede ser mayor que m. Dicho de otra manera, algn estado o segmento de estados
debe ser recorrido ms de una vez.
Supongamos que a ese estado o segmento de estados se llega con la entrada x. Recorrindolo un determinado nmero de veces,
se tiene la secuencia x
n
y
n
z
n
. Nada impide que ese estado o segmento se recorra un nmero mayor de vces, con lo que la secuencia
sera x
p
y
n
z
n
, con p>n.
Si hubiramos supuesto que se llegaba con entrada y z, se tendran secuencias x
n
y
p
z
n
x
n
y
n
z
p
, con p>n. Con cualquiera de
estas suposiciones se tiene un autmata cuyo lenguaje no es {x
n
y
n
z
n
: n N}. e
5.- Muestre que puede utilizarse un autmata finito determinista para reconocer una cadena de parntesis anidados y equilibrados si
se asegura que la profundidad de anidamiento no exceder de un nivel preestablecido.
Este autmata lee cadenas de parntesis anidados hasta un nivel n, y los acepta slo cuando estn todos equilibrados.
Solucin:
Este autmata permite cadenas del tipo ( ( ) ( ) ). Se vuelven a abrir parntesis despus de aparecer el primero que cierra.
error
S
n-1
...
)
S
3
S
2
S
1
S
n
S
0
( ( ( ( ( (
(
) ) ) ) )
)
Francesc Xavier Torres opina que las cadenas deben ser del tipo ( ( ( ) ) ). Una vez aparece el primero que cierra, no se pueden abrir
ms. Propone este autmata:
(
S
n-1
S
n-2

...
S
2
S
1

S
f
error
S
n-1
...
)
S
3
S
2
S
1
S
n
S
0
( ( ( ( ( (
) ) )
)
)
) )
)
( ( (
(
) )
Ejercicios de Teora de Autmatas I 10
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.4
1.- Identifique los puntos donde existe no determinismo en el siguiente diagrama de transiciones:
Ejercicios de Teora de Autmatas I 11
Jos Garza
Solucin:
2.- Utilizando mtodos intuitivos y sui generis, modifique el diagrama de transiciones de la siguiente figura (fig. 1.17) para que
acepte las mismas cadenas que antes, pero ahora sin ramificaciones no deterministas.
Solucin:
Acepta dos clases de cadenas:
1: (dgito)
n
(punto) (dgito)
m
, m, n > 1
2: (dgito)
r
r > 1
La primera clase podra reducirse a la segunda, si modificamos el diagrama original de forma que el estado al que llega tras (dgito)
n
,
(el 2) sea de aceptacin. De esta forma no es necesaria la rama del estado 5:
dgito
dgito
letra
dgito
dgito
letra
letra
dgito
letra
2
1
3
dgito
5
dgito - dgito
4
1 3
2
dgito
dgito
3 2 1
4
dgito -
dgito
dgito dgito
3
1
2
letra
dgito
letra
letra
dgito
dgito
letra
3.- Muestre que cada autmata finito determinista (S, E, o, 1, F), es un autmata finito no determinista, demostrando que la funcin
de transicin o puede representarse como un subconjunto de SxExS.
Solucin:
En los deterministas, o es una funcin:
S S x E
o
A cada elemento de SxE le corresponde uno slo de S. Por eso, o es un subconjunto de SxExS formado por todos los pares posibles
de SxE, junto con un slo elemento de S.
Al ser o un subconjunto de SxExS, cumple las condiciones de la definicin de autmata finito determinista.
4.- Empleando las tcnicas presentadas en la demostracin del teorema 1.3, dibuje un diagrama de transiciones para un autmata
finito determinista que acepte las mismas cadenas que el autmata finito no determinista representado en el siguiente diagrama de
transiciones:
2 1
3
a
a
b
b
Solucin:
1, 2, 3
3
2, 3
2
1, 2
1, 3
a
b
vaco
1
a
b a
b
b
a b
a
a b
a b
a b
Ejercicios de Teora de Autmatas I 12
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.5
1.- Elabore una lista con con todas las frases generadas por esta gramtica:
<frase> <sustantivo> <predicado> <punto>
<sujeto> <sustantivo>
<sustantivo> Mara
<sustantivo> Juan
<predicado> <verbo intransitivo>
<predicado> <verbo transitivo> <objeto>
<verbo intransitivo> patinar
<verbo transitivo> golpear
<verbo transitivo> quiere
<objeto> a <sustantivo>
<punto> .
Solucin:
Mara patina. Juan patina.
Mara golpea a Juan. Juan golpea a Juan.
Mara golpea a Mara. Juan golpea a Mara.
Mara quiere a Juan. Juan quiere a Juan.
Mara quiere a Mara. Juan quiere a Mara.
2.- Muestre que es posible modificar la gramtica que se presenta a continuacin (con el smbolo inicial S) para formar una
gramtica regular, sin cambiar el lenguaje que genera. Cul de los ejercicios de alguna seccin anterior es en esencia el mismo
problema, aunque en un contexto diferente?.
S y X
X x x X
X y Y
Y
Solucin:
Frases que genera: y (x x)
n
y ; n > 0
Para que sea regular, debemos cambiar la regla X x x X, manteniendo el mismo lenguaje generado. Para ello, sustituimos la
antedicha regla por estas otras dos:
X x Z
Z x X
En consecuencia, la gramtica modificada es:
S y X
X x Z
Z x X
X y Y
Y
Este problema es, en esencia, el mismo que el 4 de la seccin 1.1. En ambos se descompone una cadena de longitud mayor que la
unidad, en varias de longitud unidad.
Ejercicios de Teora de Autmatas I 13
Jos Garza
3.- Convierta la siguiente gramtica regular en otra gramtica regular que no contenga reglas de reescritura cuyos lados derechos
consistan en un slo terminal, pero que a la vez genere el mismo lenguaje. Describa el lenguaje generado.
S x S
S y
S z
Solucin:
Lenguaje generado: { y, z, xy, xz, xxy, xxz, xxxy, xxxz, ..., x...xy, x...xz }, en forma compacta: {x
m
y, x
n
z: m,n > 0, m, n eN }
Gramtica modificada:
S x S
S y Y
Y
S z Z
Z
4.- Dibuje un diagrama de transiciones para un autmata finito que acepte el lenguaje generado por la gramtica regular (con
smbolo inicial S) que se presenta a continuacin. Describa el lenguaje generado.
S
S x X
S y Y
Y y Y
Y
X x X
X
Solucin:
Lenguaje generado: { , x
m
, x
n
: m, n N } e
Diagrama de transiciones:
S
Y
X
x
x
y
y
5.- Presente una gramtica regular que genere el lenguaje aceptado por el autmata finito cuyo diagrama de transiciones se muestra
a continuacin:
P
N
S
M
a a
b
b
a
b
b
a
Solucin:
S a M
S b N
M a P
M b M
M
N a N
Nota: Las reglas 3, 7, 9 y 10 pueden ser suprimidas. Son improductivas. Si se cae en el estado P,
luego no se puede llegar a ningn estado de aceptacin. Aunque la gramtica resultante de suprimir
estas reglas sea diferente, tiene el mismo lenguaje. Dmonos cuenta que se pide una gramtica, no
la gramtica.
N b P
N
P a P
P b P
Ejercicios de Teora de Autmatas I 14
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.6
1.- Cules de los lenguajes descritos en las siguientes expresiones regulares para el alfabeto { x, y, z } son infinitos?. Describa, en
una sla frase, el contenido de cada uno de estos lenguajes infinitos; y elabore una lista exhaustiva de las cadenas de los lenguajes
finitos.
a) (x (y z*) ) b) (x* (y z)) c) ((z y) x) d) (x y)*
e) (y y)* f) (x* y*) g) ((x x) z) h) ((z y) x)
Solucin:
a) Por tener la operacin estrella de Kleene, es infinito. Las frases son de la forma: xy, xyz, xyzz, xyzzz,..., xyz...z.
b) Infinito. Las frases son de la forma: yz, xyz, xxyz, xxxyz,..., x...xyz.
c) Finito. El conjunto de frases generado es: {zx, yx}
d) Infinito. El conjunto de frases es de la forma (x y) (x y) (x y)... es decir: ({x, y})*
e) Infinito. El conjunto de frases es {y
2n
, n N} e
f) Infinito. El conjunto de frases es de la forma x, xx, xxx,..., x...x, y, yy, yyy, ..., y...y, es decir: { x
m
, y
n
; m,n N} = {x*, y*} e
g) Finito. El conjunto de frases es: {xx, z}
h) Finito. El conjunto de frases es: {x, y, z}
2.- Dibuje un diagrama de transiciones que acepte la estrella de Kleene del lenguaje aceptado por el siguiente diagrama de
transiciones:
a
2
3
b
1
c
Solucin:
1
er
paso: Dibujamos un nuevo estado inicial (de aceptacin) y lo conectamos al diagrama original. Todos los estados que en el original
eran destino del anterior inicial, deben ser destino de este nuevo inicial, con las mismas etiquetas:
Ejercicios de Teora de Autmatas I 15
Jos Garza
2 paso: Desde cada estado de aceptacin del original, se aade un arco a cada estado que era destino del inicial original.
3.- Dibuje un diagrama de transiciones que acepte la unin de los lenguajes aceptados por los siguientes diagramas:
c
b
3
1 2
a
S
a
a
c
b) a) a
b
1 2
a
S
4
x
y b
2
1 3
3
a
Solucin:
Lenguajes generados:
a) Frases de la forma a, aba, ababa, abababa, etc.
b) Frases de la forma x, xyx, xyxyx, xyxyxyx, etc.
S
x
4
a
3
1
2
b
a
y
x
4.- Dibuje un diagrama de transiciones que acepte la concatenacin del lenguaje aceptado por
1
b
2
a
b
seguido del lenguaje aceptado por
3
4
x y
y
Solucin:
Lenguajes generados:
a) Frases de la forma a, abb, abbb, ..., ab...b, b, bb, bbb, b...b etc.
b) Frases de la forma x
m
y
n
, m, n N, m>0, n>0 e
2 3
4
x y
y
1
b
a b
x
y
5.- Construya una expresin regular que describa el lenguaje aceptado por el autmata del siguiente diagrama de transiciones:
Ejercicios de Teora de Autmatas I 16
1
2
a a
b
a
b
b
3
5
4
b
a
Solucin:
| | | | | | | |
(a b*) (a b*) a (b a*) (b a*) b $ $
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 2.1
1.- Disee un autmata de pila M tal que L(M) = { x
n
y
m
x
n
: m, n e N }
Solucin:
4
x, ; x y, ; x, x ;
, # ; , ; , ; , ; #
i 1 3 2
Es el autmata pedido. Es no determinista. Segn el teorema 2.1, siempre se puede adaptar de forma que vace su pila antes de
aceptar la cadena. De hecho, ya lo hace.
Si se pidiera un autmata determinista para L(M) = { x
n
y
m
x
n
: m, n e N }, podra tenerse este:
4
x, ; x y, ; x, x ;
, # ; x, x ; y, ; , ; #
i 3
2 1
Su funcionamiento es el pedido.
Cuando m=0 y n=0, se acaba en el estado 1.
Cuando m=0 y n=0, se acaba en el estado 2.
Cuando m=0 y n=0, se acaba en el estado 1.
Cuando m=0 y n=0, se acaba en el estado 4.
Es determinista, pero si acaba en los estados 1 2 no vaca su pila al aceptar la cadena. El teorema 2.1 es aplicable, pues los
deterministas estn incluidos en los no deterministas. Pero el resultado (debido al paso 2 de la demostracin del teorema, pgina 81)
es un autmata de pila no determinista.
Se trata de un ejemplo similar al de la figura 2.22: un autmata de pila determinista que no puede modificarse para que (sin alterar el
lenguaje aceptado) vace su pila al aceptar la cadena. El razonamiento para demostrarlo es idntico al presentado all.
Estos dos ejemplos muestran que el conjunto de lenguajes deterministas se subdividen en dos: los que deben vaciar su pila al terminar
y los que pueden no vaciarla.
LENGUAJES INDEPENDIENTES DEL CONTEXTO DETERMINISTA
Aceptados por:
9 autmatas de pila deterministas que pueden vaciar o no vaciar su pila antes de aceptar una cadena
9 analizadores sintcticos LR(k); los cuales son equivalentes a los antedichos autmatas (pgina 133)
{ x : n e N } U { x y : n e N } Pgina 110, figura 2.22.
otro ejemplo: {x
n
yx | n e N
+
} {x
n
yx
n
| n e N
+
}
LENGUAJES ACEPTADOS POR AUTMATAS DE PILA DETERMINISTAS QUE DEBEN VACIAR SU PILA ANTES
DE ACEPTAR UNA CADENA
{ x y : n e N } No es regular, pues podra ser n mayor que el nmero de estados del autmata (teorema 1.2)
n n +
otros ejemplos: {x
m
y
n
x
n
| m, n e N
+
}, {x
n
y
n
z | n e N
+
}, {x
n
yx
n
| n e N
+
}.
+ n n + n
Por supuesto (debido a que un conjunto est incluido en el otro), puede haber algunos (pero slo algunos) autmatas de pila
deterministas que puedan modificarse para que vacen su pila al aceptar la cadena.
Si se pidiera un autmata determinista para L(M) = { x
n
y
m
x
n
: m, n e N+ }, podra tenerse este:
4
x, ; x y, ; x, x ;
, # ; x, x ; y, ; , ; #
i 1 3 2
Su funcionamiento es el pedido.
Como m=0 y n=0, slo se acaba en el estado 4; y en este estado la pila est vaca.
Ejercicios de Teora de Autmatas I 17
Jos Garza
2.- Cul es el lenguaje que acepta el autmata de pila cuyo diagrama de transiciones es el siguiente?
x, ; x
y, x ;
Solucin:
Acepta la cadena vaca.
Segn la rama superior, toda x que se reciba, se registrar en la pila; y el estado siguiente ser de aceptacin.
Segn la rama inferior, slo se aceptar la entrada y si se puede sacar una x de la pila.
Conclusin:
Acepta cualquier cadena que (empezando a contar por la izquierda) contenga un nmero de y menor o igual a que de x. Pueden
estar intercaladas
Ejemplos: xyx, xxy, xxyxyx, etc.
3.- Modifique el diagrama de transiciones del ejercicio 2 para que el autmata de pila acepte el mismo conjunto de cadenas, pero
con su pila vaca.
Solucin:
p
q
1 i
, ; #
x, ; x
, ;
, x ;
, # ;
y, x ;
4.- Muestre cmo pueden combinarse dos autmatas de pila M
1
y M
2
para formar un slo autmata de pila que acepte el lenguaje
L(M
1
) U L(M
2
).
Solucin:
Exactamente igual que en la seccin 1.6:
- Creacin de un nuevo estado inicial y eliminacin de la condicin de inicial en los originales.
Si alguno de los originales era de aceptacin, el nuevo debe ser de aceptacin.
- Hasta cada estado que era destino del original inicial, se lleva un arco desde el nuevo inicial, con la misma rotulacin.
Ejercicios de Teora de Autmatas I 18
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 2.2
1.- Muestre que toda cadena derivada por la izquierda de una gramtica independiente del contexto puede derivarse tambin por la
derecha.
Solucin:
z z
S
z
b M b
N
z
a M a
M
El lado por donde se empieza a construir (por la derecha o por la izquierda) slo tiene relevancia en las etapas intermedias de la
construccin del rbol. Pero con la construccin terminada, no es relevante el lado por donde se empez. La cadena es la misma en
ambos casos.
2.- Demuestre que la gramtica presentada a continuacin es ambigua, mostrando que la cadena ictictses tiene derivaciones que
producen distintos rboles de anlisis sintctico.
S icts
S ictSeS
S s
Solucin:
Podemos mostrar simultneamente una analoga con un esquema de control de flujo tpico de lenguajes de programacin. Para ello
haremos las siguientes identificaciones:
i if
c (condicion)
t {
e else
s enunciado
Con ellas, la primera regla sirve para describir el esquema simple:
if (condicion)
{ enunciado
y la segunda regla sirve para describir el esquema:
if (condicion)
{ enunciado 1
else
{ enunciado 2
Los rboles sintcticos son:
1.- Cuando el else est asociado al if sin else ms inmediatamente anterior (al if interno):
i c t S e S
i c t S
S if (condicion)
{
if (condicion)
{
enunciado
}
else
{
enunciado
}
}
s s
2.- Cuando el else est asociado al primer if (al if externo):
S
s
s
i c t S
i c t S e S
Ejercicios de Teora de Autmatas I 19
Jos Garza
if (condicion)
{
if (condicion)
{
enunciado
}
}
else
{
enunciado
}
4.- Demuestre que la unin de dos lenguajes independientes del contexto tambin es independiente del contexto, mostrando cmo
pueden combinarse dos gramticas independientes del contexto de dos lenguajes originales para formar una gramtica independiente
del contexto que genere la unin.
Solucin:
GA
S
A
w
A1
...
S
A
w
Ap
N
1
w
A1
...
N
q
w
Aq
GB
S
B
w
B1
...
S
B
w
Br
M
1
w
B1
...
M
s
w
Bs
- Se crea un nuevo estado inicial
- Se aaden una regla de sustitucin desde el nuevo inicial hasta cada uno de los que eran destino de alguno de los iniciales
originales.
G
S w
A1
...
S w
Ap
S w
B1
...
S
B
w
Br
N
1
w
A1
...
N
q
w
Aq
M
1
w
B1
...
M
s
w
Bs
5.- Convierta la siguiente gramtica, con el signo inicial S, en una gramtica con forma normal de Chomsky que genere el mismo
lenguaje.
Ejercicios de Teora de Autmatas I 20
Z z
Solucin:
S x S y
S w N z
N S
N
a) Preparacin previa: Eliminacin de la regla , tal como se explica en los prrafos anteriores al teorema 2.4
S x S y
S w N z
S w z
N S
b) Cambio de los terminales no aislados, segn se explica en el primer paso del teorema 2.4.
S X S Y
S W N Z
S W Z
N S
X x
Y y
W w
Z z
Esto produce una gramtica G independiente del contexto en la cual el lado derecho de cada regla de escritura es un solo terminal o
una cadena de no terminales
c) Separacin de dos no terminales, segn se explica en el segundo paso del teorema 2.4.
S X R
R S Y
S W T
T N Z
S W Z
N S
X x
Y y
W w
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
Al llegar a esta etapa tenemos una gramtica G independiente del contexto, para la cual el lado derecho de cada regla de reescritura
es un solo terminal, dos no terminales o un solo terminal.
d) Sustitucin de las reglas con un nico no terminal en el lado derecho, segn se explica en el tercer paso del teorema 2.4.
Resulta:
S X R
R S Y
S W T
T N Z
S W Z
N X R
N W T
N W Z
X x
Y y
W w
Z z
Las secuencias
N
n
N
n-1
...
N
1
Fin
1
N
1
Fin
2
...
N
1
Fin
m
Se sustituyen por
N
n
Fin
1
N
n
Fin
2
...
N
n
Fin
m
Francesc Xavier Torres consigue una gramtica con menos reglas, al emplear una estrategia alternativa:
Las reglas
N
n
N
n-1
N
n-1
N
n-2
...
N
2
N
1
Son aplicadas en todos los lugares donde aparezcan N
n
, N
n-1
, ..., N
2
Resulta:
S X R
R S Y
S W T
T S Z
S W Z
X x
Y y
W w
Z z
En nuestro caso tenemos (NS). La aparicin de la N en (TN Z) del paso c) es sustituida, obteniendo (TS Z).
Ejercicios de Teora de Autmatas I 21
Jos Garza
EJERCICIOS DE LA SECCIN 2.3
1.- Aplique el teorema 2.5 para demostrar que el lenguaje { x
m
y
n
x
m
y
n
x
m
y
n
: m, n N e
+
} no es independiente del contexto.
Solucin:
{ x
m
y
n
x
m
y
n
x
m
y
n
: m, n N e
e
+
} tiene infinitas cadenas.
{ x
m
y
n
x
m
y
n
x
m
y
n
: m, n N
+
} no contiene cadenas de la forma x
m
y
n
v
p
y
n
w
p
y
n
: m, n, p N e
+
, p m, es decir, s v =
p
u w
p
t
Como no cumple la conclusin del teorema 2.5, es absurdo pensar que pueda cumplir la hiptesis; es decir, no es independiente del
contexto.
2.- Proporcione ejemplos de los siguientes lenguajes:
a) Un lenguaje no independiente del contexto.
c) Un lenguaje independiente del contexto pero no determinista.
c) Un lenguaje independiente del contexto determinista pero que no es aceptado por un autmata de pila determinista que
tenga que vaciar su pila
d) Un lenguaje que es aceptado por un autmata de pila determinista que tiene que vaciar su pila, pero que no es regular.
Solucin:
a) { x
n
y
n
z
n
: n N e
+
} Es consecuencia del teorema 2.5, (pgina 104).
b) { x
n
y
n
: n e N
+
} U { x
n
y
2n
: n e N
+
} Es consecuencia del teorema 2.6.
c) { x
n
: n e N
+
} U { x
n
y
n
: n N e
+
} Pgina 110, figura 2.22.
d) { x
n
y
n
: n e N
+
} No es regular, pues podra ser n mayor que el nmero de estados del autmata.
3.- Trace la porcin pertinente de un diagrama de transiciones para un autmata determinista que pasar del estado p al q leyendo
una x, extrayendo una y e insertando una z, si la cima de la pila contiene una y; o pasar al estado q leyendo una x, sin extraer nada e
insertando una z, si la pila no tiene una y en su cima.
Solucin:
Este diagrama :
p q
x, ; z
x, y ; z
No es determinista. Deberemos disearlo de otra forma. La transicin (p, x, ; q, z) hay que sustituirla por todas las que sean
necesarias para eliminar la indeterminacin. Sustituimos l una vez por cada uno de los smbolos de la pila, pero de forma que
globalmente no tengan ningn efecto:
Ejercicios de Teora de Autmatas I 22
4.- Identifique las situaciones que provocaran incertidumbres en la ejecucin de una autmata de pila que contuviera las
transiciones (p, , y; q, z) y (p, x, ; r, w).
x, ; w
, ; z
x, # ; #
x, z ; z
x, x ; x
x, y ; z
p
r
q
, y ; z
p
q
r
Solucin:
a) (p, , y; q, z) Aplicable sea cual sea la entrada, cuando en la cima de la pila hay una y.
b) (p, x, ; r, w) Aplicable cuando la entrada es x, sea cual sea la cima de la pila.
En conclusin: Existe un nico caso en el que son aplicables ambas transiciones; cuando la entrada es x y la cima de la pila es y. En el
resto de casos, siempre habr alguna transicin de las dos que no se pueda aplicar.
Ejercicios de Teora de Autmatas I 23
Jos Garza
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 2.4
1.- Reescriba el segmento de la figura 2.30 utilizando una estructura REPEAT_UNTIL en lugar de una estructura WHILE.
Insertar(S) ;
Leer(Smbolo) ;
WHILE Pila no vaca DO
CASE CimaPila OF
Terminal:
IF CimaPila = Smbolo
THEN
Extraer de la pila ;
Leer(Smbolo) ;
ELSE
Salir a rutina de error ;
END ;
No Terminal:
IF Tabla[CimaPila, Smbolo] = Error
THEN
Reemplazar CimaPila por Tabla[CimaPila, Smbolo] ;
ELSE
Salir a rutina de error ;
END ;
END ;
END ;
IF Smbolo = FDC THEN Salir a rutina de error; END ;
Solucin:
Insertar(S) ;
Leer(Smbolo) ;
REPEAT
CASE CimaPila OF
Terminal:
IF CimaPila = Smbolo
THEN
Extraer de la pila ;
Leer(Smbolo) ;
ELSE
Salir a rutina de error ;
END ;
No Terminal:
IF Tabla[ CimaPila, Smbolo] = Error
THEN
Reemplazar CimaPila por Tabla[CimaPila, Smbolo] ;
ELSE
Salir a rutina de error ;
END ;
END (* Del CASE *)
UNTIL Pila vaca ;
IF Smbolo = FDC THEN Salir a rutina de error; END
2.- Traduzca el diagrama de transiciones mostrado a continuacin, directamente a un segmento de programa que analice el lenguaje
en cuestin. Cules son las incertidumbres que deben resolverse para obtener un autmata determinista ?.
i
z, z ;
y, y ;
x, x ;
, S ; ySz
, # ;
, S ;
, ; S
, S ; xSz
, ; #
q
f
p
Solucin:
a) Segmento de programa:
Estado := i ;
Insertar(#) ;
Estado := p ;
Insertar(S) ;
Estado := q ;
Leer(Smbolo) ;
REPEAT
CASE CimaPila OF
S:
CASE Smbolo OF
x:
Extraer(S) ;
Insertar(xSz) ;
y:
Extraer(S) ;
Insertar(ySz) ;
END ;
x:
IF Smbolo = x
THEN
Salir a rutina de error ;
ELSE
Extraer(x) ;
Leer(Smbolo) ;
END ;
y:
IF Smbolo = y
THEN
Salir a rutina de error ;
ELSE
Extraer(y) ;
Leer(Smbolo) ;
END ;
z:
IF Smbolo = z
THEN
Salir a rutina de error ;
ELSE
Extraer(z) ;
Leer(Smbolo) ;
END ;
END ; (* Del CASE *)
UNTIL Pila vaca
Extraer(#) ;
IF Smbolo = FDC THEN Salir a rutina de error; END
Estado := f ;
b) Incertidumbres:
S
S x S z
S y S z
Ejercicios de Teora de Autmatas I 24
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
3.- Disee una tabla de anlisis sintctico LL(1) para la siguiente gramtica:
S x S z
S y S z
S
Solucin:
x y FDC
S xSz ySz
4.- Cuntos smbolos de preanlisis requerira un analizador sintctico LL al analizar la sintaxis de cadenas basadas en la
gramtica siguiente ?.
S x S y
S x y
Disee la tabla de anlisis sintctico correspondiente.
Solucin:
A pesar de que las cadenas admisibles son de la forma x
n
y
n
; ( ), es decir, que pueden tener cualquier longitud finita, bastan dos
smbolos de preanlisis:
n 1 >
Tabla de preanlisis:
xx xy FDC
S xSy xy error
Ejercicios de Teora de Autmatas I 25
Jos Garza
EJERCICIOS DE LA SECCIN 2.5
1.- Disee el diagrama de transiciones del autmata de pila correspondiente al analizador sintctico LR(k) de la siguiente gramtica:
S x S z
S y S z
S
z, ; z
y, ; y
x, ; x
, ySz ; S
, # ;
, ; S
, S ;
, xSz ; S
, ; #
i q
f
p
Solucin:
Por la regla S , existira la tentacin de permitir que el estado inicial fuera de aceptacin. Hay dos razones para no proceder as:
1 Se debe posibilitar la reduccin yz en yz; y posteriormente en ySz (recurdese que es LR).
2 El diseo del analizador sintctico ser ms fcil si slo debe comprobar la posible llegada a un nico estado de aceptacin
(f); en lugar de estar obligado a comprobar ms estados de aceptacin.
2.- Identifique la derivacin obtenida por el autmata de pila construido en el anterior ejercicio al analizar la cadena yxyzzz
Solucin:
N de fila Estado actual Contenido de la pila Resto de la entrada
01 p # yxyzzz
02 p #y xyzzz
03 p #yx yzzz
04 p #yxy zzz
05 p #yxyz zz
06 p #yxS zz
07 p #yxSz z
08 p #yS z
09 p #ySz
10 p #S
11 q #
12 f
y z
S
x z
S
y z
S
3.- Construya una tabla de anlisis sintctico LR(1) para la siguiente gramtica:
S x S y
S
Solucin:
5
1
3
4
2
S
S
x
y
x
x y FDC S
1 desplazar 2 aceptar 5
2 desplazar 2 S 3
3 desplazar 4
4 S x S y 3
5 aceptar
Ejemplo: cadena x x x y y y
Contenido de la pila Resto de la entrada
# (1)
# (1) x (2)
# (1) x (2) x (2)
# (1) x (2) x (2) x (2)
# (1) x (2) x (2) x (2) S (3)
# (1) x (2) x (2) x (2) S (3) y (4)
# (1) x (2) x (2) S (3)
# (1) x (2) x (2) S (3) y (4)
# (1) x (2) S (3)
# (1) x (2) S (3) y (4)
# (1) S (5)
x x x y y y
x x y y y
x y y y
y y y
y y y
y y
y y
y
y

Ejercicios de Teora de Autmatas I 26


INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 3.1
1.- Con qu configuracin de cinta se detendr la mquina de Turing mostrada a continuacin si comienza con la cinta configurada
como xxxAAA... ?
Ejercicios de Teora de Autmatas I 27
Jos Garza
Solucin:
Estado de la mquina Estado de la cinta
A / A
2
3
1
x / R
x / R
A / R
1 xxxAAA...
2 xxxAAA...
1 xxxAAA...
2 xxxAAA...
1 xxxAAA...
3 xxxAAA...
2.- Disee una mquina de Turing con smbolos de cinta x, y y A que busque en la cinta el patrn xyxy y se detenga si y slo si
encuentra ese patrn.
A / A
x / x
A / A
y / y
A / A
y / R x / R y / R
x / x
x / R
i 2 1 3
x / R
h
Solucin:
Jos Mara Olmedo Llera complet y coment el diagrama:
Los arcos de la ruta central son los que siguen el patrn dado.
El arco x / R que sale y regresa al estado inicial es para permitir que el patrn buscado est a partir de cualquier posicin, no slo empezando desde la primera.
Si estando en el estado 1 se lee algo diferente de y, se escribe ese algo (sin avanzar en la cinta) y se vuelve al estado inicial. Ser en ese estado inicial donde se
avance la cinta.
dem en el estado 2 con respecto al smbolo x y el estado 3 con respecto al smbolo y.
3.- Disee una mquina de Turing que, al iniciar con la cabeza sobre la celda del extremo izquierdo de la cinta, tenga una
terminacin anormal si y slo si hay una x registrada en algn lugar de la cinta. Si aplicara su mquina a una cinta que no contiene
ninguna x, detectara la mquina esta situacin?.
Solucin: Suponiendo que el alfabeto de la cinta es {x, y, A}:
Si no existe ninguna x, siempre se estara avanzando hacia la derecha, pero en cada instante no se conoce lo que hay ms a la
derecha, por lo que no se detecta la ausencia de x.
y / L
A / L
i
x / L
A / R
y / R
4.- Muestre que las capacidades computacionales de una mquina de Turing no aumentaran si se permitiera que tuvieran ms de un
estado de parada, ya que esta mquina se podra simular con una mquina de Turing con un slo estado de parada.
Solucin:
Un arco por cada smbolo
de pila, escribiendo el
mismo smbolo que se lee
mquina mquina
h
h
2
h
1
---
h
n
Con un nico estado de parada:
Resto de
la
h
2
h
1
---
h
n
Con varios estados de parada:
Resto de
la
EJERCICIOS DE LA SECCIN 3.2
1.- Combine los diagramas de transiciones de las siguientes mquinas
y / R M
1
A / A
x / x
x / y M
2
A / A
y / y
para formar el diagrama de transiciones de la mquina compuesta por:
M
2
M
1
x
Solucin:
Siguiendo los pasos de las pginas 149 y 150:
h
4 2 3
x / y
A / A
y / y
1
y / R
M
A / A
x / x
x / y
A / A
El funcionamiento de la mquina es:
1.- Busca el primer smbolo distinto de y.
2.- Si ese smbolo es x:, lo cambia por una y
3.- Regresa a 1.
La salida del bucle se produce al encontrar un espacio en blanco en cualquiera de estos tres estados: 3, 4, 1 2. Obsrvese que va
pasando por esta secuencia de estados hasta llegar al h.
Este funcionamiento se puede representar de una forma ms simple, sin seguir el procedimiento general:
h
4
x / y
1
y / R
M
A / A
Aunque en realidad, yo no lo he hecho directamente; sino partiendo del resultado del procedimiento general, suprimiendo estados
innecesarios.
2.- Utilizando los bloques de construccin presentados en esta seccin, construya una mquina de Turing que reemplace la cadena
de ceros y unos inmediatamente a la derecha de la cabeza por el complemento de la cadena y luego regrese la cabeza a su posicin
original. Suponga que el extremo derecho de la cadena est marcado con un espacio en blanco.
Solucin:
1
0
R A
e
L
A
A
0
1
0, 1
e
Ntese que se marca el bit de partida con A, para luego encontrarlo y colocar la cabeza lectora en dicho lugar de partida.
3.- En qu condiciones se presentara una terminacin anormal durante la ejecucin de la mquina S
R
?.
Solucin:
x
1
x
2
x
3
...
Las dos primeras instrucciones son AL, con lo que quedara as:
A x
2
x
3
..
Ejercicios de Teora de Autmatas I 28

INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED


ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
4.- Analice los clculos efectuados por la siguiente mquina de Turing :
A
R
*
A
A
L
-
A
Solucin:
1.- Escribe un *.
2.- Avanza hacia la derecha.
IF no es espacio en blanco
THEN Escribe un espacio en blanco ;
Vuelve a 2 ; // Todos los smbolos diferentes de A, los sustituye por A
ELSE Retrocede hasta encontrar el *
Sustituye el * por A
END ;
El efecto es:
. Todos los caracteres desde el comienzo hasta el primer A los sustituye por A.
Por ejemplo, si la configuracin inicial de la cadena es:
A x y z A x y z x x
La configuracin final es:
A A A A A x y z x x
Ejercicios de Teora de Autmatas I 29
Jos Garza
EJERCICIOS DE LA SECCIN 3.3
1.- a) Disee una mquina de Turing que acepte el lenguaje E*, donde E ={x, y}.
Solucin:
e
R
x, y
e
Ntese que avanza al primer smbolo de la cadena, lo rescribe sea cual sea; y se detiene sin seguir leyendo, sea cual sea el resto.
b) Disee una mquina de Turing que acepte el lenguaje |.
Solucin:
Ejercicios de Teora de Autmatas I 30
Ntese que siempre est avanzando hacia la derecha. Nunca llega a un estado de parada.
2.- Muestre que una mquina de Turing se puede modificar para que evite una terminacin anormal, pero que a la vez acepte las
mismas cadenas que antes.
Solucin:
La nica modificacin en M
0
con respecto a M
1
es que da cada estado de M
1
sale la rama
Original
X
m
... X
3
X
2 A X
1
i
n 1
. M
0
2
.
. 3
4
#
R
R
Modificada
# X
m
... X
3
X
2 A X
1
i
n 1
. M
1
2
.
. 3
4
En lugar de terminar anormalmente, hace avanzar indefinidamente hacia la derecha la cadena lectora.
3.- Muestre que si en una mquina de Turing se permite que las transiciones individuales afecten a ms de una cinta, entonces no
aumenta el potencial de la mquina. En otras palabras, muestre que cualquier transicin que opera sobre ms de una cinta se puede
simular con una secuencia de transiciones que operan cada una en una sola cinta.
Solucin:
Los pasos B1, B2 y B3 del teorema 3.1 son para el supuesto de que haya que operar slo sobre la cinta j. Si hubiera que operar sobre
las cintas i, j, k, ... ; se ejecutara esta secuencia de pasos :
B1i B2i B3i B1j B2j B3j B1k B2k B3k ...
4.- Muestre que para cualquier clculo de una mquina de Turing cuya cinta se extiende infinitamente hacia la izquierda y hacia la
derecha se puede simular con una mquina de Turing de dos cintas; y por lo tanto, con una mquina de Turing tradicional.
Solucin:
Hay que tener cuidado con varios detalles:
Se puede simular con :
l
1
l
3
l
2
l
1 A
l
3
l
2
i
n 1
.
. M
1
2
.
3
r
3
r
3
r
2
r
2 A r
1
r
1
i
n 1
.
. M
0
2
.
3
Slo hay una cabeza lectora, compartida por las dos cintas, esto es, en cada instante slo una cinta tiene el foco de la cabeza.
En el diseo de M
1
, las referencias a l
i
, las L deben cambiarse por R y viceversa.
El paso de la cabeza desde r
1
a l
1
debe provocar el paso desde el extremo izquierdo de la primera al de la segunda cinta.
El paso de la cabeza desde l
1
a r
1
debe provocar el paso desde el extremo izquierdo de la segunda al de la primera cinta.
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 3.4
1.- Dibuje un diagrama de transiciones para todas las mquinas de Turing con smbolos de cinta x y A que slo tengan dos estados
(uno inicial y otro de parada). Cmo se relacionan su capacidad para llevar a cabo esta tarea y el hecho de que sea contable la
coleccin de todas las mquinas de Turing cuyo conjunto de smbolos de cinta es {x, A} ?.
Solucin :
x / A x / x x / L
A / R
A / R
x / R
x / R
A / A
x / L
A / A
x / A
x / x
A / R
x / A
A / L
x / A
A / x
x / A
A / A
x / x
A / A
x / x
A / x
x / x
A / L A / R
x / L
A / A
x / L
A / x
x / L
A / L
x / L
x / R
A / A
x / R
A / x
x / R
A / L
x / R
A / R
x / x
A / A
x / A
A / A
A / x
x / A
A / x
x / x
A / x
x / L
A / x
x / R
A / L
x / A
A / L
x / x
A / L
x / L
A / L
x / R
A / R
x / A
A / R
x / x
A / R
x / L
A / R
x / R
A / A
x / L
A / A
x / x
A / A
x / A
A / A
A / x
x / A
A / x
x / x
A / x
x / L
A / x
x / R
A / L
x / A
A / L
x / x
A / L
x / L
A / L
x / R
A / R A / R A / R
x / R
Esta tarea se puede llevar a cabo de forma sistemtica, obtenindose un nmero finito de mquinas de dos estados. Tambin para el
caso en que el nmero de estados sea cualquier n finito. Como el conjunto de las mquinas T de S={x, A} pueden clasificarse segn el
nmero de estados, se concluye que dicho conjunto es contable.
Ejercicios de Teora de Autmatas I 31
Jos Garza
2.- Muestre que al agregar una segunda pila a un autmata de pila, obtenemos una clase de mquinas con el mismo poder de
aceptacin de lenguajes que las mquinas de Turing.
Solucin:
Situacin inicial:
Pila R Pila L
vaca vaca
X
3
X
2
X
1
i
n 1
.
. M
0
2
.
3
Situacin de puesta en marcha de la simulacin:
...
Pila R Pila L
vaca
X
3
X
2
X
1
i
n 1
.
. M
0
2
.
3
Ya no es necesaria la cinta
A partir de este momento:
. Un movimiento hacia la derecha de la cabeza de lectura en la mquina de Turing es equivalente a una extraccin de la Pila R e
insercin de lo extrado en la Pila L..
. Un movimiento hacia la izquierda de la cabeza de lectura en la mquina de Turing es equivalente a una extraccin de la Pila L e
insercin de lo extrado en la Pila R.
. Una operacin de escritura en la cinta de la mquina de Turing es equivalente a una extraccin en la Pila R, e insercin en la
misma pila del valor que se escribe.
Como vemos, todas las operaciones de la mquina de Turing para gestionar la cinta se pueden simular con un autmata de dos pilas.
Ejercicios de Teora de Autmatas I 32
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
3.- Desarrolle una gramtica estructurada por frases que acepte el mismo lenguaje aceptado por la mquina de Turing cuyo
diagrama de transiciones se muestra a continuacin. Con la gramtica que obtenga, busque una derivacin de la cadena x.
Ejercicios de Teora de Autmatas I 33
Jos Garza
Solucin:
a)
i) Estas son fijas:
S [ h A Y A ] (1)
A ] A A ]
ii) Para cada transicin de la forma o(p, x) = (q, y) introducimos la regla q y p x
s Y r x (3)
iii) Para cada transicin de la forma o(p, x) = (q, R) introducimos la regla x q p x
(de o(i, A) = (p, R) ) : A p i A (6)
(de o(p, x) = (q, R) ) : x q p x (5)
(de o(s, Y) = (h, R) ) : i h s Y
Esta ltima, en realidad no debera existir. Si la incluyo es debido a una errata del libro. El ltimo arco debe ser Y/L, no Y/R.
iv) Para cada transicin de la forma o(p, x) = (q, L) y cada smbolo y de la cinta, introducimos la regla q y x y p x
(de o(q, A) = (r, L) ), como los smbolos de la cinta son x y A, tendremos:
r x A x q A (4) h x Y x s Y
r A A A q A h A Y A s Y (2)
r Y A Y q A h Y Y Y s Y
v) Estas tambin son fijas:
[ i A (7)
A A ] A ]
A ] (8)
b)
s [h A Y A ] [A s Y A ] [A r x A ] [A x q A ] [A p x A ] [i A x A ] x A ] x
( ) 1

( ) 2

( ) 3

( ) 4

( ) 5

( ) 6

( ) 7

( ) 8

A veces es conveniente comprobar en el diagrama de transiciones que la cadena x es admisible por la mquina de Turing:
[i A x A ]
[A p x A ]
[A x q A ]
[A r x A ]
[A s Y A ]
[h A Y A ]
4.- Muestre que el lenguaje { x
n
y
2n
z
4n
: n e N } es aceptado por una mquina de Turing.
Solucin:
A / R
i
x / R
p
A / L
q
x / Y
x
r
S
L
Y / L
S
L
s
R
h
R
z
y
z
y
#
z
L
#
S
L
S
L
z
z
z A, x
A, x
A, z
A, z
y, z
#
R
A
L
A
z
y x
R
S
L
x
y
y
S
L
y
z
S
L
Ntese que al llegar a la esquina superior derecha, la cadena x
n
y
2n
z
4n
, la ha reducido a x
n-1
y
2n-2
z
4n-4
. La consecuencia de esto, es que
el lenguaje x
n
y
2n
z
4n
puede ser generado por una gramtica independiente del contexto.
EJERCICIOS DE LA SECCIN 3.5
1.- Disee una mquina de Turing que acepte exactamente aquellas cadenas de ceros y unos que sean representaciones vlidas de
mquinas de Turing deterministas, de acuerdo con el sistema de codificacin descrito en esta seccin.
Solucin:
El sistema de codificacin para cada transicin de la mquina es:
1 [N
p
] 1 [N
x
] 1[N
q
] 1 [N
y
] 1
N
p
Nmero de ceros que codifican el estado actual.
N
x
Nmero de ceros que codifican la entrada actual.
N
q
Nmero de ceros que codifican el estado siguiente.
N
y
Nmero de ceros que codifican R, L el smbolo escrito en la cinta.
Para comprobar que la mquina codificada es determinista, basta comprobar que no se repite ningn par (N
p
, N
x
). Para ello es
conveniente tener ordenadas las transiciones, primero las que parten del estado 0, despus las que parten del estado 000, luego las
que parten del estado 0000; y as sucesivamente.
Si se desea utilizar una nica cinta, la implementacin de la comprobacin puede hacerse con cualquier algoritmo de recorrido y
comparacin. Pero si tenemos la libertad de usar varias cintas (ms que el nmero de smbolos de cinta):
1 1
Las siguientes columnas son una para cada uno de los siguientes estados a p
...
Nx
n
Nx
3
Nx
2
Nx
1
Ny
2
Nq
2
Nx
2
N
p
1 1 1 Ny
1
Nq
1
1 1 1 N
p
Nx
1
i
n 1
.
. M
0
2
.
3
el algoritmo sera ms simple:
1 Llenar las n ltimas cintas tal como se muestra en la figura
2 La mquina codificada es determinista si y slo si en ninguna columna existen valores repetidos.
2.- Localice la paradoja que existe en el siguiente enunciado:
El cocinero de una comunidad aislada cocina para aquellas personas; y slo para aquellas personas que no cocinan para s
mismas .
Cmo se relaciona esta pregunta con esta seccin ?.
Solucin:
. Si el cocinero come de su comida, se contradice el enunciado, pues cocina para s mismo.
. Si el cocinero no come de su comida, hay alguien que cocina para l. No es el nico cocinero. El enunciado, para ser correcto,
debera comenzar as: Un cocinero de una comunidad aislada .. .
Definiciones
P
0
: { Personas que no cocinan para s mismas }. Es un subconjunto de los habitantes de la isla.
C : Persona que cocina para todas las personas del conjunto P
0
.
El problema es anlogo al expuesto en la pgina 183:
L
0
: { Cadenas w que no son aceptadas por su mquina M
|w|
asociada con la funcin ms arriba definida }
M : Mquina de Turing que acepta L
0
.
All se demuestra la inexistencia de M. Por analoga, aplicado al teorema actual, tambin se demuestra la inexistencia de C.
Ejercicios de Teora de Autmatas I 34
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
3.- Disee una mquina de Turing que acepte las cadenas del lenguaje L={w
n
: w = xy } al detenerse con su cinta configurada como
A Y A A A ... y rechace las cadenas que no se hallan en L al detenerse con la configuracin A N A A A ...
Explique por qu no puede construirse esta mquina en el caso de todos los lenguajes aceptados por mquinas de Turing.
Solucin:
#
R
R
*
x
Reduce pares xy
Marca los extremos
inicial y final con # y *,
respectivamente
Salida No
Salida Si
#
A L
#A*
R
*
y
S
L
S
L R
A
S
R
R * L
A
L
A L
R
A
y
y x
#
ARYL
#
ARNL
En los lenguajes no decidibles con mquinas de Turing no es posible detectar alguna de estas posibilidades: cadena aceptable
cadena rechazable. El diagrama de la mquina de Turing carece de alguna de las salidas. Por este motivo, en dichos lenguajes es
imposible crear la mquina pedida.
4.- Exponga un argumento de que cualquier lenguaje que contenga un nmero finito de cadenas es decidible con mquinas de
Turing.
Solucin:
Cuando nos dispongamos a construir una mquina M de Turing para analizar la pertenencia o no de ciertas cadenas a un lenguaje L
cuyo nmero de cadenas sea n finito, podremos construir M de forma que tenga n+1 cintas. Almacenamos cada una de las n cadenas
de L en una cinta. En la otra cinta almacenamos la cadena en estudio. Por comparacin entre esta cadena y las dems, podremos
discernir si pertenece o no al lenguaje L.
5.- Ample la tabla de la figura 3.26 para contestar a la pregunta de si la cadena xxyyyxy es generable con la gramtica dada.
Solucin:
S M N P
1 x y x
y
2 La de MN La de MP La de PN
3 La de MPN Las de MPP Las de PPN
4 Las de MPPN Las de MPPP Las de PPPN
5 Las de MPPPN Las de MPPPP Las de PPPPN
6 Las de MPPPPN Las de MPPPPP Las de PPPPPN
7 Las de MPPPPPN
xxyyyxy
est entre ellas
Las de MPPPPPP Las de PPPPPPN
Ejercicios de Teora de Autmatas I 35
Jos Garza

También podría gustarte