NOTA : A pergunta foi reafirmada em minhas respostas: Supondo que agora possamos encontrar os ancestrais de irmãos mais baixos no tempo , a RNA pode realmente ser executada em O ( log n ) ?
Quadtrees são índices espaciais eficientes. Eu tenho um quebra-cabeça com a implementação de uma pesquisa de vizinhos mais próximos em uma estrutura de quadtree compactada, conforme descrito em [2]. (Sem entrar em detalhes, a pesquisa vai de cima para baixo ao longo dos chamados quadrados equidistantes, terminando no nó da cauda de um caminho equidistante. Na imagem anexada, pode ser que um dos nós no sudeste esteja cheio de pontos.)
Para que o algoritmo funcione, é necessário manter para cada nó - um quadrado com pelo menos dois quadrantes não vazios - ponteiros para cada nó ancestral mais baixo (o mais próximo da hierarquia) em cada uma das quatro direções (norte, oeste, sul , leste). Eles são indicados pelas setas verdes do ancestral oeste dos nós (a seta aponta para o centro do quadrado ancestral).
O documento afirma que esses ponteiros podem ser atualizados em O (1) durante inserções e exclusões de pontos. No entanto, ao olhar para a inserção do ponto verde, parece que preciso atualizar qualquer número arbitrário de ponteiros, neste caso seis deles.
Espero um truque para fazer essa atualização do ponteiro em tempo constante. Talvez exista uma forma de indireção que possa ser explorada?
EDITAR:
A secção relevante do papel é de 6,3, onde se lê: "se o caminho tem curvas, em seguida, para além da mais baixas antepassados de q , devemos considerar também para cada um dos 2 d instrues ancestral mais baixo de q que vai nessa direção [...] A localização desses quadrados a partir de q pode ser feita em O ( 1 ) tempo por quadrado se associarmos ponteiros adicionais de 2 d a cada quadrado em Q 0apontando para seus antepassados mais próximos para cada direção. Esses ponteiros também podem ser atualizados no tempo durante uma inserção ou exclusão de um ponto ".
[2]: Eppstein, D. e Goodrich, MT e Sun, JZ, “The Skip Quadtree: Uma estrutura dinâmica simples de dados para dados multidimensionais”, em Anais do vigésimo primeiro simpósio anual em geometria computacional, pp. 296-305 2005.