Khi nào ngẫu nhiên tăng tốc thuật toán và nó nên không nên?


39

Bằng chứng của Adman về được chứa trong cho thấy rằng nếu có một thuật toán ngẫu nhiên cho một vấn đề chạy trong thời gian trên các đầu vào có kích thước , thì cũng có một thuật toán xác định cho vấn đề chạy theo thời gian trên các đầu vào có kích thước [thuật toán chạy thuật toán ngẫu nhiên trên các chuỗi ngẫu nhiên độc lập . Phải có sự ngẫu nhiên cho thuật toán lặp lại phù hợp với cảP / p o l y t ( n ) n Θ ( t ( n ) n )BPPP/polyt(n)nΘ(t(n)n)Θ ( n ) 2 nnΘ(n)2nđầu vào có thể]. Thuật toán xác định là không đồng nhất - nó có thể hoạt động khác nhau đối với các kích cỡ đầu vào khác nhau. Vì vậy, lập luận của Adman cho thấy - nếu người ta không quan tâm đến tính đồng nhất - thì ngẫu nhiên chỉ có thể tăng tốc thuật toán theo một yếu tố tuyến tính trong kích thước đầu vào.

Một số ví dụ cụ thể trong đó ngẫu nhiên tăng tốc tính toán (theo sự hiểu biết tốt nhất của chúng ta) là gì?

Một ví dụ là kiểm tra danh tính đa thức. Ở đây, đầu vào là một mạch số học có kích thước n tính toán một đa thức biến thiên m trên một trường và nhiệm vụ là tìm hiểu xem đa thức có bằng 0 hay không. Một thuật toán ngẫu nhiên có thể đánh giá đa thức trên một điểm ngẫu nhiên, trong khi thuật toán xác định tốt nhất mà chúng ta biết (và có thể là tốt nhất tồn tại) đánh giá đa thức trên nhiều điểm.

Một ví dụ khác là cây bao trùm tối thiểu, trong đó thuật toán ngẫu nhiên tốt nhất của Karger-Klein-Tarjan là thời gian tuyến tính (và xác suất lỗi nhỏ theo cấp số nhân!), Trong khi thuật toán xác định tốt nhất của Chazelle chạy trong thời gian ( là hàm Ackermann nghịch đảo, do đó tốc độ tăng ngẫu nhiên thực sự rất nhỏ). Thật thú vị, Pettie và Ramachandran đã chứng minh rằng nếu có thuật toán thời gian tuyến tính xác định không đồng nhất cho cây bao trùm tối thiểu, thì cũng tồn tại thuật toán thời gian tuyến tính xác định thống nhất.αO(mα(m,n))α

Một số ví dụ khác là gì? Những ví dụ nào bạn biết tốc độ tăng ngẫu nhiên là lớn, nhưng điều này có thể chỉ vì chúng tôi chưa tìm thấy thuật toán xác định đủ hiệu quả?



Bạn luôn có thể chuyển đổi bất kỳ thuật toán ngẫu nhiên nào thành thuật toán xác định, bằng cách thay thế trình tạo ngẫu nhiên bằng trình tạo giả ngẫu nhiên có chất lượng mật mã. Theo giả định mật mã hợp lý rằng theo hiểu biết tốt nhất của chúng tôi là hợp lệ, điều này hoạt động tốt. Do đó, câu trả lời của tôi sẽ là: "theo hiểu biết tốt nhất của chúng tôi, câu trả lời là: không có bất kỳ vấn đề nào trong thế giới thực như vậy". (Nói cách khác, theo hiểu biết tốt nhất của chúng tôi, khoảng cách trong thời gian chạy phản ánh việc chúng tôi không thể chứng minh được giới hạn thời gian chạy chặt chẽ hơn là bất kỳ sự khác biệt cơ bản thực sự nào.)
DW

1
Theo giả định độ cứng hợp lý, bạn có thể cung cấp tính ngẫu nhiên của thuật toán từ trình tạo giả ngẫu nhiên, tuy nhiên để thực sự có được thuật toán xác định từ đó, bạn cần chạy thuật toán trên tất cả các hạt giống có thể. Điều này làm nổ tung thời gian chạy!
Dana Moshkovitz

