Lý do lịch sử cho việc áp dụng Turing Machine làm mô hình tính toán chính.


44

Theo hiểu biết của tôi, mô hình của Turing đã trở thành "tiêu chuẩn" khi mô tả tính toán. Tôi muốn biết lý do tại sao lại như vậy - đó là lý do tại sao mô hình TM trở nên được sử dụng rộng rãi hơn so với các mô hình tương đương về mặt lý thuyết (theo hiểu biết của tôi), ví dụ như ene-Recursion hoặc Lambda Compus (tôi hiểu rằng cái trước không xuất hiện cho đến sau này và cái sau không được thiết kế đặc biệt như một mô hình tính toán, nhưng nó cho thấy các lựa chọn thay thế đã tồn tại từ đầu).

Tất cả những gì tôi có thể nghĩ là mô hình TM đại diện chặt chẽ hơn cho các máy tính chúng ta thực sự có hơn các lựa chọn thay thế. Đây có phải là lý do duy nhất?


1
trong khi họ không trực tiếp trên cùng một chủ đề, những câu hỏi cstheory.stackexchange.com/questions/625/...cstheory.stackexchange.com/questions/1117/... khám phá mối quan hệ giữa bộ nhớ dịch và -calculus, và có một số yếu tố lịch sử. λ
Suresh Venkat

Vâng, tôi đã nhìn thấy những. Tôi hiểu khá rõ lịch sử theo nghĩa đen của các lý thuyết khác nhau, nhưng tôi quan tâm nhiều hơn đến sự phát triển theo thời gian dẫn đến "sở thích" hiện tại trong lĩnh vực này, nếu bạn muốn.
Evan

2
Trên thực tế, có những mô hình gần hơn với máy tính thật, xem câu hỏi này . Nói chung mô hình tốt nhất phụ thuộc vào nhu cầu và chúng khác nhau từ khu vực này sang khu vực khác.
Kaveh

Câu trả lời:


46

Điều này có vẻ đúng trong bối cảnh (một số lĩnh vực) khoa học máy tính nhưng không phải nói chung.

Một lý do liên quan đến Luận án của Giáo hội. Lý do chính là một số chuyên gia như Godel đã không nghĩ rằng các lập luận mà các mô hình tính toán trước đó / khác nắm bắt chính xác khái niệm trực quan về tính toán là thuyết phục. Có nhiều lý lẽ khác nhau, Church có một số, nhưng họ đã không thuyết phục được Godel. Mặt khác phân tích Turing đã được thuyết phục cho Gödel nên nó đã được chấp nhận như các mô hình cho tính toán hiệu quả. Sự tương đương giữa các mô hình khác nhau được chứng minh sau (tôi nghĩ bởi Kleene).

Lý do thứ hai là kỹ thuật và sự phát triển sau này liên quan đến nghiên cứu lý thuyết phức tạp. Xác định các biện pháp phức tạp như thời gian, không gian, và nondeterminism có vẻ là dễ dàng hơn bằng máy Turing hơn các mô hình khác như -calculus và μ chức năng -recursive.λμ

Mặt khác, chức năng -recursive đã và vẫn đang được sử dụng như một cách chính xác định computability trong logic và lý thuyết computability sách. Họ dễ dàng làm việc hơn khi người ta chỉ quan tâm đến hiệu quả và không phức tạp. Cuốn sách "Siêu dữ liệu" của Kleene có ảnh hưởng rất lớn đến sự phát triển này. Cũng λ -calculus có vẻ là phổ biến hơn ở CMU / châu Âu khoa học máy tính kiểu như ngôn ngữ lập trình và kiểu lý thuyết. Một số tác giả thích các mô hình RAM và Đăng ký máy. (Dường như với tôi, vì một số lý do, người Mỹ đã áp dụng mô hình ngữ nghĩa của Turing và người châu Âu chấp nhận mô hình cú pháp của Church, Chruch là người Mỹ và Turing là người Anh. Đây là ý kiến ​​/ quan sát cá nhân và những người khác thì cóμλ quan điểm khác. Cũng xem những bài báo này của Viggo Stoltenberg-Hansen và John V. Tucker I , II .)

Một số tài nguyên để đọc thêm:

Robert I. Soare có một số bài viết về lịch sử của những phát triển này, cá nhân tôi thích bài viết trong Sổ tay lý thuyết tính toán. bạn có thể tìm thêm bằng cách kiểm tra các tài liệu tham khảo trong bài báo đó.

Một tài nguyên tốt khác là bài báo tính toán của Neil Immerman trên SEP, xem thêm bài viết Luận án Giáo hội của B. Jack Copeland.

Các tác phẩm thu thập của Godel chứa nhiều thông tin về quan điểm của ông. Giới thiệu đặc biệt cho các bài viết của mình được viết rất tốt.

" Siêu dữ liệu " của Kleene là một cuốn sách rất hay.

Cuối cùng, nếu bạn vẫn không hài lòng, hãy kiểm tra tài liệu lưu trữ của danh sách gửi thư FOM và nếu bạn không thể tìm thấy câu trả lời trong kho lưu trữ, hãy gửi email đến danh sách gửi thư.


Xin vui lòng cho tôi biết nếu tôi có điều gì sai.
Kaveh

1
Wow, đây là thông tin tuyệt vời. Cảm ơn các tài nguyên, tôi sẽ kiểm tra chúng (Tôi đang dự định đọc Siêu dữ liệu - Tôi sẽ xếp hàng chờ).
Evan

Bạn được chào đón, hy vọng tôi đã không hiểu sai. :)
Kaveh

