Thuật toán ngẫu nhiên mà trông có vẻ quyết định?


31

Có một ví dụ thú vị về thuật toán ngẫu nhiên cho một vấn đề tìm kiếm luôn đưa ra cùng một câu trả lời (đúng), bất kể tính ngẫu nhiên bên trong của nó, nhưng khai thác tính ngẫu nhiên để thời gian chạy dự kiến ​​của nó tốt hơn thời gian chạy nhanh nhất được biết đến thuật toán xác định cho vấn đề?

Cụ thể, tôi đã tự hỏi nếu có một thuật toán như vậy để tìm một số nguyên tố giữa n và 2n. Không có thuật toán xác định thời gian đa thức đã biết. Có một thuật toán ngẫu nhiên tầm thường hoạt động chỉ bằng cách lấy mẫu các số nguyên ngẫu nhiên trong khoảng, hoạt động nhờ vào định lý số nguyên tố . Nhưng có một thuật toán thuộc loại trên mà thời gian chạy dự kiến ​​là trung gian giữa hai loại không?

EDIT: Để tinh chỉnh câu hỏi của tôi một chút, tôi muốn một thuật toán như vậy cho một vấn đề trong đó có nhiều đầu ra chính xác có thể, và thuật toán ngẫu nhiên giải quyết trên một độc lập với tính ngẫu nhiên của nó. Tôi nhận ra rằng câu hỏi có lẽ không được chỉ định đầy đủ ...


3
Để cung cấp cho bạn một số từ khóa tìm kiếm, các thuật toán ngẫu nhiên luôn tạo ra câu trả lời đúng (và sử dụng tính ngẫu nhiên trong thời gian chạy ngắn hơn) được gọi là thuật toán Las Vegas (trái ngược với thuật toán Monte Carlo) hoặc thuật toán không có lỗi và lớp phức tạp liên quan là ZPP .
Tsuyoshi Ito

@Tsuyoshi: Cảm ơn bình luận của bạn. Nhưng tôi không biết các thuật toán kiểu Las Vegas cho các vấn đề tìm kiếm. Đây là câu hỏi của tôi.
arnab

Nếu có một thuật toán ngẫu nhiên để tìm các cân bằng Nash duy nhất sẽ trả lời câu hỏi của bạn.
Warren Schudy

Có lẽ có một số vấn đề liên quan đến các cuộc tấn công sinh nhật ( en.wikipedia.org/wiki/BISS_attack ) sẽ phù hợp với yêu cầu của bạn?
Warren Schudy

Câu trả lời:


23

Shafi Goldwasser liên lạc với tôi rằng cô ấy và các đồng tác giả đã nghiên cứu chính xác các thuật toán như vậy cho các vấn đề lý thuyết số! Sau đây là:

  1. Lenstra đã chỉ ra rằng có một thuật toán như vậy để tìm một mod không tồn dư bậc hai một số nguyên tố nhất định.

  2. Gat và Goldwasser đã chỉ ra rằng có một thuật toán như vậy để tìm một trình tạo , trong đó p là một số nguyên tố đã cho có dạng 2 q + 1 cho một số nguyên tố q .Zpp2q+1q

(Tôi không biết về các tài liệu tham khảo có thể trích dẫn.) Ngoài ra còn có nghiên cứu liên tục về câu hỏi tôi đã hỏi về việc tìm một số nguyên tố giữa 2 n .n2n

EDIT: Bài viết của Gat và Goldwasser hiện đã được xuất bản: http://eccc.hpi-web.de/report/2011/136/ . Bài viết này mặc dù không giải quyết được câu hỏi tìm số nguyên tố giữa 2 n .n2n


1
Ảo +1. Điều này thực sự thú vị, sẽ xem ra cho bài báo.
András Salamon

2
Mặc dù ghi chú, tôi đã nâng cao câu trả lời này đơn giản vì đây là một câu trả lời hay. Tôi không nghĩ rằng có bất cứ điều gì sai trái trong việc nâng cao một câu trả lời hay được đăng cho người khác. Tôi bắt đầu một cuộc thảo luận về Meta về điều này.
Tsuyoshi Ito

1
Tôi đã xóa ghi chú và biến nó thành "wiki cộng đồng" theo cuộc thảo luận về chủ đề meta.
arnab

Chủ đề meta được đề cập bởi arnab có thể được tìm thấy ở đây: meta.cstheory.stackexchange.com/q/607/873 .
MS Dousti

18

Do cấu trúc dữ liệu ngẫu nhiên được tính?

danh sách bỏ qua là cấu trúc dữ liệu bản đồ liên kết được sắp xếp.

Thời gian chạy của nó cho các hoạt động phổ biến như chèn, truy xuất và xóa là (trong trường hợp dự kiến) ngang bằng với các hoạt động trong cây tìm kiếm cân bằng - tức là . Tuy nhiên, cấu trúc dữ liệu đôi khi được cho là có yếu tố không đổi tốt hơn nhiều so với việc triển khai cây tìm kiếm khi được thực hiện đúng cách (điều này phụ thuộc rất nhiều vào nguồn ngẫu nhiên tốt và hiệu quả). Yếu tố hằng số tốt hơn có lẽ xuất phát từ thực tế là không có sự tái cân bằng (hoặc bất kỳ hoạt động tương tự nào) phải diễn ra.O(logn)


Cảm ơn! Điều này chắc chắn có tính và là một câu trả lời không tầm thường cho câu hỏi ban đầu của tôi. Tôi muốn một vấn đề mặc dù tương tự như vấn đề tìm kiếm chính, nơi có nhiều giải pháp tiềm năng.
arnab

Thêm danh sách nhảy vào chuyến tàu tư tưởng đó.
Raphael

13

