Articulo de referencia

Clasificación X + Y

X + Y sorting algorithm faster than O(n^2 \\log n) ?"}},"i":1}}]}"> Problema sin resolver en informática ¿Hay un? incógnita + Y {\displaystyle X+Y} algoritmo de ordenación más r...

Este es un buen artículo. Haz clic aquí para obtener más información.

Problema sin resolver en informática
¿Hay un?incógnita+Y{\displaystyle X+Y}algoritmo de ordenación más rápido queO(norte2registronorte){\displaystyle O(n^{2}\log n)}¿
Visualización geométrica de laincógnita+Y{\displaystyle X+Y}Problema de ordenación. Los conjuntos de entradaincógnita{\displaystyle X}yY{\displaystyle Y}están representados por conjuntos de líneas negras verticales y horizontales (respectivamente), y el objetivo del problema es ordenar los puntos de intersección según las posiciones de las líneas diagonales rojas que pasan por ellos.

En informática , la ordenación X + Y consiste en ordenar pares de números según sus sumas. Entre las aplicaciones de este problema se incluyen la minimización de tarifas de transporte público , el diseño VLSI y la multiplicación de polinomios dispersos . Al igual que con la ordenación por comparación y la ordenación de enteros en general, los algoritmos para este problema pueden basarse únicamente en comparaciones de estas sumas o en otras operaciones que solo funcionan cuando las entradas son enteros pequeños.

Se desconoce si este problema tiene una solución basada en comparaciones cuyo tiempo de ejecución sea asintóticamente más rápido que ordenar una lista no estructurada con la misma cantidad de elementos. Por lo tanto, la investigación sobre el problema se ha centrado en dos enfoques para dilucidar si tal mejora es posible: el desarrollo de algoritmos que mejoran la ordenación no estructurada en cuanto al número de comparaciones, en lugar de en su tiempo de ejecución total, y los límites inferiores para el número de comparaciones basados ​​en el conteo de celdas en subdivisiones de espacios de alta dimensión. Ambos enfoques están históricamente relacionados, ya que los primeros algoritmos que utilizaban pocas comparaciones se basaban en la debilidad de los límites inferiores del conteo de celdas.

Planteamiento del problema e historia

La entrada a laincógnita+Y{\displaystyle X+Y}El problema de ordenación consiste en dos colecciones finitas de números.incógnita{\displaystyle X}yY{\displaystyle Y}, de la misma longitud. La salida del problema es la colección de todos los pares de un número deincógnita{\displaystyle X}y un número deY{\displaystyle Y}, ordenados según la suma de cada par. [ 1 ] Como pequeño ejemplo, para las entradasincógnita={1,2,9}{\displaystyle X=\{1,2,9\}}yY={0,4,9}{\displaystyle Y=\{0,4,9\}}, la salida debe ser la lista de pares(1,0),(2,0),(1,4),(2,4),(9,0),(1,9),(2,9),(9,4),(9,9){\displaystyle (1,0),\,(2,0),\,(1,4),\,(2,4),\,(9,0),\,(1,9),\,(2,9),\,(9,4),\,(9,9)}de un elemento deincógnita{\displaystyle X}y un elemento deY{\displaystyle Y}, ordenados según la suma de sus pares1,2,5,6,9,10,11,13,18.{\displaystyle 1,2,5,6,9,10,11,13,18.}Una forma de resolver el problema sería construir los pares a ordenar (el producto cartesiano de las dos colecciones) y usar estos pares como entrada para un algoritmo de ordenación por comparación estándar como merge sort o heapsort . Cuando las entradas tienen longitudnorte{\displaystyle n}ellos formannorte2{\displaystyle n^{2}}pares, y el tiempo para ordenar los pares de esta manera esO(norte2registronorte){\displaystyle O(n^{2}\log n)}En términos de su notación O grande , este método es el algoritmo más rápido conocido paraincógnita+Y{\displaystyle X+Y}ordenación. Si existe un algoritmo más rápido es un problema abierto , [ 1 ] [ 2 ] planteado por Elwyn Berlekamp antes de 1975. [ 1 ] [ 3 ]

