You are on page 1of 35

INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED

ASIGNATURA: TEORÍA DE AUTÓMATAS I


Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 1.1

1.- Diseñe un diagrama de transiciones para reconocer expresiones aritméticas de longitud arbitraria que comprenden enteros
positivos separados por signos de suma, resta, multiplicación o división.

Solución:
dígito
dígito
operador dígito
dígito
1 2 3 4
operador
letra letra
operador letra letra
error operador

operador = ‘+’, ‘-‘, ‘*’, ó ‘/’

Comentarios:
1º No puede comenzar recibiendo un operador, por dos razones:
1ª Está especificado que los números son positivos.
2ª Si se empieza admitiendo un operador, es estaría admitiendo que la cadena empezara con * ó /.

2º En el diagrama dado se llega al estado de aceptación tras leer dos y sólo dos números enteros de longitud arbitraria.

Si el número de operaciones pudiera ser mayor que una, tendríamos un arco del estado 4 al 3 con etiqueta operador:
dígito
dígito
operador dígito
dígito
1 2 3 operador 4

letra letra operador


operador letra
letra
error operador

operador = ‘+’, ‘-‘, ‘*’, ó ‘/’

Ejercicios de Teoría de Autómatas I 1 José Garzía


2.- Escriba un analizador léxico directamente a partir del siguiente diagrama de transiciones:

dígito letra

letra
1  3 =
4
dígito

5 dígito

Solución:

Estado := 1;
Leer el siguiente símbolo de entrada
WHILE El último símbolo leído no sea el de Fin de Cadena DO
CASE Estado OF
1: CASE Símbolo actual OF
Letra : Estado := 2 ;
‘:’ : Estado := 3 ;
Dígito : Estado := 5 ;
ELSE Salir a rutina de error ;
END (* del CASE interno *)

2: CASE Símbolo actual OF


Letra : Estado := 2 ;
Dígito : Estado := 2;
ELSE Salir a rutina de error ;
END (* del CASE interno *)

3: IF Símbolo actual <> ‘=‘ THEN Salir a rutina de error END ;

4: IF Símbolo actual <> NIL THEN Salir a rutina de error END ;

5: IF Símbolo actual <> dígito 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 léxico basado en la tabla.

Solución:
TABLA DE TRANSICIONES

Símbolo
letra dígito ‘:’ ‘=‘ FDC
Estado
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 LÉXICO

Estado := 1 ;
REPEAT
Leer el siguiente símbolo de entrada ;
CASE Símbolo OF
0..9 : Entrada := dígito ;
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 ;
UNTIL Estado=aceptar ;
Ejercicios de Teoría de Autómatas I 2
INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

4.- Muestre que se puede modificar un diagrama de transiciones que contiene un arco rotulado por una cadena de símbolos de
longitud dos o más (lo cual significa que para recorrer el arco se requiere la cadena completa y no un sólo símbolo) para que
contenga sólo arcos rotulados con símbolos simples, pero de manera que siga aceptando las mismas cadenas que antes.

Solución:

Inicialmente:
x1 x2 ... xn-1 xn
I F

Pero si añadimos nuevos estados intermedios de la forma:

x1 x2 xn-1 xn
I S2 S3 ... Sn F

Es decir, de forma que:


Si estando en el estado I recibe la entrada x1, cambia al estado S2.
Si estando en el estado Si recibe la entrada xi, cambia al estado Si+1 (I=2,3, ..., n-1).
Si estando en el estado Sn recibe la entrada xn, cambia al estado F.

Entonces, ambos autómatas tienen idéntica respuesta ante la cadena dada.

Ejercicios de Teoría de Autómatas I 3 José Garzía


EJERCICIOS DE LA SECCIÓN 1.2

1.- Describa las cadenas que acepta el autómata finito determinista representado en el siguiente diagrama de transiciones:
letra letra

dígito dígito
Solución:

La expresión regular es: digito* q letra q (digito ‰ letra)*


La descripción es: cadenas formadas por cero o más dígitos y al menos una letra, estando esta (o estas) en cualquier posición.

2.- Modifique el siguiente esqueleto de diagrama de transiciones de manera que esté completamente definido y acepte las mismas
cadenas que antes.
b a b a b

Solución:

b a b a b

a b a
error
a b

3.- Identifique otro autómata finito determinista de la vida diaria y dibuje su diagrama de transiciones.

Solución:

Un bolígrafo. Las entradas posibles al sistema son: x1=pulsar ó x2= no pulsar. La respuesta ante una misma entrada no siempre es la
misma. Depende también 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 bolígrafo es que su punta esté dentro o esté fuera. La
respuesta depende de la entrada aplicada y de si está dentro o fuera. Además, en la definición de autómata finito debe haber un estado
inicial. Podemos elegir un bolígrafo que inicialmente tuviera la punta dentro.
entrada x1 =no pulsar x2 =pulsar
estado
s1=punta dentro y1 = no se mueve y2 = sale
s2 =punta fuera y1 = no se mueve y3 = entra

no pulsar Ÿ no se mueve pulsar Ÿ sale no pulsar Ÿ no se mueve

punta dentro punta fuera

pulsar Ÿ entra

Ejercicios de Teoría de Autómatas I 4


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 1.3

1.- ¿Cómo puede modificarse el autómata finito determinista M=(S, 6, G, , F) para obtener una máquina que acepte el lenguaje 6*-
L(M)?. Obsérvese que, si esto es posible, entonces, el complemento de un lenguaje regular respecto a 6* también es regular.

Solución:

Convirtiendo los estados de aceptación en estados de no aceptación; y viceversa, las cadenas que antes eran aceptables ya no lo son;
y viceversa.

Francesc Xavier Torres aporta la expresión matemática:

Sea M = (S,6, G, L, F), entonces el M’ tal que L(M’) = 6*-L(M) es M’= (S, 6, G, L, S-F)

Si el autómata debiera tener por lo menos un estado de aceptación (página 29 del libro de texto) deberíamos contemplar esta
excepción:

Excepción: Cuando el autómata tiene un único estado.


Figura 1.14 a), autómata que acepta cualquier cadena:
x1

xn

Figura 1.14 b), autómata que no acepta ninguna cadena:


x1 x1

xn xn

Ejercicios de Teoría de Autómatas I 5 José Garzía


2.- Elabore una lista de los autómatas finitos deterministas basados en el alfabeto {x, y} que tengan un estado; y luego los que
tengan dos estados.

Solución:

Recordemos que un autómata finito determinista cumple:


- Existe un estado inicial.
- De cada estado parte un arco (y sólo uno) por cada una de las entradas posibles.

Además, contra los indicado el la página 29 del texto base, admitiremos que un autómata puede no tener ningún estado de aceptación.

2.a) Autómatas con un sólo estado. Dos posibilidades.

01 x

02 x

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 aceptación
puede ser vacío. Si el autómata debiera tener siempre al menos un estado de aceptación, para analizar el lenguaje vacío se debería
utilizar el diagrama de la figura 1.14b), el cual ya no es de un solo estado:
x x
1 2
y y

2.b) Autómatas con dos estados.

