la máquina de turing - users.dsic.upv.esusers.dsic.upv.es/asignaturas/facultad/tal/turing.pdf · 1...
TRANSCRIPT
1
La máquina de La máquina de TuringTuring
José M. Sempere
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
David David HilbertHilbert (1862, Rusia (1862, Rusia –– 1943, Alemania)1943, Alemania)
Matemático que aportó diversos resultados de carácter fundamental (i.e. “espacios de Hilbert”)
En 1900 durante el Segundo Congreso Internacional de las Matemáticas en Paris formuló su famosa lista de 23 problemas esenciales para el progreso en las matemáticas.
Destacamos el problema número 23 que fue un detonante en el progreso en las ciencias de la computación. Podemos expresarlo como sigue
“ ¿ Existe alguna formalización efectiva de las matemáticas ?Es decir, ¿ existe algún sistema que permita expresar cualquier proposiciónmatemática en forma simbólica y que habilite su demostración mediante un puro cálculo ?”
2
KurtKurt GödelGödel (1906, (1906, Aust.HungriaAust.Hungria –– 1978, USA)1978, USA)
Matemático. Su principal área de estudio se centra en los “sistemas axiomáticos de las matemáticas” influenciado por el trabajo de Russell
En 1932 publica su resultado más notable: El Teorema de Incompletitud
“En cualquier sistema axiomático de las matemáticas existen proposiciones que no pueden demostrarse como ciertas o falsas”
AlonzoAlonzo ChurchChurch (1903, USA (1903, USA –– 1995,USA)1995,USA)
Matemático. Su principal área de estudio se centra en la lógicamatemática, la teoría de la recursión y la informática teórica (“theoretical computer science”).
En 1930 crea el λ-cálculo que fundamenta algunos de los paradigmas de programación actuales.
Fue supervisor de doctorado de Kleene y Turing.
Su resultado más celebrado es el conocido como Teorema de Church (1936):
“No existe un procedimiento de decisión para el cálculo proposicional completo”
3
StephenStephen KleeneKleene (1909, USA (1909, USA –– 1994, USA)1994, USA)
Matemático. Su principal área de estudio se centra en la teoría de los algoritmos y las funciones recursivas.
Propone una definición sencilla y fundamental de las funciones recursivas que ayudaron a una mejor comprensión de los sistemas axiomáticos de primer orden de Gödel.
Sus resultados más notables permitieron establecer qué funciones podían ser computables y también permitieron establecer grados en las funciones no computables (i.e. la “Jerarquía Aritmética”)
EmilEmil Post (1897, Polonia Post (1897, Polonia –– 1954, USA)1954, USA)
Matemático. Demostró la completitud y consistencia del cáculoproposicional propuesto por Russell y Whitehead en sus “Principia Mathematica”.
Post descubrió con antelación algunos de los resultados que más tarde publicarían Gödel, Church y Turing.
En 1936 propone la “máquina de Post” que incluye la noción de programa en un autómata.
En 1947 demuestra como irresoluble el problema de “palabras de un semigrupo” propuesto por Thue en 1914 dando lugar al famoso “Problema de la Correspondencia de Post”.
4
Alan Alan TuringTuring (1912, Inglaterra (1912, Inglaterra –– 1954, Inglaterra)1954, Inglaterra)
Matemático. Sus áreas de trabajo son múltiples e incluyen los estudios de algunos resultados de Russell y Gödel en relación con el problema 23 de Hilbert.
En 1936 publica su famoso trabajo sobre decidibilidad en el que propone su más notable modelo matemático: la “máquina de Turing”
Durante la II Guerra Mundial, Turing trabajó en Bletchley Parkpara la Escuela Estatal de Códigos y Cifras . Su trabajo más notable durante esta época fue el criptoanálisis de los códigos de la máquina “Enigma” alemana. Diseñó una máquina que resolvió con éxito tal problema: la “bomba de Turing”
En 1950 publicó su trabajo sobre “Máquinas que Computan e Inteligencia”, proponiendo el famoso “test de Turing” para discernir si un computador puede llegar a ser inteligente.
La máquina de La máquina de TuringTuring: El modelo : El modelo determinista determinista (I)(I)
controlfinito
cinta de lectura/escritura
a1 a2 a3 a4 a5 a6 B B
q
Un movimiento de la máquina implica:(a) Cambiar el estado del control finito(b) Escribir un símbolo en la celda analizada(c) Mover la cabeza de cinta una celda a la izda. o a la dcha.
Un movimiento de la máquina depende del estado del control finito y del símbolo analizado por la cabeza de cinta
cabeza de cinta
5
La máquina de La máquina de TuringTuring: El modelo : El modelo determinista determinista (II)(II)
a1 a2 a3 a4 a5 a6 B B
q
M = (Q, Σ, Γ, δ, q0, B, F)
δ: Q × Γ → Q × Γ × {L, R}
descripción instantánea
α β
α q β = a1 a2 a3 q a4 a5 a6
descripción instantánea
α
a1 a2 a4 a5 a6 B B
q α q β = a1 a2 B a4 a5 a6 q B
B
β
a1 a2 a4 a5 a6 B B
q α q β = q a1 a2 B a4 a5 a6
B
6
transiciones entre descripciones instantáneas
a1 a2 a4 a5 a6 B B
q D1 = a1 a2 B q a4 a5 a6
B
a1 a2 Y a5 a6 B B
p D2 = a1 a2 B Y p a5 a6
B
a1 a2 a5 a6 B B
p D3 = a1 a2 p B Y a5 a6
B Y
D1 D2 sii δ(q, a4) = (p, Y, R)M
D1 D3 sii δ(q, a4) = (p, Y, L)M
transiciones entre descripciones instantáneas
Di Di+k sii (a) Di = Di+k
(b) ∃ Di+1 Di+2 ... Di+k-1 1 ≤ k
Di Di+1 Di+2 ... Di+k-1 Di+k
MM* es la clausura reflexiva y transitiva de la relación
M*
M M MM M
7
Condición de parada
L(M) = { w ∈ Σ* : q0 w α q β, q ∈ F, αβ ∈Γ* }
Una máquina de Turing M estará en movimiento siempre que pueda aplicar una transición de la función δ o no realice ningúnmovimiento a la izquierda del límite de la cinta.Asumimos que en la función δ nunca se definen movimientosa partir de estados finales.
M*
Descripción instantánea inicial
Lenguaje aceptado por la máquina MM = (Q, Σ, Γ, δ, q0, B, F)
w1 w2 w3 ... ... wn B B
q0
wq0 w
Ejemplo 1 L(M) = { 0n1n : n ≥ 1 }
M = ({q0, q1, q2, q3, q4}, {0, 1}, {0, 1, X, Y, B}, δ, q0, B, {q4})
-----------------------------------q4
(q4,B,R)(q3,Y,R)---------------------q3
-------(q2,Y,L)(q0,X,R) -------(q2,0,L)q2
-------(q1,Y,R)-------(q2,Y,L)(q1,0,R)q1
-------(q3,Y,R)--------------(q1,X,R)q0
BYX10
8
La máquina de Turing como calculadora de funciones
M calcula la función f : Zn → Zm sii M para tras la computación
q0 cod(x1, x2, ..., xn) α q β αβ = cod(f(x1, x2, ..., xn))
Trabajamos con funciones parciales enteras f : Zn → Zm
M*
Codificación de los valores de dominio y rango
M como calculadora de funciones
M = (Q, {0,1}, Γ, δ, q0, B, ∅)
Dada la tupla de valores enteros positivos (x1, x2, ..., xn) Definimos la función de codificación binaria
cod(x1, x2, ..., xn) = 0x1 1 0x21 ... 1 0xn
cod(1,2,3) = 01001000 cod(0,3) = 1000cod(2,0,3) = 0011000 cod(0,0) = 1
Ejemplo 2m – n si m ≥ n
resta(m, n) = 0 si m < n
M = ({q0, q1, q2, q3, q4, q5, q6}, {0, 1}, {0, 1, B}, δ, q0, B, ∅)
---------------------q6
(q6,B,R)(q5,B,R)(q5,B,R)q5
(q6,0,R)(q4,B,L)(q4,0,L)q4
(q0,B,R)(q3,1,L)(q3,0,L)q3
(q4,B,L)(q2,1,R)(q3,1,L)q2
-------(q2,1,R)(q1,0,R)q1
-------(q5,B,R)(q1,B,R)q0
B10
9
Lenguajes y funciones computables
Un lenguaje diremos que es
recursivamente enumerable si existe una máquina de Turing M tal que L(M) = L. Define la clase Lr.e.
recursivo si existe una máquina de Turing M tal que L(M)=L y M para ante cualquier entrada. Define la clase Lrec
Lrec ⊂ Lr.e.
Una función es computable si puede ser calculada por una máquina de Turing.
El conjunto de funciones computables coincide con el de las funciones recursivas
Si una función es computable parcial, la máquina que la calcula puede no parar, o parar con una salida indefinida, para aquellos valores en los que la función no esté definida.
Técnicas de construcción de máquinas de Turing (I)
Almacenamiento en el control finito
Se dota al control finito de una memoria finita capaz de almacenar información limitada.
M = (Qk, Σ, Γ, δ, q0’, B, F)
(a) Almacenamiento de una tupla de k estados
(b) Almacenamiento de una tupla de k símbolos
M = (Q × Γk, Σ, Γ, δ, q0’, B, F)
estado [q1, q2, ..., qk]
q0’ = [q0, q0, ..., q0]
estado [qi, a1, ..., ak]
q0’ = [q0, B, ..., B]
(c) Almacenamiento de otra información
Último movimiento aplicado, primer símbolo de la cadena de entrada, etc.
10
Técnicas de construcción de máquinas de Turing (II)
Pistas múltiples (multipistas)
La cinta almacena en cada celda un vector k dimensional de símbolos a los que se accede simultáneamente.
M = (Q, Σ × Bk-1, Γk, δ, q0, B’, F)
B’ = [B, B, ..., B]q0
pista 1pista 2
pista k
δ: Q × Γk → Q × Γk × {L, R}
cadena inicial de entradaw = [w1,B, ..., B] [w2, B, ..., B] ... [wn, B, ..., B]
w1 w2 wn BB
B
B
B
B
B
B
B
------
---
Técnicas de construcción de máquinas de Turing (III)
Subrutinas
Una subrutina es un subconjunto de movimientos de la función δ que sepuede utilizar igual que en algunos lenguajes de programación.
Paso de control Se utiliza almacenamiento en el control finito
[qact, qin, qfin]
Paso de variablesSe utiliza almacenamiento en control finito o bien multipistas
RecursividadUna subrutina puede llamarse a sí mismaLa pila de recursividad puede habilitarse en una pista
11
Modificaciones equivalentes al modelo determinista básico (I)
Cinta infinita en ambos sentidos
M = (Q, Σ, Γ, δ, q0, B, F)
Configuración instantánea αqβαβ es el contenido de cinta desde el símbolo no blanco más a la izquierda hasta el símbolo no blanco más a la derecha
w1 w2B B
q0
B wn...
w
Carga inicial q0ww se carga en cualquier porción de la cinta con la cabeza situada en su símbolo más a la izquierda
Teorema Para cualquier máquina de Turing M1 con cinta infinita en ambos sentidos existe otra equivalente M2 con cinta limitada por la izquierda
M2 = (Q×{U,D} ∪{q1}, Σ×B, Γ×(Γ∪{¢}), δ2, q1, [B,B], F×{U,D})
w1 w2B B
q0
B wn...
w
q0
w1 w2 Bwn...¢ B...B B
pista superior U
pista inferior D
M1
M2
M1 = (Q, Σ, Γ, δ1, q0, B, F)
δ2(q1, [x,B]) = ([qi,U], [y, ¢], R) sii δ1(q0, x) = (qi, y, R) δ2(q1, [x,B]) = ([qi,D], [y, ¢], R) sii δ1(q0, x) = (qi, y, L)
12
Modificaciones equivalentes al modelo determinista básico (II)
Máquina multicinta
M = (Q, Σ, Γ, δ, q0, B, F) δ: Q × Γk → Q × Γk × {L, R}k
q
w1 w2B BB wn...
x1 x2B BB xm...
y1 y2B BB yj...
cinta 1
cinta 2
cinta k
Máquina multicinta
Un movimiento de la máquina multicinta implica:(a) Cambiar el estado del control finito(b) Escribir un símbolo en cada una de las celdas analizadas(c) Mover cada cabeza de cinta una celda a la izda. o a la dcha.
de forma independiente
Un movimiento de la máquina multicinta depende del estado del control finito y de los símbolos analizados por cada cabeza de cada cinta
α1 q β1 # α2 q β2 # ... # αk q βk
descripción instantánea
carga inicial q0w# Bq0B# ... #Bq0B
w se carga en la cinta 1 y el contenido del resto de las cintas es blanco
Para el cálculo de funciones, el valor de la función se almacena enla cinta 1
13
Teorema Para cualquier máquina de Turing M1 con k cintas existe otra equivalente M2 con una sola cinta
M1 = (Q, Σ, Γ, δ1, q0, B, F)
w1 w2B BB wn...
x1 x2B BB xm...
y1 y2B BB yj...
cinta 1
cinta 2
cinta k
w1 w2 Bwn...
B...B Bx1 x2 xm...
...B B
y1 y2 yj-2...
B...B B
~
~xm-1
~
B
yj-1 yj
B
cinta 1 (dos pistas)
cinta 2 (dos pistas)
cinta k (dos pistas)
M2
Teorema Para cualquier máquina de Turing M1 con k cintas existe otra equivalente M2 con una sola cinta
M1 = (Q, Σ, Γ, δ1, q0, B, F)
M2 = (Q×Γk×{0, ..., k}, Σ × B2k-1, (Γ∪ {~})2k, δ2, q1, B’, F ×Γk×0 )
q1 = [q0, B, ..., B, 0]
Para iniciar la simulación de un movimiento de M1, la máquina M2 se sitúa en el símbolo marcado más a la izquierda.
La simulación de un movimiento de M1 consiste en recorrer la cinta de izquierda a derecha almacenando los símbolos marcados y de derecha a izquierda moviendo las marcas de los símbolos y cambiando los símbolos anteriormente marcados.
B’ = [B, ..., B]
14
Modificaciones equivalentes al modelo determinista básico (III)
Máquina no determinista
M = (Q, Σ, Γ, δ, q0, B, F)
δ: Q × Γ → P(Q × Γ × {L, R})
δ(q,a) = {(p1, a1, z1), ..., (pm, am,zm)} zi ∈{L,R}
Llamamos grado de indeterminismo de la máquina M a la aridad máxima de la función δ (el número máximo de elecciones que la máquina pueda teneren cualquier configuración)
Las transiciones entre descripciones instantáneas originan la definición delos árboles de computación
Árboles de computación
M = (Q, Σ, Γ, δ, q0, B, F)
w ∈ Σ*
q0 w
α1 q1 β1 α2 q2 β2 αj qj βj
α11 q11 β11 α1p q1p β1p αj1 qj1 βj1 αjm qjm βjm
α p β α q β
p ∈ F q ∉ F∞
M acepta w si existe un camino desde laraíz hasta una hoja con estado final
grado de indeterminismo n ⇒ aridad del árbol n
15
Teorema Para cualquier máquina de Turing M1 no determinista existe otra equivalente M2 determinista
M1 = (Q1, Σ, Γ1, δ1, q1, B, F1) M2 = (Q2, Σ, Γ2, δ2, q2, B, F2)
Dada una cadena w, para comprobar si w es aceptada por M1 basta con recorrer enanchura su árbol de computación. Si w es aceptada se llegará a una descripción instantánea de aceptación.
Una secuencia de computación será una secuencia finita de dígitos enteros i1 i2 ... imdonde ij ∈ {1, .., n}. Cada dígito indica la posible elección de movimiento que seefectúa en M1 (ej. 12232 significa elegir el movimiento 1, luego el 2, luego el 2, luegoel 3 y luego el 2).
Una secuencia de computación es factible si todos y cada uno de sus movimientos se pueden aplicar en la máquina M1.
Una secuencia de computación factible es de aceptación si el último estado al que llega la máquina M1, de acuerdo con la secuencia, es un estado final. En cado contrario la secuencia de computación factible es de rechazo.
(grado de indeterminismo n)
El orden lexicográfico de las secuencias de computación posibilita el recorrido enanchura del árbol de computación.
q0 w
α1 q1 β1
α p β p ∈ F
α2 q2 β2
αn qn βn
Si w es aceptada por M1 existe una secuencia decomputación que conduce a M1 hacia un estadode aceptación: i0 i1 i2 ... in
i0
i1
in
M2 genera todas las posibles secuencias de computaciónhasta encontrar aquélla que conduce a M1 hacia un estado de aceptación. Si no existe, entonces M2 nunca para.
M2
cinta de entrada w
secuencia de computación
cinta de trabajo
16
Modificaciones equivalentes al modelo determinista básico (II)
Máquina off-line
M = (Q, Σ, Γ, δ, q0, B, F)
q
w1 w2 $wn...
x1 x2B BB xm...
y1 y2B BB yj...
cinta 1(sólo lectura,
limitada)
cinta 2
cinta k
¢ w3
Teorema Para cualquier máquina de Turing M1 off-line existe otra equivalente M2 con una sola cinta
La máquina M2 puede efectuar la misma simulación que en el caso multicintapero limitando los movimientos de la cinta 1 a la izquierda de ¢ o a la derechade $ y reescribiendo siempre los mismos símbolos leídos en esa cinta
17
La tesis de Church-Turing
Cualquier modelo de computación que intente capturar el concepto de “lo que es computable” debe ser equivalente a la máquina de Turing
La noción intuitiva de función computable puede ser identificada con lade función recursiva parcial
Otros modelos de computación formulados a lo largo del tiempo
• Sistemas de Post• λ-cálculo• Máquina RAM• Máquinas cuánticas• Cálculo basado en el ADN, etc.
Un modelo de cálculo permite hipercomputación si es capaz de resolver algunos problemas que las máquinas de Turing establecen como indecidibles(Ej. máquinas de Turing con oráculos, redes de Siegelman, etc.)
La máquina de Turing como enumeradora de conjuntos
Una máquina de Turing generadora es una máquina de Turing multicintacon una cinta de salida de sólo escritura.
# w1 # w2 # ...# wn # ...
M = (Q, Σ, Γ, δ, q0, B, ∅)
La máquina no necesita cadena de entraday pierde el concepto de aceptación/rechazo eincluso el de parada
wi ∈Σ*
G(M) = {w1 , w2 , ..., wn , ... }
M
18
Basta con construir una máquina de Turing multicinta M2 que acepte el lenguajegenerado por M1
M1
Lema Todo lenguaje generado por una máquina de Turing M1 es recursivamente enumerable
M2
w
M2 simula a M1 y, cada vez que se genera una cadena wi, la compara conla cadena de entrada w. Si coinciden, para y acepta y en caso contrariosigue simulando a M1. L(M2) = G(M1)
Sea L = L(M1) un lenguaje recursivamente enumerable
M1
Lema Todo lenguaje recursivamente enumerable puede ser generado por una máquina de Turing.
Bastará con construir una máquina de Turing M2 que genere sólo aquellas cadenasque M1 acepte.
Problema: ¿ cómo se pueden establecer todas las cadenas que acepta M1 si existe elproblema de la parada ?
19
Hecho 1: Dado un alfabeto Σ el conjunto infinito de cadenas de Σ* es enumerable y el orden lexicográfico identifica cada entero con una cadena
Ejemplo Σ = {a,b} Σ* = { λ, a, b, aa, ab, ba, bb, aaa, aab, ... }
Hecho 2: El conjunto infinito formado por los pares de enteros positivos es enumerable
.....................
...(i,j)...(i,2)(i,1)(i,0)i
.....................
...(2,j)...(2,2)(2,1)(2,0)2
...(1,j)...(1,2)(1,1)(1,0)1
...(0,j)...(0,2)(0,1)(0,0)0
...j...210
Se pueden construir subrutinas en máquinas de Turing que generen Σ* y los pares de enteros (i,j)
(1) Generar (i,j)(2) Generar wi(3) Copiar wi a una cinta(4) Simular M1 ante wi durante j movimientos(5) Si M1 acepta, escribir wi en la cinta de salida de M2.
En caso contrario ir a (1)
M1M2
Σ*
(i,j)
wi
j
G(M2) = L(M1)cinta de salida
20
Si el lenguaje es infinito basta con construir una máquina de Turing multicinta M2que acepte el lenguaje generado por M1 y que pare ante cualquier entrada.
Sirve la misma construcción que para el caso de los lenguajes recursivamenteenumerables con la siguiente salvedad: M2 simula a M1 y, cada vez que se genera una cadena wi, la compara con la cadena de entrada w. Si coinciden, para y acepta y, en caso contrario, si wi > w para y rechaza y si wi < w genera la siguiente cadena.
La condición de parada queda garantizada por ser el lenguaje infinito.
Lema Todo lenguaje generado por una máquina de Turing M1 en orden lexicográfico es recursivo
L(M2) = G(M1)
Para la siguiente construcción excluiremos el caso de que el lenguaje sea finito.En este último caso se puede construir una máquina que acepte sólo las cadenasdel lenguaje y que para el resto pare y rechace (se puede hacer por casos finitos)
Sea L = L(M1) un lenguaje recursivo. La máquina M1 para ante cualquier entrada
M1
Lema Todo lenguaje recursivo puede ser generado por una máquina de Turing en orden lexicográfico.
Bastará con construir una máquina de Turing M2 que genere, en orden lexicográfico sólo aquellas cadenas que M1 acepta.
M2 genera las cadenas de Σ* en orden lexicográfico. La cadena wi se somete alanálisis de M1. Si M1 acepta wi entonces M2 la escribe en su cinta de salida.
M2 sólo genera las cadenas de L y además lo hace en orden lexicográfico.
Σ*
M2
wi
M1
21
Lenguajes recursivamente enumerables
Caracterización de los lenguajes recursivos y recursivamente enumerables(utilización de esquemas)
Mw S (w ∈L(M))
aceptora L=L(M)
M<L>o.l. (<w1#w2# ...)
generadora L=G(M)
Lenguajes recursivos
M<L> (<w1#w2# ...)
aceptora L=L(M) generadora L=G(M)
Mw
S (w ∈L(M))
N (w ∉L(M))
Máquinas binarias
Máquinas restringidas equivalentes al modelo básico
M = (Q, {0,1}, {0,1,B}, δ, q0, B, F)
Teorema Si L ⊆ (0+1)* es recursivamente enumerable entonces L es aceptado por una máquina de Turing binaria
Sea L = L(M1) con M1 = (Q1, {0,1}, Γ, δ1, q1, B, F1).
Construiremos M2 = (Q2, {0,1}, {0,1,B}, δ2, q2, B, F2) de forma que L = L(M2)
Cada símbolo de Γ se puede codificar con un código binario de k símbolos.
Q2 = Q1 × {0,1,B}k F2 = F1 × Bk q2 = [q1, B,B, ..., B]
22
M2 lee la cadena de entrada w y escribe su código en otra cinta. A partir de esemomento la simulación de M1 se efectúa de la siguiente forma:
(1) Leer k celdas de la cinta con la entrada codificada y almacenar sus símbolosen el control finito.
(2) Escribir el código del nuevo símbolo de acuerdo con la función δ1(3) Cambiar al nuevo estado de acuerdo con la función δ1(4) Moverse al comienzo del siguiente código por la derecha o por la izquierda
de acuerdo con la función δ1
M2
Γ = {a1, a2, …, an }
k = log2 n
cod(ai) ∈ {0,1}k
w1 w2 wp
w
cod(w1) cod(wp)
k celdas
Una gramática de tipo 0 se define por la tupla G=(N,T,P,S) donde las producciones de P son de la forma
α → β α∈ (N∪T)+ β ∈ (N∪T)*
Máquinas de Turing y lenguajes de tipo 0
Teorema L es un lenguaje recursivamente enumerable sii L=L(G) donde G es de tipo 0.
Relación con la jerarquía de Chomsky
L3 ⊂ L2 ⊂ L1 ⊂ L0 = Lr.e.
23
Una gramática de tipo 1 se define por la tupla G=(N,T,P,S) donde las producciones de P son de la forma
α → β α∈ (N∪T)+ β ∈ (N∪T)* |α| ≤ |β|S →λ sii S no aparece en la parte derecha de ninguna otra producción
Autómatas de memoria limitada linealmente y lenguajes de tipo 1
Teorema L es un lenguaje sensible al contexto (de tipo 1) sii L es aceptado por un ALL
Relación con la jerarquía de Chomsky
L3 ⊂ L2 ⊂ L1 = LALL ⊂ Lrec ⊂ L0 = Lr.e.
Un autómata de memoria limitada linealmente (ALL) es una máquina de Turing no determinista monocinta que satisface las dos siguientes condiciones
(1) El alfabeto de entrada incluye los limitadores ¢ y $(2) El ALL no mueve su cabeza de cinta fuera de los limitadores ni escribe sobre ellos
Se define la clase LALL