Una variante del problema ordena el conjunto suma , el conjunto de sumas de pares, con las sumas duplicadas condensadas en un solo valor. Para esta variante, el tamaño del conjunto suma puede ser significativamente menor quenorte2{\displaystyle n^{2}}y se han investigado algoritmos sensibles a la salida para su construcción. [ 4 ]

Aplicaciones

Steven Skiena relata una aplicación práctica en la minimización de tarifas de transporte , un ejemplo del problema del camino más corto : encontrar el billete de avión de dos saltos más barato entre dos ciudades dadas, a partir de una entrada que describe tanto el coste de cada salto como qué pares de saltos se pueden combinar en un solo billete. La solución de Skiena consiste en ordenar pares de saltos por su coste total como un ejemplo del problema del camino más corto.incógnita+Y{\displaystyle X+Y}problema de ordenación, y luego probar los pares resultantes en este orden ordenado hasta encontrar uno que esté permitido. Para generar los pares ordenados en este orden, Skiena utiliza una cola de prioridad de pares, que inicialmente contiene solo un par, el que consta de los dos saltos más baratos. Luego, cuando un par(incógnita,y){\displaystyle (x,y)}se elimina de la cola y se determina que no está permitido, se agregan dos pares más, y uno de estos dos pares se combinaincógnita{\displaystyle x}con el siguiente salto despuésy{\displaystyle y}en una lista ordenada de los saltos hasta el destino, y el otro par combinandoy{\displaystyle y}con el siguiente salto despuésincógnita{\displaystyle x}en una lista ordenada de saltos desde el inicio. De esta manera, cada par sucesivo se puede encontrar en tiempo logarítmico, y solo es necesario ordenar los pares hasta el primero permitido. [ 2 ]

incógnita+Y{\displaystyle X+Y}La ordenación es la subrutina más costosa en un algoritmo para un problema en el diseño VLSI , en el que se deben colocar dos subunidades de un circuito VLSI una al lado de la otra a lo largo de un canal de comunicaciones para minimizar el ancho del canal necesario para enrutar pares de cables de una subunidad a la otra. A medida que una subunidad se desplaza continuamente con respecto a la otra, el ancho del canal solo cambia en posiciones discretas donde los extremos de dos cables se alinean entre sí, y encontrar el orden ordenado de estas posiciones para calcular la secuencia de cambios en el ancho se puede realizar medianteincógnita+Y{\displaystyle X+Y}ordenación. Si se pudiera acelerar este problema de ordenación, también se aceleraría esta tarea de diseño VLSI. [ 5 ]

Otra aplicación implica la multiplicación de polinomios para polinomios de una sola variable que pueden tener muchos menos términos que sus grados . El producto de dos polinomios se puede expresar como una suma de productos de pares de términos, uno de cada polinomio, y colocar estos productos término por término en orden de grado equivale a ordenarlos por la suma de los grados. Por ejemplo, el caso deincógnita+Y{\displaystyle X+Y}clasificar connorte=3{\displaystyle n=3}El ejemplo anterior corresponde a la multiplicación de dos polinomios de tres términos para producir un polinomio de nueve términos: (incógnita+incógnita2+incógnita9)(1+incógnita4+incógnita9)=incógnita+incógnita2+incógnita5+incógnita6+incógnita9+incógnita10+incógnita11+incógnita13+incógnita18.{\displaystyle {\begin{aligned}(&x+x^{2}+x^{9})(1+x^{4}+x^{9})\\&=x+x^{2}+x^{5}+x^{6}+x^{9}+x^{10}+x^{11}+x^{13}+x^{18}.\\\end{aligned}}} Los grados son siempre enteros, por lo que los algoritmos basados ​​en enteros paraincógnita+Y{\displaystyle X+Y}Se puede aplicar la ordenación. [ 6 ] Sin embargo, para polinomios cuyo número de términos es comparable a su grado, los algoritmos de multiplicación de polinomios basados ​​en FFT pueden ser significativamente más eficientes que la multiplicación término por término. [ 7 ]

Número de pedidos

