Tạo các biến ngẫu nhiên thỏa mãn các ràng buộc


9

Tôi cần tạo một danh sách các biến ngẫu nhiên theo các ràng buộc có thể được biểu thị dưới dạng trong đó là ma trận nếu có mục. Trong tất cả các trường hợp tôi đang xử lý, , ví dụ sẽ vào khoảng 14.000 và sẽ là 50. Tôi không chắc tôi sẽ sử dụng phương pháp nào để lấy mẫu ngẫu nhiên, bình thường hay thống nhất, không phải là rõ ràng cái nào là tốt nhất cho vấn đề tôi đang cố gắng giải quyết, nhưng tôi cần tất cả các biến được lấy mẫu từ các bản phân phối có cùng giá trị trung bình và phạm vi / phương sai.xEx=bEm×nxnn>>mnm

Những gì tôi đã làm để giải quyết vấn đề này là giảm thành dạng phản hồi hàng, đặt tất cả các biến tương ứng với các cột ở bên phải của trục cuối cùng thành các giá trị ngẫu nhiên, sau đó giải phương trình ma trận vuông còn lại.E

Tuy nhiên, có một vấn đề, để giải quyết đẳng thức ma trận vuông, tôi trừ các giá trị đã đặt từ phía bên phải. Thật không may, phương sai cũng thêm vào, vì vậy 50 giá trị cuối cùng của tôi có xu hướng thay đổi lớn, điều không may là không thể chấp nhận được trong vấn đề này.

Có cách nào tốt hơn để làm điều này? Tôi không thể nghĩ ra cách khắc phục phương pháp hiện tại tôi đang sử dụng. Tôi sử dụng R.


2
Thật không may, bạn sẽ không thể làm điều này, trừ khi bạn thực sự may mắn với ma trận ràng buộc của mình. Ví dụ: hãy xem xét một ma trận ràng buộc có hai hàng, một mục nhập khác trong hàng đầu tiên ràng buộc và hai mục nhập khác trong hàng thứ hai ràng buộc . Rõ ràng, sẽ có một giá trị trung bình khác với ít nhất một trong số và và trừ khi bạn đặt phương sai cho và , một phương sai khác nhau. x1=0x2+x3=1x1x2x3x2x3=0
jbowman

Câu trả lời:


1

Gói giấy và R này đã giải quyết hoàn toàn vấn đề của tôi. Nó sử dụng phương pháp Markov Chain Monte Carlo, dựa trên thực tế là nếu bạn có thể tìm ra giải pháp ban đầu cho ràng buộc, thông qua lập trình tuyến tính, bạn có thể tìm thấy một số tùy ý của chúng bằng cách sử dụng ma trận khi nhân với , các ràng buộc , cho không. Đọc về nó ở đây:E

http://www.vliz.be/imitorocs/publications/149403.pdf

và đây là gói:

http://cran.r-project.org/web/packages/limSolve/index.html


1
vliz.be/imitorocs/publications/149403.pdf dường như không có sẵn, vui lòng cập nhật liên kết
eee

0

Có thể có vẻ tầm thường (và không hiệu quả máy móc khủng khiếp), nhưng xem xét lặp lại quá trình cho đến khi bạn nhận được một câu trả lời phù hợp? Tốt nhất chỉ nên sửa đổi một tập hợp con nhỏ hơn mỗi lần.

Bạn có thể tạo ra một thước đo "khoảng cách" cho khoảng cách xa câu trả lời lý tưởng của bạn không? Nó có thể giúp bạn "tối ưu hóa"?


Tôi có thể thử nó. Một vấn đề là tôi vẫn sẽ cần đảm bảo hình dạng của phân phối sẽ giống nhau. Ngoài ra hạn chế thời gian sẽ bị cấm.
Mike Flynn
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.