Lấy mẫu ngẫu nhiên trong một đa giác


9

Tôi muốn lấy mẫu một điểm ngẫu nhiên đồng đều trong một đa giác ...

Nếu lấy mẫu một số lượng lớn, họ sẽ có khả năng rơi vào hai khu vực như nhau nếu họ có cùng một khu vực.

Điều này sẽ khá đơn giản nếu nó là một hình vuông vì tôi sẽ lấy hai số ngẫu nhiên trong [0,1] làm tọa độ của mình.

Hình dạng tôi có là một đa giác thông thường, nhưng tôi muốn nó hoạt động cho bất kỳ đa giác nào.

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

Câu trả lời:


9
  1. Tam giác đa giác
  2. Xác định trong đó các tam giác mà điểm nên nằm (trọng số các vùng tam giác)
  3. Lấy mẫu điểm trong tam giác như được giải thích trong bài này

Có phải câu hỏi này không phải là một bản sao của câu hỏi cũ mà bạn liên kết?
Raphael

@Raphael: Liên quan, nhưng tổng quát hơn, tôi sẽ nói.
A.Schulz

4

Một cách dễ dàng là tìm hộp giới hạn cho đa giác của bạn và sử dụng lấy mẫu từ chối: lấy mẫu từ hộp giới hạn và chấp nhận nếu nó nằm trong đa giác, điều này sẽ xảy ra với xác suất ít nhất là (tôi nghĩ).1/2

Một khả năng khác là để tam giác đa giác của bạn. Đầu tiên lấy mẫu một tam giác theo tỷ lệ, sau đó lấy mẫu một điểm ngẫu nhiên trong tam giác. Cách thứ hai rất đơn giản: lên đến các phép biến đổi affine, tất cả các tam giác đều có dạng . Để lấy mẫu thống nhất một điểm từ phân bố đó, trước tiên, mẫu theo mật độ (nghĩa là lấy mẫu đồng nhất và tính ) và sau đó lấy mẫu một cách đồng đều (nghĩa là lấy mẫu đồng phục và tính ). Một phương pháp thậm chí đơn giản hơn là lấy mẫu và nếu{(x,y):x,y0,x+y1}x[0,1]2(1x)r[0,1] y[0,1-x]x=11ry[0,1x]y = ( 1 - x ) s x , y [ 0 , 1 ] x + y > 1 ( x , y )s[0,1]y=(1x)sx,y[0,1]x+y>1 thay thế bằng .(x,y)(1x,1y)


Lấy mẫu từ chối sẽ từ chối với xác suất nhiều nhất là 1/2 ở 2 chiều, nhưng ở các chiều cao hơn, xác suất từ ​​chối có thể tồi tệ hơn nhiều.
DW

Lấy mẫu từ chối có thể có tỷ lệ loại bỏ lớn hơn 1/2. Chỉ cần nghĩ về một xoắn ốc, hơi đùn.
A.Schulz

Nếu đa giác được đảm bảo là lồi thì sao?
Yuval Filmus

Nếu các hộp giới hạn của bạn được căn chỉnh theo trục, thì độ lồi không có ích gì; như các câu trả lời cho câu hỏi trước đó, chỉ cần xem xét một hình tam giác có các đỉnh tại (0, 1), (1, 0) và (x, x) cho x rất lớn - điều này sẽ chiếm một tỷ lệ nhỏ của hộp giới hạn của nó khi x đi đến vô cùng. Nếu bạn đang nói về hộp giới hạn nhỏ nhất có thể thì có lẽ bạn có thể rút ra giới hạn về âm lượng mà hình dạng lồi của bạn chiếm, nhưng sau đó bạn phải tìm hộp ...
Steven Stadnicki

4

Điều này hơi điên rồ, nhưng sẽ hoạt động tốt ngay cả khi đa giác của bạn rất kỳ lạ.

Sử dụng định lý ánh xạ Reimann để tìm một bản đồ phù hợp từ đĩa đơn vị đến đa giác của bạn, xem nó như một tập hợp con của . Xem, ví dụ các tài liệu tham khảo trong:C

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

Sau đó, sử dụng lực đẩy của mật độ đồng đều trên đĩa làm mật độ đề xuất trong lấy mẫu MCMC của Metropolis-Hastings .


Mặc dù bản đồ phù hợp không nhất thiết phải bảo tồn khu vực; chúng bảo toàn góc , nhưng điều này gần như được đảm bảo không lấy mẫu đa giác một cách đồng đều.
Steven Stadnicki

Do đó, cần phải sử dụng nó như một đề xuất trong MCMC, chứ không phải như một bộ lấy mẫu thực tế. Với bất đẳng thức Poincare, bạn có thể hiển thị biến thể của bản đồ tuân thủ từ đồng phục được giới hạn bởi một hằng số.
Nick Alger

Có lẽ tôi vẫn còn thiếu nó; thảo luận về các nhọn-Wikipedia trang nói rằng 'phân phối thử nghiệm' vẫn cần phải được trực tiếp tỉ lệ với sự phân bố mong muốn; tức là không phải cho một số hằng số và , mà . Phương sai cục bộ trong mật độ ánh xạ vẫn sẽ dẫn đến phương sai cục bộ trong lấy mẫu. a b f ( x ) = c P ( x ) xaP(x)<f(x)<bP(x)abf(x)=cP(x)x
Steven Stadnicki

Toàn bộ quan điểm của Metropolis Hastings MCMC là đề xuất không phải là phân phối thực sự. Tốc độ hội tụ của chuỗi MCMC phụ thuộc vào mức độ đề xuất gần đúng với phân phối thực sự. Đề xuất phổ biến nhất là đặt một gaussian vào thời điểm hiện tại, bất kể phân phối mà bạn đang cố gắng lấy mẫu ...
Nick Alger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.