Các thuật toán xác suất (ngẫu nhiên) trước khi xuất hiện khoa học máy tính hiện đại


27

Chỉnh sửa: Tôi chọn câu trả lời có điểm cao nhất vào ngày 06 tháng 12 năm 2012.

Đây là một câu hỏi mềm.

Khái niệm thuật toán (xác định) có từ thời BC. Điều gì về các thuật toán xác suất?

Trong mục wiki này , thuật toán của Rabin cho bài toán cặp gần nhất trong hình học tính toán được đưa ra dưới dạng thuật toán ngẫu nhiên đầu tiên (năm ???). Lipton đã giới thiệu thuật toán của Rabin là sự khởi đầu của kỷ nguyên hiện đại của các thuật toán ngẫu nhiên ở đây , nhưng không phải là thuật toán đầu tiên. Tôi cũng biết nhiều thuật toán cho automata hữu hạn xác suất (một mô hình tính toán rất đơn giản) được phát hiện trong những năm 1960.

Bạn có biết bất kỳ thuật toán xác suất / ngẫu nhiên (hoặc phương pháp) nào ngay cả trước những năm 1960 không?

hoặc là

Phát hiện nào có thể được xem là thuật toán xác suất / ngẫu nhiên đầu tiên?


25
Ý tưởng lâu đời về việc nếm một muỗng súp sôi để kiểm tra xem nó có đúng không về cơ bản là lấy mẫu ngẫu nhiên, một thuật toán xác suất với các đảm bảo có thể chứng minh được.
arnab

3
Thuật toán của Rabin đã được xuất bản năm 1976, rất lâu sau khi khoa học máy tính "hiện đại" được thiết lập tốt.
Jeffε

Có lẽ bạn có thể làm rõ nếu có bất kỳ tiêu chí nào bạn muốn áp đặt cho "thuật toán", để làm rõ liệu bạn có nghĩ rằng đó là hiện tượng tự nhiên có trước nhân loại hàng tỷ năm đại diện cho "thuật toán", như được đề xuất bởi một số câu trả lời phía dưới?
Niel de Beaudrap

@NieldeBeaudrap: Điều trong suy nghĩ của tôi là một số thuật toán được xác định rõ về mặt toán học. (Nhưng, cá nhân tôi rất thích câu trả lời của arnab :))
Abuzer Yakaryilmaz

Câu trả lời:


33

Điều này được thảo luận một chút trong bài báo của tôi với HC Williams, "Bao thanh toán trước máy tính"

Trong một bài báo năm 1917, HC Pocklington đã thảo luận về một thuật toán để tìm sqrt (a), modulo p, phụ thuộc vào việc chọn các phần tử một cách ngẫu nhiên để có được một hình thức không đáp ứng của một hình thức nhất định. Trong đó, ông nói, "Chúng tôi phải thực hiện điều này [tìm ra sự không đáp ứng] bằng thử nghiệm, sử dụng Định luật đối xứng bậc hai, là một khiếm khuyết trong phương pháp. Nhưng đối với mỗi giá trị của một nửa giá trị của t là phù hợp, không nên gặp khó khăn trong việc tìm kiếm một người. "

Vì vậy, đây là một trong những đề cập rõ ràng đầu tiên của một thuật toán ngẫu nhiên.


3
Đây là một tài liệu tham khảo thực sự tốt đẹp. Thuật toán của Pocklington đã bị khử từ? Về mặt thực tế, tôi yêu công việc của bạn - cả trong và ngoài CS - đặc biệt là thuật toán của bạn cho phỏng đoán của Bachet (bài báo rất khó để tìm một bản sao mặc dù!) Mà cả quyền tự do dân sự của bạn cũng hoạt động. Bạn đã xem "Mr. Death" của Errol Morris chưa?
Ross Snider

hấp dẫn. nó gợi nhớ đến thử nghiệm nguyên thủy ngẫu nhiên
Sasho Nikolov

3
Và một thuật toán Las Vegas cũng vậy! Tham khảo tốt đẹp.
David Eppstein

Tham khảo rất hay.
Jérémie