Ngoài quan điểm của Dana, tôi nghĩ rằng để giải phóng BPP, PRG cần phải chạy trong thời gian nhiều hơn thuật toán ban đầu (mặc dù tôi không biết khoảng cách phải là gì). Ngoài ra, điều này có thể minh họa một khoảng cách (cơ bản?) Giữa độ chắc chắn và độ tin cậy theo cấp số nhân: Nó đủ để lặp lại thuật toán ngẫu nhiên lần (đối với bất kỳ hằng số ) để có xác suất chính xác , nhưng phiên bản xác định cần kiểm tra tất cả các hạt đa thức. c 2 - O ( c )cc2O(c)
usul

@DanaMoshkovitz, nó phụ thuộc vào việc bạn tiếp cận điều này từ góc độ lý thuyết hay quan điểm của người thực hành. Từ góc độ của một học viên, không, bạn không cần phải làm điều đó. Xem cấu trúc tôi phác thảo trong cs.stackexchange.com/a/41723/755 , chạy thuật toán trên chỉ hạt . Trong mô hình nhà tiên tri ngẫu nhiên, người ta có thể chỉ ra rằng không có sự gia tăng thời gian chạy tiệm cận và không có đối thủ bị ràng buộc về mặt tính toán có khả năng tìm thấy bất kỳ đầu vào nào cho thuật toán mà thuật toán tạo ra câu trả lời sai. Điều này có lẽ là đủ tốt cho tất cả các mục đích thực tế. O(1)
DW

Câu trả lời:


28

Tôi không biết nên chọn ngẫu nhiên, nên hay hay không nên giúp đỡ, tuy nhiên, việc kiểm tra tính nguyên thủy có thể được thực hiện kịp thời bằng cách sử dụng ngẫu nhiên MillerTHER Rabin, trong khi theo tôi biết, Các thuật toán xác định được biết đến nhiều nhất là giả sử GRH (Miller xác định Rabin) hoặc vô điều kiện (các biến thể của AKS). ˜ O (n4) ˜ O (n6)O~(n2)O~(n4)O~(n6)


Mặc dù có nhiều lý do để tin rằng nhân chứng độ phức tạp nhỏ nhất cho là theo thứ tự , sẽ đưa ra thuật toán . Nhưng điều này vẫn chưa được chứng minh ngay cả dưới những phỏng đoán lý thuyết số tiêu chuẩn như các biến thể của RH. log N log log N ˜ O ( n 3 )NlogNloglogNO~(n3)
Emil Jeřábek hỗ trợ Monica

Một vấn đề trong một tĩnh mạch tương tự là kiểm tra tính không thể phân tích đa thức trên các trường hữu hạn, trong đó thuật toán xác định được biết lại có giới hạn tồi tệ hơn các thuật toán ngẫu nhiên, nhưng tôi không nhớ chi tiết.
Emil Jeřábek hỗ trợ Monica

19

Một ví dụ cũ là tính toán khối lượng. Với một đa giác được mô tả bởi một nhà tiên tri thành viên, có một thuật toán ngẫu nhiên chạy trong thời gian đa thức để ước tính khối lượng của nó với hệ số , nhưng không có thuật toán xác định nào có thể đến gần vô điều kiện .1+ϵ

Ví dụ đầu tiên về chiến lược ngẫu nhiên như vậy là của Dyer, Frieze và Kannan, và kết quả độ cứng cho các thuật toán xác định là của Bárány và Füredi. Alistair Sinclair có ghi chú bài giảng hay về điều này .

Tôi không chắc chắn tôi hoàn toàn hiểu phần "và không nên" của câu hỏi, vì vậy tôi không chắc điều này phù hợp với dự luật.