Recordemos que al ser determinista, en cada estado debe haber un arco y sólo un arco para cada símbolo de alfabeto. El
procedimiento para contar los autómatas es:
Nº de autómatas Nº de arcos posibles en cada estado Nº de estados posibles actuales
Como para un mismo símbolo (en cada estado) debe haber un único arco, el número de arcos posibles en cada estado es igual al
número de arcos diferentes en cada estado.
Nº de arcos diferentes N
A
Nº de símbolos de alfabeto ˜ Nº de estados siguientes posibles
por tanto:

Nº de autómatas > Nº de símbolos de alfabeto ˜ Nº de estados posibles siguientes @ Nº de estados posibles actuales >2 ˜ 2@2 16

Nº x del estado inicial y del estado inicial x del estado no inicial Y del estado no inicial
1 Al estado inicial Al estado inicial Al estado no inicial Al estado no inicial
2 Al estado no inicial Al estado inicial Al estado no inicial Al estado no inicial
3 Al estado inicial Al estado no inicial Al estado no inicial Al estado no inicial
4 Al estado no inicial Al estado no inicial Al estado no inicial Al estado no inicial

5 Al estado inicial Al estado inicial Al estado inicial Al estado no inicial


6 Al estado no inicial Al estado inicial Al estado inicial Al estado no inicial
7 Al estado inicial Al estado no inicial Al estado inicial Al estado no inicial
8 Al estado no inicial Al estado no inicial Al estado inicial Al estado no inicial

9 Al estado inicial Al estado inicial Al estado inicial Al estado inicial


10 Al estado no inicial Al estado inicial Al estado inicial Al estado inicial
11 Al estado inicial Al estado no inicial Al estado inicial Al estado inicial
12 Al estado no inicial Al estado no inicial Al estado inicial Al estado inicial

13 Al estado inicial Al estado inicial Al estado no inicial Al estado inicial


14 Al estado no inicial Al estado inicial Al estado no inicial Al estado inicial
15 Al estado inicial Al estado no inicial Al estado no inicial Al estado inicial
16 Al estado no inicial Al estado no inicial Al estado no inicial Al estado inicial

Ejercicios de Teoría de Autómatas I 6


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia
2.b.i)
01 x x 02 x x 03 x x 04 x x
1 2 1 2 1 y 2 1 y 2
y y y y y y

x
05 x x 06 07 x x 08 x
x x
1 2 1 2 1 y 2 1 y 2
y y y y y y

x
09 x x 10 11 x x x
x 12 x
1 2 1 2 1 y 2 1 y 2
y
y
y y y y

13 x x 14 x 15 x x x
x 16 x
1 2 1 2 1 y 2 1 2
y y y
y y y y
2.b.ii)
Hay otras 16 combinaciones, con la única variación respecto a las de 2.b.i) de considerar como estado de aceptación sólo el 1.

17 x x 18 x x 19 x x 20 x x

1 2 1 2 1 y 2 1 y 2
y y y y y y

21 22 x 23 24
x x x x x
x x
1 2 1 2 1 y 2 1 y 2
y y y y y y

25 26 x 27 28
x x x x x
x x
1 2 1 2 1 y 2 1 y 2
y
y
y y y y

29 x x 30 x 31 x x x
x 32 x
1 2 1 2 1 y 2 1 2
y y y
y y y y

2.b.iii)

Ejercicios de Teoría de Autómatas I 7 José Garzía


Hay otras 16 combinaciones, con la única variación respecto a las de 2.b.i) de considerar como estados de aceptación el 1 y el 2.

33 x x 34 x x 35 x x 36 x x

1 2 1 2 1 y 2 1 y 2
y y y y y y

37 38 x 39 40
x x x x x
x x
1 2 1 2 1 y 2 1 y 2
y y y y y y

41 42 x 43 44
x x x x x
x x
1 y 2 1 2 1 y 2 1 y 2
y
y y y y

45 x x 46 x 47 x x x
x 48 x
1 y 2 1 y 2 1 y 2 1 y 2
2.b.iv) y y y y
Hay otras 16 combinaciones, con la única variación respecto a las de 2.b.i) de no considerar como estados de aceptación ni el 1 ni el 2.
Estas 16 no existirían si en el autómata por lo menos uno fuera de aceptación.

Comentarios:

ƒ Posible duda: ¿No serían autómatas distintos, si el estado inicial fuera el 2, es decir 96 en total (puesto que no se habla de
autómatas como reconocedores de lenguajes, de forma que son distintos aunque reconozcan el mismo lenguaje)? Si
incluimos la variación en la que estado inicial es el 2, el autómata obtenido no es nuevo. Por ejemplo, partiendo del autómata
Nº 02:

La x del estado inicial va al estado no inicial 02 x x


La y del estado inicial va al estado inicial
La x del estado no inicial va al estado no inicial 1 2
La y del estado no inicial va al estado no inicial y y

Obtenemos este autómata:


x x
1 2
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 x x

1 2
y y

Tengamos en cuenta que cambiar de nombre los estados no hace que los autómatas sean diferentes. De no ser así,
podríamos llamarlos x x

a p
y y

a, p, r, Bieito, Xosé, Manel, Xoan, etc, y habría infinitos autómatas.

Ejercicios de Teoría de Autómatas I 8


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia
2.b.v)

También podemos tener en cuenta un estado de error. ¿Acaso el estado de captación global no es un estado posible?. Pues claro que
sí. No se puede tener en cuenta en los diagramas de dos estados, pues entonces serían de tres estados. Pero sí se puede tener en
cuenta en el diagrama de un estado para formar diagramas de dos estados.
x x x x x x

1 error 1 error 1 error


y y
y y y y

En conclusión, el número de autómatas de dos estados es 16 + 16 + 16 + 16 + 3 = 67


Si debieran tener al menos un estado de aceptación, excluiríamos los diagramas de 2.b.iv); y el número de autómatas de dos estados
sería 16 + 16 + 16 + 3 = 51

El estudio de combinaciones ahora ha sido más simple, pues:

1º Los arcos que salen del estado de captación sólo pueden tener como destino el estado de captación.
2º Los arcos que salen del estado inicial no pueden tener la combinación en la que ambos arcos vuelven al estado inicial
pues este diagrama
x x

1 error

y y
es equivalente a este (el cual no es de dos estados):
x

3.- Muestre que si un autómata finito determinista es capaz de aceptar un número de cadenas infinito, entonces debe aceptar una
cadena que consista en la concatenación de tres segmentos tales que cualquier repetición del segmento central (que es no vacío) 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.

Solución:

El autómata es finito Ÿ El número n de estados es finito


El número de cadenas es infinito Ÿ Para cualquier c1 de longitud l1, existe una cadena c2 de longitud l2>l1.

Estos dos hechos implican el que existan cadenas de longitud l>n. Es decir, existen cadenas en las que algún estado es recorrido más
de una vez. Estas cadenas pueden ser de esta forma:

S1 ... Sk-1 Sk Sk+1 ...


Sn

Segmento central
o de esta otra forma:

S1 ... Si ... Sk ... Sj ...


Sn

Segmento central
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 número de veces; y posteriormente recorrer
desde Sj hasta Sn, con lo que son admisibles cadenas con un número cualquiera de repeticiones del segmento central.

Sergio Gálvez Rojas aporta un enunciado más formal y general; y una conclusión:

Si L es un lenguaje regular sobre T, entonces:


