Was ist schwieriger: Ein sortiertes Deck mischen oder ein gemischtes Deck sortieren?


18

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 < bnaba<b

  1. Das Array ist derzeit sortiert. Erzeugen Sie eine gleichmäßig (oder annähernd gleichmäßig) zufällig ausgewählte Permutation.
  2. 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.logn!nlognLogn!logn!nlognn

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"!nlogn

(Die Frage wurde auf math.se nicht beantwortet , daher reposte ich sie hier. Hoffe, dass das in Ordnung ist.)


Ich habe das überhaupt nicht durchdacht, also Vorbehalt Lector. Wenn wir mit einem sortierten Array beginnen, verwenden Sie die Sortierung Zusammenführen, aber statt zu vergleichen, verwenden wir die Zufallsbits, um die Zusammenführung durchzuführen (statt true iff wir true zurück, wenn das Zufallsbit ). Der Basisfall, in dem wir zwei Arrays der Größe eins haben, erzeugt die zwei möglichen Arrays der Größe zwei mit einer einheitlichen Wahrscheinlichkeit. Ich bin nicht weiter gekommen. 1a<b1
Luke Mathieson

2
Ich denke, um diese Frage zu beantworten, müssen Sie zunächst die relativen Betriebskosten definieren. Wie viel kostet es, Daten zu lesen, Daten zu schreiben und eine Zufallszahl zu generieren / zu erhalten?
Mitchus

@mitchus: Ich bin vor allem gespannt auf die physikalischen Grenzen, wenn wir von "optimal leistungsfähigen" Computern ausgehen. Mein grobes Verständnis ist, dass es eine physikalische Untergrenze für die Energiemenge gibt, die erforderlich ist, um ein bisschen Information zu "löschen", während andere Operationen viel weniger Energie erfordern. Ich frage mich also, ob diese Intuition korrekt und formalisierbar genug ist, um eine Antwort zu liefern.
Usul

Was meinst du mit ein bisschen löschen? Überschreiben Sie es? Soweit ich weiß, löschen Computer normalerweise nichts (außer aus Datenschutzgründen), sondern "vergessen" es lediglich, indem sie die Zuordnung des zugeordneten Speicherbereichs aufheben. Aber vielleicht
verstehe

2
@ Patrick87 Leider ist ein einheitliches Energiemodell zu weit von der Wahrheit entfernt, um es zu verwenden; siehe Bewertung von Algorithmen nach ihrem Energieverbrauch von Fudeus, geb. Bayer und Nebel (2009).
Raphael

Antworten:


6

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 nnlogn!nlog2n(nlnn)kTnlog2n

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.


Vielen Dank! Kann ich ein möglicherweise naives Follow-up anfordern? Angenommen, ich ändere den Wortlaut der Frage so, dass der Sortieralgorithmus eine feste Permutation der Elemente erhält und sie sortieren muss. Wenn Sie sich nun einer Bayes'schen Philosophie anschließen und eine einheitliche Meinung zu diesem Input haben, sollte die Antwort dieselbe sein. Unter der Philosophie, dass die Eingabe keine Zufälligkeit enthält (obwohl ich nicht weiß, was es ist), scheint das Argument jedoch zu scheitern. Wie löse ich das Paradoxon? Danke noch einmal!!
USUL

(nlnn)kT

3

Weder. Jede Schaltung kann reversibel gemacht werden, indem die Eingabe verfolgt wird, und die Energieabgabe der reversiblen Berechnung kann beliebig klein gemacht werden .


Aber wenn man es reversibel macht, ist es möglicherweise nicht effizient. Welche Beziehung besteht zwischen den optimalen Algorithmen ? BTW, ich glaube nicht, dass sie vergleichen. Das Mischen erfordert von Natur aus Zufälligkeit (und jede andere Zufälligkeit führt zu einer anderen Ausgabe). Die Sortierung kann deterministisch sein. Die Sortierung "Umkehren" wird deterministisch gemischt.
Ran G.

1
Mit "effizient" meinen Sie Zeit, Raum oder eine Kombination aus beiden? Das Umkehren einer Berechnung fügt nicht notwendigerweise eine asymptotische Zeitkomplexität hinzu, und es gibt umkehrbare Versionen jeder Berechnung, die nicht mehr Platz beanspruchen als das Original [Vitányi05] .
rphv

1
Solange Sie den Eingang beibehalten, kann jede Schaltung umkehrbar gemacht werden. Wenn Sie keine Informationen behalten möchten, mit denen die ursprüngliche Permutation wiederhergestellt werden kann, kann die Sortierschaltung nicht umkehrbar gemacht werden.
Peter Shor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.