Nói về bao thanh toán trước máy tính, có ai biết những gì Lehmer biết về thuật toán pocklington, hoặc bất kỳ thuật toán ngẫu nhiên nào khác, hoặc liệu Lehmer có thực sự từng thực hiện nó trên máy tính bao thanh toán của mình không? cả hai dường như có một số mối liên hệ với acc thử nghiệm nguyên thủy Pocklington-Lehmer với wikipedia
vzn

28

Thuật toán kim Buffons để ước tính , về cơ bản là phương pháp Monte Carloπ , được xuất bản vào năm 1777. lưu ý rằng phương pháp Monte Carlo có từ những năm 1940 với dự án bom nguyên tử "Manhattan" của Hoa Kỳ và đã được Ulam, Von Neumann và Metropolis chế tạo.


8
Thật ra điều này có liên quan đến một câu hỏi mà tôi đã hỏi . Không ai biết chính xác ai đã nghĩ ra thuật toán mà nhiều người coi là kim của Buffon ngày nay.
Jérémie

đã nói chính xác hơn, có một thuật toán kim Buffon rõ ràng liên quan đến việc thả kim trên các sọc và thuật toán "điểm ngẫu nhiên so với vòng tròn" rõ ràng khác biệt như bạn đã đề cập trong câu hỏi mà một số người dường như gán sai cho Buffon, khác, nhiều hơn nguồn gốc hiện đại, nhưng không chắc chắn.
vzn

19

Các thuật toán Metropolis-Hastings được xuất bản vào năm 1953 và ngày sao lưu trước đó để dự án Manhattan, rất lâu trước Rabin. Giống như nhiều phương pháp ngẫu nhiên ban đầu được đưa ra trong các câu trả lời khác, đó là thuật toán Monte Carlo.

Có thể là tuyên bố trên trang Wikipedia là một dạng bị cắt xén của tuyên bố rằng Rabin là thuật toán Las Vegas đầu tiên ?


11

Các Gaussian bình thường đường cong / phân phối số liệu thống kê có thể được "tính" của nhiều quá trình vật lý rất đơn giản. Một trong những cách đơn giản nhất là một bảng với một mảng pin trong lưới hình tam giác (còn được gọi là "hộp Galton" có niên đại từ những năm 1800) trong đó các chân được bù 1/2 khoảng cách vuông trên các hàng xen kẽ. Thả bóng liên tục từ cùng một vị trí, các quả bóng thay thế ngẫu nhiên sang trái hoặc phải với xác suất 0,5. Phân phối tích lũy được ghi nhận tại các vị trí dưới cùng mang lại đường cong Gaussian / bình thường.


+1 chỉ vì tôi hiện đang thiết kế logo cho nhóm nghiên cứu thống kê của chúng tôi và Hộp Galton là ý tưởng đầu tiên của chúng tôi (nhưng hóa ra quá phức tạp đối với logo).
Konrad Rudolph

10

Theo tôi, tiến hóa tự nhiên là một thuật toán xác suất tốt và khá cũ :-)


1
+1 mặc dù mô tả về quá trình xác suất gần đây hơn nhiều. ;-)
Konrad Rudolph

7
"Thuật toán" gợi ý rằng có một vấn đề mà nó đang cố gắng giải quyết; Nhưng nó không phải là. Thậm chí không "cố gắng" tạo ra những động vật sống sót tốt hơn; tạo ra các động vật thích nghi với môi trường của nó chỉ là sản phẩm phụ (không phải lúc nào cũng đạt được, vì sự kiện tuyệt chủng và tuyệt chủng hàng loạt là điều hiển nhiên). Về mặt này, tiến hóa không phải là một thuật toán hơn trọng lực; đó chỉ là điều xảy ra.
Niel de Beaudrap