Existe p>0 / para todo w perteneciente a L, con |w|>=p, existe una descomposición de la forma w=xyz con x,y,z pertenecientes a T* con
i
|y|>0, de manera que el bombeo de y (y , para todo it0), en su entorno, verifica:
i
xy z pertenece a L, para todo i>=0.

Es más, el lema nos dice que esta es la única forma de obtener cadenas arbitrariamente largas (de longitud superior a un p dado. Si
n n
hay alguna otra forma, entonces el lenguaje no es regular, como ocurre con el mencionado L={0 1 , nt0} en el que no hay ningún trozo
intermedio que, repitiéndose varias veces, siga perteneciendo al lenguaje.
4.- Muestre que no existe un autómata finito determinista M tal que L(M)={xnynzn: n  N}.
Ejercicios de Teoría de Autómatas I 9 José Garzía
Solución:

El autómata es finito Ÿ El número m de estados es finito.


n n n
La longitud n de x y z puede ser todo lo grande que queramos.
n n n
Estos dos hechos implican el que en x y z , n puede ser mayor que m. Dicho de otra manera, algún estado o segmento de estados
debe ser recorrido más de una vez.
Supongamos que a ese estado o segmento de estados se llega con la entrada x. Recorriéndolo un determinado número de veces,
n n n
se tiene la secuencia x y z . Nada impide que ese estado o segmento se recorra un número mayor de vces, con lo que la secuencia
p n n
sería x y z , con p>n.
n p n n n p
Si hubiéramos supuesto que se llegaba con entrada y ó z, se tendrían secuencias x y z ó x y z , con p>n. Con cualquiera de
estas suposiciones se tiene un autómata cuyo lenguaje no es {x y z : n  N}.
n n n

5.- Muestre que puede utilizarse un autómata finito determinista para reconocer una cadena de paréntesis anidados y equilibrados si
se asegura que la profundidad de anidamiento no excederá de un nivel preestablecido.
Este autómata lee cadenas de paréntesis anidados hasta un nivel n, y los acepta sólo cuando están todos equilibrados.

Solución:

Este autómata permite cadenas del tipo ( ( ) ( ) ). Se vuelven a abrir paréntesis después de aparecer el primero que cierra.
) ) ) ) ) )

( S1 ( S2 ( S3 ( ... ( Sn-1 ( Sn
S0

) (
error

Francesc Xavier Torres opina que las cadenas deben ser del tipo ( ( ( ) ) ). Una vez aparece el primero que cierra, no se pueden abrir
más. Propone este autómata:

( S1 ( S2 ( S3 ( ... ( Sn-1 ( Sn
S0

) ) ) ) )

) S1’ ) S2’ ) ... ) Sn-2’ ) S


Sf n-1

( ( ( (

error

) (

Ejercicios de Teoría de Autómatas I 10


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIÓN 1.4

1.- Identifique los puntos donde existe no determinismo en el siguiente diagrama de transiciones:
letra

2
letra
letra
dígito
1 dígito
letra

dígito 3

dígito

Solución:
letra

2
letra
letra
dígito
1 dígito
letra

dígito 3

dígito

2.- Utilizando métodos 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.
dígito

1 dígito 2 x 3 dígito dígito


4

dígito
5

Solución:

Acepta dos clases de cadenas:


n m
1ª: (dígito) (punto) (dígito) , m, n t 1
r
2ª: (dígito) r t 1
n
La primera clase podría reducirse a la segunda, si modificamos el diagrama original de forma que el estado al que llega tras (dígito) ,
(el 2) sea de aceptación. De esta forma no es necesaria la rama del estado 5:

dígito

1 dígito x 3 dígito dígito


2 4

3.- Muestre que cada autómata finito determinista (S, 6, G, , F), es un autómata finito no determinista, demostrando que la función
de transición G puede representarse como un subconjunto de Sx6xS.

Solución:

En los deterministas, G es una función:


Sx6 S
G

A cada elemento de Sx6 le corresponde uno sólo de S. Por eso, G es un subconjunto de Sx6xS formado por todos los pares posibles
de Sx6, junto con un sólo elemento de S.
Al ser G un subconjunto de Sx6xS, cumple las condiciones de la definición de autómata finito determinista.

Ejercicios de Teoría de Autómatas I 11 José Garzía


4.- Empleando las técnicas presentadas en la demostración del teorema 1.3, dibuje un diagrama de transiciones para un autómata
finito determinista que acepte las mismas cadenas que el autómata finito no determinista representado en el siguiente diagrama de
transiciones:
b
1 2
a

b a
3

Solución:
1, 2
1 b a 2
a b
a b
b
1, 3 2, 3
a
a a b b

1, 2, 3

a b

a vacío b

Ejercicios de Teoría de Autómatas I 12


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 1.5

1.- Elabore una lista con con todas las frases generadas por esta gramática:

<frase> o<sustantivo> <predicado> <punto>


<sujeto>o <sustantivo>
<sustantivo> o María
<sustantivo> o Juan
<predicado> o <verbo intransitivo>
<predicado> o <verbo transitivo> <objeto>
<verbo intransitivo> o patinar
<verbo transitivo> o golpear
<verbo transitivo> o quiere
<objeto> o a <sustantivo>
<punto> o .

Solución:

María patina. Juan patina.

María golpea a Juan. Juan golpea a Juan.


María golpea a María. Juan golpea a María.

María quiere a Juan. Juan quiere a Juan.


María quiere a María. Juan quiere a María.

2.- Muestre que es posible modificar la gramática que se presenta a continuación (con el símbolo inicial S) para formar una
gramática regular, sin cambiar el lenguaje que genera. ¿Cuál de los ejercicios de alguna sección anterior es en esencia el mismo
problema, aunque en un contexto diferente?.

S oy X
X ox x X
X oy Y
Y oO

Solución:
n
Frases que genera: y (x x) y ; n t 0

Para que sea regular, debemos cambiar la regla X o x x X, manteniendo el mismo lenguaje generado. Para ello, sustituimos la
antedicha regla por estas otras dos:

Xox Z
ZoxX

En consecuencia, la gramática modificada es:

SoyX
Xox Z
ZoxX
XoyY
YoO

Este problema es, en esencia, el mismo que el 4º de la sección 1.1. En ambos se descompone una cadena de longitud mayor que la
unidad, en varias de longitud unidad.

Ejercicios de Teoría de Autómatas I 13 José Garzía


3.- Convierta la siguiente gramática regular en otra gramática regular que no contenga reglas de reescritura cuyos lados derechos
consistan en un sólo terminal, pero que a la vez genere el mismo lenguaje. Describa el lenguaje generado.
SoxS
Soy
Soz

Solución:
m n
Lenguaje generado: { y, z, xy, xz, xxy, xxz, xxxy, xxxz, ..., x...xy, x...xz }, en forma compacta: {x y, x z: m,n t 0, m, n N }
Gramática modificada:

SoxS
SoyY
YoO
SozZ
ZoO

4.- Dibuje un diagrama de transiciones para un autómata finito que acepte el lenguaje generado por la gramática regular (con
símbolo inicial S) que se presenta a continuación. Describa el lenguaje generado.
S o O
Sox X
SoyY
YoyY
Y o O
Xox X
X o O

Solución:

m
Lenguaje generado: { O, x , x : m, n
n
N }
Diagrama de transiciones:

X x
x

S
y
Y y

5.- Presente una gramática regular que genere el lenguaje aceptado por el autómata finito cuyo diagrama de transiciones se muestra
a continuación:
b
a a
M
a
S P
b
N
b
b
a
Solución:

SoaM
SobN

MoaP
MobM
MoO

NoaN
NobP Nota: Las reglas 3, 7, 9 y 10 pueden ser suprimidas. Son improductivas. Si se cae en el estado P,
NoO luego no se puede llegar a ningún estado de aceptación. Aunque la gramática resultante de suprimir
estas reglas sea diferente, tiene el mismo lenguaje. Démonos cuenta que se pide “una gramática”, no
“la gramática”.
PoaP
PobP

Ejercicios de Teoría de Autómatas I 14


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 1.6

1.- ¿Cuáles de los lenguajes descritos en las siguientes expresiones regulares para el alfabeto { x, y, z } son infinitos?. Describa, en
una sóla frase, el contenido de cada uno de estos lenguajes infinitos; y elabore una lista exhaustiva de las cadenas de los lenguajes
finitos.
a) (x q (y q z*) ) b) (x* q (y q z)) c) ((z ‰ y) q x) d) (x ‰ y)*
e) (y q y)* f) (x* ‰ y*) g) ((x q x) ‰ z) h) ((z ‰ y) ‰ x)

