¿Qué es más difícil: barajar un mazo ordenado o ordenar uno barajado?

18

Tiene una matriz de elementos distintos. Tiene acceso a un comparador (una función de la caja negro teniendo dos elementos un y b y devolver verdadero si y sólo si un < b ) y una fuente verdaderamente aleatoria de bits (una función de la caja negro sin argumentos y devolver un poco independientemente uniformemente aleatorio). Considere las siguientes dos tareas:naba<b

  1. La matriz está actualmente ordenada. Produzca una permutación seleccionada al azar de manera uniforme (o aproximadamente uniforme).
  2. La matriz consiste en alguna permutación seleccionada uniformemente al azar por naturaleza. Produce una matriz ordenada.

Mi pregunta es

¿Qué tarea requiere más energía asintóticamente?

No puedo definir la pregunta con mayor precisión porque no sé lo suficiente sobre la conexión entre la teoría de la información, la termodinámica o cualquier otra cosa necesaria para responder a esta pregunta. Sin embargo, creo que la pregunta se puede definir bien (¡y espero que alguien me ayude con esto en una respuesta!).

Ahora, algorítmicamente, mi intuición es que son iguales. Tenga en cuenta que cada tipo es una mezcla aleatoria a la inversa, y viceversa. La clasificación requiere comparaciones, mientras baraja, ya que selecciona una permutación aleatoria de n ! opciones, requiere log n ! n log n bits aleatorios. Tanto la mezcla como la clasificación requieren aproximadamente n intercambios.logn!nlognn!logn!nlognn

Sin embargo, siento que debería haber una respuesta aplicando el principio de Landauer , que dice que requiere energía para "borrar" un poco. Intuitivamente, creo que esto significa que la clasificación de la matriz es más difícil, ya que requiere "borrar" bits de información, al pasar de un bajo consumo de energía, el estado de alta entropía suelo del trastorno a un altamente ordenada uno. Pero, por otro lado, para cualquier cálculo dado, la clasificación simplemente transforma una permutación en otra. Como soy un completo no experto aquí, ¡esperaba que alguien con conocimiento de la conexión con la física pudiera ayudar a "resolver" esto!nlogn

(La pregunta no obtuvo ninguna respuesta en math.se , así que la vuelvo a publicar aquí. Espero que esté bien).

usul
fuente
No he pensado en esto en absoluto, así que advierte lector. Si comenzamos con una matriz ordenada, luego usamos la combinación de clasificación, pero en lugar de comparar, usamos los bits aleatorios para hacer la fusión (por lo tanto, en lugar de devolver verdadero sif , devolvemos verdadero si el bit aleatorio es 1 ). El caso base donde tenemos dos matrices de tamaño uno produce las dos posibles matrices de tamaño dos con una probabilidad uniforme. No he llegado más lejos que eso. a<b1
Luke Mathieson el
2
Creo que para responder a esta pregunta, primero debe definir los costos relativos de operación; ¿Cuánto cuesta leer datos, escribir datos y generar / obtener un número aleatorio?
mitchus
@mitchus: Tengo curiosidad sobre los límites físicos si asumimos computadoras "óptimamente eficientes". Mi comprensión aproximada es que hay un límite inferior físico en la cantidad de energía requerida para "borrar" un poco de información, mientras que otras operaciones requieren mucha menos energía. Así que me pregunto si esta intuición es correcta y formalizable como para dar una respuesta.
usul
¿Qué quieres decir con borrar un poco? ¿Sobrescribirlo? Hasta donde yo sé, las computadoras no suelen borrar nada (excepto por razones de privacidad), sino que simplemente se "olvidan" al desasignar la región de memoria asociada. Pero tal vez no estoy entendiendo el nivel de abstracción correctamente aquí :)
mitchus
2
@ Patrick87 Desafortunadamente, un modelo de energía uniforme está demasiado lejos de la verdad para usarlo; ver Evaluación de algoritmos según su consumo de energía por Fudeus née Bayer y Nebel (2009).
Raphael

Respuestas:

6

nlogn!nlog2n(nlnn)kTnlog2n

Tenga en cuenta que estos son solo límites inferiores teóricos. La energía actualmente consumida por estos procesos en una computadora digital real no guarda relación con el análisis anterior.

Peter Shor
fuente
¡Muchas gracias! ¿Puedo pedir un seguimiento posiblemente ingenuo? Supongamos que cambio la redacción de la pregunta para que el algoritmo de clasificación tenga una permutación fija de los elementos y deba ordenarlos. Ahora, si se suscribe a una filosofía bayesiana y tiene una creencia uniforme en esta entrada, parece que la respuesta debería ser la misma. Pero bajo una filosofía de que no hay aleatoriedad en la entrada (aunque no sé qué es), el argumento parece fallar. ¿Cómo resuelvo la paradoja? ¡¡Gracias de nuevo!!
usul
(nlnn)kT
3

Ninguno. Cualquier circuito puede hacerse reversible manteniendo un registro de la entrada, y la disipación de energía del cálculo reversible puede hacerse arbitrariamente pequeña .

rphv
fuente
pero hacerlo reversible podría hacerlo no eficiente. ¿Cuál es la relación entre los algoritmos óptimos ? Por cierto, no creo que se comparen. Mezclar inherentemente requiere aleatoriedad (y cualquier aleatoriedad diferente producirá una salida diferente). La clasificación puede ser determinista. La clasificación de "inversión" se barajará de manera determinista.
Ran G.
1
Por "eficiente", ¿te refieres a tiempo, espacio o alguna combinación de ambos? Hacer que un cálculo sea reversible no necesariamente agrega complejidad de tiempo asintótica, y existen versiones reversibles de cada cálculo que no usan más espacio que el original [Vitányi05] .
rphv
1
Mientras mantenga la entrada, cualquier circuito puede hacerse reversible. Si no desea conservar información que pueda reconstruir la permutación original, el circuito de clasificación no puede hacerse reversible.
Peter Shor