Suponiendo que ya hemos demostrado que el problema de unicidad del elemento tiene un límite inferior [matemática] O (n \ log n) [/ matemática], la prueba es una reducción simple. (Esto supone un algoritmo basado en un árbol de decisión. Sin embargo, existen otros tipos de soluciones, como el uso de una tabla aleatoria de hash, que produce un tiempo lineal esperado para la unicidad del elemento).
Supongamos que se nos da una lista de puntos. Si dos de ellos son idénticos, entonces el algoritmo del par más cercano devolvería la distancia 0. Pero, dado que ningún procedimiento de decisión puede determinar si dos de los puntos son idénticos en menos de [matemática] O (n \ log n) [/ matemática] tiempo, el algoritmo de par más cercano tampoco puede devolver una distancia cero en menos de [math] O (n \ log n) [/ math] time. Por lo tanto, al menos algunas entradas requieren tiempo [matemático] O (n \ log n) [/ matemático].
Otra forma de explicar la reducción: comience con una lista de números en los que queremos resolver el problema de unicidad del elemento. Alimente [math] (x, x) [/ math] al algoritmo de par más cercano para cada [math] x [/ math] de la lista. Si el algoritmo del par más cercano pudiera encontrar que la distancia mínima es menor que [math] O (n \ log n) [/ math] time, también habríamos resuelto el problema de unicidad del elemento en menos de [math] O (n \ log n) [/ math] time (ya que la transformación solo toma tiempo lineal). Pero esto es imposible.
- ¿Cuál es el proceso de traducción de un lenguaje de programación para representar números o bits?
- Algoritmos: ¿Cómo visualizo y resuelvo problemas de retroceso?
- ¿Puede una máquina de turing aceptar una entrada sin detenerse?
- ¿La comunidad académica evita los intentos de resolver un problema NP-difícil en tiempo polinómico?
- Cómo determinar el número total de triángulos degenerados sin bucles de una longitud determinada (más de 3)