Para elaborar un poco sobre las declaraciones de "es imposible", aquí hay un bosquejo de prueba simple.
Podemos modelar algoritmos con salida por Turing Machines que se detienen con su salida en su cinta. Si desea tener máquinas que puedan detenerse, ya sea aceptando con salida en su cinta o rechazando (en cuyo caso no hay salida), puede encontrar fácilmente una codificación que le permita modelar estas máquinas con el "alto o alto no". no hay máquinas de rechazo ".
Ahora, suponga que tengo un algoritmo P para determinar si dos de estas TM tienen la misma salida para cada entrada. Luego, dada una TM A y una entrada X , puedo construir una nueva TM B que funcione de la siguiente manera:
- Compruebe si la entrada es exactamente X
- En caso afirmativo, ingrese un bucle infinito
- Si no, entonces ejecute A en la entrada
Ahora puedo correr P en A y B . B no se detiene en X , pero tiene la misma salida que A para todas las demás entradas, por lo que si y solo si A no se detiene en X , estos dos algoritmos tienen la misma salida para cada entrada. Pero se suponía que P podía determinar si dos algoritmos tienen la misma salida para cada entrada, por lo que si tuviéramos P podríamos saber si una máquina arbitraria se detiene en una entrada arbitraria, que es el problema de detención. Como se sabe que el problema de detención es indecidible, P no puede existir.
Esto significa que no existe un enfoque general (computable) para determinar si dos algoritmos tienen el mismo resultado que siempre funciona, por lo que debe aplicar un razonamiento particular al par de algoritmos que está analizando. Sin embargo, en la práctica puede haber enfoques computables que funcionen para grandes clases de algoritmos, y ciertamente existen técnicas que puede usar para tratar de encontrar una prueba para un caso particular. La respuesta de Dave Clarke le da algunas cosas relevantes para ver aquí. El resultado de "imposibilidad" solo se aplica al diseño de un método genérico que resuelva el problema de una vez por todas, para todos los pares de algoritmos.