Solución:

a) Por tener la operación 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) q (x ‰ y) q (x ‰ y)... es decir: ({x, y})*

e) Infinito. El conjunto de frases es {y , n  N}


2n

f) Infinito. El conjunto de frases es de la forma x, xx, xxx,..., x...x, y, yy, yyy, ..., y...y, es decir: { x , y ; m,n  N} = {x*, y*}
m n

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 c
1 2 3
b

Solución:
er
1 paso: Dibujamos un nuevo estado inicial (de aceptación) 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:
a
a c

S 1 2 3
b

2º paso: Desde cada estado de aceptación del original, se añade un arco a cada estado que era destino del inicial original.
a
a c

S 1 2 3
b a

3.- Dibuje un diagrama de transiciones que acepte la unión de los lenguajes aceptados por los siguientes diagramas:
a) a b) x
1 2 3 4
b y

Solución:

Lenguajes generados:
a) Frases de la forma a, aba, ababa, abababa, etc.
b) Frases de la forma x, xyx, xyxyx, xyxyxyx, etc.

a
1 2
b
a
S
x x
3 4
y
Ejercicios de Teoría de Autómatas I 15 José Garzía
4.- Dibuje un diagrama de transiciones que acepte la concatenación del lenguaje aceptado por
a
1 2 b
b

seguido del lenguaje aceptado por


x y
3 4 y

Solución:

Lenguajes generados:
a) Frases de la forma a, abb, abbb, ..., ab...b, b, bb, bbb, b...b etc.
b) Frases de la forma x y , m, n  N, mt0, n>0
m n

a b x y
1 2 x 3 4 y
b
y

5.- Construya una expresión regular que describa el lenguaje aceptado por el autómata del siguiente diagrama de transiciones:
b
a a a
2
1 5
4
b
3
b
b
a

Solución:
> @ >
(a b*) ‰ >(a b*) $ a @ ‰ (b a*) ‰ > (b a*) $ b@ @

Ejercicios de Teoría de Autómatas I 16


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 2.1

1.- Diseñe un autómata de pila M tal que L(M) = { xn ym xn : m, n  N }

Solución:
x, O ; x y, O ; O x, x ; O
O, O ; # O, O ; O O, O ; O O, # ; O
i 1 2 3 4

Es el autómata pedido. Es no determinista. Según el teorema 2.1, siempre se puede adaptar de forma que vacíe su pila antes de
aceptar la cadena. De hecho, ya lo hace.

Si se pidiera un autómata determinista para L(M) = { x y x : m, n


n m n
 N }, podría tenerse este:
x, O ; x y, O ; O x, x ; O
O, O ; # y, O ; O x, x ; O O, # ; O
i 1 2 3 4

Su funcionamiento es el pedido.
Cuando m=0 y n=0, se acaba en el estado 1.
Cuando m=0 y nz0, se acaba en el estado 2.
Cuando mz0 y n=0, se acaba en el estado 1.
Cuando mz0 y nz0, se acaba en el estado 4.

Es determinista, pero si acaba en los estados 1 ó 2 no vacía su pila al aceptar la cadena. El teorema 2.1 es aplicable, pues los
deterministas están incluidos en los no deterministas. Pero el resultado (debido al paso 2 de la demostración del teorema, página 81)
es un autómata de pila no determinista.

Se trata de un ejemplo similar al de la figura 2.22: un autómata de pila determinista que no puede modificarse para que (sin alterar el
lenguaje aceptado) vacíe su pila al aceptar la cadena. El razonamiento para demostrarlo es idéntico 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 autómatas de pila deterministas que pueden vaciar o no vaciar su pila antes de aceptar una cadena
9 analizadores sintácticos LR(k); los cuales son equivalentes a los antedichos autómatas (página 133)

{ x : n  N } U { x y : n  N } Página 110, figura 2.22.


n + n n +

otro ejemplo: {xnyx | n  N+} ‰ {xnyxn| n  N+}

LENGUAJES ACEPTADOS POR AUTÓMATAS DE PILA DETERMINISTAS QUE DEBEN VACIAR SU PILA ANTES
DE ACEPTAR UNA CADENA

{ x y : n  N } No es regular, pues podría ser n mayor que el número de estados del autómata (teorema 1.2)
n n +

otros ejemplos: {xmynxn| m, n  N+}, {xnynz | n  N+}, {xnyxn| n  N+}.

Por supuesto (debido a que un conjunto está incluido en el otro), puede haber algunos (pero sólo algunos) autómatas de pila
deterministas que puedan modificarse para que vacíen su pila al aceptar la cadena.

Si se pidiera un autómata determinista para L(M) = { x y x : m, n


n m n
 N+ }, podría tenerse este:
x, O ; x y, O ; O x, x ; O
O, O ; # y, O ; O x, x ; O O, # ; O
i 1 2 3 4

Su funcionamiento es el pedido.
Como mz0 y nz0, sólo se acaba en el estado 4; y en este estado la pila está vacía.

Ejercicios de Teoría de Autómatas I 17 José Garzía


2.- ¿Cuál es el lenguaje que acepta el autómata de pila cuyo diagrama de transiciones es el siguiente?
x, O ; x

y, x ; O

Solución:

Acepta la cadena vacía.


Según la rama superior, toda x que se reciba, se registrará en la pila; y el estado siguiente será de aceptación.
Según la rama inferior, sólo se aceptará la entrada y si se puede sacar una x de la pila.

Conclusión:
Acepta cualquier cadena que (empezando a contar por la izquierda) contenga un número 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 autómata de pila acepte el mismo conjunto de cadenas, pero
con su pila vacía.

Solución:
x, O ; x O, x ; O

O, O ; # O, O ; O O, # ; O
i 1 p q

y, x ; O

4.- Muestre cómo pueden combinarse dos autómatas de pila M1 y M2 para formar un sólo autómata de pila que acepte el lenguaje
L(M1) U L(M2).

Solución:

Exactamente igual que en la sección 1.6:


- Creación de un nuevo estado inicial y eliminación de la condición de inicial en los originales.
Si alguno de los originales era de aceptación, el nuevo debe ser de aceptación.