MDB đã chết! tiến hóa là một thuật toán di truyền chọn lọc cho sự tiến hóa và khoa học vẫn đang bắt kịp với tất cả các tác động của điều này .... tức là một lĩnh vực hoạt động nghiên cứu. nó đã không được chỉ ra nhiều hoặc được đánh giá cao, nhưng thành công phi thường của GA trong CS thực sự là bằng chứng toán học / khoa học mạnh mẽ về thực tế của lý thuyết tiến hóa sinh học. tuy nhiên, thừa nhận nó chắc chắn khác với các "thuật toán" khác theo một số cách chính.
vzn

2
@vzn: một "thuật toán di truyền", trước hết, chọn một chức năng tập thể dục mà chúng ta áp đặt cho một mục đích cụ thể. Chúng tôi sử dụng sự tiến hóa như một công cụ để làm một cái gì đó trong trường hợp đó. Nhưng điều đó không có nghĩa là tiến hóa sinh học là một thuật toán để làm bất cứ điều gì. Sử dụng phép so sánh trọng lực một lần nữa, có một ý nghĩa có ý nghĩa trong đó tất cả các thác nước là thuật toán, chỉ vì đôi khi chúng ta sử dụng thác nước để tạo ra điện?
Niel de Beaudrap

4
@vzn: Tôi chỉ khẳng định rằng "một thuật toán" sẽ đòi hỏi các tham số được xác định rõ về xác suất thành công, chưa kể rằng cần phải có một tác nhân thực hiện nó . "Tác nhân" duy nhất có thể nói là thực hiện "tiến hóa" sẽ là toàn bộ hệ sinh thái. Chúng ta nên nói gì về việc hệ sinh thái đang "cố gắng" để đạt được? Tôi muốn nói rằng bạn là người có bản chất nhân hóa. Tôi chỉ yêu cầu "áp dụng một thuật toán" đòi hỏi một số lượng chủ ý hướng mục tiêu, được áp dụng bởi con người hoặc không. Theo nghĩa nào thì một quá trình không có mục tiêu đại diện cho một "thuật toán"?
Niel de Beaudrap


0

một trong những bài báo "phép lạ" của Einsteins 1905 là về chuyển động brownian , một ví dụ vật lý kinh điển của bước đi ngẫu nhiên và đưa ra một công thức (nghĩa là về cơ bản là một thuật toán, nếu quá trình vật lý là "máy tính") để ước tính / tính toán hạt (phân tử) đường kính cho các hằng số vật lý đã biết khác và quan sát / đo lường sự dịch chuyển của hạt (ngẫu nhiên) theo thời gian. bài viết này cũng phục vụ như là bằng chứng lý thuyết / thực nghiệm / cơ sở ban đầu cho lý thuyết nguyên tử của vật chất.


4
Một lần nữa như với sự tiến hóa: mặc dù chuyển động có thể là ngẫu nhiên và có thể được mô hình hóa bằng cách đi bộ ngẫu nhiên, thuật toán này thể hiện thuật toán nào? Mặc dù một số thuật toán sử dụng các bước đi ngẫu nhiên, điều này không có nghĩa là tất cả các bước đi ngẫu nhiên đại diện cho các thuật toán (nhiều hơn bất kỳ chuỗi từ nào trong tiếng Anh đại diện cho văn xuôi chỉ vì tất cả văn xuôi tiếng Anh bao gồm các từ trong tiếng Anh).
Niel de Beaudrap

-4

nini

Máy cũng có một số điểm tương đồng với động cơ vi sai Babbage (~ 1830s). không hoàn toàn không thể tưởng tượng được rằng Babbage hay Lovelace có thể đã hình dung ra một cái gì đó tương tự như các thuật toán xác suất. (các) máy chắc chắn có thể được sử dụng để thực hiện các thuật toán xác suất, mượn lý thuyết hiện đại và áp dụng nó vào quá khứ.

[1] Máy bao thanh toán Lehmer

[2] Động cơ Babbage


Lehmer mod n & máy bao thanh toán


1
Bạn có thể mô tả ý nghĩa trong đó nó tính toán các câu trả lời xác suất cho số lượng lớn? Một tìm kiếm nhanh không dường như tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào trên mạng.
Niel de Beaudrap

