Là tương tác mạnh hơn thuật toán?


17

Tôi đã nghe phương châm tương tác mạnh hơn thuật toán từ Peter Wegner . Cơ sở của ý tưởng là Máy Turing (cổ điển) không thể xử lý tương tác, nghĩa là giao tiếp (đầu vào / đầu ra) với thế giới / môi trường bên ngoài.

Làm thế nào điều này có thể được như vậy? Làm thế nào một cái gì đó có thể mạnh hơn một máy Turing? Bản chất của câu chuyện này là gì? Tại sao nó không được biết đến nhiều hơn?


1
Bạn có một tài liệu tham khảo để bao gồm trong câu hỏi của bạn? Tôi biết định nghĩa chính thức của Máy Turing, nhưng tôi không biết chính xác ý của bạn là "tương tác".
Janoma

Ngoài ra, có vẻ như "không thể xử lý tương tác với môi trường" tương tự như "không thể xử lý ngẫu nhiên thực sự", điều này có thể đúng, nhưng cả hai đều có thể xấp xỉ khá tốt với các cảm biến và giả ngẫu nhiên. Nhưng đó là một nhận xét thiếu hiểu biết, không biết một định nghĩa về tương tác.
Janoma

2
Máy Turing không có cảm biến.
Dave Clarke

1
Tôi biết điều đó. Tuy nhiên, máy tính làm cảm biến sử dụng, đó là một cách cụ thể thông qua một đầu vào cho một máy Turing. Vì vậy, bộ nhớ dịch làm tương tác với các tín hiệu bên ngoài / môi trường bằng cách nào đó.
Janoma

2
Câu hỏi không phải là về máy tính. Tương tác duy nhất với TM là môi trường cung cấp một đầu vào cho nó khi bắt đầu và nhận được nhiều nhất một đầu ra ở cuối. Đây không phải là tương tác chung.
Dave Clarke

Câu trả lời:


11

Máy Turing có thể xử lý tương tác tốt, sử dụng băng orory. Nó hoạt động như sau: theo quan điểm của một máy tính xử lý tương tác, đầu vào của toán tử chỉ đơn giản là một chuỗi các bit mà nó được gửi vào máy tính theo thời gian. Chúng ta đều biết rằng một sysadmin lười biếng có thể viết một kịch bản để gửi đầu vào cho chương trình khi được yêu cầu, để sysadmin có thể bị hỏng trước đó. Máy tương tác không có cách nào để biết liệu thực sự có một toán tử trực tiếp tại bàn điều khiển hay không, nếu đầu vào đang được dẫn từ một chương trình khác.

Về mặt lý thuyết, tất cả các đầu vào tương tác đều giống nhau, về mặt lý thuyết, như có tất cả các đầu vào trên một băng riêng biệt được sử dụng bởi một máy Turing orory. Bất cứ khi nào máy tính thường yêu cầu tương tác từ người vận hành, thay vào đó máy sẽ đọc từ băng đầu vào. Nếu thứ được đọc từ băng có vẻ không hợp lệ theo cách nào đó, máy Turing thực hiện chính xác những gì máy tương tác sẽ làm khi nhận đầu vào đó.

