ポリゴンのランダムサンプリング


9

ポリゴン内の一様にランダムなポイントをサンプリングしたい...

多数をサンプリングする場合、同じ面積の場合、2つの地域に分類される可能性が等しくなります。

[0,1]の2つの乱数を座標として取るので、正方形の場合、これは非常に簡単です。

私が持っている形状は正多角形ですが、どの多角形でも機能したいのですが。

/programming/3058150/how-to-find-a-random-point-in-a-quadrangle

回答:


9
  1. ポリゴンを三角形分割する
  2. ポイントがどの三角形にあるかを決定します(三角形の領域に重み付け)
  3. この投稿で説明さているように、三角形の点をサンプリングします

この質問は、リンクした古い質問の複製ではありませんか?
ラファエル

@ラファエル:関連しているが、もっと一般的だと思う。
A.Schulz 2013

4

簡単な方法の1つは、ポリゴンのバウンディングボックスを見つけてリジェクションサンプリングを使用することです。バウンディングボックスからサンプリングし、それがポリゴン内にあるかどうかを受け入れます。これは少なくとも確率で起こります(私は思う)。1/2

もう1つの可能性は、ポリゴンを三角形分割することです。まず、比例して三角形をサンプリングし、次に三角形のランダムな点をサンプリングします。後者は単純です。アフィン変換まで、すべての三角形はの形式です。その分布からサンプル均一ポイントに、最初のサンプルが密度に応じて(すなわち、均一なサンプルR [ 0 1 ]と計算X = 1 - {(x,y):x,y0,x+y1}x[0,1]2(1x)r[0,1])、次いで試料Y[01-X]均一(すなわち、均一なサンプルS[01]と計算Y=1-XをS)。より簡単な方法は、試料であるXY[01]、および場合、X+Y>1で置き換えるXYx=11ry[0,1x]s[0,1]y=1バツsバツy[01]バツ+y>1バツywith 1バツ1y


拒否サンプリングは、2次元で最大1/2の確率で拒否しますが、より高い次元では、拒否の確率ははるかに悪くなる可能性があります。
DW

拒否のサンプリングは、1/2よりも大きな拒否率を持つ可能性があります。わずかに押し出されたスパイラルを考えてください。
A.Schulz 2013

ポリゴンが凸状であることが保証されている場合はどうなりますか?
Yuval Filmus 2013

バウンディングボックスが軸に揃えられている場合、凸性は役に立ちません。前の質問への回答が示唆するように、非常に大きなxに対して(0、1)、(1、0)および(x、x)に頂点を持つ三角形を考えてみてください-これは、バウンディングボックスのわずかな割合しか占めませんxが無限大になるとき。あなたは、可能な最小のバウンディングボックスの話をしている場合は、することができますおそらくボリュームあなたの凸形状が占めるが、その後、あなたが...ボックスを見つけなければならないの派生境界
スティーブンStadnicki

4

これは少しおかしなことですが、ポリゴンが非常に奇妙な場合でもうまく機能するはずです。

C

http://siam.org/pdf/news/1297.pdf

次に、ディスク上の均一密度のプッシュフォワードをMetropolis-Hastings MCMCサンプリングの提案密度として使用します。


ただし、コンフォーマルマップは必ずしも地域を保護するものではありません。それらは角度を維持していますが、これはポリゴンを均一にサンプリングしないことがほぼ保証されてます。
Steven Stadnicki 2013

したがって、実際のサンプラーとしてではなく、MCMCでの提案として使用する必要があります。ポアンカレ不等式を使用すると、コンフォーマルマップのコンフォーメーションと定数の境界からの変化を示すことができます。
Nick Alger 2013

aPバツ<fバツ<bPバツabfバツ=cPバツバツ
スティーブンスタドニツキ2013

メトロポリスヘイスティングスMCMCの要点は、この提案は真のディストリビューションではないということです。MCMCチェーンの収束速度は、提案が実際の分布をどれだけ近似しているかによって異なります。最も一般的な提案は、サンプリングしようとしている分布に関係なく、現在のポイントにガウス分布を置くことです...
Nick Alger
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.