Theo hiểu biết của tôi, nó đã được sử dụng [trong số các mục đích khác] để tìm các yếu tố nhỏ hơn của số lượng thử nghiệm lớn tương tự như sàng của eratosthenes. nếu số lượng lớn được thông qua, đó có thể là "có thể không phải là tổng hợp" hoặc "có thể là số nguyên tố" hoặc "ứng cử viên chính". Thật không may, internet không tốt lắm với các tài liệu tham khảo lịch sử & nguồn gốc [ngay cả wikipedia], sách cũng tốt hơn. thêm chi tiết ở dưới cùng của trang này , "các loại vấn đề mà Lehmer đang cố gắng giải quyết" bởi Tiến sĩ mike williams, người phụ trách bảo tàng lịch sử máy tính của CA
vzn

1
(các) máy chắc chắn có thể được sử dụng để thực hiện các thuật toán xác suất - Vậy sao? Trái ngược với các máy khác không thể?
Jeffε

2
mặc dù thuật ngữ tại thời điểm đó có thể không đề cập đến "thuật toán xác suất", nó có thể được sử dụng theo cách này trong một số trường hợp - [cần dẫn nguồn] Nếu bạn có bằng chứng rằng "có thể là số nguyên tố" là một tuyên bố chính thức về xác suất, và không chỉ đơn giản là một mô tả heuristic, xin vui lòng trích dẫn nó. Nếu không, xin vui lòng ngừng đầu cơ.
Jeffε

n1n2n3nxx

-6

đây là một số trường hợp khởi đầu sớm và thậm chí cổ đại / tiền sử của các khái niệm liên quan đến thuật toán ngẫu nhiên.

  • n/2

  • trò chơi may rủiđánh bạc rất cổ xưa. từ lý thuyết hiện đại, các trò chơi có sự tương đồng mạnh mẽ nếu không kết nối trực tiếp với các thuật toán. súc sắc đánh bạc / chơi game được biết là ít nhất năm milimet cũ.

  • Người Hy Lạp & La Mã cũng có khái niệm vẽ ống hút nơi người vẽ ống hút ngắn nhất bị mất. tương tự như súc sắc, theo một nghĩa nào đó, thuật toán đơn giản nhất có thể để đưa ra một lựa chọn ngẫu nhiên duy nhất.

  • tiết lộ đầy đủ, có một chút lịch sử và kết nối đẫm máu. trong câu trả lời khác MDB đề cập đến sự tiến hóa . một phần của quá trình tiến hóa là chọn lọc tự nhiên cũng tương đồng với chiến tranh của con người - rõ ràng là một phần nội tại của sự tiến hóa của các thành phố / xã hội loài người. trong một nghĩa nào đó, một cuộc chiến là một thuật toán semirandom thô thiển cho "một cái gì đó" mà các nhà xã hội học & sử học vẫn tranh cãi về nguyên nhân chính xác. trộm cắp / cướp bóc? phân bổ nguồn lực? lãnh thổ? sưc mạnh chinh trị? nô lệ? (v.v.) người La Mã cũng có một thực hành ghê gớm gọi là decimation(từ hiện đại thực sự xuất phát từ nguyên nhân từ cổ đại!), trong đó, như hình phạt cho sự nổi loạn hoặc hèn nhát, mỗi người lính thứ 10 được chọn ngẫu nhiên được thực hiện bởi những người lính còn lại. nó có vẻ như là một thực tiễn bị lãng quên và tàn nhẫn, nhưng nó dường như có một số song song với roulette Nga hiện đại , một trò chơi bán ngẫu nhiên "hiện đại" để tự sát.


1
Đó không phải là những gì tôi đang hỏi về; Tôi đang hỏi về việc họ có suy luận về tần suất tương đối của các số tổng hợp theo cách bạn mô tả hay không.
Niel de Beaudrap

1
Tôi sợ rằng tôi không quan tâm đến những điều chung chung mơ hồ và có vẻ khá rõ ràng rằng chúng tôi không đồng ý về cơ bản trong "thuật toán" là gì. Tôi quan tâm nhiều hơn là "hiện tượng". Mặt khác, chúng ta cũng có thể trích dẫn tất cả các sự kiện cơ học lượng tử sau Vụ nổ lớn như các ví dụ về "thuật toán ngẫu nhiên", làm cho toàn bộ chủ đề trở nên tầm thường.
Niel de Beaudrap

