Випадкова вибірка у багатокутнику


9

Я хотів би пробити рівномірну випадкову точку в полігоні ...

Якщо взяти вибірку великої кількості, вони з однаковою ймовірністю потраплять у два регіони, якщо вони мають однакову площу.

Це було б досить просто, якби це квадрат, оскільки я б взяв два випадкових числа в [0,1] як свої координати.

Форма у мене звичайний багатокутник, але я хотів би, щоб він працював на будь-якому багатокутнику.

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

Відповіді:


9
  1. Трикутник багатокутника
  2. Визначте, в якому з трикутників повинна лежати точка (ваги трикутника)
  3. Зразки точки в трикутнику, як пояснено в цій публікації

Чи це запитання не є дублікатом старого, на який ви посилаєтесь?
Рафаель

@Raphael: Супутнє, але більш загальне, я б сказав.
А.Шульц

4

Один із простих способів - знайти обмежувальний ящик для вашого багатокутника та використати вибірку відхилення: зразок з обмежувального поля та прийняти, якщо він потрапить у полігон, що станеться з ймовірністю принаймні (я думаю).1/2

Інша можливість - тріангулювати свій багатокутник. Спочатку вибірку трикутника пропорційним способом, а потім вибірку випадкової точки в трикутнику. Останнє просте: аж до афінних перетворень всі трикутники мають вигляд . Щоб відібрати рівномірно точку з цього розподілу, спочатку зразок відповідно до щільності (тобто вибірка рівномірного і обчислити ), а потім вибірку рівномірно (тобто вибірку рівномірного і обчислити ). Ще простішим методом є вибірка , і якщо{(x,y):x,y0,x+y1}x[0,1]2(1x)r[0,1]x=11ry[0,1x]s[0,1]y=(1x)sx,y[0,1]x+y>1 замініть на .(x,y)(1x,1y)


Відбір проб відхилення відхилятиме з вірогідністю не більше 1/2 на 2 виміри, але у більш високих вимірах ймовірність відхилення може бути набагато гіршою.
DW

Відбір проб відхилення може мати більший показник відхилення, ніж 1/2. Подумайте лише про спіраль, злегка видавлену.
А.Шульц

Що робити, якщо багатокутник гарантовано буде опуклим?
Yuval Filmus

Якщо ваші обмежувальні коробки розташовані по осі, то опуклість не допоможе; як підказують відповіді на попереднє запитання, просто розгляньте трикутник з вершинами при (0, 1), (1, 0) і (x, x) для дуже великих х - це займе малу частку його обмежувального поля як х іде до нескінченності. Якщо ви говорите про найменший можливий обмежувальний ящик, то, ймовірно, ви можете встановити межі на об’єм, який ваша опукла форма займає, але тоді ви повинні знайти вікно ...
Стівен Стадницький,

4

Це трохи божевільно, але має працювати добре, навіть якщо ваш багатокутник дуже дивний.

Використовуйте теорему відображення Реймана, щоб знайти конформну карту від одиничного диска до вашого багатокутника, розглядаючи його як підмножину . Див., Наприклад, посилання на:C

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

Потім використовуйте придушення рівномірної щільності на диску як щільність пропозиції у вибірці Metropolis-Hastings MCMC .


Хоча конформальні карти не обов'язково зберігають площу; вони зберігають кут , але це майже гарантовано, щоб не взяти вибірку багатокутника рівномірно.
Стівен Стадницький

Таким чином, потрібно використовувати його як пропозицію в MCMC, а не як фактичну вибірку. За допомогою нерівності Пуанкаре можна показати зміну конформної карти від рівномірної, обмеженої постійною.
Нік Алгер

Мені, мабуть, все одно цього не вистачає; в дискусії на сторінці, що вказується на Вікіпедію, сказано, що «пробний розподіл» все ще повинен бути прямо пропорційним бажаному розповсюдженню; тобто не для деяких констант і , а . Локальна дисперсія в відображеній щільності все ще призведе до локальної дисперсії в вибірці. aP(x)<f(x)<bP(x)abf(x)=cP(x)x
Стівен Стадницький

Вся суть Метрополіса Гастінгса MCMC полягає в тому, що пропозиція не є справжнім розповсюдженням. Швидкість конвергенції ланцюга MCMC залежить від того, наскільки пропозиція наближає справжній розподіл. Найпоширеніша пропозиція - це поставити гаусса в поточну точку, незалежно від розподілу, який ви намагаєтеся взяти на вибірку ...
Нік Алгер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.