Dados os pontos em e uma distância encontro o maior subconjunto desses pontos, de modo que a distância euclidiana de nenhum deles exceda .
Qual é a complexidade desse problema?
No gráfico sobre os pontos que têm uma aresta sempre que a distância de dois pontos é no máximo , o problema é equivalente a encontrar uma camarilha máxima. O inverso pode não se sustentar, porque nem todo gráfico pode ser obtido dessa maneira (um exemplo é a estrela para ). Portanto, uma pergunta relacionada é: o que se sabe sobre essa classe de gráficos?
ds.algorithms
reference-request
cg.comp-geom
Marcus Ritt
fonte
fonte
Respostas:
Existe um algoritmo de tempo para a versão bidimensional desse problema em meu artigo com Jeff Erickson, " Iterado vizinhos mais próximos e encontrando polítopos mínimos ", Disc. Comp. Geom. 11: 321-350, 1994. Na verdade, o artigo analisa principalmente o problema duplo: dado o número de pontos no subconjunto, encontre o menor diâmetro possível; mas usa o problema que você descreve como uma sub-rotina. Pelo menos no momento em que o escrevemos, não sabíamos nada subexponencial para dimensões mais altas (embora, se o subconjunto tenha apenas k pontos, a parte exponencial possa ficar dependente de k em vez de nO(n3logn) k k n usando técnicas no mesmo artigo).
fonte
A aproximação é bem fácil se você estiver interessado no menor subconjunto com diâmetro no máximo . Um algoritmo de tempo linear usando grades agora é "padrão". A constante provavelmente seria algo como 2 O ( 1 / ε d ) .(1+ϵ)l 2O(1/ϵd)
Há algum trabalho para encontrar a menor bola contendo k pontos, mas o problema do diâmetro é inerentemente mais difícil. Para entender por que, um bom ponto de partida é o artigo de Clarkson-Shor para calcular o diâmetro em 3d.
BTW, para dimensões altas, o problema da bola é exponencial no tempo aproximado em (ou algum ruído semelhante), usando conjuntos de cores (mas não na dimensão!). Eu duvido que essa abordagem possa ser estendida a esse problema, mas posso estar errado.O(1/ϵ2)
fonte