Làm thế nào về thuật toán đơn giản thời gian đa thức ngẫu nhiên của Kelner và Spielman? Nó tìm thấy đỉnh tối ưu của một chương trình tuyến tính. Không có thuật toán đơn giản xác định nào được biết là được chứng minh là chạy trong thời gian đa thức, và đối với nhiều người trong số họ, các trường hợp bệnh lý có thể được xây dựng khiến thuật toán mất thời gian theo cấp số nhân.

Tất nhiên, có các thuật toán điểm bên trong thời gian đa thức, vì vậy nó không chính xác là những gì bạn đang tìm kiếm.


Nếu có một vài điểm tối ưu, liệu Kelner-Spielman có luôn trả lại điểm giống nhau không?
Sasho Nikolov

3
Các chương trình tuyến tính chung chỉ có một điểm tối ưu, do đó, sử dụng nhiễu loạn, một biến thể của Kelner-Spielman có thể được thực hiện để luôn trả về cùng một điểm tối ưu.
Peter Shor

12

Hãy xem xét một cây nhị phân hoàn chỉnh với tất cả lá chứa 0, ngoại trừ một lá chứa 1. Nhiệm vụ là tìm lá có chứa 1. Chống lại bất kỳ thuật toán tìm kiếm xác định nào, có thể xây dựng một họ cây vô hạn (mỗi lá cho mỗi cây n ) thuật toán phải kiểm tra từng lá. Vì vậy, đối với trường hợp xấu nhất này, thuật toán xác định đã dự kiến ​​thời gian chạy 2 n .2nn2n

Bây giờ hãy xem xét một thuật toán chọn ngẫu nhiên lá đầu tiên một cách ngẫu nhiên, và sau đó kiểm tra tất cả các lá liên tiếp một cách xác định (bao quanh từ đầu). Điều này sẽ tìm thấy 1 sau khi kiểm tra một nửa của tất cả các lá, trung bình. Vì vậy, thuật toán ngẫu nhiên đã dự kiến ​​thời gian chạy .2n1

Điều này có đủ điều kiện?


Tốt đẹp!! Điều này chắc chắn đủ điều kiện, mặc dù tôi đang tìm kiếm một ví dụ không tầm thường hơn trong đó sự cải thiện về thời gian chạy là đáng kể hơn.
arnab

Bạn không cần cấu trúc cây, cái này hoạt động trên một mảng.
sdcvvc

7

Các thuật toán nhân tố đa thức có thể là loại ví dụ bạn đang tìm kiếm. Các Cantor-Zassenhaus thuật toán sử dụng tính ngẫu nhiên để tính toán (rộng tối đa duy nhất) các yếu tố đa thức bất khả quy đơn biến một đa thức cho hơn một trường hữu hạn trong thời gian đa thức trong kích thước của đầu vào và đăng nhậpFp . Nếu bạn thực sự muốn vấn đề có một câu trả lời duy nhất, bạn có thể yêu cầu các thừa số nguyên tố không thể thay đổi của một đa thức monic. Theo tôi biết, không biết làm thế nào để nhân tố trong thời gian đa thức xác định trừ khi p được đảm bảo là nhỏ.logpp

Nhân tiện, ở trên có thể tạo ra một thuật toán không có lỗi, vì chúng ta biết cách kiểm tra tính không thể xác định của một đa thức xác định trong đa thức thời gian theo mức độ của đa thức và logp . (Xem những ghi chú bài giảng này .)



3

Về câu hỏi đầu tiên của bạn, tôi nghĩ đến Quicksort trước nhưng điều đó là hiển nhiên.

Có một thuật toán khớp chuỗi ( Nebel, 2006 ) sử dụng các ý tưởng xác suất. Tuy nhiên, tôi biết rằng đây là cách tiếp cận nhanh nhất hiện có, và rõ ràng bạn cần một số mẫu để đào tạo.


Tìm kiếm trung bình cũng nhanh hơn, nhưng không đáng kể như vậy.
Aram Harrow

3

Bài báo STACS '97 sau đây có thể thú vị cho trường hợp của bạn: Độ phức tạp của việc tạo ra các trường hợp kiểm tra .

Tóm tắt: Gần đây, Watanabe đã đề xuất một khung mới để kiểm tra tính chính xác và hành vi trường hợp trung bình của các thuật toán nhằm mục đích giải quyết vấn đề tìm kiếm NP một cách hiệu quả trung bình. Ý tưởng là tạo ngẫu nhiên các thể hiện được chứng nhận theo cách giống với phân phối cơ bản. Chúng tôi thảo luận về cách tiếp cận này và chỉ ra rằng các phiên bản thử nghiệm có thể được tạo cho mọi vấn đề tìm kiếm NP với các truy vấn không thích ứng với một nhà tiên tri NP. Hơn nữa, chúng tôi giới thiệu Las Vegas cũng như các loại máy phát cá thể thử nghiệm Monte Carlo và cho thấy rằng các máy phát này có thể được sử dụng để tìm hiểu xem một thuật toán có chính xác và hiệu quả trung bình không. Trên thực tế, không khó để xây dựng các trình tạo Monte Carlo cho tất cả các vấn đề tìm kiếm RP cũng như các trình tạo Las Vegas cho tất cả các vấn đề tìm kiếm ZPP. Mặt khác,

Đặc biệt, hãy xem trang 384, trong Hệ quả 12:

ZPPRPZPPNPNPcoNP


2

1ncpolylog(n)


3
Điều này đề cập đến việc thử nghiệm và không tìm thấy ...
Dana Moshkovitz

Tôi đã quan tâm nhiều hơn trong các vấn đề tìm kiếm. Đối với các vấn đề quyết định, có các thuật toán Las Vegas.
arnab
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.