1
"Câu hỏi mềm" không có nghĩa là một câu hỏi có ranh giới vô cùng linh hoạt; "Tổng quan lịch sử" không giống như chủ nghĩa xét lại lịch sử.
Niel de Beaudrap

2
'Gợi ý' của bạn cho tôi về sự tiến hóa, cũng như việc bạn bỏ tôi làm lãng phí thời gian cho một câu hỏi tôi không thích, cũng không phải sự lảng tránh câu hỏi trước đây của tôi, đều đáng trân trọng. Và trên thực tế, suy đoán của bạn rằng người Hy Lạp có thể biết về những gì bạn đang nói nhưng không bận tâm viết về nó chính xác là một trong những điều mà "chủ nghĩa xét lại lịch sử" có thể đề cập đến. (Có thể Archimedes đã phát minh ra ký hiệu thập phân, nhưng không bận tâm để tạo bất kỳ bản ghi nào; sau tất cả, Sand Reckoner khá gần với ký hiệu và người Hy Lạp đã sử dụng hệ thống giống như cơ sở 10. Nhưng chúng ta nên nghiêm túc thực hiện ý tưởng ? Số)
Niel de Beaudrap

1
Tôi đồng ý rằng điều đó thật đáng tin cậy, và nó thậm chí còn không được truyền tải nhiều - dĩ nhiên, từ thực tế là chúng ta dường như không có bất kỳ ghi chép nào về người Hy Lạp nói về xác suất mỗi lần. Nhưng nếu có một hồ sơ thực tế về nó, bạn sẽ có thể thực sự chỉ ra nó. Mặt khác, đó là suy đoán, không phải lịch sử.
Niel de Beaudrap

-7

JS đề cập đến lý thuyết số. Fermat được ghi nhận với thử nghiệm nguyên thủy Fermat , một thuật toán xác suất có từ những năm 1600 và đóng vai trò là tiền thân của các thử nghiệm nguyên thủy hiện đại hơn như Solovay-Strassen và Miller-Rabin. [sẽ cần một nhà sử học chuyên về lý thuyết toán & số để cố gắng xác định chính xác những gì Fermat biết về nó so với kiến ​​thức hiện đại, đầy đủ hơn về cấu trúc của các giả hành của nó (dương tính giả), v.v.]


2
Bạn có thể trích dẫn Fermat là đã sử dụng thử nghiệm của mình như một cách lọc ra các số nguyên được chọn ngẫu nhiên dưới dạng không phải là số nguyên tố (trái ngược với chỉ một thuộc tính thú vị mà số nguyên tố có) không? Hoặc có lẽ trích dẫn một tác giả đầu tiên đề nghị làm như vậy?
Niel de Beaudrap

như đã nêu các chi tiết chính xác là tốt hơn để lại cho một sử gia chuyên nghiệp. tuy nhiên lưu ý [phụ lục; nên đã đề cập đến điều này] một thực tế lịch sử đơn giản rằng fermat được ghi nhận là đồng tiền sáng lập của lý thuyết xác suất cùng với pascal, đặt nền tảng trong một loạt các chữ cái vào giữa những năm 1600.
vzn

2
thật không phù hợp để đề xuất câu trả lời dựa trên những gì bạn tin rằng người khác có thể hiển thị. Một lần nữa, đó là đầu cơ.
Niel de Beaudrap

3
@vzn: Nếu Fermat đã nhận ra rằng Định lý nhỏ của Fermat là một bài kiểm tra nguyên thủy tốt, thì anh ta đã tính được rằng số Fermat thứ 5 không phải là số nguyên tố . Điều này đã không được thực hiện cho đến khi Euler thực hiện nó hơn 60 năm sau cái chết của Fermat.
Peter Shor

2
@vzn: [cần dẫn nguồn]
Jeffε
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.