Entiendo y acepto perfectamente la prueba que una máquina de Turing no puede resolver el problema de parada.
De hecho, esta no es una de esas preguntas que cuestionan la prueba o el resultado.
Sin embargo, siento que aún queda algo por explicar... Todavía me queda por saber exactamente por qué el problema de Halting no tiene solución. Por supuesto, en el sentido de que hay una prueba, hay una por qué aquí ... y sin embargo ... Siento que alguna otra parte importante de la por qué no está.
Déjeme explicarle:
En primer lugar, supongamos que sólo tratamos de resolver el "problema de detención con cinta vacía" y supongamos que las máquinas que nos interesan sólo tienen dos símbolos: 1 y 0. Ahora, dada una máquina, ¿se detendrá, cuando se declare en la cinta vacía (es decir: todo 0) o no?
Ahora bien, sabemos que este problema no es solucionable por Turing. Si lo fuera, obtendríamos una contradicción lógica. OK, lo entiendo. No tengo ningún problema con eso, y como dije, puedo seguir la prueba y estoy completamente de acuerdo con ella. Acepto perfectamente que este problema de detención no se puede resolver.
Pero supongamos que lo intento y lo intento: supongamos que intento resolver este problema de detención. Sabemos que el conjunto de todas las máquinas de Turing es enumerable, así que vamos a repasarlas una por una. Ahora bien, es de suponer que esta enumeración es tal que comienza con máquinas relativamente "simples". De hecho, podría enumerar primero todas las que tienen 1 estado interno, luego todas las que tienen 2, etc. ya que para cualquier $n$ y con sólo $2$ símbolos, sólo hay un número finito de máquinas posibles
Ahora, para todas las máquinas con $1$ estado, puedo predecir fácilmente su comportamiento. Algunos se detienen. Otras no. Bien, pasando a las máquinas con $2$ estados. Con algo de esfuerzo, puedo predecir el comportamiento de todos ellos también. Genial. En cuanto a $3$ ... ok, ahora se vuelve más difícil .. pero incluso aquí puedo hacerlo. Lo sé, porque la gente que trabaja en el problema de Busy Beaver ha descubierto esto. Y creo que lo han resuelto por $n=4$ así como ...
Curiosamente, estos investigadores están utilizando ordenadores para ayudarles a averiguar el comportamiento de parada o no de estas máquinas relativamente "simples". Estos programas informáticos intentan, en cierto modo, resolver el problema de la parada, al menos para valores muy pequeños de $n$ . Presumiblemente, estas máquinas "analizan" y "descomponen" el comportamiento de una máquina con $4$ estados en algo que pueda demostrarse que se detiene o no se detiene. Pero por supuesto, sabemos que no pueden resolverlo para todos $n$ ... no pueden ser perfectos. Y de hecho, para $n=5$ el comportamiento de las máquinas de Turing se complica tanto que ni el ser humano ni la máquina son capaces de averiguar (todavía) si la máquina se detiene o no.
Así que... esta es mi pregunta: ¿qué es ¿con qué nos encontramos que nos impide averiguar el comportamiento de parada?
La prueba del problema Halting utiliza la autorreferencia. Es decir, si una máquina podría resolver la detención, entonces podemos demostrar que debe haber una máquina que se detenga en su propia entrada (es decir, cuando se le da su propio programa, o su propio número en alguna enumeración, o..) si y sólo si no .. una contradicción.
De acuerdo, pero esto es cuando tenemos una máquina con ciertas potencias... en cierto modo, una máquina que puede resolver el problema de detención es una máquina con "demasiada" potencia, lo que lleva a una contradicción.
Pero, las máquinas de detección de paradas utilizadas por los investigadores de Busy Beaver no tienen demasiada potencia. Tienen muy poca potencia. Actualmente no pueden resolver $n=5$ . Vale, pues les damos más poder. Tal vez en algún momento puedan resolver $n=5$ ... pero todavía no pueden resolver $n=6$ . Tal vez podamos darles suficiente poder para resolver $n=6$ o $n=7$ o ....
... así que mi pregunta es: ¿hay algún valor "especial" de $n$ , digamos que $n=m$ donde esto tiene que parar. Donde, de alguna manera, la única forma de resolver $n=m$ ¿es por una máquina que tiene "demasiada" potencia? Pero, ¿por qué? ¿Es por algún tipo de autorreferencia? Porque la única manera de resolver $n=m$ es por una máquina que, al tratar de analizar y predecir el comportamiento de alguna máquina con $m$ estados, no puede reducirse a nada "más pequeño" que algo que requiera resolver $n=m$ ¿en sí mismo? ¿Algún tipo de valor "mínimo" no diferente de algún conjunto de requisitos mínimos que deben tener los sistemas formales para poder aplicarles la construcción de Godel?
Un pensamiento que tengo es que esto no puede ser: como dije, para cualquier $n$ Sólo hay un número finito de máquinas que considerar. Como tal, es computable; existe alguna máquina que clasifica correctamente todas las máquinas con $n$ estados como halters de cinta vacía o no halters: toma una máquina en la entrada, recorre su lista finita con respuestas prealmacenadas y emite esa respuesta. Hay una máquina que hace esto para $n=5$ hay uno para $n=6$ etc. Y ninguna de esas máquinas tiene demasiada potencia: no hay contradicciones. Todas tienen muy poca.
Por otra parte, estas máquinas no hacen ningún análisis explícito de las máquinas involucradas ... sólo pasar para dar el valor correcto. Por lo tanto, tal vez todavía hay algún valor de $n$ ¿dónde el enfoque de intentar realmente analizar y predecir el comportamiento de la máquina comienza a romperse por alguna razón fundamental, de nuevo posiblemente autorreferencial?
O bien: ¿es que el enfoque analítico simplemente se vuelve más y más difícil ... pero que hay no punto "especial" en el que se convierte, por alguna razón teórica y fundamental, en algo demasiado difícil? Como tal, la contradicción sólo viene de una máquina que puede hacerlo por todo infinitos valores de $n$ ? Efectivamente, quizás el problema es que para analizar el comportamiento de todas las máquinas con $n$ estados, necesitamos una máquina que tiene que tener más de $n$ estados ... y así mientras para cada $n$ hay una máquina $M$ que puede realizar el análisis, la complejidad de $M$ es mayor que cualquiera de las máquinas con $n$ estados, y por lo tanto necesitarías otra máquina aún más complicada $M'$ para analizar máquinas con el tipo de complejidad que $M$ ha ... estableciendo así una regresión infinita que nunca se puede completar, es decir, no hay una máquina que pueda "hacerlo todo"?
¿Puede alguien ayudarme a pensar en esto?
3 votos
@MattSamuel El OP es consciente de ello, tal y como indica en su pregunta.
2 votos
@NoahSchweber Gracias Noah ... en realidad eres justo la persona que esperaba que viera este post ... ¿tengo sentido? ¿Ves lo que quiero decir?
3 votos
La cuestión es que tener más "potencia" no resolverá el problema. No importa lo potente que sea tu máquina, no puede resolver un estado de castor ocupado incluso para un n bajo. Todo lo que la máquina de turing puede hacer es seguir corriendo y corriendo e incluso después de 1000000000000 pasos no podemos estar realmente seguros de que no se detenga sin un patrón, y muchos de estos estados de castor ocupado no muestran ningún patrón obvio. Sólo una máquina de turing infinitamente potente (máquina de turing de tiempo infinito) puede resolver el problema.
0 votos
Definir cómo un programa $P$ se detiene es fácil: existe un número entero finito $n$ de manera que la ejecución de $P$ para $n$ pasos produce el $0$ estado. Definir qué propiedades de $P$ garantía de que $n$ no existe es exactamente el propósito de nuestras teorías lógicas/matemáticas (PA, ZFC...). Que existan dos enteros diferentes tales que $P$ está en el mismo estado después de $n$ y $m$ pasos es una de esas propiedades. Pero al buscar teorías que formalicen la aritmética, obtenemos mucho más, y llegamos al problema de la incompletitud: no tenemos forma de garantizar que nuestra teoría sea consistente.
0 votos
Si consideramos la expansión decimal de cualquier número no computable encontramos que ningún algoritmo de longitud finita puede expresarlo a pesar de que los dígitos son enumerables. En este caso no hay ningún dígito especial que nos permita asegurar que el resto del número será incalculable y nos vemos obligados a considerar el número en su totalidad para deducir su incalculabilidad. Por analogía, no esperaría que la resolución de una cesta finita de problemas más pequeños y manejables implique la existencia de algún punto en el que la adición a la cesta obligue a que el problema completo sea irresoluble.
0 votos
@MatthewLiu Gracias ... pero por "potencia" no me refería a la velocidad del hardware ni nada por el estilo .. y entiendo que la mera simulación de una máquina no va a ser muy útil; el detector de paradas tiene que ser capaz de razonar sobre el comportamiento de la máquina considerada... así que con más "poder" me refería más bien a tener más "poder analítico" para razonar sobre las máquinas.
2 votos
@Bram28 Aún así, no importará que la máquina sea capaz de "razonar". Fundamentalmente hablando, el razonamiento no es diferente de la velocidad de cálculo. Nuestros cerebros humanos no son diferentes de los de las máquinas, aparte del hecho de que nuestros cerebros son mucho más potentes, pero no estamos hechos de metal, por lo que cometemos más errores.
0 votos
Hay una bonita conferencia que creo que está relacionada con lo que estás discutiendo, básicamente muestra que existen funciones que no son computables de una forma matemática agradable sin recurrir al problema de halting: youtube.com/
0 votos
@MarcoBellocchi ¡Gracias por el enlace! :)