
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 laEl problema de ordenación consiste en dos colecciones finitas de números.y, de la misma longitud. La salida del problema es la colección de todos los pares de un número dey un número de, ordenados según la suma de cada par. [ 1 ] Como pequeño ejemplo, para las entradasy, la salida debe ser la lista de paresde un elemento dey un elemento de, ordenados según la suma de sus paresUna 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 longitudellos formanpares, y el tiempo para ordenar los pares de esta manera esEn términos de su notación O grande , este método es el algoritmo más rápido conocido paraordenació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 quey 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.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 parse elimina de la cola y se determina que no está permitido, se agregan dos pares más, y uno de estos dos pares se combinacon el siguiente salto despuésen una lista ordenada de los saltos hasta el destino, y el otro par combinandocon el siguiente salto despuésen 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 ]
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 medianteordenació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 declasificar conEl ejemplo anterior corresponde a la multiplicación de dos polinomios de tres términos para producir un polinomio de nueve términos: Los grados son siempre enteros, por lo que los algoritmos basados en enteros paraSe 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 es. [ 8 ] Primeros trabajos sobreLa 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áximoSin embargo, debido a que su logaritmo binario es como máximo, mucho más pequeño que los límites de tiempo conocidos paraordenació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 relacionaordenación según la complejidad de una disposición de hiperplanos en geometría de alta dimensión. Las dos colecciones de entrada para lael problema de clasificación comprendenúmeros, que alternativamente pueden interpretarse como las coordenadas cartesianas de un punto en elespacio dimensionalEste 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., dóndeyson 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.o, por lo que el número de hiperplanos distintos que se pueden determinar de esta manera es El número de celdas que este número de hiperplanos puede dividir un espacio de dimensiónen es Por lo tanto, el conjuntotienediferentes 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 declasificación, al demostrar que tienen demasiados ordenamientos para clasificar rápidamente. En particular, Harper et al. (1975) sugieren clasificar por separadoyy luego construir una matriz bidimensional de los valores deque se ordena tanto por filas como por columnas antes de usar estos datos parcialmente ordenados para completar la ordenación.[ 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 que, tan grande que cualquier algoritmo de ordenación por comparación que pueda funcionar para arbitrariamenteLas matrices que están ordenadas por filas y columnas aún requierencomparaciones. Por lo tanto, si elEl problema de ordenación debe resolverse rápidamente; la solución debe utilizar información adicional sobre el conjunto.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 paraordenando, el número de comparaciones es menor que el mejor límite de tiempo conocido: Michael Fredman demostró en 1976 queLa clasificación se puede realizar utilizando únicamentecomparaciones. De manera más general, demostró que cualquier conjunto deelementos, cuyo ordenamiento ordenado ya ha sido restringido a una familiade pedidos, se pueden ordenar usandocomparaciones, mediante una forma de ordenación por inserción binaria . Para elproblema de ordenación,, y, entoncesy el límite de Fredman implica que soloSe 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 amboscomparaciones yLa complejidad total fue publicada dieciséis años después de Fredman por Lambert (1992) . El algoritmo realiza los siguientes pasos:
- Ordena recursivamente los dos conjuntos.y.
- Utilice la equivalenciapara inferir los ordenamientos ordenados deysin comparaciones adicionales.
- Fusiona los dos conjuntosyen un único orden ordenado, utilizando una serie de comparaciones lineales en su tamaño total.
- Utilice el orden combinado y la equivalenciapara inferir el orden ordenado desin comparaciones adicionales.
La parte del algoritmo que ordena recursivamente(o equivalentemente) lo hace siguiendo los siguientes pasos:
- Dividiren dos sublistas igualesy.
- Ordenar recursivamentey
- Inferir el orden enutilizando únicamente las comparaciones de un único paso de fusión como se indicó anteriormente.
- Combinar los resultados ordenados,, yjuntos.
El número de comparacionesnecesario para realizar este algoritmo recursivo en una entrada deLos elementos pueden analizarse utilizando la relación de recurrencia. donde elEl término de la recurrencia cuenta el número de comparaciones en las llamadas recursivas al algoritmo para ordenar.yy elEl término cuenta el número de comparaciones utilizadas para fusionar los resultados. El teorema maestro para relaciones de recurrencia de esta forma muestra queLa complejidad temporal total es más lenta,, debido a los pasos del algoritmo que utilizan comparaciones ya realizadas para inferir ordenaciones de otros conjuntos. Estos pasos se pueden realizar en tiempomediante 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 deSi se permiten, entonces también existe un límite inferior correspondiente.en el número de comparaciones, [ 9 ] [ 12 ] pero con comparaciones más generales que involucran combinaciones lineales de números constantes de elementos, soloSe 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 conordenación. En particular, con entradas enteras en el rango dehasta cierto límite superior, el problema se puede resolver enoperaciones mediante la transformada rápida de Fourier . [ 1 ] [ 3 ]
Problemas relacionados
Otros problemas en geometría computacional tienen una complejidad equivalente o más difícil.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 su-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 elEl 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 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 .
- 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 .
- 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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.
- 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 .
- ↑ Sloane, N. J. A. (ed.). "Secuencia A343245" . La enciclopedia en línea de secuencias de enteros . Fundación OEIS.
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- Algoritmos de ordenación
- Problemas sin resolver en informática