Étant donné les points dans R d et une distance l, trouver le plus grand sous-ensemble de ces points de sorte que la distance euclidienne de deux d'entre eux ne dépasse pas l .
Quelle est la complexité de ce problème?
Dans le graphique sur les points qui ont une arête chaque fois que la distance de deux points est au plus , le problème revient à trouver une clique maximale. L'inverse peut ne pas tenir, car tous les graphiques ne peuvent pas être obtenus de cette façon (un exemple est l'étoile K 1 , 7 pour ). Par conséquent, une question connexe est: que sait-on de cette classe de graphiques?
ds.algorithms
reference-request
cg.comp-geom
Marcus Ritt
la source
la source
Réponses:
Il y a un algorithme de temps pour la version bidimensionnelle de ce problème dans mon article avec Jeff Erickson, " Itération des voisins les plus proches et recherche de polytopes minimaux ", Disc. Comp. Geom. 11: 321-350, 1994. En fait, l'article examine principalement le double problème: étant donné le nombre de points dans le sous-ensemble, trouver le plus petit diamètre possible; mais il utilise le problème que vous décrivez comme un sous-programme. Au moins au moment où nous l'avons écrit, nous ne savions rien de sous-exponentiel pour les dimensions supérieures (bien que si le sous-ensemble ne contient que k points, la partie exponentielle peut être rendue dépendante de k plutôt que de nO(n3logn) k k n en utilisant des techniques dans le même article).
la source
L'approximation est assez facile si vous êtes intéressé par le plus petit sous-ensemble avec un diamètre au plus . Un algorithme de temps linéaire utilisant des grilles est désormais "standard". La constante serait probablement quelque chose comme 2 O ( 1 / ϵ d ) .(1+ϵ)l 2O(1/ϵd)
Il y a du travail pour trouver la plus petite boule contenant k points, mais le problème du diamètre est intrinsèquement plus difficile. Pour voir pourquoi, un bon point de départ est le papier Clarkson-Shor pour calculer le diamètre en 3D.
la source