Poszukujesz algorytmu, aby umieścić maksymalną liczbę punktów w ograniczonym obszarze w minimalnym odstępie?


17

Mam warstwę wielokąta, która opisuje ograniczenie; Chcę dodać punkty w tym obszarze. Chcę dodać jak najwięcej punktów, ale muszą one mieć między nimi minimalny odstęp. Czy można to zrobić za pomocą GIS?

Aby to wyjaśnić, najlepiej byłoby wygenerować uporządkowaną siatkę, ponieważ gwarantowałoby to najwięcej punktów. Jednak ograniczenie rzadko na to pozwala i może być wskazane usunięcie punktów, aby umożliwić przesunięcie w celu lepszego dopasowania do ograniczenia.


1. Tak 2. Czy chcesz losowy czy zamówiony (siatka)?
Brad Nesom

Wydaje się, że są dwa pytania. Czy chcesz, aby algorytm robił to poza oprogramowaniem? A może chcesz wiedzieć, jaki system GIS może to zrobić?
Brad Nesom

1
Czy punkty są tak ograniczone, że muszą być> = minimalna odległość od granicy wielokąta? Jeśli tak, pytanie może zostać bardziej jednoznacznie określone w następujący sposób: Jak spakować maksymalną liczbę okręgów do wielokąta?
Kirk Kuykendall

W jakiś sposób powiązane: gis.stackexchange.com/q/4927/162
julien

1
@qva Nie, nie ma, ponieważ dokładne rozwiązania, które można znaleźć, są asymetryczne i trudne do uzyskania nawet dla prostych kształtów, takich jak prostokąty. Najlepsze metody obliczeniowe, jakie znalazłem, oparte są na przestrzennym symulowanym wyżarzaniu (i działają bardzo dobrze, mimo że wymagają dużo obliczeń). Korzystając z nich, szukałem rozwiązań dla wielu wielokątów o różnych kształtach. Oczywiste jest, że granice wielokątów kontrolują rozwiązania blisko granic; głęboko w środku mają tendencję do zbliżania się do sześciokątnych wypełnień dysków.
whuber

Odpowiedzi:



9

Nie znam na to żadnego narzędzia GIS, ale mam pomysł na algorytm.

Po pierwsze, można uzyskać przybliżenie maksymalnej liczby punktów za pomocą tego wzoru:

Nb = 4.A / Pi.d^2

(gdzie Ajest obszar wielokąta id minimalna odległość odstępu).

Następnie, aby spróbować zlokalizować te punkty w wielokącie, najlepszym wzorem nie jest kwadratowa siatka, ale sześciokątna siatka. Widzieć:

siatka kwadratowa vs sześciokątna

Wreszcie, niektóre techniki optymalizacji wykorzystujące modele siły mogą być wykorzystane do udoskonalenia względnego pozycjonowania punktów.

NB: Jest to dobrze znany problem w krystalografii .


gis narzędzie do tego ... geo-kreator ian-ko.com losowy punkt w wielokącie.
Brad Nesom

1
Dzięki! Ale pytanie nie dotyczy dokładnie losowych punktów w wielokącie, prawda?
Julien

Jako wstępne przybliżenie szybkie i brudne, sześciokątne pakowanie działa dobrze. Jednak prawie nigdy nie jest optymalna. Spodziewałbym się, że potencjalna poprawa będzie proporcjonalna do długości obwodu wielokąta, więc w przypadku wielokątów nieporęcznych z wieloma punktami nie jest to złe podejście.
whuber

6

Zobacz wątek na /math/15624/distribute-a-fixed-number-of-points-uniformly-inside-a-polygon . W szczególności zwróć uwagę na odniesienie (w komentarzu) do „Proces dysku Poissona” i przeszukaj Internet. Związek z bieżącym pytaniem polega na tym, że jeśli możesz równomiernie rozdzielić określoną liczbę punktów, możesz systematycznie zwiększać tę liczbę, dopóki nie będzie można umieścić więcej punktów w wielokącie, co rozwiązuje problem maksymalizacji liczby punktów podlegających minimalna odległość wymagana. (Technicznie dwa problemy to problemy z podwójną optymalizacją, w których cele i ograniczenia są ze sobą zamienione).


0

Rozwiązaniem muszą być trójkąty równoboczne, http://en.wikipedia.org/wiki/Equilateral_triangle . Jedyne pytanie dotyczy długości boków i „przesunięcia xy” w stosunku do twojego wielokąta.

(taki sam jak sześciokątna siatka wymieniona poniżej)


1
Jest to prawdą tylko w nieskończonej płaszczyźnie. Granica skończonego wielokąta poważnie ogranicza konfigurację. Kiedy jest wiele punktów, w przybliżeniu tworzą trójkąty równoboczne.
whuber
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.