Un límite inferior bien conocido para la ordenación no estructurada, en el modelo de árbol de decisión , se basa en el número factorial de órdenes ordenados que puede tener una lista no estructurada. Debido a que cada comparación puede, en el mejor de los casos, reducir el número de posibles ordenaciones en un factor de dos, la ordenación requiere un número de comparaciones al menos igual al logaritmo binario del factorial, que esnorteregistro2norteO(norte){\displaystyle n\log _{2}nO(n)}. [ 8 ] Primeros trabajos sobreincógnita+Y{\displaystyle X+Y}La clasificación siguió un enfoque similar preguntando cuántos ordenamientos diferentes son posibles para este problema y demostrando que este número es como máximoO(norte8norte){\displaystyle O(n^{8n})}Sin embargo, debido a que su logaritmo binario es como máximo8norteregistro2norte+O(1){\displaystyle 8n\log _{2}n+O(1)}, mucho más pequeño que los límites de tiempo conocidos paraincógnita+Y{\displaystyle X+Y}ordenación, este método solo puede conducir a límites inferiores débiles en el número de comparaciones. [ 3 ] [ 9 ]

La prueba de este límite se relacionaincógnita+Y{\displaystyle X+Y}ordenación según la complejidad de una disposición de hiperplanos en geometría de alta dimensión. Las dos colecciones de entrada para laincógnita+Y{\displaystyle X+Y}el problema de clasificación comprende2norte{\displaystyle 2n}números, que alternativamente pueden interpretarse como las coordenadas cartesianas de un punto en el2norte{\displaystyle 2n}espacio dimensionalR2norte{\displaystyle \mathbb {R} ^{2n}}Este espacio se puede subdividir en celdas, de modo que dentro de una sola celda todos los puntos corresponden a entradas que producen el mismo orden ordenado. Para esta subdivisión, cada límite entre dos celdas se encuentra dentro de un hiperplano definido por una igualdad de pares.incógnitai+yj=incógnitak+y{\displaystyle x_{i}+y_{j}=x_{k}+y_{\ell }}, dónde(incógnitai,yj){\displaystyle (x_{i},y_{j})}y(incógnitak,y){\displaystyle (x_{k},y_{\ell })}son dos pares cuyo orden cambia de una celda adyacente a la otra. Estos hiperplanos son generados por dos pares disjuntos o tienen las formas simplificadas.incógnitai=incógnitak{\displaystyle x_{i}=x_{k}}oyj=y{\displaystyle y_{j}=y_{\ell }}, por lo que el número de hiperplanos distintos que se pueden determinar de esta manera es k=2(norte2)2+2(norte2).{\displaystyle k=2{\binom {n}{2}}^{2}+2{\binom {n}{2}}.} El número de celdas que este número de hiperplanos puede dividir un espacio de dimensión2norte{\displaystyle 2n}en es (k2norte)+(k2norte1)++(k0)=O(norte8norte).{\displaystyle {\binom {k}{2n}}+{\binom {k}{2n-1}}+\cdots +{\binom {k}{0}}=O(n^{8n}).}Por lo tanto, el conjuntoincógnita+Y{\displaystyle X+Y}tieneO(norte8norte){\displaystyle O(n^{8n})}diferentes posibles ordenamientos ordenados. [ 3 ] [ 9 ] [ 10 ]

Un estilo de análisis similar ha tenido más éxito al descartar soluciones rápidas a ciertas generalizaciones deincógnita+Y{\displaystyle X+Y}clasificación, al demostrar que tienen demasiados ordenamientos para clasificar rápidamente. En particular, Harper et al. (1975) sugieren clasificar por separadoincógnita{\displaystyle X}yY{\displaystyle Y}y luego construir una matriz bidimensional de los valores deincógnita+Y{\displaystyle X+Y}que se ordena tanto por filas como por columnas antes de usar estos datos parcialmente ordenados para completar la ordenación.incógnita+Y{\displaystyle X+Y}[ 3 ] Esta idea de utilizar una matriz ordenada por filas y columnas constituye la base del método utilizado por Skiena en la aplicación de transporte, [ 2 ] y puede reducir el número de comparaciones en un factor constante en relación con la ordenación por comparación ingenua. Sin embargo, para matrices cuyas filas y columnas están ordenadas de esta manera, el número de posibles ordenaciones de toda la matriz es mucho mayor queO(norte8norte){\displaystyle O(n^{8n})}, tan grande que cualquier algoritmo de ordenación por comparación que pueda funcionar para arbitrariamentenorte×norte{\displaystyle n\times n}Las matrices que están ordenadas por filas y columnas aún requierenΩ(norte2registronorte){\displaystyle \Omega (n^{2}\log n)}comparaciones. Por lo tanto, si elincógnita+Y{\displaystyle X+Y}El problema de ordenación debe resolverse rápidamente; la solución debe utilizar información adicional sobre el conjunto.incógnita+Y{\displaystyle X+Y}más allá de este ordenamiento matricial. [ 3 ]

