Bir çokgendeki rastgele örnekleme


9

Bir çokgendeki tekdüze rastgele bir noktayı örneklemek istiyorum ...

Çok sayıda örnek alınırsa, aynı alana sahip olmaları durumunda iki bölgeye düşme olasılıkları daha yüksektir.

Bir kare olsaydı bu oldukça basit olurdu çünkü koordinatlarım olarak [0,1] 'de iki rastgele sayı alacağım.

Sahip olduğum şekil normal bir çokgen, ancak herhangi bir çokgen için çalışmasını istiyorum.

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

Yanıtlar:


9
  1. Çokgeni üçgenleme
  2. Noktanın üçgenlerden hangisinde olması gerektiğini belirleyin (üçgen alan ağırlıkları)
  3. Açıklandığı gibi üçgeninde noktayı Örnek Bu mesajda

Bu soru, bağladığınız daha eski sorunun kopyası değil mi?
Raphael

@ Raphael: İlgili, ama daha genel, söyleyebilirim.
A.Schulz

4

Kolay bir yol, çokgeniniz için sınırlayıcı kutuyu bulmak ve reddetme örneklemesi kullanmaktır: sınırlayıcı kutudan örnek ve çokgen içinde olup olmadığını kabul etmek, olasılıkla gerçekleşir 1/2 en azından (sanırım).

Başka bir olasılık çokgeninizi üçgenlemek. Önce üçgeni orantılı bir şekilde örnekleyin, ardından üçgende rastgele bir nokta örnekleyin. İkincisi basit: Afin dönüşümlere kadar tüm üçgenler formda{(x,y):x,y0,x+y1}. Bu dağılımdan bir noktayı eşit olarak örneklemek için ilk örnekx[0,1] yoğunluğa göre 2(1x) (örn. üniforma örneği r[0,1] ve hesapla x=11r) ve sonra örnek y[0,1x] muntazam (örn. s[0,1] ve hesapla y=(1x)s). Daha da basit bir yöntem örneklemektirx,y[0,1], ve eğer x+y>1 değiştirmek (x,y) ile (1x,1y).


Reddetme örneklemesi 2 boyutta en fazla 1/2 olasılıkla reddedecektir, ancak daha yüksek boyutlarda reddetme olasılığı çok daha kötü olabilir.
DW

Reddetme örneklemesi 1/2'den daha yüksek bir ret oranına sahip olabilir. Sadece hafifçe çekilmiş bir spiral düşünün.
A.Schulz

Çokgenin dışbükey olduğu garanti edilirse ne olur?
Yuval Filmus

Sınırlayıcı kutularınız eksene hizalanırsa dışbükeylik yardımcı olmaz; önceki sorunun cevapları önerdiği gibi, sadece çok büyük x için (0, 1), (1, 0) ve (x, x) 'de köşeleri olan bir üçgeni düşünün - bu sınırlayıcı kutusunun kaybolan küçük bir kısmını alacaktır x sonsuzluğa gider. Eğer mümkün olan en küçük sınırlayıcı kutunun bahsediyoruz, o zaman can muhtemelen hacim sizin dışbükey şekil alır, ancak o zaman ... kutusunu bulmak zorunda üzerinde derived sınırlar
Steven Stadnicki

4

Bu biraz çılgınca, ama çokgeniniz çok garip olsa bile iyi çalışmalı.

Birim diskten poligonunuza uygun bir harita bulmak için Reimann eşleme teoremini kullanın .C. Örneğin, aşağıdaki kaynaklara bakın:

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

Daha sonra Metropolis-Hastings MCMC örneklemesinde teklif yoğunluğu olarak disk üzerinde eşit bir yoğunluğun itme kuvvetini kullanın .


Bununla birlikte, uyumlu haritaların alan koruması gerekmez; onlar konum açısı koruyarak, ancak bu neredeyse garanti değil düzgün çokgen örnek.
Steven Stadnicki

Bu nedenle, bunu gerçek bir örnekleyici olarak değil, MCMC'de bir teklif olarak kullanma ihtiyacı. Poincare eşitsizliği ile konformal bir haritanın üniformadan varyasyonunu bir sabitle sınırlandırabilirsiniz.
Nick Alger

Belki de hala özlüyorum; sivri uçlu Wikipedia sayfasındaki tartışma, 'deneme dağıtımının' hala istenen dağıtımla doğru orantılı olması gerektiğini söylüyor ; yani değilaP(x)<f(x)<bP(x) bazı sabitler için a ve b, fakat f(x)=cP(x)x. Eşlenen yoğunluktaki yerel varyans hala örneklemede yerel varyansa yol açacaktır.
Steven Stadnicki

Metropolis Hastings MCMC'nin amacı, teklifin gerçek dağıtım olmadığıdır. MCMC zincirinin yakınsama hızı, teklifin gerçek dağılıma ne kadar yaklaştığına bağlıdır. En yaygın öneri, örneklemeye çalıştığınız dağıtımdan bağımsız olarak, şu anki bir gauss'u koymaktır ...
Nick Alger
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.