A estrutura de dados que eu estava procurando é chamada de pilha paramétrica . Ou seja, um monte em que cada tecla é uma função linear (uma linha) em vez de uma chave fixa. A query(x)
operação descrita acima corresponde a uma find-min(x)
operação em um heap paramétrico. Existe uma estrutura de dados relacionada, chamada heap cinético , que é um heap paramétrico em que o parâmetro, time, apenas progride para a frente. Em outras palavras, uma vez que temos uma find-min
( ) consulta, podemos perguntar ( t 2t1find-min
t2 ) apenas se .t2≥ t1
Conforme observado por "alguém", o problema paramétrico do heap pode ser reduzido a um casco plano dinâmico convexo via dualidade de linha de ponto.
A maioria dos artigos que resolvem esse problema usa uma estrutura de dados semi-dinâmica "somente exclusões" e, em seguida, usa uma técnica de dinamização de Bentley e Saxe para transformar sua estrutura de dados e também suportar inserções. ( JL Bentley e JB Saxe, problemas de busca decomposable I:. Transformação Static-to-dinâmica ) Ver também J notas de aula do FFEϵ para uma visão geral de como este tipo de obras de transformação.
O resultado clássico nessa área é devido a Overmars e van Leeuwen, Manutenção de configurações no avião , que atingem tempo de consulta O ( log n ) e O (O ( logn ) (pior caso) tempo de actualização. Se quisermos implementar uma solução para esse problema, esta é a versão a seguir.O( log2n )
No entanto, houve subsequentemente várias melhorias teóricas no resultado clássico. No FOCS 99, o artigo de Chan
deu uma estrutura de dados com tempo amortizado ϵ n)para atualizações.O (log1 +ϵn )
Posteriormente, os seguintes autores (independentemente) aprimoram os limites de tempo para para exclusões e O ( log n log logO( logn logregistron )O (lognlogregistroregistron )
O (logn ) tempo amortizado de . Seus resultados são bastante complicados, e eu só consegui encontrar a versão completa do artigo em forma de rascunho ; no entanto, o resultado também é detalhado no Ph.D. de Jacob. Dissertação .
Recentemente, Chan deu outros resultados relacionados a consultas planas dinâmicas do casco planas, incluindo "Uma estrutura de dados totalmente dinâmica para manter um conjunto de n pontos no plano para que possamos encontrar as bordas do casco convexo que cruzam uma linha de consulta".
Θ ( logn / logregistron )O (lognlogregistron )O ( log2n ) .