Tôi đoán rằng Wagner nhận thức được khả năng sử dụng băng orory để nhập mã, vì vậy bạn phải lấy ý kiến ​​của anh ấy bằng một hạt muối, hoặc bạn phải hỏi ý anh ấy thực sự là gì. Tôi tin rằng những người nghĩ về tương tác thường lo lắng về hai điều:

  • Máy tính "thực" có tương tác, nhưng thuật toán theo định nghĩa của Turing thì không. Chúng ta có thể khắc phục điều này bằng cách mã hóa đầu vào trên băng orory, nhưng điều này vẫn không phù hợp với cách máy tính thực sự hoạt động. Có thể tốt để nghiên cứu các mô hình tính toán được liên kết chặt chẽ hơn với máy tính thực.

  • Các thuật toán dựa trên Oracle thường không được xem xét trong điện toán hàng ngày vì các máy tính bình thường không đi kèm với một "lời tiên tri" kỳ diệu để cung cấp dữ liệu. Nhưng chúng ta có thể thực sự chỉ cần sử dụng một người như một lời tiên tri. Nếu người đó hiểu dữ liệu đang được yêu cầu, họ thậm chí có thể giúp thuật toán theo, do đó cải thiện hiệu suất của nó. Nói cách khác, con người có thể cung cấp một băng tiên tri hữu ích chứ không chỉ đơn giản là một băng ngẫu nhiên, và về nguyên tắc, điều này có thể dẫn đến các phương pháp tính toán nhanh hơn hoặc mạnh hơn so với các phương pháp không dựa trên orory. Cuối cùng, một điều tương tự cũng xảy ra với tính toán ngẫu nhiên, trong đó máy được cung cấp một chuỗi các bit ngẫu nhiên làm đầu vào phụ.


Băng Oracle không mô hình tương tác chính xác. Xem xét việc cố gắng chứng minh rằng một hệ thống máy tính không rò rỉ thông tin cá nhân. Điều này không thể được chính thức hóa dưới dạng TM với băng orory cố định, bởi vì thuộc tính phụ thuộc vào đặc tính tính toán mà môi trường có thể làm - chính xác là những gì chúng ta trừu tượng hóa bằng băng orory.
Neel Krishnaswami

Nó phụ thuộc vào những gì bạn có nghĩa là "mô hình chính xác". Một số bài báo (ví dụ từ cộng đồng siêu tính toán) xuất hiện để đề xuất rằng sự tương tác bằng cách nào đó mở rộng tập hợp các hàm tính toán. Mà nó làm, theo cách chính xác giống như cách tính toán tiên tri. Tất nhiên, bạn không thể sử dụng TM để nghiên cứu các thuộc tính của môi trường tính toán thực tế; nếu bạn muốn biết bộ xử lý trong máy tính của mình có lỗi hay không, sẽ không giúp bỏ qua hoàn toàn và chỉ cần nhìn vào máy Turing. Nhưng đối với các câu hỏi chỉ về chức năng đang được tính toán, tương tác và tiên tri là tương đương.
Carl Mummert

Không, đây không phải là trường hợp: có những hạn chế liên tục đối với các tương tác khả thi mà băng tiên tri không mô hình hóa. Nếu môi trường không thể nhìn thấy bên trong chương trình, thì đầu vào mà nó cung cấp tại thời điểm chỉ có thể phụ thuộc vào đầu ra ở thời điểm trước đó . (Nghĩa là, xem đầu vào là một hàm của đầu ra, hàm đầu vào phải không có giá trị đối với chỉ số Cantor.) Cũng giống như tính toán "cảm giác như" cấu trúc liên kết với một nhà toán học cổ điển, tính tương tác "giống như" cấu trúc liên kết với cấu trúc nhà toán học. nn
Neel Krishnaswami

Đối với một công việc thực sự kỹ lưỡng từ sự tương tự này, xem Peter Hancock, Pierre Hyvernat: Giao diện lập trình và cấu trúc liên kết cơ bản. citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.107.919
Neel Krishnaswami

1
Đầu vào mà toán tử nhập vào tại thời điểm có thể là bất kỳ đầu vào nào có thể, và do đó, tập hợp tất cả các lần chạy đầu vào có thể chứa tất cả các chuỗi vô hạn của các phần tử đầu vào. Không có sự liên tục ở đó, bởi vì nhà điều hành có thể nhập bất cứ điều gì. Tính khả thi (mà tôi hiểu là độ phức tạp tính toán) không liên quan đến câu hỏi tôi đang trả lời - bất kỳ chức năng nào cũng có thể được tính bằng máy orory, nếu chức năng được đưa ra trên băng orory, và tương tự bất kỳ chức năng nào cũng có thể được tính bằng tương tác máy, nếu người vận hành chuẩn bị nhập các giá trị tùy ý của hàm theo yêu cầu. n
Carl Mummert

8