Número de comparaciones

Para el problema clásico de ordenación por comparación, el tiempo para ordenar y el número de comparaciones necesarias para ordenar están dentro de factores constantes entre sí. Pero paraincógnita+Y{\displaystyle X+Y}ordenando, el número de comparaciones es menor que el mejor límite de tiempo conocido: Michael Fredman demostró en 1976 queincógnita+Y{\displaystyle X+Y}La clasificación se puede realizar utilizando únicamenteO(norte2){\displaystyle O(n^{2})}comparaciones. De manera más general, demostró que cualquier conjunto denorte{\displaystyle N}elementos, cuyo ordenamiento ordenado ya ha sido restringido a una familiaΓ{\displaystyle \Gamma }de pedidos, se pueden ordenar usandoregistro2|Γ|+O(norte){\displaystyle \log _{2}|\Gamma |+O(N)}comparaciones, mediante una forma de ordenación por inserción binaria . Para elincógnita+Y{\displaystyle X+Y}problema de ordenación,norte=norte2{\displaystyle N=n^{2}}, y|Γ|=O(norte8norte){\displaystyle |\Gamma |=O(n^{8n})}, entoncesregistro2|Γ|=O(norteregistronorte){\displaystyle \log _{2}|\Gamma |=O(n\log n)}y el límite de Fredman implica que soloO(norte2){\displaystyle O(n^{2})}Se necesitan comparaciones. Sin embargo, en el método de Fredman, el tiempo necesario para decidir qué comparaciones realizar puede ser significativamente mayor que el límite del número de comparaciones. [ 9 ]

El primer algoritmo explícito que logra ambosO(norte2){\displaystyle O(n^{2})}comparaciones yO(norte2registronorte){\displaystyle O(n^{2}\log n)}La complejidad total fue publicada dieciséis años después de Fredman por Lambert (1992) . El algoritmo realiza los siguientes pasos:

  1. Ordena recursivamente los dos conjuntos.incógnita+incógnita{\displaystyle X+X}yY+Y{\displaystyle Y+Y}.
  2. Utilice la equivalenciaincógnitaiincógnitajincógnitakincógnitaincógnitai+incógnitaincógnitaj+incógnitak{\displaystyle x_{i}-x_{j}\leq x_{k}-x_{\ell }\Leftrightarrow x_{i}+x_{\ell }\leq x_{j}+x_{k}}para inferir los ordenamientos ordenados deincógnitaincógnita{\displaystyle XX}yYY{\displaystyle YY}sin comparaciones adicionales.
  3. Fusiona los dos conjuntosincógnitaincógnita{\displaystyle XX}yYY{\displaystyle YY}en un único orden ordenado, utilizando una serie de comparaciones lineales en su tamaño total.
  4. Utilice el orden combinado y la equivalenciaincógnitai+yjincógnitak+yincógnitaiincógnitakyyj{\displaystyle x_{i}+y_{j}\leq x_{k}+y_{\ell }\Leftrightarrow x_{i}-x_{k}\leq y_{\ell }-y_{j}}para inferir el orden ordenado deincógnita+Y{\displaystyle X+Y}sin comparaciones adicionales.