một cuộc nói chuyện gần đây của Robert Soare tại INI. Theo tôi hiểu, lý do chính để thay đổi mô hình Turing và khả năng tính toán từ các hàm đệ quy và lý thuyết đệ quy đối với anh ta là như sau: thật khó để hiểu và làm việc trong lý thuyết đệ quy đến mức không ai hiểu được chuyện gì đang xảy ra ngoại trừ Một số ít, sự thay đổi về khả năng tính toán giúp cho việc hiểu và hồi sinh khu vực trở nên dễ dàng hơn nhiều.
Kaveh

19

Tôi muốn làm suy yếu tuyên bố rằng TM là mô hình chính của tính toán, hoặc ít nhất là hướng đến một khía cạnh khác của câu hỏi. Rõ ràng các TM chiếm ưu thế trong các phần phức tạp hơn và theo định hướng thuật toán của khoa học máy tính, nhưng trong lý thuyết và thực hành ngôn ngữ lập trình, chúng không đặc biệt chi phối. Có nhiều lý do cho việc này, nhưng có lẽ quan trọng nhất là các TM hoặc chương trình chạy trên TM (không giống như lambda-compi hoặc process-compi) không được xây dựng theo cách đại số. Điều này gây khó khăn cho việc phát triển các lý thuyết loại, vốn là nền tảng chính của lý thuyết ngôn ngữ lập trình.


2
Ngoài ra, các chương trình TM hay còn gọi là bảng chuyển tiếp không thực sự có thể đọc được.
Raphael

13

Một trong những điều hay của máy Turing là chúng hoạt động trên chuỗi thay vì số tự nhiên hoặc thuật ngữ lambda, bởi vì đầu vào và đầu ra của nhiều vấn đề có thể được tạo thành một cách tự nhiên dưới dạng chuỗi. Dù vậy, tôi không biết liệu điều này có được tính là lý do lịch sử hay không.


13

Bên cạnh thực tế là máy Turing là một mô hình thuyết phục về tính toán bằng giấy bút (khái niệm trực quan của tính toán), tôi nghĩ rằng chúng có một loạt các tính năng thường hữu ích, đặc biệt là khi chứng minh các định lý về chúng:

  • chúng dễ dàng để mô tả chính thức và có ngữ nghĩa hoạt động đơn giản;
  • thật dễ dàng để đưa ra một định nghĩa cụ thể về độ phức tạp thời gian và không gian của họ;
  • các mô hình thực tế hơn (và phức tạp) của máy tính điện tử, chẳng hạn như máy truy cập ngẫu nhiên, có thể được mô phỏng bằng các TM với chi phí đa thức và ngược lại.

Đôi khi phương tiện mô tả dường như cản trở sự hữu ích của TM, vì các mô tả có thể nhanh chóng chuyển thành các giải thích bằng tiếng Anh nếu bạn không cẩn thận (ít nhất, nếu tôi không cẩn thận ... Phải thừa nhận rằng tôi là người mới).
Evan

Lý do của bạn không loại trừ máy đăng ký, ví dụ.
Raphael

Chà, điều đó phụ thuộc vào khái niệm chính xác của máy đăng ký thành công mà bạn xem xét. Chẳng hạn, những người chỉ có các hoạt động tăng, giảm và nhảy không thể mô phỏng các TM trong thời gian đa thức.
Antonio E. Porreca

1
λλ

Tôi đứng về phía PL, nhưng lambda-compus thuần túy không phải là một mô hình rõ ràng về tính toán số học (nghĩ về hàm tiền thân). Trong lambda-tính toán bạn có ít định nghĩa hơn, nhưng phải mất nhiều nỗ lực hơn để hiểu ý nghĩa của định nghĩa.
Blaisorblade

0

Đó là lần đầu tiên có tác động và do đó đã được thiết lập, đặc biệt là trong lý thuyết phức tạp. Đây là một lý do yếu, nhưng mọi người làm việc theo cách đó. Chúng tôi làm việc trên các vấn đề mở cũ trước thay vì khai báo những vấn đề mới.


8
"Chúng tôi làm việc về các vấn đề mở cũ trước tiên thay vì tuyên bố những vấn đề mới." <- Tôi nghĩ, nếu bất cứ điều gì, điều ngược lại là đúng, đặc biệt là trong một lĩnh vực mà các câu hỏi cũ là vô cùng khó khăn. Chẳng hạn, có rất ít người làm việc trong sự phức tạp của mạch (mặc dù có lẽ sẽ có nhiều hơn bây giờ!). Mọi người cần phải làm việc trên các vấn đề họ có thể giải quyết để xuất bản; điều này tạo ra một dòng liên tục các vấn đề có thể giải quyết mới được tuyên bố.
Aaron Sterling

Tôi đã hơi vội vàng trong từ ngữ của tôi ở đó. Tôi cảm thấy rằng mọi người thường gắn bó với một mô hình đã được thiết lập hơn là xây dựng một mô hình mới (và chứng minh các thuộc tính cơ bản của nó) nếu không có lý do gì cho nó. Cảm giác đó có thể tắt, rõ ràng. Đặc biệt, có những người săn lùng người mẫu ngay từ đầu.
Raphael

Vâng, tính toán lambda đã đến đầu tiên. Nhưng Turing đã chỉ ra rằng máy Turing mô hình chính xác những điều cơ bản của con người khi tính toán; điều này chỉ được thực hiện cho phép tính lambda khi chứng minh tính tương đương. Hơn nữa, sự tương đương này chỉ đúng với tính toán bậc một: cstheory.stackexchange.com/q/1117/989 - dữ liệu bậc cao không thực sự tồn tại trên giấy. Nó thậm chí không tồn tại trong ký ức của máy tính, nhưng nó có thể được mô phỏng hoàn hảo.
Blaisorblade
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.