Máy tính biến mô hình tính toán và không có khái niệm tương tác. Theo nghĩa đó, một máy hỗ trợ tương tác với hệ thống bên ngoài có thể thực hiện những điều mà Máy tiện không thể làm được. Nhưng tính toán được thực hiện giữa bit đầu vào từ nguồn bên ngoài rõ ràng luôn có thể được mô hình hóa bằng Máy Turing, do đó, ngay cả "Máy IO" cũng không thể làm gì với đầu vào bên ngoài mà Máy Turing không thể làm được.

Ở một khía cạnh nào đó, một cỗ máy như vậy có thể "quyết định" các vấn đề không thể giải quyết được bằng Turing Machines, nhưng chỉ khi bạn tưởng tượng rằng hệ thống mà nó đang tương tác có sức mạnh siêu Turing-Machine và đáng tin cậy (theo một cách nào đó; sẽ là đủ).

Hãy tưởng tượng một chương trình cho Máy IO như: "đối với mọi đầu vào băng ban đầu, hãy in nội dung băng, sau đó đọc ký hiệu từ đầu vào bên ngoài; chấp nhận nếu ký hiệu là 1 và từ chối nếu không". Chương trình này có thể quyết định bất kỳ vấn đề. Nhưng chỉ khi hệ thống bên ngoài nó có thể tương tác mới có khả năng quyết định vấn đề; Đối với tôi đó không phải là một cách thú vị để nói rằng Máy IO có thể quyết định các vấn đề không thể giải quyết được bằng Turing Machines.

Tôi nghĩ rằng sẽ luôn có thể biểu diễn một tính toán tương tác bằng cách tưởng tượng một máy lấy đầu vào trên băng của nó mã hóa một số cấu hình trước đó cùng với đầu vào bên ngoài và để máy dừng lại với băng của nó chứa mã hóa cấu hình cùng nhau với đầu ra. Sau đó, quá trình "chạy một chương trình" liên tục chạy Máy Turing này theo kiểu cơ học, với phần "phi cơ học" duy nhất là tuy nhiên đầu vào bên ngoài có nguồn gốc. Tôi chắc chắn rằng bạn có thể chứng minh rằng nếu một hệ thống như vậy có đầu vào bằng cách đưa đầu ra của nó cho một Máy Turing khácđược thiết lập để hoạt động theo cách tương tự, sau đó hệ thống kết hợp có sức mạnh tính toán giống hệt với một máy Turing duy nhất. Tôi thấy rằng một lập luận thuyết phục rằng tính toán tương tác không mạnh hơn tính toán không tương tác, trừ khi hệ thống tính toán tương tác với nó mạnh hơn Turing Machine .


Tuy nhiên, có một ý nghĩa phi lý thuyết trong đó tính tương tác có thể thêm vào khả năng giải quyết vấn đề của máy tính. Có nhiều điều con người làm rất chính xác mà chúng ta không biết làm thế nào để máy tính hoạt động tốt. Nhưng cũng có nhiều thứ mà con người rác rưởi ở đó chúng ta có thể khiến máy tính làm được. Kết hợp cả hai có thể dẫn đến các dự án như reCaptcha , tự động số hóa sách một cách hiệu quả bằng cách đưa ra các vấn đề nhận ra từ ngữ cho con người trong những trường hợp khó khăn. Hệ thống kết quả của máy tính + lao động của con người đạt được một kết quả hiện không thực tế để đạt được với tính toán một mình hoặc lao động của con người.


8

Gần đây ACM đã tổ chức hội nghị chuyên đề Ubiquity ' Tính toán là gì? 'Trong đó Peter Wegner đã xuất bản một bài viết phản ánh quan điểm của ông về điện toán tương tác.

Dưới đây là hai trích đoạn từ bài viết của Peter Wegner:

Một khái niệm mới, thiếu từ các máy Turing đầu tiên, là "Tính toán tương tác", cho phép tương tác với môi trường trong quá trình tính toán.

Máy tương tác có thể thực hiện các hình thức điện toán mạnh hơn máy Turing và có thể thực hiện kiểu suy nghĩ do Turing đề xuất vì tương tác cải thiện hiệu suất của chúng so với máy Turing.