- Hasta cada estado que era destino del original inicial, se lleva un arco desde el nuevo inicial, con la misma rotulación.

Ejercicios de Teoría de Autómatas I 18


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 2.2

1.- Muestre que toda cadena derivada por la izquierda de una gramática independiente del contexto puede derivarse también por la
derecha.

Solución:
S

z M N z

a M a b M b

z z

El lado por donde se empieza a construir (por la derecha o por la izquierda) sólo tiene relevancia en las etapas intermedias de la
construcción del árbol. Pero con la construcción terminada, no es relevante el lado por donde se empezó. La cadena es la misma en
ambos casos.

2.- Demuestre que la gramática presentada a continuación es ambigua, mostrando que la cadena “ictictses” tiene derivaciones que
producen distintos árboles de análisis sintáctico.

S o icts
S o ictSeS
Sos

Solución:

Podemos mostrar simultáneamente una analogía con un esquema de control de flujo típico de lenguajes de programación. 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 sintácticos son:

1º.- Cuando el else está asociado al if sin else más inmediatamente anterior (al if interno):
S if (condicion)
{
ictS if (condicion)
{
enunciado
ictSeS }
else
s s {
enunciado
}
}

2º.- Cuando el else está asociado al primer if (al if externo):


S
if (condicion)
ictSeS {
if (condicion)
{
ictS s enunciado
}
s }
else
{
Ejercicios de Teoría de Autómatas I 19
enunciado José Garzía
}
4.- Demuestre que la unión de dos lenguajes independientes del contexto también es independiente del contexto, mostrando cómo
pueden combinarse dos gramáticas independientes del contexto de dos lenguajes originales para formar una gramática independiente
del contexto que genere la unión.

Solución:
GA GB
SA o wA1 SB o wB1
... ...
SA o wAp SB o wBr
N1 o wA1 M1 o wB1
... ...
Nq o wAq Ms o wBs

- Se crea un nuevo estado inicial


- Se añaden una regla de sustitución desde el nuevo inicial hasta cada uno de los que eran destino de alguno de los iniciales
originales.

G
S o wA1
...
S o wAp
S o wB1
...
SB o wBr
N1 o wA1
...
Nq o wAq
M1 o wB1
...
Ms o wBs

5.- Convierta la siguiente gramática, con el signo inicial S, en una gramática con forma normal de Chomsky que genere el mismo
lenguaje.
SoxSy
SowNz
No S
No O
Solución:

a) Preparación previa: Eliminación de la regla O tal como se explica en los párrafos anteriores al teorema 2.4

SoxSy
SowNz
Sow z
No S

b) Cambio de los terminales no aislados, según se explica en el primer paso del teorema 2.4.

S oXSY
S oWNZ
S oW Z
N o S
X o x
Y o y
Wo w
Z o z
Esto produce una gramática 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) Separación de dos no terminales, según se explica en el segundo paso del teorema 2.4.

S oXR
R o SY
S oWT
T oNZ
S oW Z
N o S
X o x
Y o y
W o w
o zde Autómatas I
Ejercicios deZTeoría 20
INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

Al llegar a esta etapa tenemos una gramática 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) Sustitución de las reglas con un único no terminal en el lado derecho, según se explica en el tercer paso del teorema 2.4.

Resulta:
Las secuencias S oXR
Nn o Nn-1 R o SY
...
S oWT
N1 o Fin1
T oNZ
N1 o Fin2
S oW Z
...
N oXR
N1 o Finm
N oWT
Se sustituyen por N oW Z
Nn o Fin1 X o x
Nn o Fin2 Y o y
... Wo w
Nn o Finm Z o z

Francesc Xavier Torres consigue una gramática con menos reglas, al emplear una estrategia alternativa:

Las reglas
Nn o Nn-1 Resulta:
Nn-1 o Nn-2 S oXR
... R o SY
N2 o N1 S oWT
T oSZ
Son aplicadas en todos los lugares donde aparezcan Nn, Nn-1, ..., ó N2 S oW Z
X o x
Y o y
Wo w
Z o z

En nuestro caso tenemos (NoS). La aparición de la N en (ToN Z) del paso c) es sustituida, obteniendo (ToS Z).

Ejercicios de Teoría de Autómatas I 21 José Garzía


EJERCICIOS DE LA SECCIÓN 2.3

1.- Aplique el teorema 2.5 para demostrar que el lenguaje { xm yn xm yn xm yn : m, n  N+} no es independiente del contexto.

Solución:

{ x y x y x y : m, n  N } tiene infinitas cadenas.


m n m n m n +
m n m n m n + m n p n p n + p p
{ x y x y x y : m, n  N } no contiene cadenas de la forma x y v y w y : m, n, p  N , p z m, es decir, s v u w t
Como no cumple la conclusión del teorema 2.5, es absurdo pensar que pueda cumplir la hipótesis; 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 autómata de pila determinista que
tenga que vaciar su pila
d) Un lenguaje que es aceptado por un autómata de pila determinista que tiene que vaciar su pila, pero que no es regular.

Solución:

{ x y z : n  N } Es consecuencia del teorema 2.5, (página 104).


n n n +
a)
n n + n 2n +
b) { x y : n  N } U { x y : n  N } Es consecuencia del teorema 2.6.
{ x : n  N } U { x y : n  N } Página 110, figura 2.22.
n + n n +
c)
{ x y : n  N } No es regular, pues podría ser n mayor que el número de estados del autómata.
n n +
d)

3.- Trace la porción pertinente de un diagrama de transiciones para un autómata 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.

Solución:
Este diagrama :
x, y ; z
p q
x, O ; z

No es determinista. Deberemos diseñarlo de otra forma. La transición (p, x, O; q, z) hay que sustituirla por todas las que sean
necesarias para eliminar la indeterminación. Sustituimos l una vez por cada uno de los símbolos de la pila, pero de forma que
globalmente no tengan ningún efecto:
x, y ; z

x, x ; x
p
q
x, z ; z
r O, O ; z
x, # ; #

4.- Identifique las situaciones que provocarían incertidumbres en la ejecución de una autómata de pila que contuviera las
transiciones (p, O, y; q, z) y (p, x, O; r, w).

Solución:
O, y ; z q

x, O ; w
r

a) (p, O, y; q, z) Aplicable sea cual sea la entrada, cuando en la cima de la pila hay una y.
b) (p, x, O; r, w) Aplicable cuando la entrada es x, sea cual sea la cima de la pila.

En conclusión: 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 transición de las dos que no se pueda aplicar.

Ejercicios de Teoría de Autómatas I 22


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 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(Símbolo) ;
WHILE Pila no vacía DO
CASE CimaPila OF
Terminal:
IF CimaPila = Símbolo
THEN
Extraer de la pila ;
Leer(Símbolo) ;
ELSE
Salir a rutina de error ;
END ;
No Terminal:
IF Tabla[CimaPila, Símbolo] z Error
THEN
Reemplazar CimaPila por Tabla[CimaPila, Símbolo] ;
ELSE
Salir a rutina de error ;
END ;
END ;
END ;
IF Símbolo z FDC THEN Salir a rutina de error; END ;

Solución:

Insertar(S) ;
Leer(Símbolo) ;
REPEAT
CASE CimaPila OF
Terminal:
IF CimaPila = Símbolo
THEN
Extraer de la pila ;
Leer(Símbolo) ;
ELSE
Salir a rutina de error ;
END ;
No Terminal:
IF Tabla[ CimaPila, Símbolo] z Error
THEN
Reemplazar CimaPila por Tabla[CimaPila, Símbolo] ;
ELSE
Salir a rutina de error ;
END ;
END (* Del CASE *)
UNTIL Pila vacía ;
IF Símbolo z FDC THEN Salir a rutina de error; END

Ejercicios de Teoría de Autómatas I 23 José Garzía


2.- Traduzca el diagrama de transiciones mostrado a continuación, directamente a un segmento de programa que analice el lenguaje
en cuestión. ¿ Cuáles son las incertidumbres que deben resolverse para obtener un autómata determinista ?.
O, S ; xSz
O, S ; O
O, S ; ySz

O, O ; # O, O ; S O, # ; O
i p q f

x, x ; O z, z ; O
y, y ; O
Solución:

a) Segmento de programa:

Estado := i ;
Insertar(#) ;
Estado := p ;
Insertar(S) ;
Estado := q ;
Leer(Símbolo) ;

REPEAT
CASE CimaPila OF
S:
CASE Símbolo OF
x:
Extraer(S) ;
Insertar(xSz) ;
y:
Extraer(S) ;
Insertar(ySz) ;
END ;
x:
IF Símbolo z x
THEN
Salir a rutina de error ;
ELSE
Extraer(x) ;
Leer(Símbolo) ;
END ;
y:
IF Símbolo z y
THEN
Salir a rutina de error ;
ELSE
Extraer(y) ;
Leer(Símbolo) ;
END ;
z:
IF Símbolo z z
THEN
Salir a rutina de error ;
ELSE
Extraer(z) ;
Leer(Símbolo) ;
END ;
END ; (* Del CASE *)
UNTIL Pila vacía
Extraer(#) ;
IF Símbolo z FDC THEN Salir a rutina de error; END
Estado := f ;

b) Incertidumbres:
S oO
S oxSz
S oySz

Ejercicios de Teoría de Autómatas I 24


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

3.- Diseñe una tabla de análisis sintáctico LL(1) para la siguiente gramática:
S o xSz
S o ySz
S oO

Solución:
x y FDC
S xSz ySz O

4.- ¿ Cuántos símbolos de preanálisis requeriría un analizador sintáctico LL al analizar la sintaxis de cadenas basadas en la
gramática siguiente ?.
S o xSy
S o xy
Diseñe la tabla de análisis sintáctico correspondiente.

Solución:
n n
A pesar de que las cadenas admisibles son de la forma x y ; ( n t 1 ), es decir, que pueden tener cualquier longitud finita, bastan dos
símbolos de preanálisis:

Tabla de preanálisis:

xx xy FDC
S xSy xy error

Ejercicios de Teoría de Autómatas I 25 José Garzía


EJERCICIOS DE LA SECCIÓN 2.5

1.- Diseñe el diagrama de transiciones del autómata de pila correspondiente al analizador sintáctico LR(k) de la siguiente gramática:
S o xSz
S o ySz
S oO
O, xSz ; S
Solución: O, O ; S
O, ySz ; S

O, O ; # O, S ; O O, # ; O
i p q f

x, O ; x z, O ; z
y, O ; y

Por la regla S o O existiría la tentación de permitir que el estado inicial fuera de aceptación. Hay dos razones para no proceder así:
1ª Se debe posibilitar la “reducción” yz en yOz; y posteriormente en ySz (recuérdese que es LR).
2ª El diseño del analizador sintáctico será más fácil si sólo debe comprobar la posible llegada a un único estado de aceptación
(f); en lugar de estar obligado a comprobar más estados de aceptación.

2.- Identifique la derivación obtenida por el autómata de pila construido en el anterior ejercicio al analizar la cadena yxyzzz

Solución:

Nº de fila Estado actual Contenido de la pila Resto de la entrada


01 p # yxyzzz y x y z z z
02 p #y xyzzz
03 p #yx yzzz S
04 p #yxy zzz
05 p #yxyz zz S
06 p #yxS zz
07 p #yxSz z S
08 p #yS z
09 p #ySz O
10 p #S O
11 q # O
12 f O O

3.- Construya una tabla de análisis sintáctico LR(1) para la siguiente gramática:
S o xSy
S oO

Solución:
x
S y
2 3 x y FDC S
x 4
1 desplazar 2 aceptar 5
2 desplazar 2 S oO 3
1
3 desplazar 4
S 4 S o xSy 3
5 5 aceptar

Ejemplo: cadena x x x y y y
Contenido de la pila Resto de la entrada
# (1) xxxyyy
# (1) x (2) xxyyy
# (1) x (2) x (2) xyyy
# (1) x (2) x (2) x (2) yyy
# (1) x (2) x (2) x (2) S (3) yyy
# (1) x (2) x (2) x (2) S (3) y (4) yy
# (1) x (2) x (2) S (3) yy
# (1) x (2) x (2) S (3) y (4) y
# (1) x (2) S (3) y
# (1) x (2) S (3) y (4) O
# (1) S (5) O

Ejercicios de Teoría de Autómatas I 26


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIÓN 3.1

1.- ¿ Con qué configuración de cinta se detendrá la máquina de Turing mostrada a continuación si comienza con la cinta configurada
como xxx'''... ?
x/R 2

x/R
1 '/R

'/'
Solución: 3

Estado de la máquina Estado de la cinta


1 xxx'''...
2 xxx'''...
1 xxx'''...
2 xxx'''...
1 xxx'''...
3 xxx'''...

2.- Diseñe una máquina de Turing con símbolos de cinta x, y y ' que busque en la cinta el patrón xyxy y se detenga si y sólo si
encuentra ese patrón.
x/x
Solución: ™x / R y/y

x/x

i x/R 1 y/R 2 x/R 3 y/R


h
'/'

'/'

'/'
José María Olmedo Llera completó y comentó el diagrama:

Los arcos de la ruta central son los que siguen el patrón dado.
El arco ™x / R que sale y regresa al estado inicial es para permitir que el patrón buscado esté a partir de cualquier posición, no sólo 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 símbolo x y el estado 3 con respecto al símbolo y.

3.- Diseñe una máquina de Turing que, al iniciar con la cabeza sobre la celda del extremo izquierdo de la cinta, tenga una
terminación anormal si y sólo si hay una x registrada en algún lugar de la cinta. Si aplicara su máquina a una cinta que no contiene
ninguna x, ¿detectaría la máquina esta situación?.
y/R y/L
Solución: Suponiendo que el alfabeto de la cinta es {x, y, '}:

i x/L

'/R '/L
Si no existe ninguna x, siempre se estaría avanzando hacia la derecha, pero en cada instante no se conoce lo que hay más a la
derecha, por lo que no se detecta la ausencia de x.

4.- Muestre que las capacidades computacionales de una máquina de Turing no aumentarían si se permitiera que tuvieran más de un
estado de parada, ya que esta máquina se podría simular con una máquina de Turing con un sólo estado de parada.

Solución:
Con varios estados de parada: Con un único estado de parada:
Un arco por cada símbolo
Resto de h1 Resto de h1 de pila, escribiendo el
la la mismo símbolo que se lee
máquina máquina
h2 h2
h
xxx xxx

hn hn

Ejercicios de Teoría de Autómatas I 27 José Garzía


EJERCICIOS DE LA SECCIÓN 3.2

1.- Combine los diagramas de transiciones de las siguientes máquinas


M1 y/R M2 x/y

x/x y/y

'/' '/'

para formar el diagrama de transiciones de la máquina compuesta por:

x
M1 M2

Solución:

Siguiendo los pasos de las páginas 149 y 150:

M x/y
y/R
x/x y/y
1 2 3 4
'/' '/'
x/y
'/'
h
El funcionamiento de la máquina es:

1.- Busca el primer símbolo distinto de y.


2.- Si ese símbolo 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. Obsérvese que va
pasando por esta secuencia de estados hasta llegar al h.

Este funcionamiento se puede representar de una forma más simple, sin seguir el procedimiento general:
M
y/R x/y

1 h 4
'/'

Aunque en realidad, yo no lo he hecho directamente; sino partiendo del resultado del procedimiento general, suprimiendo estados
innecesarios.

2.- Utilizando los bloques de construcción presentados en esta sección, construya una máquina 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 posición
original. Suponga que el extremo derecho de la cadena está marcado con un espacio en blanco.

Solución:
1 0
0, 1 Z '
' R L' Z
0
1

Nótese que se marca el bit de partida con ', para luego encontrarlo y colocar la cabeza lectora en dicho lugar de partida.

3.- ¿ En qué condiciones se presentaría una terminación anormal durante la ejecución de la máquina SR ?.

Solución:
x1 x2 x3 ...

Las dos primeras instrucciones son 'L, con lo que quedaría así:

B' x2 x3 ..

Ejercicios de Teoría de Autómatas I 28


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

4.- Analice los cálculos efectuados por la siguiente máquina de Turing :

* R ™'
'
'
L '
Solución:

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 símbolos diferentes de ‘'‘, los sustituye por ‘'‘
ELSE Retrocede hasta encontrar el ‘*’
Sustituye el ‘*’ por ‘'‘
END ;

El efecto es:
. Todos los caracteres desde el comienzo hasta el primer ‘'‘ los sustituye por ‘'‘.

Por ejemplo, si la configuración inicial de la cadena es:


'x y z 'x y z x x

La configuración final es:


'' ' ' 'x y z x x

Ejercicios de Teoría de Autómatas I 29 José Garzía


EJERCICIOS DE LA SECCIÓN 3.3

1.- a) Diseñe una máquina de Turing que acepte el lenguaje 6*, donde 6 ={x, y}.

Solución:
x, y Z Z
R

Nótese que avanza al primer símbolo de la cadena, lo rescribe sea cual sea; y se detiene sin seguir leyendo, sea cual sea el resto.

b) Diseñe una máquina de Turing que acepte el lenguaje I

Solución:

Nótese que siempre está avanzando hacia la derecha. Nunca llega a un estado de parada.

2.- Muestre que una máquina de Turing se puede modificar para que evite una terminación anormal, pero que a la vez acepte las
mismas cadenas que antes.

Solución:
Original Modificada

' X1 X2 X3 ... Xm # ' X1 X2 X3 ... Xm

i i
n 1 n 1

. M0 2 . M1 2
. .
. 3 . 3
4 4

La única modificación en M0 con respecto a M1 es que da cada estado de M1 sale la rama

#
R

En lugar de terminar anormalmente, hace avanzar indefinidamente hacia la derecha la cadena lectora.

3.- Muestre que si en una máquina de Turing se permite que las transiciones individuales afecten a más de una cinta, entonces no
aumenta el potencial de la máquina. En otras palabras, muestre que cualquier transición que opera sobre más de una cinta se puede
simular con una secuencia de transiciones que operan cada una en una sola cinta.

Solución:

Los pasos B1, B2 y B3 del teorema 3.1 son para el supuesto de que haya que operar sólo sobre la cinta j. Si hubiera que operar sobre
las cintas i, j, k, ... ; se ejecutaría esta secuencia de pasos :
B1i B2i B3i B1j B2j B3j B1k B2k B3k ...

4.- Muestre que para cualquier cálculo de una máquina de Turing cuya cinta se extiende infinitamente hacia la izquierda y hacia la
derecha se puede simular con una máquina de Turing de dos cintas; y por lo tanto, con una máquina de Turing tradicional.

Solución:

l3 l2 l1 r1 r2 r3 ' r1 r2 r3

' l1 l2 l3
i Se puede simular con :
n 1
i
.
n 1
. M0 2
.
.
. M1 2
3
.
3
Hay que tener cuidado con varios detalles:

Sólo hay una cabeza lectora, compartida por las dos cintas, esto es, en cada instante sólo una cinta tiene el foco de la cabeza.
En el diseño de M1, las referencias a li, las L deben cambiarse por R y viceversa.
El paso de la cabeza desde r1 a l1 debe provocar el paso desde el extremo izquierdo de la primera al de la segunda cinta.
El paso de la cabeza desde l1 a r1 debe provocar el paso desde el extremo izquierdo de la segunda al de la primera cinta.

Ejercicios de Teoría de Autómatas I 30


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

EJERCICIOS DE LA SECCIÓN 3.4

1.- Dibuje un diagrama de transiciones para todas las máquinas de Turing con símbolos de cinta x y ' que sólo tengan dos estados
(uno inicial y otro de parada). ¿ Cómo se relacionan su capacidad para llevar a cabo esta tarea y el hecho de que sea contable la
colección de todas las máquinas de Turing cuyo conjunto de símbolos de cinta es {x, '} ?.

Solución :
x/R x/L x/x x/'

'/R '/R '/R '/R

x/R x/L x/x x/'

'/L '/L '/L '/L

x/R x/L x/x x/'

'/x '/x '/x '/x

x/R x/L x/x x/'

'/' '/' '/' '/'

x/R x/L x/x x/'

'/R '/R '/R '/R

x/R x/L x/x x/'

'/L '/L '/L '/L

x/R x/L x/x x/'

'/x '/x '/x '/x

x/R x/L x/x x/'

'/' '/' '/' '/'

'/R '/L '/x '/'

x/R x/R x/R x/R

'/R '/L '/x '/'

x/L x/L x/L x/L

'/R '/L '/x '/'

x/x x/x x/x x/x

'/R '/L '/x '/'

x/' x/' x/' x/'

Esta tarea se puede llevar a cabo de forma sistemática, obteniéndose un número finito de máquinas de dos estados. También para el
caso en que el número de estados sea cualquier n finito. Como el conjunto de las máquinas T de S={x, '} pueden clasificarse según el
número de estados, se concluye que dicho conjunto es contable.

Ejercicios de Teoría de Autómatas I 31 José Garzía


2.- Muestre que al agregar una segunda pila a un autómata de pila, obtenemos una clase de máquinas con el mismo poder de
aceptación de lenguajes que las máquinas de Turing.

Solución:
Situación inicial:

X1 X2 X3

i
n 1
.
. M0 2 vacía vacía
.
3 Pila L Pila R

Situación de puesta en marcha de la simulación:

X1
i X2
n 1 X3
.
vacía
. M0 2 ...
.
3 Pila L Pila R
Ya no es necesaria la cinta

A partir de este momento:


. Un movimiento hacia la derecha de la cabeza de lectura en la máquina de Turing es equivalente a una extracción de la Pila R e
inserción de lo extraído en la Pila L..

. Un movimiento hacia la izquierda de la cabeza de lectura en la máquina de Turing es equivalente a una extracción de la Pila L e
inserción de lo extraído en la Pila R.

. Una operación de escritura en la cinta de la máquina de Turing es equivalente a una extracción en la Pila R, e inserción en la
misma pila del valor que se escribe.

Como vemos, todas las operaciones de la máquina de Turing para gestionar la cinta se pueden simular con un autómata de dos pilas.

Ejercicios de Teoría de Autómatas I 32


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

3.- Desarrolle una gramática estructurada por frases que acepte el mismo lenguaje aceptado por la máquina de Turing cuyo
diagrama de transiciones se muestra a continuación. Con la gramática que obtenga, busque una derivación de la cadena x.
'/R x/R '/L x/Y Y/L
i p q r s h

Solución:

a)

i) Estas son fijas:


S o [ h ' Y ' ] (1)
'] o '']

ii) Para cada transición de la forma G(p, x) = (q, y) introducimos la regla q y o p x


sY o rx (3)

iii) Para cada transición de la forma G(p, x) = (q, R) introducimos la regla x q o p x


(de G(i, ') = (p, R) ) : ' p o i '   (6)
(de G(p, x) = (q, R) ) : x q o p x   (5)
(de G(s, Y) = (h, R) ) : ih osY
Esta última, en realidad no debería existir. Si la incluyo es debido a una errata del libro. El último arco debe ser Y/L, no Y/R.

iv) Para cada transición de la forma G(p, x) = (q, L) y cada símbolo y de la cinta, introducimos la regla q y x o y p x
(de G(q, ') = (r, L) ), como los símbolos de la cinta son x y ', tendremos:
r x ' o x q '  (4) hxY o xsY
r '' o ' q '     h 'Y o ' s Y (2)
r Y' o Y q '     hYY o YsY

v) Estas también son fijas:


[ i ' o O  (7)
' ' ]o ' ]
' ] oO  (8)

b)

(1) ( 2) ( 3) ( 4) (5) ( 6) ( 7) ( 8)
s o [h ' Y ' ] o [' s Y ' ] o [' r x ' ] o [' x q ' ] o [' p x ' ] o [i ' x ' ] o x ' ] o x

A veces es conveniente comprobar en el diagrama de transiciones que la cadena x es admisible por la máquina de Turing:
[i ' x ' ]
[' p x ' ]
[' x q ' ]
[' r x ' ]
[' s Y ' ]
[h ' Y ' ]

4.- Muestre que el lenguaje { xn y2n z4n : n  N } es aceptado por una máquina de Turing.

Solución:
L#
™'
x y y z
# R SL SL SL SL z SL z SL z SL ' L
x x y y
y z
y, z R R ™#
', z ', z ™y ', x ', x ™z ™z ™z
R

n 2n 4n n-1 2n-2 4n-4


Nótese que al llegar a la esquina superior derecha, la cadena x y z , la ha reducido a x y z . La consecuencia de esto, es que
n 2n 4n
el lenguaje x y z puede ser generado por una gramática independiente del contexto.

Ejercicios de Teoría de Autómatas I 33 José Garzía


EJERCICIOS DE LA SECCIÓN 3.5

1.- Diseñe una máquina de Turing que acepte exactamente aquellas cadenas de ceros y unos que sean representaciones válidas de
máquinas de Turing deterministas, de acuerdo con el sistema de codificación descrito en esta sección.

Solución:

El sistema de codificación para cada transición de la máquina es:

1 [Np] 1 [Nx] 1[Nq] 1 [Ny] 1

Np o Número de ceros que codifican el estado actual.


Nx o Número de ceros que codifican la entrada actual.
Nq o Número de ceros que codifican el estado siguiente.
Ny o Número de ceros que codifican R, L ó el símbolo escrito en la cinta.

Para comprobar que la máquina codificada es determinista, basta comprobar que no se repite ningún par (Np, Nx). Para ello es
conveniente tener ordenadas las transiciones, primero las que parten del estado 0, después las que parten del estado 000, luego las
que parten del estado 0000; y así sucesivamente.
Si se desea utilizar una única cinta, la implementación de la comprobación puede hacerse con cualquier algoritmo de recorrido y
comparación. Pero si tenemos la libertad de usar varias cintas (más que el número de símbolos de cinta):

1 Np 1 Nx1 1 Nq1 1 Ny1 1 Np 1 Nx2 1 Nq2 1 Ny2

i Nx1
n 1
. Nx2
. M0 2 Nx3
.
3 ...

Nxn

Las siguientes columnas son una para cada uno de los siguientes estados a p
el algoritmo sería más simple:
1º Llenar las n últimas cintas tal como se muestra en la figura
2º La máquina codificada es determinista si y sólo 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 sólo para aquellas personas que no cocinan para sí
mismas “.

¿ Cómo se relaciona esta pregunta con esta sección ?.

Solución:

. 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,
debería comenzar así: “Un cocinero de una comunidad aislada .. “.

Definiciones

P0 : { 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 P0.

El problema es análogo al expuesto en la página 183:

L0 : { Cadenas w que no son aceptadas por su máquina M|w| asociada con la función más arriba definida }
M : Máquina de Turing que acepta L0.

Allí se demuestra la inexistencia de M. Por analogía, aplicado al teorema actual, también se demuestra la inexistencia de C.

Ejercicios de Teoría de Autómatas I 34


INGENIERÍA TÉCNICA en INFORMÁTICA de SISTEMAS y de GESTIÓN de la UNED
ASIGNATURA: TEORÍA DE AUTÓMATAS I
Tutoría del Centro Asociado de Plasencia

3.- Diseñe una máquina de Turing que acepte las cadenas del lenguaje L={wn : w = xy } al detenerse con su cinta configurada como
' Y''' ... y rechace las cadenas que no se hallan en L al detenerse con la configuración ' N ''' ...
Explique por qué no puede construirse esta máquina en el caso de todos los lenguajes aceptados por máquinas de Turing.

Solución:

™' Salida “Si”


™#
x y #'* R 'L
R' SR R * L' L R R SL SL * 'RYL
#
y x y
Salida “No”
™#
Marca los extremos
inicial y final con # y *, R* 'L
'RNL
respectivamente #

Reduce pares xy
En los lenguajes no decidibles con máquinas de Turing no es posible detectar alguna de estas posibilidades: cadena aceptable ó
cadena rechazable. El diagrama de la máquina de Turing carece de alguna de las salidas. Por este motivo, en dichos lenguajes es
imposible crear la máquina pedida.

4.- Exponga un argumento de que cualquier lenguaje que contenga un número finito de cadenas es decidible con máquinas de
Turing.

Solución:

Cuando nos dispongamos a construir una máquina M de Turing para analizar la pertenencia o no de ciertas cadenas a un lenguaje L
cuyo número 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 comparación entre esta cadena y las demás, podremos
discernir si pertenece o no al lenguaje L.

5.- Amplíe la tabla de la figura 3.26 para contestar a la pregunta de si la cadena xxyyyxy es generable con la gramática dada.

Solución:

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 Las de MPPPPPP Las de PPPPPPN

xxyyyxy
está entre ellas

Ejercicios de Teoría de Autómatas I 35 José Garzía

You might also like