La parte del algoritmo que ordena recursivamenteincógnita+incógnita{\displaystyle X+X}(o equivalentementeY+Y{\displaystyle Y+Y}) lo hace siguiendo los siguientes pasos:

  1. Dividirincógnita{\displaystyle X}en dos sublistas igualesA{\displaystyle A}yB{\displaystyle B}.
  2. Ordenar recursivamenteA+A{\displaystyle A+A}yB+B{\displaystyle B+B}
  3. Inferir el orden enA+B{\displaystyle A+B}utilizando únicamente las comparaciones de un único paso de fusión como se indicó anteriormente.
  4. Combinar los resultados ordenadosA+A{\displaystyle A+A},B+B{\displaystyle B+B}, yA+B{\displaystyle A+B}juntos.

El número de comparacionesdo(norte){\displaystyle C(n)}necesario para realizar este algoritmo recursivo en una entrada denorte{\displaystyle n}Los elementos pueden analizarse utilizando la relación de recurrencia.do(norte)2do(norte/2)+O(norte2),{\displaystyle C(n)\leq 2C(n/2)+O(n^{2}),} donde el2do(norte/2){\displaystyle 2C(n/2)}El término de la recurrencia cuenta el número de comparaciones en las llamadas recursivas al algoritmo para ordenar.A+A{\displaystyle A+A}yB+B{\displaystyle B+B}y elO(norte2){\displaystyle O(n^{2})}El término cuenta el número de comparaciones utilizadas para fusionar los resultados. El teorema maestro para relaciones de recurrencia de esta forma muestra quedo(norte)=O(norte2).{\displaystyle C(n)=O(n^{2}).}La complejidad temporal total es más lenta,O(norte2registronorte){\displaystyle O(n^{2}\log n)}, debido a los pasos del algoritmo que utilizan comparaciones ya realizadas para inferir ordenaciones de otros conjuntos. Estos pasos se pueden realizar en tiempoO(norte2registronorte){\displaystyle O(n^{2}\log n)}mediante el uso de un algoritmo estándar de ordenación por comparación con sus pasos de comparación reemplazados por las inferencias indicadas. [ 11 ]

Si tan solo las comparaciones entre elementos deincógnita+Y{\displaystyle X+Y}Si se permiten, entonces también existe un límite inferior correspondiente.Ω(norte2){\displaystyle \Omega (n^{2})}en el número de comparaciones, [ 9 ] [ 12 ] pero con comparaciones más generales que involucran combinaciones lineales de números constantes de elementos, soloO(norteregistro2norte){\displaystyle O(n\log ^{2}n)}Se necesitan comparaciones. [ 13 ]

Algoritmos no basados ​​en comparaciones

Así como la ordenación de enteros puede ser más rápida que la ordenación por comparación para enteros suficientemente pequeños, lo mismo ocurre conincógnita+Y{\displaystyle X+Y}ordenación. En particular, con entradas enteras en el rango de0{\displaystyle 0}hasta cierto límite superiorMETRO{\displaystyle M}, el problema se puede resolver enO(norte+METROregistroMETRO){\displaystyle O(n+M\log M)}operaciones mediante la transformada rápida de Fourier . [ 1 ] [ 3 ]

Otros problemas en geometría computacional tienen una complejidad equivalente o más difícil.incógnita+Y{\displaystyle X+Y}clasificación, incluyendo la construcción de sumas de Minkowski de polígonos escalonados, encontrar los puntos de cruce de una disposición de líneas en orden ordenado por suincógnita{\displaystyle x}-coordenadas, listando pares de puntos ordenados según sus distancias, y probando si un polígono rectilíneo puede trasladarse para encajar dentro de otro. [ 14 ]

El problema de probar si dos de los pares en elincógnita+Y{\displaystyle X+Y}El problema de ordenación de sumas iguales se puede resolver ordenando los pares y luego comprobando la igualdad de pares consecutivos. A su vez, podría utilizarse para resolver el problema de 3SUM , lo que implica que es improbable que exista un algoritmo fuertemente subcuadrático. [ 1 ]

