Subestimé el poder de ... ¡en realidad no está muy lejos de la hipercomputación !C3
(Publico esto como una respuesta separada para mayor claridad)
Podemos construir una máquina Turing de estado único que acepte las cadenas del formulario:M
LY={a0n1mR∣m≥2n}
y rechaza cadenas de la forma:
LN={a0n1mR∣m<2n}
La idea y la construcción son similares a las de la respuesta anterior: transformar la primera en A , dejar que la cabeza llegue al centro de la cadena y luego hacer un zig-zag "sin estado", pero las transiciones "implementan" un "contador binario" "en la primera mitad de esta manera: en Z (Cero) rebota la cabeza hacia la derecha y convierte la Z en S (Uno) la próxima vez que la cabeza llegue a S , transfórmala en a ) y deja que la cabeza mover hacia la izquierda; cuando los alcances de la cabeza los ) transformarlo a un Z . La segunda mitad de la cadena se comporta como un contador unario.aAZZSS))Z
Las transiciones son:
- en escriba R y muévase a la derecha (prepárese para rechazar)rR
- en escriba Z y muévase a la derecha (moviéndose hacia el centro, establezca el contador binario en 0 ..)0Z
- en escriba > y muévase a la izquierda (marque un 1 y disminuya el contador unario, prepárese para el próximo cruce de izquierda a derecha y vuelva al contador binario)1>1
- en escriba < y vaya a la derecha (cruce de derecha a izquierda de la segunda mitad de la cadena, prepárese para el próximo de izquierda a derecha)><
- en escribir > y ve a la izquierda (cruce de izquierda a derecha de la segunda mitad de la cuerda, prepárate para el siguiente de derecha a izquierda)<>
- en escriba S y muévase a la derecha (transforme el dígito en uno y rebote hacia la derecha hacia el contador unario)ZS
- en la escritura ) y muévase a la izquierda (borre el dígito y deje que la cabeza se mueva a la izquierda como un "acarreo", prepárese para la próxima izquierda a derecha de la primera parte)S)
- encendido escriba Z y muévase a la derecha (establezca el cero que causará el rebote y deje que la cabeza se mueva a la derecha))Z
- en aceptar, en R rechazarAR
- en blanco rechazarb
Ejemplo:
:a 0 0 0 1 1 1 1 1 1 1 1 R
A:0 0 0 1 1 1 1 1 1 1 1 R
A Z:0 0 1 1 1 1 1 1 1 1 R
...
A Z Z Z:1 1 1 1 1 1 1 1 R
A Z Z:Z > 1 1 1 1 1 1 1 R
A Z Z S:> 1 1 1 1 1 1 1 R
A Z Z S <:1 1 1 1 1 1 1 R
A Z Z S:< > 1 1 1 1 1 1 R
A Z Z:S > > 1 1 1 1 1 1 R
A Z:Z ) > > 1 1 1 1 1 1 R
A Z S:) > > 1 1 1 1 1 1 R
A Z S Z:> > 1 1 1 1 1 1 R
...
A Z S:Z > > > 1 1 1 1 1 R
...
A Z S S < < <:1 1 1 1 1 R
...
A S:) ) > > > > 1 1 1 1 R
...
:A ) ) ) > > > > > > > > R ---> ACCEPT
Se debe prestar cierta atención para demostrar que detiene en todas las entradas (solo tenga en cuenta que rechaza en la entrada en blanco y todos los símbolos que no se detienen "pasan" ( , S , Z o < , > que no pueden conducir a un bucle infinito) )M(,S,Z<,>
El lenguaje es un superconjunto de L Y ( L Y ⊂ L ( M ) ) y no contiene cadenas de L N ( L ( M ) ∩ L N = ∅ ).L(M)LYLY⊂L(M)LNL(M)∩LN=∅
Suponga que está libre de contexto , luego, mediante las propiedades de cierre de las CFL, la intersección con el lenguaje regular { r 0 ∗ 1 ∗ A } produce un lenguaje CF:L(M){r0∗1∗A}
L(M)∩{r0∗1∗A}={a0n1mR∣m≥2n}=LY
Pero con una simple aplicación del Lema de Ogden para CFL podemos demostrar que : simplemente elija un s ∈ L Y lo suficientemente largo y marque todos los 0 s; se puede bombear al menos un cero y cualquiera que sea el número de 1 s en la cadena de bombeo, el crecimiento exponencial de 2 n conduce a una cadena ∉ L Y ).LY∉CFLs∈LY01s2n∉LY
Entonces no está libre de contexto .L(M)
... ahora me pregunto si esta es otra respuesta para "reinventar la rueda", o si es un resultado nuevo (pequeño).