1
Tôi đã biết về phương pháp MCMC nhưng không bị giới hạn dưới này và tôi khá ngạc nhiên (tôi nghĩ tất cả những gì được biết là # P-độ cứng). Bài viết "Tính toán âm lượng là khó khăn", có thể truy cập từ trang web của Füredi và họ đưa ra giới hạn thấp hơn về cơ bản về mức độ âm lượng có thể xấp xỉ. [n/logn]n
Jeremy Kun

9

tôi không biết nếu điều này trả lời câu hỏi của bạn (hoặc ít nhất là một phần của nó). Nhưng đối với các ví dụ trong thế giới thực, nơi ngẫu nhiên hóa có thể cung cấp tốc độ tăng trong các vấn đề tối ưu hóa và liên quan đến định lý Không ăn trưa miễn phí ( NFL ) .

Có một bài báo "Có lẽ không phải là một bữa trưa miễn phí mà ít nhất là một món khai vị miễn phí" trong đó cho thấy rằng sử dụng thuật toán ngẫu nhiên hóa, tối ưu hóa có thể có hiệu suất tốt hơn.

Trừu tượng:

Người ta thường tuyên bố rằng Thuật toán tiến hóa vượt trội hơn các kỹ thuật tối ưu hóa khác, đặc biệt, trong các tình huống không biết nhiều về chức năng mục tiêu được tối ưu hóa. Ngược lại, Wolpert và Mac đã (1997) đã chứng minh rằng tất cả các kỹ thuật tối ưu hóa đều có cùng một hành vi --- trung bình trên tất cả trong đó và là tập hợp hữu hạn. Kết quả này được gọi là [Định lý] Không ăn trưa miễn phí. Ở đây các kịch bản khác nhau của tối ưu hóa được trình bày. Có ý kiến ​​cho rằng tại sao kịch bản dựa trên Định lý bữa trưa miễn phí không dựa trên mô hình tối ưu hóa thực tế. Đối với các kịch bản thực tế hơn, người ta tranh luận tại sao các kỹ thuật tối ưu hóa khác nhau về hiệu quả của chúng. Đối với một ví dụ nhỏ yêu cầu này được chứng minh.f:XYXY

Tài liệu tham khảo:

  1. Không có định lý bữa trưa miễn phí cho tối ưu hóa ( định lý NFL ban đầu để tối ưu hóa)
  2. Có lẽ không phải là một bữa trưa miễn phí mà ít nhất là một món khai vị miễn phí
  3. Thời lượng không có bữa trưa và mô tả miễn phí (cho thấy kết quả NFL giữ cho mọi tập hợp con của tập hợp tất cả các chức năng có thể iff được đóng dưới hoán vị, cốc )FF
  4. Trên các lớp chức năng mà không có kết quả Bữa trưa miễn phí nào (Người ta chứng minh rằng phần nhỏ của các tập hợp con là cốc nhỏ không đáng kể)
  5. Hai loại hàm rộng mà kết quả không có bữa ăn trưa miễn phí không giữ (cho thấy kết quả NFL không áp dụng cho một tập hợp các hàm khi độ dài mô tả của các hàm được giới hạn đủ)
  6. Bữa trưa liên tục là miễn phí cộng với việc thiết kế các thuật toán tối ưu hóa tối ưu (cho thấy rằng đối với các miền liên tục, [phiên bản chính thức của NFL không giữ được. Định lý bữa trưa miễn phí này dựa trên việc chính thức hóa khái niệm các chức năng thể dục ngẫu nhiên bằng các trường ngẫu nhiên )
  7. Vượt ra ngoài bữa trưa miễn phí: Các thuật toán thực tế cho các lớp vấn đề tùy ý (cho thấy rằng ".. [a] sẽ vi phạm các định lý Không ăn trưa miễn phí có thể được biểu thị dưới dạng phân phối không đồng nhất trên các tập con vấn đề là cốc ")
  8. Các thuật toán siêu dữ liệu dựa trên Swarm và các định lý không ăn trưa miễn phí ("[..t] dưới đây, kết quả cho các lần lặp không theo thứ tự thời gian có thể không đúng đối với các trường hợp xem xét lại, bởi vì các lần lặp lại xem lại phá vỡ một giả định quan trọng của cốc cần thiết để chứng minh các định lý NFL (Marshall và Hinton, 2010) ")
  9. Không có bữa ăn trưa miễn phí và tính ngẫu nhiên thuật toán
  10. Không có bữa ăn trưa và điểm chuẩn miễn phí (một cách tiếp cận theo lý thuyết tập hợp, nó được khái quát theo các tiêu chí không đặc trưng cho cốc , nhưng vẫn lưu ý rằng các thuật toán ngẫu nhiên (không tầm thường) có thể vượt trội hơn các thuật toán xác định, "[..] nó đã được chứng minh rằng xác suất là không đủ để khẳng định kết quả NFL không bị ràng buộc trong trường hợp chung. [..] bài viết này từ bỏ xác suất, ưu tiên một khung lý thuyết tập hợp làm hạn chế các giới hạn lý thuyết đo lường bằng cách phân phối hoàn toàn với xác suất ")

Tóm tắt về bữa trưa không miễn phí (và bữa trưa miễn phí) của David H. Wolpert, Bữa tối có giá bao nhiêu? ( lưu ý rằng các định lý loại NFL không bao giờ chỉ định " giá " thực tế do loại bằng chứng của chúng)

cụ thể để tối ưu hóa tổng quát (GO):

  1. Hai không gian và . Ví dụ, là đầu vào, là phân phối trên đầu ra.XZXZ

  2. Chức năng tập thể dụcf:XZ

  3. m (có thể lặp lại) các điểm được lấy mẫu của : trong đó , mỗi a (có lẽ là ngẫu nhiên) củaf

    dm={dm(1),dm(2),...,dm(m)}
    t
    dm(t)={dmX(t),dmZ(t)}
    dmZ(t)f[dmX(t)]
  4. Thuật toán tìm kiếma={dtdmX(t):t=0..m}

  5. Hàm chi phí có giá trị véc tơ EuclideC(f,dm)

  6. Để nắm bắt một loại vấn đề tối ưu hóa cụ thể, phần lớn cấu trúc vấn đề được thể hiện bằngC(.,.)

Các định lý NFL phụ thuộc chủ yếu vào việc độc lập với . Nếu phụ thuộc vào , bữa trưa miễn phí có thể có thể. Ví dụ: có độc lập với , trừ khi .f C f C ( f , d m ) f = f *CfCfC(f,dm)f=f

Cuối cùng, một nhận xét đơn giản (và không đơn giản) tại sao ngẫu nhiên hóa (dưới dạng này hay dạng khác) có thể cung cấp hiệu suất vượt trội so với các thuật toán xác định nghiêm ngặt.

  1. Trong bối cảnh tối ưu hóa (mặc dù không bị hạn chế trong điều này), một quy trình tìm kiếm ngẫu nhiên có thể thoát trung bình cục bộ tốt hơn so với tìm kiếm xác định và đạt đến cực trị toàn cầu.
  2. Có một mối quan hệ thú vị (nhưng cũng không đơn giản trong cái nhìn đầu tiên) giữa thứ tự, tính chính xác và tính ngẫu nhiên của một bộ (theo nghĩa chung). Các Powerset của một tập (và cardinality của nó), intrinsicaly phụ thuộc vào một số (staticaly) đặt hàng cố định của bộ (yếu tố của) . Giả sử thứ tự trên (các yếu tố của) không (cố định) cố định (ngẫu nhiên có thể nhập vào đây, dưới dạng thứ tự ngẫu nhiên), tập hợp có thể đại diện cho quyền hạn của chính nó (nếu nó giúp nghĩ về nó như một loại của analog lượng tử của một tập cổ điển, nơi trật tự động đóng vai trò như vào tài khoản cho một loại nguyên tắc chồng ). A A A A A2AAAAA

1

Ví dụ tốt nhất là trong khu vực được coi là ứng cử viên tốt nhất hiện tại cho OWF, trong đó dường như mọi OWF phổ biến được nấu chín đều có thuật toán lũy thừa ngẫu nhiên ngẫu nhiên trong khi không tồn tại thuật toán hàm mũ phụ xác định (ví dụ: lấy hệ số nguyên). Trong thực tế, trong nhiều trường hợp, có lẽ có thuật toán hiệu quả được đưa ra một số chuỗi lời khuyên (tiền điện tử).


-5

Nếu bạn có một thuật toán sử dụng ngẫu nhiên, bạn luôn có thể thay thế nó bằng thuật toán xác định bằng các số giả ngẫu nhiên: Lấy mô tả của vấn đề, tính mã băm, sử dụng mã băm đó làm hạt giống cho trình tạo số giả ngẫu nhiên tốt . Trong thực tế, đó thực sự là những gì có thể xảy ra khi ai đó thực hiện thuật toán sử dụng ngẫu nhiên.

Nếu chúng ta bỏ mã băm, thì sự khác biệt giữa thuật toán này và thuật toán sử dụng ngẫu nhiên thực sự là tôi có thể dự đoán chuỗi số ngẫu nhiên được tạo và tôi có thể tạo ra một vấn đề sao cho số ngẫu nhiên dự đoán được áp dụng cho vấn đề của tôi sẽ luôn luôn đưa ra quyết định tồi tệ nhất có thể. Ví dụ, đối với Quicksort với trục giả ngẫu nhiên, tôi có thể xây dựng một mảng đầu vào trong đó trục giả ngẫu nhiên sẽ luôn tìm thấy giá trị lớn nhất có thể có trong mảng. Với sự ngẫu nhiên thực sự là không thể.

Với mã băm, tôi sẽ rất khó xây dựng một vấn đề trong đó các số giả ngẫu nhiên tạo ra kết quả tồi tệ nhất. Tôi vẫn có thể dự đoán các số ngẫu nhiên, nhưng nếu tôi thay đổi vấn đề, chuỗi số giả ngẫu nhiên thay đổi hoàn toàn. Tuy nhiên, bạn sẽ không thể chứng minh rằng tôi không thể xây dựng một vấn đề như vậy.


Tôi mới đến cstheory.SE. Vì vậy, downvoters - có gì sai với câu trả lời này?
Galdre

3
Có hai điều sai: (1) chúng ta không biết cách xây dựng số giả danh nói chung, (2) ngay cả khi chúng ta biết cách xây dựng chúng, chúng rất tốn kém về mặt tính toán. Số giả ngẫu nhiên được sử dụng trong thực tế không được đảm bảo để hoạt động trên lý thuyết; tất cả những gì chúng ta biết là dường như chúng hoạt động theo kinh nghiệm. (Thật vậy, hầu hết các PRNG thực sự đang sử dụng đều có thể bị phá vỡ, vì vậy chúng thực sự không an toàn để sử dụng nói chung, chỉ khi bạn không cố gắng phá vỡ chúng một cách cụ thể.)
Yuval Filmus

2
cstheory.se là về khoa học máy tính lý thuyết *, không phải thực hành lập trình. Dù muốn hay không, hai khu vực khá tách biệt.
Yuval Filmus

2
@YuvalFilmus: Công cụ tạo bước thay thế được phát minh bởi C. Gunther trở lại vào năm 1987 vẫn chưa bị phá vỡ (chưa có sự phá vỡ công khai nào và tôi nghi ngờ NSA cũng đã phá vỡ nó). Hai mươi tám năm là một thời gian dài để không bị phá vỡ, tôi ngạc nhiên rằng một máy phát đơn giản như vậy (ba cổng LFSR và một cổng XOR, nó đơn giản đến mức nào?) Vẫn chưa bị hỏng và không được sử dụng thường xuyên hơn.
William Hird

2
@WilliamHird: Tùy thuộc vào định nghĩa "bị hỏng", nó dường như đã thực sự bị hỏng (ít nhiều đến một mức độ tương tự như họ A5 / x có liên quan, hiệu quả hơn và được sử dụng rộng rãi). Xem crypto.stackexchange.com/a/342 .
Emil Jeřábek hỗ trợ Monica
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.