Pokrycie prostego wielokąta okręgami


10

Załóżmy, że mam prosty wielokąt i liczbę całkowitą k . Jakie są istniejące podejścia do znalezienia najmniejszego promienia r takie, że mogę pokryć S z k okręgi o promieniu R ? A może r zostanie naprawiony i chcę zminimalizować k ?SkrSkrrk

Odpowiedzi:


11

Użyj algorytmu klastrowania k-centrum: patrz punkt 4.2 w http://goo.gl/pLiEO .

Algorytm aproksymacji 1 + eps można uzyskać za pomocą przesuwnych siatek.

Naturalne jest założenie, że problemem jest NP-Hard z powodu pracy Federa i Greene'a.


1
Właśnie to daje przesuwana siatka ...
Sariel Har-Peled

Dziękuję za Twoją odpowiedź. Znam mniej więcej przesuwne siatki. W scenariuszu punktów zasadniczo opiera się na fakcie, że w każdej komórce siatki można optymalnie rozwiązać problem pokrycia, ponieważ każdy dysk zawiera dwa punkty na granicy, a liczba dysków do pokrycia komórki jest ograniczona. W ten sposób można rozwiązać brutalną siłę. Ale w ustawieniu wielokąta nie widzę optymalnego rozwiązania problemu w jednej komórce siatki. Czy mógłbyś podać kilka wskazówek na ten temat?
101011

Przesuwne siatki oznaczają, że wewnątrz komórki siatki rozmiar rozwiązania jest niewielki. Następnie musisz rozwiązać problem w każdej komórce siatki (zwykle dokładnie) za pomocą innego algorytmu. Oto alternatywny sposób myślenia o tym - bardzo gęsto próbkuj wielokąta, a następnie rozwiąż swój problem na próbce ... I tak, dokładne szczegóły, jak to zrobić, mogą być dość bolesne ... Załóżmy, że masz wielokąta z krawędziami n, a wiesz, że optymalnym rozwiązaniem jest rozmiar k. Czy wiesz, jak dokładnie rozwiązać problem w tym przypadku?
Sariel Har-Peled

Jeszcze raz dziękuję. Po dłuższym zastanowieniu nadal nie wiem, jak optymalnie pokryć wielokąt dyskami k, nawet jeśli znam k. Fakt, że jest mało dyskretny, sprawia, że ​​szew jest dla mnie naprawdę trudny. Jeśli chodzi o twoje podejście do pobierania próbek: czy po zakończeniu pobierania próbek chciałbyś następnie objąć tylko próbkę? Czy nie mamy więc problemu z marnowaniem dużej ilości dysków, aby wypełnić luki?
101011

1
N×NN=O(k/ϵ)ϵ

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.