Para conjuntos de puntos ordenados en espacios euclidianos o espacios métricos abstractos más generales, los grafos de vecino más cercano ordenados se obtienen conectando cada punto con su predecesor más cercano mediante una arista dirigida. Este artículo demuestra que para cualquier conjunto de n puntos en Rd, existe un ordenamiento tal que el grado máximo de entrada del grafo de vecino más cercano ordenado correspondiente es al menos logn/(4d). Excepto por el factor 1/(4d), esta cota es óptima. Para el caso abstracto, se demuestra que para cualquier espacio métrico de n elementos, existe un ordenamiento tal que el grado máximo de entrada del grafo de vecino más cercano ordenado correspondiente es Ω(logn/loglogn).
Este artículo estudia el problema del grado máximo de entrada en grafos de vecino más cercano ordenados (Ordered Nearest Neighbor Graphs). Dado un conjunto de puntos P y un ordenamiento sobre él, el grafo de vecino más cercano ordenado se construye conectando cada punto al punto más cercano entre todos sus predecesores en el ordenamiento.
Significado Teórico: Los grafos de vecino más cercano tradicionales tienen su grado máximo de entrada limitado por el número de besos (kissing number), pero las propiedades de la versión ordenada aún no han sido suficientemente estudiadas
Aplicaciones Prácticas: Los grafos de vecino más cercano ordenados tienen aplicaciones importantes en algoritmos dinámicos, cálculo de caminos más cortos geométricos, construcción de grafos dispersos y otros campos
Optimización de Algoritmos: Comprender los límites del grado máximo proporciona orientación para diseñar algoritmos geométricos eficientes
Problema Dual: En comparación con la minimización del grado máximo (fácil de construir grafos de camino), el problema de maximización es más desafiante
Resultado Óptimo Unidimensional: Se demuestra que el grado máximo de entrada de un grafo de vecino más cercano ordenado en una línea con n puntos puede alcanzar ⌈logn⌉, y este límite es ajustado
Límites en Espacios de Alta Dimensión: Para n puntos en Rd, se construye un ordenamiento que alcanza el grado máximo de entrada de logn/(4d)
Espacios Métricos Abstractos: Se obtiene un límite inferior de Ω(logn/loglogn) en espacios métricos generales
Pruebas Constructivas: Todos los resultados proporcionan algoritmos de construcción explícitos, no solo pruebas de existencia
Entrada: Conjunto de puntos finitos P={p1,p2,…,pn} en un espacio métrico (V,ρ)Salida: Un ordenamiento π del conjunto de puntos tal que el grado máximo de entrada del grafo de vecino más cercano ordenado correspondiente sea lo más grande posible
Restricciones: El conjunto de puntos está en posición general (sin triángulos isósceles)
Algoritmo Order(P) para puntos en una línea:
Paso 1: Sea a,b los puntos más izquierdo y más derecho de P
Paso 2: Dividir P en A∪B usando el punto medio de ab, donde |A| ≥ |B|
Paso 3: Listar P en el siguiente orden:
Center(A), b, Delete(Order(A),Center(A)), AnyOrder(B\{b})
Paso 4: Center(P) ← Center(A)
Insight Clave: Mediante división recursiva y arreglo cuidadoso del orden, se asegura que cada llamada recursiva agregue un grado de entrada al punto central.
Algoritmo Order(P) para puntos en R^d:
Paso 1: Calcular el par de diámetro ab, asumiendo |ab| = 1
Paso 2: Dividir según distancias a a,b: A = {p: |pa| ≤ |pb|}, B = {p: |pb| ≤ |pa|}
Paso 3: Usar Corolario 1 para dividir A en a lo sumo 16^d/2 subconjuntos de diámetro <1/2
Paso 4: Seleccionar subconjunto C que contiene al menos n/16^d puntos
Paso 5: Listar en orden: Center(C), b, Delete(Order(C),Center(C)), AnyOrder(P\(C∪{b}))
Clave Técnica: Usar el teorema de cobertura de conjuntos convexos (Teorema 4) para división espacial, garantizando la independencia de los subproblemas recursivos.
Límite Inferior: Para cualquier conjunto de n puntos en una línea, existe un ordenamiento tal que el grado máximo de entrada ≥ ⌈logn⌉Límite Superior: Existen n puntos tales que para cualquier ordenamiento el grado máximo de entrada ≤ ⌈logn⌉
Construcción: Definir recursivamente el conjunto de puntos Pk=Pk−1∪(3k+Pk−1), donde P1={0,1}