Referencias

  1. 1 2 3 4 5 Demaine, Erik ; Erickson, Jeff; O'Rourke, Joseph (20 de agosto de 2006). "Problema 41: Ordenar X + Y (Sumas por pares)" . The Open Problems Project . Recuperado el 23 de septiembre de 2014 .
  2. 1 2 3 Skiena, Steven (2008). "4.4 Historia de guerra: Dame un billete para un avión". El manual de diseño de algoritmos (2.ª ed.). Springer. págs. 118–120 . doi : 10.1007/978-1-84800-070-4_4 .  
  3. 1 2 3 4 5 6 Harper, LH; Payne, TH; Savage, JE ; Straus, E. (1975). "Sorting X + Y " . Communications of the ACM . 18 (6): 347– 349. doi : 10.1145/360825.360869 . MR 0378473 . S2CID 26360885 .  
  4. Arnold, Andrew; Roche, Daniel S. (2015). «Algoritmos sensibles a la salida para la multiplicación de polinomios dispersos y sumas». Actas del Simposio Internacional ACM de Computación Simbólica y Algebraica de 2015 (ISSAC'15) . Nueva York: ACM. págs. 29–36 . arXiv : 1501.05296 . doi : 10.1145/2755996.2756653 . ISBN  978-1-4503-3435-8MR 3388279 . 
  5. LaPaugh, Andrea S. ; Pinter, Ron Y. (1983). "Sobre la minimización de la densidad de canales mediante desplazamiento lateral". Conferencia Internacional IEEE sobre Diseño Asistido por Computadora . págs. 123–124 . Citado por Johnson, David S.; LaPaugh, Andrea S.; Pinter, Ron Y. (1994). "Minimizing channel density by lateral shifting of components" . En Sleator, Daniel Dominic (ed.). Proceedings of the Fifth Annual ACM-SIAM Symposium on Discrete Algorithms. 23-25 ​​January 1994, Arlington, Virginia, USA . pp. 122–131 . 
  6. Klip, Dorothea A. (1979). "Nuevos algoritmos para la multiplicación de polinomios". SIAM Journal on Computing . 8 (3): 326– 343. doi : 10.1137/0208025 . MR 0539251 . 
  7. Klarreich, Erica (diciembre de 2019). "La multiplicación alcanza el límite de velocidad". Communications of the ACM . 63 (1): 11– 13. doi : 10.1145/3371387 . S2CID 209450552 . 
  8. Cormen, Thomas H. ; Leiserson, Charles E. ; Rivest, Ronald L. ; Stein, Clifford (2009) [1990]. "8.1 Límites inferiores para la ordenación". Introducción a los algoritmos (3.ª ed.). MIT Press y McGraw-Hill. págs. 191–193 . ISBN   0-262-03384-4.
  9. 1 2 3 4 Fredman, Michael L. (1976). "¿Qué tan buena es la cota de la teoría de la información en la ordenación?". Theoretical Computer Science . 1 (4): 355– 361. doi : 10.1016/0304-3975(76)90078-5 . MR 0416100 . 
  10. Sloane, N. J. A. (ed.). "Secuencia A343245" . La enciclopedia en línea de secuencias de enteros . Fundación OEIS.  
  11. Lambert, Jean-Luc (1992). "Ordenando las sumas ( x i + y j ) en O ( n 2 ) comparaciones". Theoretical Computer Science . 103 (1): 137– 141. doi : 10.1016/0304-3975(92)90089-X . MR 1181041 . 
  12. Dietzfelbinger, Martin (1989). "Límites inferiores para la ordenación de sumas". Theoretical Computer Science . 66 (2): 137– 155. doi : 10.1016/0304-3975(89)90132-1 . MR 1019082 . 
  13. Kane, Daniel M. ; Lovett, Shachar; Moran, Shay (2019). "Árboles de decisión lineales casi óptimos para k- suma y problemas relacionados". Journal of the ACM . 66 (3): A16:1–A16:18. arXiv : 1705.01720 . doi : 10.1145/3285953 . MR 3941341 . S2CID 145914158 .  
  14. Hernández Barrera, Antonio (1996). "Encontrar un algoritmo o ( n 2 log n ) a veces es difícil" (PDF) . Actas de la 8.ª Conferencia Canadiense sobre Geometría Computacional (CCCG'96) . págs. 289–294 .