Reducciones
Las reducciones se usan en el diseño de algoritmos para encontrar una solución a un problema desconocido mediante reducirlo a uno conocido (por ejemplo, reducir el problema de encontrar elementos repetidos en un arreglo al de ordenarlos y hacer una pasada buscando repetidos consecutivos). En cambio, en la teoría de NP-completitud, se demuestra que un problema es NP-completo mediante reducir un problema NP-completo conocido a él. Es decir, operamos en la dirección contraria: el problema conocido se reduce al problema desconocido.
En el caso de cotas inferiores, la idea es similar a la de NP-completitud. Supongamos que tenemos un problema para el que queremos establecer una cota inferior, y conocemos un problema con una determinada cota inferior . Si podemos transformar un input de en uno de en tiempo , resolver en el input transformado, y luego transformar el output de en el de también en tiempo , entonces es también una cota inferior para el problema . De no ser así, las transformaciones nos darían una solución a de tiempo , lo que es imposible.
Esta técnica es general y puede usarse para peor caso y caso promedio, si bien generalmente se usa para establecer órdenes de magnitud y no cantidades exactas de operaciones.
📄️ Cápsula convexa
El problema de la cápsula convexa es el de, dados $n$ puntos en el
📄️ Colas de prioridad
Esta técnica también nos permite establecer cotas inferiores al costo de
📄️ 3SUM y puntos colineales
El concepto de reducción se utiliza también para hablar de cotas inferiores que