Couvrir un polygone simple avec des cercles

10

Supposons que j'ai un polygone simple et un entier k . Quelles sont les approches existantes pour trouver le plus petit rayon r tel que je puisse couvrir S avec k cercles de rayon r ? Que diriez-vous si r est fixe, et je veux minimiser k ?SkrSkrrk

user771871
la source

Réponses:

11

Utilisez l'algorithme de clustering k-center: voir la section 4.2 dans http://goo.gl/pLiEO .

On peut obtenir un algorithme d'approximation 1 + eps en utilisant des grilles coulissantes.

Il est naturel de supposer que le problème est NP-difficile en raison du travail de Feder et Greene.

Sariel Har-Peled
la source
1
C'est ce que vous offre la grille coulissante ...
Sariel Har-Peled
Merci pour votre réponse. Je connais plus ou moins les grilles coulissantes. Dans le scénario des points, il repose essentiellement sur le fait que dans chaque cellule de la grille, on peut résoudre le problème de couverture de manière optimale car chaque disque contient deux points sur sa frontière, plus le nombre de disques pour couvrir la cellule est limité. Ainsi, on peut le résoudre par la force brute. Mais dans le cadre d'un polygone, je ne vois pas comment résoudre le problème de manière optimale dans une cellule de la grille. Pourriez-vous donner quelques conseils à ce sujet?
101011
Les grilles coulissantes impliquent qu'à l'intérieur de la cellule de la grille, la taille de la solution est petite. Ensuite, vous devez résoudre le problème à l'intérieur de chaque cellule de la grille (généralement exactement) en utilisant un autre algorithme. Voici une autre façon d'y penser - échantillonnez le polygone de manière très dense, puis résolvez votre problème sur l'échantillon ... Et oui, les détails exacts de la façon de procéder peuvent être assez douloureux ... Donc, supposons que vous ayez un polygone avec n arêtes, et vous savez que la solution optimale est de taille k. Savez-vous comment résoudre le problème exactement dans ce cas?
Sariel Har-Peled
Merci encore. Après réflexion, je ne sais toujours pas comment couvrir le polygone de manière optimale avec k disques, même si je connais k. Le fait qu'il y ait peu de nature discrète rend la couture très difficile pour moi. Quant à votre approche d'échantillonnage: après l'échantillonnage, aimeriez-vous alors ne couvrir que la partie échantillonnée? Ne sommes-nous pas alors confrontés au problème de gaspiller beaucoup de disques pour combler les lacunes?
101011
1
N×NN=O(k/ϵ)ϵ