¿Es completo un sistema computacional de Turing si y solo si no se puede detener-decidir?

Vamos a solucionar el problema de “entrada vacía” redefiniendo el problema de detención para decidir el idioma [matemáticas] \ {(M, x) | M [/ math] es una máquina de Turing válida que se detiene en la entrada [math] x \} [/ math]. Estas definiciones son equivalentes para muchos propósitos, ya que siempre puede crear una nueva máquina [matemática] M ‘[/ matemática] que escribe [matemática] x [/ matemática] en la cinta y luego ejecuta [matemática] M [/ matemática], pero creo que aclara las cosas aquí.

Sin embargo, la respuesta sigue siendo “no” con el siguiente argumento:

Definir [matemática] F (M) = [/ matemática] “Una máquina de Turing que, en la entrada [matemática] x [/ matemática], acepta si [matemática] x [/ matemática] está vacía o comienza con un binario [matemática] 0 [/ math], y de lo contrario ejecuta [math] M (x [1:]) [/ math] ”

Ahora, considere [matemáticas] S = \ {F (M) | M [/ math] ∈ [math] \ {[/ math] Todas las máquinas de Turing [math] \} \} [/ math].

Claramente, no hay máquina en [math] S [/ math] que acepte (por ejemplo) el idioma [math] \ {x | x [/ math] comienza con un binario [math] 1 \} [/ math]. Sin embargo, supongamos que podemos decidir el problema de detención para una [matemática] s [/ matemática] ∈ [matemática] S [/ matemática] arbitraria. Entonces podemos decidir el problema de detención para una máquina arbitraria, par de entrada (M,x) preguntando si [math] F (M) [/ math] acepta en la cadena [math] 1 || x [/ math].

No soy particularmente bueno en teoría / filosofía de las ciencias de la computación, pero voy a tomar una puñalada.

La respuesta a la pregunta del título es ciertamente “no” en la forma en que la ha formulado, ya que detener la capacidad de decisión es sobre el comportamiento en entradas nulas y sobre detener o no, pero decidir los idiomas se trata sobre el comportamiento en entradas arbitrarias y sobre regresar ” sí o no.

Por ejemplo, S podría ser un subconjunto que nunca puede devolver “sí” (pero podría devolver “no” o bucle para siempre), o podría ser un subconjunto que siempre devuelve inmediatamente “sí” si su entrada no está vacía, o podría ser Un subconjunto que nunca lee su entrada.

No estoy seguro de cómo se podría reformular la pregunta para evitar este problema … en particular, tendrías que incluir un mecanismo menos que completo para reformatear entradas y devolver valores. La respuesta es “no” si las cosas que no se parecen a las máquinas de Turing (por ejemplo, las máquinas oracle) están permitidas, porque es fácil encontrar máquinas oracle inútiles pero inescrutables. Este es un principio común; por ejemplo, es fácil construir un lenguaje que sea indecidible pero no NP-hard.

No. Una máquina de Turing con acceso a un oráculo de detención está completa, pero puede decidir el conjunto de detención. 🙂

Además, los DFA no pueden decidir el conjunto de detención, pero no están completos. 🙂

Si desea un sistema computacional más constructivo, comience a tocar la tesis de Church-Turing. En ese caso, la mayoría de los teóricos de la computabilidad dirían que no, ya que tienden a creer en esta tesis. Cabe señalar que no hay pruebas de la tesis de la Iglesia Turing.