¿Qué es la informática reversible?

Existen límites termodinámicos para la computación estándar, lo que significa que ni siquiera en principio se puede llegar a una eficiencia arbitraria (en términos de energía necesaria para hacer un cálculo). Eso se debe al hecho de que un cálculo típico borra la información, que no está ‘libre’ desde un punto de vista termodinámico (el demonio de Google Maxwell para grandes explicaciones sobre eso). Es más fácil ver que en una puerta lógica básica, como un AND, que toma dos bits y crea uno, por lo que ha destruido la información (no puede recuperar los bits de entrada si solo conoce la salida).
La computación reversible evita esto al crear puertas lógicas que pueden ejecutarse ‘en reversa’, es decir, la puerta (r) AND no solo escupiría el bit de respuesta, sino también un segundo bit que le permitiría reconstruir las entradas. Una computadora de estas puertas luego calcula la respuesta, la lees y luego la ejecutas al revés hasta que la computadora vuelve al mismo estado que tenías al principio. No se pierde información, por lo tanto (en principio) no hay límite inferior en la energía para hacer el cálculo.

Debo añadir que, hasta donde sé, incluso las computadoras más eficientes en consumo de energía consumen mucha más energía que este mínimo teórico (demasiado flojo para buscarlo en este momento, disculpas). Por lo tanto, este es un ejercicio para el futuro.

Las computadoras prácticas usan energía cuando descartan información, cada vez que se borra un poco, se consume energía. Esto pone límites duros sobre qué tan rápido y cuánto podemos calcular.

El cálculo reversible es una forma de calcular cosas sin usar energía, al no descartar información.

Imagine un sistema físico sin fricción como una pista de hockey sobre hielo perfecta.

Podemos armar algunas plantillas, clavijas, palancas, etc. para que una serie de discos cuando se disparen como entrada, terminen en alguna posición de salida (todavía se están moviendo, no perdieron impulso)

Ahora las leyes del movimiento son reversibles en el tiempo: según las leyes de Newton, una película del movimiento anterior que se reproduce al revés es perfectamente válida.
Esto significa que podríamos recuperar la salida y volver a obtener el estado de entrada. El cálculo es reversible, no se ha perdido información.
Además, no se ha consumido energía durante el cálculo, ya que los discos retienen todo su impulso.

Este es el santo grial de la computación si pudiéramos hacer algo así en computadoras prácticas.

La computación reversible es la computación de tal manera que, no solo puede obtener de la entrada a la salida, sino que también puede tomar la salida y conducir la computación hacia atrás para obtener la entrada.

Es de interés por un par de razones. Alex Niemeyer ya ha mencionado la termodinámica, por lo que no voy a entrar en eso. Sin embargo, hay una razón más importante. Si tiene un cálculo reversible y sale mal (como hacen esas cosas), puede revertirlo y descubrir por qué.

Tenga en cuenta que puede tener un cálculo reversible incluso si los elementos usan métodos irreversibles que desperdician el calor. Esto será matemáticamente reversible, incluso si el hardware no lo es. Todo lo que requiere es que la salida tenga la misma entropía que la entrada. Efectivamente, eso significa que habrá al menos tantos resultados como bits de entrada. Dentro del cálculo, no se destruyen bits.

Ya hay algunas técnicas reversibles familiares en informática. Considere la siguiente técnica para intercambiar dos variables:

a = a xor b
b = a xor b
a = a xor b

La operación xor preserva la entropía de la información en este caso. La no operación. Y o no, pero se pueden hacer para que lo hagan con salida adicional. Y o o se pueden combinar con otras operaciones como xor.

Hasta donde sé, significa que las operaciones básicas realizadas bajo cierto paradigma de cálculo tienen un inverso: dada su salida, puede conocer la entrada.

Nuestro modelo de cálculo clásico, por ejemplo, no es reversible. Tome una compuerta OR, con las entradas A y B y la salida C. Si C = 0, entonces A = B = 0. Pero si C = 1, ¿cuáles son los valores de A y B?

La computación reversible es el nombre general para el nuevo paradigma de computación que la física fundamental nos asegura que es la única ruta posible hacia la computación ultra eficiente en energía. En otras palabras, diseñar un sistema de computación que ya no sea disipativo (creando calor) debido a la energía utilizada para realizar cada función matemática mientras se computa.

Todas las puertas lógicas utilizadas deben ser biyectivas. Es decir, no puedes usar NAND. Sin embargo, puedes usar CCNOT.