最小間隔で制約エリア内に最大数のポイントを配置するアルゴリズムを探していますか?


17

制約を記述するポリゴンレイヤーがあります。このエリア内にポイントを追加したいと思います。できるだけ多くのポイントを追加したいのですが、それらの間に最小の間隔が必要です。GISでこれを行うことは可能ですか?

明確にするために、順序付けされたグリッドを生成できれば、それが最も多くのポイントを保証するため、最善です。ただし、制約によってこれが許可されることはめったにないため、オフセットを制約内により良く適合させるためにポイントを削除することが望ましい場合があります。


1.はい。2.ランダムまたは順序付き(グリッド)のどちらが必要ですか?
ブラッドネソム

2つの質問のようです。ソフトウェアの外部でこれを行うアルゴリズムが必要ですか?それとも、どのGISシステムがこれを行うことができるか知りたいですか?
ブラッドネソム

1
ポイントは、ポリゴンの境界からの最小距離以上でなければならないように制約されていますか?もしそうなら、質問はより明確に述べられるかもしれません:ポリゴンに最大数の円をどのように詰め込めますか?
カーククイケンドール


1
@qvaいいえ、見つかりません。正確な解は非対称であり、長方形のような単純な形状であっても取得するのは困難です。私が見つけた最良の計算方法は、空間シミュレーテッドアニーリングに基づいています(多くの計算を必要としますが、非常にうまく機能します)。それらを使用して、さまざまな形状の多くのポリゴンのソリューションを検討しました。ポリゴンの境界が境界に近いソリューションを制御することは明らかです。内部の奥深くでは、ディスクの六角形のパッキングに近い傾向があります。
whuber

回答:


5

これは「パッキング」問題と考えることができると思います。

もしそうなら、あなたは、おそらく、多角形のパッキングのための遺伝的アルゴリズムについてのそれに似た遺伝的アルゴリズムを試してみたいかもしれません。


興味深い参照、ありがとう。一目でわかるように、この論文のアルゴリズムではポリゴンを長方形にする必要があります。任意のポリゴンに一般化できるかどうか知っていますか?
whuber

9

私はそれを行うGISツールを知りませんが、アルゴリズムについては考えがあります。

まず、次の式を使用して最大ポイント数の近似値を取得できます。

Nb = 4.A / Pi.d^2

(ここAで、ポリゴン領域とd最小間隔距離です)。

次に、これらのポイントをポリゴンに配置するための最良のパターンは、正方形グリッドではなく六角形グリッドです。見る:

正方形と六角形のグリッド

最後に、力モデルを使用したいくつかの最適化手法を使用して、ポイントの相対的な位置を調整できます。

注意:これは結晶学でよく知られている問題です。


それを行うためのgisツール... ian-ko.comジオウィザードポリゴンのランダムポイント。
ブラッドネソム

1
ありがとう!しかし、問題はポリゴン内のランダムポイントに関するものではありません。
ジュリアン

最初の手っ取り早い近似として、六角形のパッキングはうまく機能します。しかし、それはほとんど決して最適ではありません。潜在的な改善はポリゴンの周囲の長さに比例すると予想されるため、多くのポイントを持つ非蛇行ポリゴンの場合、これは悪いアプローチではありません。
whuber

6

/math/15624/distribute-a-fixed-number-of-points-uniformly-inside-a-polygonのスレッドを参照してください。特に、(コメントで)「ポアソンディスクプロセス」への参照に注意し、Web検索を実行します。現在の質問との関係は、特定の数のポイントを均一に分散できる場合、ポリゴンにそれ以上ポイントを配置できなくなるまで体系的にその数を増やすことができ、それが対象となるポイント数を最大化する問題解決する最小距離要件。(技術的には、2つの問題は目的と制約が入れ替わる二重最適化問題です。)


0

ソリューションは、正三角形、http://en.wikipedia.org/wiki/Equilateral_triangleでなければなりません。唯一の問題は、辺の長さとポリゴンに対する「xyオフセット」です。

(下記の六角形グリッドと同じ)


1
これは、無限平面内でのみ当てはまります。有限多角形の境界は、構成を厳しく制限します。多くのポイントがある場合、それらはほぼ正三角形を形成します。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.