Soy un estudiante universitario que recién comienza a leer sobre informática reversible. Sé que, debido al principio de Landauer, los cálculos irreversibles disipan el calor (y los reversibles no). Lo mencioné con mi profesor, que nunca antes había oído hablar de la computación reversible, y estaba teniendo dificultades para entender por qué la teoría de la computación reversible no era trivial.
Su punto era que siempre puede guardar la entrada, es decir, para cualquier función que desee hacer reversible, defina una nueva función f r e v e r s i b l e : { 0 , 1 } n → { 0 , 1 } 2 n (o { 0 , 1 } 2 n y solo pone 0 s para los últimos n bits de la entrada) que devuelve la salida en los primeros n bits y la entrada en los otros n bits. Luego, para invertir f r e v e r s i b l e , simplemente descarte la salida y devuelva la entrada que guardó.
Mi objeción inmediata fue que esto requiere más memoria que la función original, aunque solo por un factor constante. Sin embargo, restringir la salida a bits parecería restablecer el interés del problema. ¿Es esto lo que generalmente se entiende por computación reversible?
Otra objeción parecía ser que cuando descartamos la salida, estamos haciendo algo irreversible que va a disipar el calor. Pero recuperamos correctamente el estado inicial, entonces, ¿cómo podría ser irreversible? No sé lo suficiente de física para entender si lo importante con calor es que todo el cálculo sea reversible, o si cada paso también debe ser reversible, o si esta idea está en el árbol equivocado .