Phân loại các thuật toán ngẫu nhiên


14

Từ Wikipedia về các thuật toán ngẫu nhiên

Người ta phải phân biệt giữa các thuật toán sử dụng đầu vào ngẫu nhiên để giảm thời gian chạy hoặc sử dụng bộ nhớ dự kiến, nhưng luôn chấm dứt với kết quả chính xác trong một khoảng thời gian giới hạn và các thuật toán xác suất , tùy thuộc vào đầu vào ngẫu nhiên, có cơ hội tạo ra một kết quả không chính xác (thuật toán Monte Carlo) hoặc không tạo ra kết quả (thuật toán Las Vegas) bằng cách báo hiệu lỗi hoặc không kết thúc.

  1. Tôi đã tự hỏi làm thế nào loại " thuật toán đầu tiên sử dụng đầu vào ngẫu nhiên để giảm thời gian chạy dự kiến ​​hoặc sử dụng bộ nhớ, nhưng luôn chấm dứt với kết quả chính xác trong một khoảng thời gian giới hạn?
  2. Sự khác biệt nào giữa nó và thuật toán Las Vegas có thể không tạo ra kết quả?
  3. Nếu tôi hiểu chính xác, các thuật toán xác suất và thuật toán ngẫu nhiên không phải là cùng một khái niệm. Các thuật toán xác suất chỉ là một loại thuật toán ngẫu nhiên, và loại khác là các thuật toán sử dụng đầu vào ngẫu nhiên để giảm thời gian chạy dự kiến ​​hoặc sử dụng bộ nhớ, nhưng luôn kết thúc với kết quả chính xác trong một khoảng thời gian giới hạn?

Câu trả lời:


12
  1. Một ví dụ về thuật toán như vậy là Sắp xếp nhanh ngẫu nhiên, trong đó bạn ngẫu nhiên hoán vị danh sách hoặc chọn ngẫu nhiên giá trị trục, sau đó sử dụng Sắp xếp nhanh như bình thường. Sắp xếp nhanh có thời gian chạy tệ nhất là , nhưng trong danh sách ngẫu nhiên có thời gian chạy dự kiến ​​là O ( n log n ) , vì vậy nó luôn chấm dứt sau các bước O ( n 2 ) , nhưng chúng ta có thể mong đợi ví dụ ngẫu nhiên để chấm dứt sau các bước O ( n log n ) , luôn luôn có câu trả lời đúng.Ôi(n2)Ôi(nđăng nhậpn)Ôi(n2)Ôi(nđăng nhậpn)

  2. Điều này đưa ra một tập hợp các thuật toán Las Vegas. Các thuật toán Las Vegas cũng cho phép khả năng (với xác suất thấp) nó hoàn toàn không thể chấm dứt - không chỉ chấm dứt với một chút thời gian nữa.

  3. Đến lượt chúng thực sự chỉ là một loại thuật toán Monte Carlo, trong đó câu trả lời có thể không chính xác (với xác suất thấp), ít nhất là về mặt khái niệm khác nhau để có thể không trả lời.

Tất nhiên có rất nhiều chi tiết tôi đã bỏ qua, bạn có thể muốn tìm kiếm các lớp phức tạp ZPP, RP và BPP, chính thức hóa các ý tưởng này.


Cảm ơn! Vậy thuật toán ngẫu nhiên, thuật toán Monte Carlo và thuật toán xác suất có cùng một khái niệm?
StackExchange cho tất cả các

Đúng, mặc dù thuật toán Monte Carlo là một loại thuật toán xác suất cụ thể (tương ứng với lớp BPP - có các lớp khác như PP có xác suất, nhưng - có lẽ! - chứa nhiều hơn BPP). Tôi không chắc tại sao câu đó lại nằm trong bài viết trên wikipedia, có lẽ ai đó đã nhầm lẫn với phân tích xác suất, đó là một điều gì đó khác biệt.
Luke Mathieson

8

Hai thuật ngữ ngẫu nhiên thuật toánthuật toán xác suất được sử dụng trong hai bối cảnh khác nhau. Các thuật toán ngẫu nhiên là các thuật toán sử dụng tính ngẫu nhiên, trái ngược với các thuật toán xác định không. Các thuật toán xác suất , ví dụ các thuật toán xác suất để kiểm tra tính nguyên thủy, là các thuật toán sử dụng tính ngẫu nhiên và có thể gây ra lỗi với một số (hy vọng) xác suất nhỏ.

Một sự khác biệt quan trọng phải được thực hiện giữa thuật toán Monte Carlothuật toán Las Vegas . Các thuật toán Las Vegas là các thuật toán ngẫu nhiên luôn trả về câu trả lời đúng, nhưng thời gian chạy của chúng phụ thuộc vào các lần tung đồng xu. Một ví dụ là thuật toán bao thanh số nguyên - chúng luôn trả về các yếu tố chính xác, nhưng thời gian chạy của chúng phụ thuộc vào tính ngẫu nhiên. Khi nêu thời gian chạy của thuật toán Las Vegas (nói là thuật toán bao thanh toán), chúng tôi thực sự nêu rõ thời gian chạy dự kiến ; nếu chúng ta không may mắn, thuật toán có thể chạy lâu hơn.

Mặt khác, thuật toán Monte Carlo là thuật toán ngẫu nhiên có thời gian chạy được đặt trước thời hạn. Các thuật toán như vậy có thể mắc lỗi, nhưng thường thì xác suất lỗi rất thấp. Một ví dụ điển hình là thử nghiệm tính nguyên thủy xác suất. Các thuật toán này rất nhanh nhưng có thể gây ra lỗi. Tuy nhiên, xác suất lỗi thấp chậm mà trong thực tế, họ không bao giờ mắc lỗi.

Mọi thuật toán Las Vegas có thể được chuyển đổi thành thuật toán Monte Carlo bằng cách dừng thực thi sau một thời gian đủ dài, do đó, thuật toán Las Vegas theo nghĩa nào đó "tốt hơn" so với thuật toán Monte Carlo.


Bạn có thể trích dẫn một tài liệu tham khảo cho các định nghĩa này?
R. Chopin

Wikipedia nên có một số tài liệu tham khảo có liên quan.
Yuval Filmus
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.