Câu hỏi tôi quan tâm có liên quan đến việc tạo ra hoán vị ngẫu nhiên. Đưa ra một cổng hoán đổi cặp xác suất là khối xây dựng cơ bản, cách hiệu quả nhất để tạo ra hoán vị ngẫu nhiên thống nhất của phần tử là gì? Ở đây tôi lấy "cổng hoán đổi cặp xác suất" là hoạt động thực hiện một cổng hoán đổi giữa các yếu tố và với một số xác suất có thể được tự do lựa chọn cho mỗi cổng và nhận dạng khác.
Tôi nhận ra rằng đây thường không phải là cách người ta tạo ra các hoán vị ngẫu nhiên, trong đó thông thường người ta có thể sử dụng thứ gì đó như xáo trộn Fisher-Yates, tuy nhiên, điều này sẽ không hoạt động cho ứng dụng mà tôi có trong đầu vì các hoạt động được phép là khác nhau.
Rõ ràng điều này có thể được thực hiện, câu hỏi là làm thế nào hiệu quả. Số lượng hoán đổi xác suất ít nhất cần thiết để đạt được mục tiêu này là gì?
CẬP NHẬT:
Anthony Leverrier cung cấp một phương pháp dưới đây thực sự tạo ra phân phối chính xác bằng cách sử dụng , với Tsuyoshi Ito cung cấp một cách tiếp cận khác với cùng tỷ lệ trong các nhận xét. Tuy nhiên, tốt nhất hạn dưới tôi đã nhìn thấy cho đến nay là , mà quy mô như . Vì vậy, câu hỏi vẫn còn bỏ ngỏ: Liệu là tốt nhất có thể được thực hiện (tức là có giới hạn dưới tốt hơn)? Hoặc cách khác, có một gia đình mạch hiệu quả hơn?
CẬP NHẬT:
Một số câu trả lời và nhận xét đã đề xuất các mạch bao gồm toàn bộ các giao dịch hoán đổi xác suất trong đó xác suất được cố định ở . Một mạch như vậy không thể giải quyết vấn đề này vì lý do sau (được lấy từ các ý kiến):
Hãy tưởng tượng một mạch sử dụng cổng như vậy. Sau đó, có đường tính toán có thể trang bị được , và do đó, bất kỳ hoán vị nào cũng phải xảy ra với xác suất đối với một số nguyên k. Tuy nhiên, để phân phối đồng đều, chúng tôi yêu cầu
CẬP NHẬT (từ mjqxxxx người đang cung cấp tiền thưởng):
Tiền thưởng được cung cấp là cho (1) một bằng chứng cho thấy các cổng là bắt buộc, hoặc (2) một mạch làm việc, đối với bất kỳ , sử dụng ít hơn cổng.n n ( n - 1 ) / 2