Tuy nhiên, Fortnow, người có một bài viết trong cùng một hội nghị chuyên đề, dường như không đồng ý với quan điểm của Wegner và tin rằng điện toán tương tác không cung cấp bất kỳ sức mạnh bổ sung nào cho Turing Machines.

Để thêm vào hỗn hợp, có vẻ như chúng ta vẫn đang tranh luận và xác định tính toán. Moshe Vardi có một bài viết, Thuật toán là gì?, Truyền thông của ACM, Vol. 55, số 3, tháng 3 năm 2012.

Vardi báo cáo về hai định nghĩa mới của thuật toán. Đầu tiên được đề xuất bởi Gurevich và thứ hai bởi Moschovakis.

Gurevich lập luận rằng mọi thuật toán có thể được định nghĩa theo thuật ngữ của một máy trạng thái trừu tượng.

Ngược lại, Moschovakis cho rằng một thuật toán được định nghĩa theo thuật ngữ của một người nhận, đó là một mô tả đệ quy được xây dựng dựa trên các hoạt động tùy ý được coi là nguyên thủy.


6

Tôi không nghĩ các mô hình với IO "mạnh hơn" so với máy Turing, chúng chỉ mô hình những thứ khác nhau.

Về lý thuyết, bạn có thể xem IO là (tiếng ồn?). Với một lời tiên tri hoàn hảo, bạn có thể sử dụng Turing - các chức năng không thể tính toán được; Nhưng lấy lời sấm từ đâu? Con người là sự lựa chọn "siêu Turing" duy nhất (nếu có) và chúng ta được biết là rất không đáng tin cậy.

Một lớp các chương trình phù hợp với mô hình này là các chất hỗ trợ bằng chứng tương tác (ví dụ: Isabelle / HOL , Coq ). Họ đối phó với không gian bằng chứng không thể giải quyết được nhưng (có thể nói là) mọi bằng chứng đều có thể được tìm thấy (và được kiểm tra) với đầu vào người dùng phù hợp.


Vì vậy, Turing Machines with Oriels mạnh hơn mà Turing Machines không có chúng và Turing Machines with Orials có thể mô hình hóa sự tương tác. Vì vậy, câu trả lời dường như là có.
Dave Clarke

1
@DaveClarke Nếu bạn xem xét các nhà tiên tri hoàn hảo, vâng.
Raphael

2
Tôi nghĩ rằng một máy tính (hoặc chương trình) chưa được trả tiền (bằng bất kỳ hình thức đầu tiên hoặc đầu vào) nào về nguyên tắc có thể tìm thấy mọi bằng chứng. Có hai vấn đề: (1, lý thuyết): sẽ không bao giờ có thể chắc chắn rằng một tuyên bố không có bằng chứng, và (2, thực tế): tạo ra bằng chứng một cách mù quáng với hy vọng vấp phải một tuyên bố nhất định là vô cùng hiệu quả mà không ai muốn thử, và vì vậy các trợ lý bằng chứng thích tìm kiếm có hướng dẫn, từ bỏ "đảm bảo" thành công trong trường hợp có bằng chứng tồn tại.
Marc van Leeuwen

2
Như Ben đã chỉ ra trong câu trả lời của mình, cách đúng đắn để xem xét nó không phải là "Máy Turing với các nhà tiên tri mạnh hơn"; bản thân các máy móc chỉ đang làm những việc có thể tính toán được. Cách đúng đắn để xem xét nó là "một số nhà tiên tri không thể tính toán được, và vì vậy từ những nhà tiên tri đó, chúng ta có thể tính toán những thứ mà chúng ta không thể tính toán mà không có một nhà tiên tri". Sức mạnh tính toán đến từ nhà tiên tri, thay vì từ máy móc.
Carl Mummert

Có vẻ như Turing Machines with Orials là thứ mạnh nhất. Tại sao thậm chí bận tâm với định nghĩa mới?
saadtaame

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.