Sono uno studente appena iniziato a leggere informazioni sull'informatica reversibile. So che, a causa del principio di Landauer, i calcoli irreversibili dissipano il calore (e quelli reversibili no). L'ho cresciuto con il mio professore, che non aveva mai sentito parlare del calcolo reversibile prima, e aveva difficoltà a capire perché la teoria del calcolo reversibile non fosse banale.
Il suo punto era solo che puoi sempre salvare l'input, cioè per qualsiasi funzione che desideri rendere reversibile, definisci una nuova funzione (o e hai appena inserito s per gli ultimi bit dell'ingresso) che restituisce l'output nei primi bit e l'input negli altri bit. Quindi per invertire devi semplicemente scartare l'output e restituire l'input che hai salvato.f r e v e r s i b l e : { 0 , 1 } n → { 0 , 1 } 2 n { 0 , 1 } 2 n → { 0 , 1 } 2 n 0 n n n f
La mia obiezione immediata è stata che questo richiede più memoria rispetto alla funzione originale, sebbene solo per un fattore costante. Limitare l'output a bit sembrerebbe tuttavia ripristinare l'interesse del problema. È questo che di solito si intende per elaborazione reversibile?
Un'altra obiezione sembrava essere che quando scartiamo l'output, stiamo facendo qualcosa di irreversibile che dissiperà il calore. Ma abbiamo recuperato correttamente lo stato iniziale, quindi come potrebbe essere irreversibile? Non conosco abbastanza fisica per capire se la cosa importante con il calore è solo per rendere reversibile l'intero calcolo, o se anche ogni passaggio deve essere reversibile, o se questa idea è solo sull'albero sbagliato .