Universidad Simón Bolívar Departamento de Computación y

Anuncio
Universidad Simón Bolívar
Departamento de Computación y Tecnología de la Información
Curso de Traductores e Interpretadores ci3725
Profesor Luis Astorga
Enero - Marzo 2006
Un trio de ejemplos
Primer ejemplo
Conciba una máquina de Turing para calcular 2n en sistema binario.
Solucion :
Una maquina de Turing que calcula 2n en el sistema binario es;
M TB = (fq0 ; : : : ; q17 g ; f&; $; 0; 1g ; f&; $; 0; 1; X; Y; ?g ; q0 ; ?; fq17 g ; )
La entrada de la maquina se da en la forma &bin(n)r $y la salida de la maquina
es &bin(2n )r $, donde r signi…ca el inverso de la palabra.
El procedimiento consiste en descomponer el número binario de entrada bin(n)
en suma de potencias de base 2, resolver para cada una de ellas la conversión a
sistema unario, esto es , tantos ceros como índica el mismo número en sistema
decimal, y …nalmente agruparlos en secuencia.
Así por ejemplo, 21 = 10101 de descompone en
10000 = 24 = 16
100 = 22 = 4
1
= 20 = 1
10101
=
21
La tabla de transiciones es entonces;
Qn
q0
q1
q2
q3
q4
q5
q6
q7
q8
q9
q10
q11
q12
q13
q14
q15
q16
q17
&
$
(q0 ; &; !)
(q0 ; &; !)
(q2 ; $; !)
(q2 ; $; )
(q3 ; $; )
(q4 ; $; !)
(q6 ; $;
)
(q8 ; $; !)
0
(q4 ; X; !)
(q1 ; 0; !)
(q2 ; 0; )
(q3 ; 0; )
(q4 ; 0; !)
1
(q1 ; 0; !)
(q1 ; 1; !)
(q2 ; 1; )
(q3 ; 1; )
(q4 ; 1; !)
(q6 ; 0; )
(q8 ; X; !)
(q8 ; 0; !)
(q6 ; 1; )
(q12 ; 0; !)
(q8 ; 1; !)
(q6 ; $; )
(q14 ; $; )
(q13 ; $; !)
(q11 ; 0; )
(q13 ; 0; !)
(q13 ; 0; !)
(q15 ; ?; !)
(q14 ; 0; )
(q16 ; &; !) (q15 ; ?; !)
(q16 ; 0; !)
Ejemplo;
Entrada: &10101$
Salida: &0000000000000000000001$
2
X
(q2 ; 0;
?
Y
)
(q3 ; 0;
)
(q5 ; Y; !)
(q6 ; Y; )
(q7 ; X; !)
(q6 ; Y;
)
(q8 ; X; !) (q9 ; 1; !) (q11 ; ?; )
(q9 ; X; !) (q9 ; Y; !) (q10 ; X; )
(q8 ; 1; !) (q10 ; X; ) (q10 ; Y; )
(q11 ; Y; ) (q11 ; Y; )
(q13 ; 1; !)
(q13 ; 1; !)
(q13 ; 0; !) (q2 ; ?; )
(q14 ; X; )
(q15 ; ?; !)
(q16 ; 0; !) (q17 ; 1; !)
(q17 ; $; )
& 1 0101$ ` &0 0 101$ ` &00101 $ ` &00101$? ` &00101 $ 0 `
"0
"1
"2
"1
"3
&00101$0 ` & 0 0101$0 ` &X 0 101$0 ` &X0101$0? ` &X0101$0Y ? `
"3
"0
"4
"4
` &X 0101$0Y Y ` &X 0 101$0Y Y ` &XX 1 01$0Y Y `
&X0101$0Y Y
"6
"6
"7
"5
"8
` &XX101$01Y ` &XX101$01Y ? ` &XX101$01 Y X `
&XX101$0Y Y
"8
"9
"9
"10
&XX101$0 1 Y X ` &XX101$01Y Y X ` &XX101$011X ` &XX101$011X? `
"10
"8
"9
"9
&XX101$011X X ` &XX101$01 1 XX ` &XX101$011X X ` &XX101$011XX? `
"10
"10
"8
"8
&XX101$011X X ` &XX101$011X Y ` &XX101$01 1 Y Y ` &XX101$0 1 Y Y Y `
"11
"11
"11
"11
` &XX10 1 $0Y Y Y Y ` &XX 101$0Y Y Y Y ` &XX 1 01$0Y Y Y Y `
&XX101 $ 0Y Y Y Y
"6
"11
"6
"7
` &XX001$0 Y Y Y Y ` &XX001$00 Y Y Y ` &XX001$000 Y Y `
&XX0 0 1$0Y Y Y Y
"12
"13
"13
` &XX001$00000 ? ` &XX001$0000 0 ` &XX 001$00000 `
&XX001$0000 Y
"13
"13
&X 0001$00000 ` &00001$00000 ` & 0 0001$00000 `
"2
"2
"2
"0
` XXXX 1 $00000Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y `
"7
` XXXX0 $ 00000Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y `
"12
` XXXX 0 $00000Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y `
"14
` & XXXX0$00000Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y `
"14
` X XXX0$00000Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y `
`
"13
"15
$ XXX0$00000Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y `
"15
` & 0 0000Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y `
"16
` &000000000000000000000 ? `
"16
` &000000000000000000001 ? `
"17
` &000000000000000000000 1 $ `
"17
3
"2
Segundo ejemplo
¿Existe una maquina de Turing para calcular el n-ésimo decimal de ?
Solucion :
Existe una técnica francesa para obtener los primeros 31 términos de la mantisa
de , y es de carácter literario, pues tiene en cuenta el número de letras en cada
palabra. Se detiene obviamente con la aparición del primer cero;
j0
1
Car
3;
des
3
aime
4
soins patients;
5
8
probleme grec :
8
4
est
3
a
1
un
2
f aire
5
longtemps
9
carrer
6
apprecier
9
ce
2
nombre;
6
objet
5
ce
2
dur
3
nom
3
habituel
8
repetes; engendres par
7
9
3
le
2
symbole (perimetre)
7
9
cercle:
6
M e^me
4
utile
5
:::
0
son
3
Por otra parte, muchas fórmulas aproximan el cálculo de , generalmente en
forma de series. Entre ellas;
6
1
1
1 3
1 3 5
+
+
+
+
2 (2) 3 23 (2 4) 5 25 (2 4 6) 7 27
p
2 3 1
2 1+
1
3 3
+
1
5 32
1
1
+
7 33 9 34
1 1 2 1 2 3 1 2 3 4
+
+
+
+
3 3 5 3 5 7 3 5 7 9
o
4 1
1 1
+
3 5
1 1
+
7 9
También el producto de Wallis;
2
2 2
1 3
4 4
3 5
6 6
5 7
4
8 8
7 9
;
;
;
Teóricamente, el uso sistemático de estas fórmulas aproxima al valor de con
la precisión de términos decimales que se quiera.
Las fracciones de enteros que constituyen las fórmulas son números racionales,
y por ello, de mantisa periódica. Por lo tanto cada división hasta un número …nito
de períodos es una operación …nita. Para un n dado, es posible …jar un número
m de términos de la serie y un número k de decimales (por ejemplo, el mínimo
común múltiplo entre los períodos de los términos de la serie considerados) su…cientemente grandes de manera que el calculo de mediante la fórmula estabilice
los primeros n dígitos de la mantisa, es decir, que el error al término n sea cero.
Por lo tanto, existe una maquina de Turing para calcular el n término decimal
de :
Tercer ejemplo
Probar o desmentir por contraejemplo las siguientes a…rmaciones;
(a) Sea L recursivamente numerable. Sea L0 tal que L0
L. Entonces L0 es
recursivamente numerable.
(b) Si L1 [ L2 es recursivo, necesariamente L1 y L2 son recursivamente numerable.
(c) Si L1 y L2 son recursivamente numerables entonces L1 [ L2 es recursivamente numerable.
Solucion :
Sabemos que Ld no es recursivamente numerable, y por construcción, Ld
:
Sabemos también que
es un lenguaje recursivo (porque puede ser generado en
orden canónico), y es por lo tanto, recursivamente numerable.
(a) Sea L =
y L0 = Ld : Tenemos un ejemplo que contradice la inclusión
estricta del enunciado. La única manera de que este último sea cierto es que
L0 = L:
es recursivo y L1 no es
(b) Sea L1 = Ld y L2 = Ld : Entonces, L1 [ L2 =
recursivamente numerable. El enunciado es falso.
(c) Sean T1 y T2 las máquinas de Turing que aceptan a L1 y L2 respectivamente.
Se construye una máquina de Turing M que simula simultáneamente a T1 y a T2
en cintas separadas. Si alguno acepta w entonces T acepta a w. Así, w 2 L1 [ L2
cuya máquina de Turing es T; y es por tanto, recursivamente numerable.
5
Descargar