Ищете алгоритм для размещения максимального количества точек в пределах ограниченной области на минимальном расстоянии?


17

У меня есть слой многоугольника, который описывает ограничение; Я хочу добавить очки в этой области. Я хочу добавить как можно больше точек, но между ними должно быть минимальное расстояние. Возможно ли это сделать с помощью ГИС?

Чтобы уточнить, было бы лучше, если бы была сгенерирована упорядоченная сетка, так как это гарантировало бы наибольшее количество баллов. Однако ограничение редко позволяло бы это, и может быть предпочтительным удалить точки, чтобы смещение лучше соответствовало ограничению.


1. Да. 2. Хотите случайный или заказанный (сетка)?
Брэд Несом

Кажется, два вопроса. Вы хотите, чтобы алгоритм делал это вне программного обеспечения? Или вы хотите знать, что ГИС-система может сделать это?
Брэд Несом

1
Ограничены ли точки так, чтобы они были> = минимальным расстоянием от границы многоугольника? Если так, то вопрос может быть более четко сформулирован как: Как я могу упаковать максимальное количество кругов в многоугольник?
Кирк Куйкендалл

Как-то связано: gis.stackexchange.com/q/4927/162
Жюльен

1
@qva Нет, нет, потому что точные решения, которые можно найти, асимметричны и их трудно получить даже для простых форм, таких как прямоугольники. Лучшие вычислительные методы, которые я нашел, основаны на пространственном моделируемом отжиге (и они работают очень хорошо, даже если они требуют большого количества вычислений). Используя их, я посмотрел на решения для многих полигонов различной формы. Ясно, что границы многоугольника управляют решениями, близкими к границам; глубоко внутри они имеют тенденцию приближаться к шестиугольным набивкам дисков.
whuber

Ответы:


5

Я думаю, что это можно рассматривать как проблему «упаковки».

Если это так, вы можете попробовать Генетический алгоритм, возможно, такой же, как в О генетических алгоритмах для упаковки полигонов .


Интересная ссылка, спасибо. Быстрый взгляд показывает, что алгоритму статьи нужны полигоны, которые должны быть прямоугольниками. Знаете ли вы, можно ли его обобщить на произвольные многоугольники?
whuber

9

Я не знаю ни одного инструмента ГИС для этого, но у меня есть идея по алгоритму.

Во-первых, аппроксимация максимального числа точек может быть получена с помощью этой формулы:

Nb = 4.A / Pi.d^2

(где Aплощадь многоугольника и dминимальное расстояние).

Затем, чтобы попытаться расположить эти точки в многоугольнике, лучшим шаблоном является не квадратная сетка, а шестиугольная сетка. Видеть:

квадрат против гексагональной сетки

Наконец, некоторые методы оптимизации с использованием моделей силы могут быть использованы для уточнения относительного расположения точек.

NB: Это хорошо известная проблема в кристаллографии .


ГИС инструмент, чтобы сделать это ... ian-ko.com гео-мастер случайных точек в многоугольнике.
Брэд Несом

1
Благодарность! Но вопрос не совсем о случайных точках в многоугольнике, верно?
Жюльен

В качестве начального приближения быстро и грязно гексагональная упаковка работает нормально. Хотя это почти никогда не оптимально. Я ожидаю, что потенциальное улучшение будет пропорционально длине периметра многоугольника, поэтому для многоугольных многоугольников это не плохой подход.
whuber

6

Смотрите ветку по адресу /math/15624/distribute-a-fixed-number-of-points-uniformly-inside-a-polygon . В частности, обратите внимание на ссылку (в комментарии) на «процесс Пуассона» и выполните поиск в Интернете. Связь с текущим вопросом заключается в том, что, когда вы можете равномерно распределить определенное количество точек, вы можете систематически увеличивать это количество до тех пор, пока в многоугольник не будет добавлено больше точек, и это решит проблему максимизации числа точек, подверженных требование минимального расстояния. (Технически, две проблемы - это проблемы двойной оптимизации, когда цели и ограничения взаимозаменяемы.)


0

Решение должно быть равносторонними треугольниками, http://en.wikipedia.org/wiki/Equatell_triangle . Единственный вопрос - это длина сторон и "смещение по оси x" относительно вашего многоугольника.

(аналогично гексагональной сетке, упомянутой ниже)


1
Это верно только в бесконечной плоскости. Граница конечного многоугольника сильно ограничивает конфигурацию. Когда точек много , они приблизительно образуют равносторонние треугольники.
whuber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.