Sie haben ein Array von verschiedenen Elementen. Sie haben Zugriff auf einen Komparator (eine Black-Box-Funktion, die zwei Elemente und und true zurückgibt, falls ) und eine wirklich zufällige Quelle von Bits (eine Black-Box-Funktion, die keine Argumente verwendet und ein unabhängig einheitlich zufälliges Bit zurückgibt). Betrachten Sie die folgenden zwei Aufgaben:a b a < b
- Das Array ist derzeit sortiert. Erzeugen Sie eine gleichmäßig (oder annähernd gleichmäßig) zufällig ausgewählte Permutation.
- Das Array besteht aus einer von Natur aus gleichmäßig zufällig ausgewählten Permutation. Produziere ein sortiertes Array.
Meine Frage ist
Welche Aufgabe erfordert asymptotisch mehr Energie?
Ich kann die Frage nicht genauer definieren, weil ich nicht genug über den Zusammenhang zwischen Informationstheorie, Thermodynamik oder was auch immer zur Beantwortung dieser Frage benötigt wird, weiß. Ich denke jedoch, dass die Frage klar definiert werden kann (und hoffe, dass mir jemand bei der Beantwortung hilft!).
Algorithmisch ist meine Intuition, dass sie gleich sind. Beachten Sie, dass jede Sortierung eine umgekehrte Sortierung ist und umgekehrt. Sortieren erfordert Vergleiche während des Mischens, da es eine zufällige Permutation vonAuswahl, erfordert zufällige Bits. Sowohl das Mischen als auch das Sortieren erfordern ungefähr Tauschvorgänge.Log
Ich bin jedoch der Meinung , dass es eine Antwort geben sollte, die das Landauer-Prinzip anwendet und besagt, dass es Energie erfordert, um ein wenig zu "löschen". Ich denke, dies bedeutet intuitiv, dass das Sortieren des Arrays schwieriger ist, da es das "Löschen" von Informationsbits erfordert , die von einem Grundzustand mit niedriger Energie und hoher Entropie in einen Zustand mit hoher Ordnung übergehen. Andererseits transformiert das Sortieren für jede gegebene Berechnung nur eine Permutation in eine andere. Da ich hier kein Experte bin, hoffte ich, dass jemand mit Kenntnissen über den Zusammenhang mit der Physik helfen könnte, dies zu "regeln"!
(Die Frage wurde auf math.se nicht beantwortet , daher reposte ich sie hier. Hoffe, dass das in Ordnung ist.)
Antworten:
Nach Landauers Prinzip müssen Sie löschen , wenn Sie eine einheitliche zufällige Permutation von Schlüsseln in eine sortierte Permutation umwandeln möchten und keine Bits im Computer behalten möchten, die die einheitliche zufällige Permutation offenbaren. Bits. Dies nimmt Energie auf. Andererseits ist die Berechnung, die das sortierte Array und Zufallsbits zum Zufallsarray nimmt, umkehrbar, und somit kann die aufgewendete Energie beliebig klein gemacht werden.l o g n ! ≈ n log 2 n ( n ln n ) k T n log 2 nn l o gn ! ≈ n log2n ( n lnn ) k T n log2n
Beachten Sie, dass dies nur theoretische Untergrenzen sind. Die Energie, die gegenwärtig von diesen Prozessen auf einem tatsächlichen Digitalcomputer verbraucht wird, steht in keinem Zusammenhang mit der obigen Analyse.
quelle
Weder. Jede Schaltung kann reversibel gemacht werden, indem die Eingabe verfolgt wird, und die Energieabgabe der reversiblen Berechnung kann beliebig klein gemacht werden .
quelle