Có sự tương tự vật lý với Turing Machine không?


27

Gần đây trong lớp CS của tôi, tôi đã được giới thiệu về Máy Turing.

Sau giờ học, tôi đã dành hơn 2 giờ để cố gắng tìm hiểu mối quan hệ giữa băng và máy.

Tôi hoàn toàn không biết về sự tồn tại của băng máy tính hay cách thức băng và máy tương tác cho đến ngày hôm nay. Tôi vẫn không thể hiểu tại sao máy lại đọc được băng nhưng máy quét có lẽ là một khái niệm gần gũi hơn với máy Turing, nơi giấy được coi là băng và bất cứ thứ gì bên trong máy quét là bất cứ thứ gì máy Turing sẽ làm.

Nhưng trong mọi trường hợp, không phải ý tưởng về một máy Turing khá cổ xưa sao? Chúng tôi có rất nhiều thiết bị vật lý (chứ không phải giả thuyết) trong văn phòng hoặc phòng khách của chúng tôi dường như làm những gì mà Turing Machine làm.

Ai đó có thể cung cấp một ví dụ tốt hơn rút ra từ thực tế để các chức năng thiết yếu của quan niệm giả thuyết này được nắm bắt?


1
Nếu bạn muốn hiểu lý do tại sao một máy sẽ đọc băng, hãy đọc những ngày đầu tiên của máy tính. Ví dụ, bạn có thể thấy băng giấy trong bức ảnh này của Colossus .
Peter Taylor

4
Tất nhiên là có máy Turing thật! Thậm chí một chiếc được làm từ Lego!
john_leo

3
Câu hỏi liên quan . Lưu ý rằng các băng (hữu hạn) được sử dụng nhiều trong việc tính toán cho đến khi các đĩa cứng xuất hiện.
Raphael

1
Đối số phòng Trung Quốc ( en.wikipedia.org/wiki/Chinese_room ) có thể giúp bạn hiểu. Tôi gặp vấn đề tương tự với các máy Touring khi tôi mới vào CS và Phòng Trung Quốc là cây cầu tôi cần để đến đó. Ngoài ra, quan điểm của Máy Tournig là cho phép các nhà toán học tiếp tục chứng minh những điều thú vị về CS. Nó không có nghĩa là một máy tính thực tế.
Sevensevens

2
@slebetman Đây có thể là một chút bí truyền đối với người mới làm quen với Turing Machines, nhưng băng trong Máy Turing không phải là truy cập ngẫu nhiên; đó là truy cập tuần tự. Phải mất n ca để đưa đầu đến một ô n cách xa. Tôi chỉ đề cập đến điều này bởi vì trong khi không gian của những thứ có thể tính toán không thay đổi, thì thời gian cần thiết để tính toán chúng. Những loại kết quả đó (ví dụ: bạn có thể mô phỏng máy 2 băng với máy 1 băng, bạn có thể mô phỏng RAM bằng máy 1 băng, v.v. và chỉ với việc tăng thời gian đa thức, v.v.) là những bài tập quan trọng trong các khóa học tính toán.
Joshua Taylor

Câu trả lời:



38

AFAIK the Turing Machine được mô phỏng theo ý tưởng của một con người bằng bút và giấy. Con người có một trạng thái nhất định trong não, nhìn vào tờ giấy giống như cái máy nhìn vào cuộn băng và viết một cái gì đó lên tờ giấy hoặc di chuyển để nhìn vào một nơi khác, giống như cái máy đó.

TM là cổ xưa như số học số tự nhiên Peano. TM là vô dụng cho tính toán thực tế, và tất nhiên nó không được sử dụng cho việc đó. Đây chỉ là một cách đơn giản để tiên đoán tính toán để chúng ta có thể suy luận về những gì có thể tính toán được và những gì không - giống như số học Peano rất hữu ích để xác định từ các nguyên tắc đầu tiên các số tự nhiên là gì và tính chất của chúng là gì - nhưng nó sẽ vô lý với cố gắng làm số học bằng cách thao tác số Peano bằng tay theo các định nghĩa lý thuyết.

Chỉ cần nghĩ rằng sẽ khó khăn như thế nào để chứng minh các định lý khác nhau từ lý thuyết phức tạp và tính toán (ví dụ chứng minh rằng Vấn đề dừng là không thể giải quyết được), nếu bạn phải chứng minh chúng bằng cách sử dụng ngữ nghĩa của ngôn ngữ lập trình C ++ thay vì Turing Machine. Bằng chứng của bạn sẽ là vô lý hoặc không thể - vô lý như việc chứng minh tính kết hợp của phép nhân số tự nhiên bằng cách sử dụng phương pháp trường học áp dụng cho số nguyên thập phân như định nghĩa của bạn về phép nhân là gì.


5
Câu trả lời tốt đẹp. Trong bài báo gốc của Turing, ông thậm chí còn rút ra định nghĩa về cỗ máy từ cách con người tính toán một thứ gì đó.
john_leo

1
Re: C ++, điều này có thể thú vị: port70.net/~nsz/c/c%2B%2B/turing.pdf
Daniel Earwicker

8

Nhiều mô hình tính toán hoàn chỉnh Turing rất khác nhau có thể thực hiện được (có thể coi vô cực là không thay đổi). Vì vậy, đó không thể là điểm để chọn một mô hình.

Câu trả lời của @jkff rất phù hợp khi nhận xét rằng Turing Machine được dự định là một thiết bị lý thuyết cho mục đích toán học để nghiên cứu tính toán và khả năng chứng minh (thực sự phát sinh trong bối cảnh Entscheidungsprobols của Hilbert ). Nhưng nó không hoàn toàn chính xác trong các lý do để chọn một hình thức đơn giản.

Về nguyên tắc, việc chứng minh vấn đề Dừng không khó hơn nhiều với các mẫu tiên tiến hơn. Trên thực tế, "bằng chứng" của chúng tôi thường chỉ là xây dựng một giải pháp. Chúng tôi không đi sâu vào các lập luận thực tế (rất tẻ nhạt) rằng các công trình này là chính xác. Nhưng bất cứ ai viết một trình thông dịch cho một ngôn ngữ hoàn chỉnh Turing đều làm nhiều như bất kỳ công trình xây dựng một cỗ máy vạn năng nào. Chà, C có thể hơi phức tạp và chúng tôi có thể muốn hợp lý hóa nó một chút cho mục đích như vậy.

Tầm quan trọng của việc có một mô hình đơn giản nằm trong việc sử dụng mô hình nhiều hơn nhiều so với việc thiết lập các thuộc tính của nó (chẳng hạn như Vấn đề dừng, để lấy ví dụ do @jkff đưa ra).

Thông thường, định lý lớn thường là các định lý có thể được trình bày rất đơn giản và có thể áp dụng cho một loạt các vấn đề. Nhưng chúng không nhất thiết là những định lý dễ chứng minh.

Trong trường hợp của TM, tầm quan trọng của sự đơn giản là do nhiều kết quả được thiết lập bằng cách giảm Vấn đề dừng, hoặc các vấn đề về TM khác, đối với các vấn đề chúng tôi quan tâm (chẳng hạn như ngôn ngữ không có ngữ cảnh), do đó thiết lập các hạn chế cố hữu để giải quyết những vấn đề này.

Trên thực tế, mặc dù rất trực quan (có lẽ là lý do chính cho sự phổ biến của nó), mô hình TM thường không đủ đơn giản để sử dụng trong các bằng chứng như vậy. Đó là một lý do cho tầm quan trọng của một số mô hình khác, thậm chí đơn giản hơn, chẳng hạn như Bài toán tương ứng bài viết , ít trực quan hơn để phân tích, nhưng dễ sử dụng hơn. Nhưng điều này là do các mô hình tính toán này thường được sử dụng để chứng minh các kết quả âm tính (quay trở lại Entscheidungsprobols gốc).

Tuy nhiên, khi chúng tôi muốn chứng minh kết quả tích cực, chẳng hạn như sự tồn tại của một thuật toán để giải quyết một số vấn đề nhất định, TM là một thiết bị quá đơn giản. Việc xem xét các mô hình tiên tiến ở chế độ như máy tính RAM hoặc máy tính bộ nhớ kết hợp hoặc một trong nhiều mô hình khác hoặc thậm chí đơn giản là một trong nhiều ngôn ngữ lập trình là dễ dàng hơn nhiều.

Sau đó, mô hình TM chỉ xuất hiện như một điểm tham chiếu, đặc biệt là phân tích độ phức tạp, do độ phức tạp của việc giảm các mô hình này thành mô hình TM (thường là đa thức). Sự đơn giản của mô hình TM cho phép độ tin cậy đối với các biện pháp phức tạp (trái ngược với, để lấy một ví dụ cực đoan, về việc giảm Lambda-tính toán).

Nói cách khác, mô hình TM thường quá đơn giản để thiết kế và nghiên cứu các thuật toán (kết quả tích cực) và thường quá phức tạp để nghiên cứu khả năng tính toán (kết quả âm tính).

Nhưng nó dường như ở đúng nơi để phục vụ như một liên kết trung tâm để kết nối tất cả lại với nhau, với lợi thế lớn là khá trực quan.

Về sự tương tự vật lý, không có lý do để chọn một mô hình hơn một mô hình khác. Nhiều mô hình tính toán hoàn chỉnh Turing có thể thực hiện được về mặt vật lý (tối đa không giới hạn đối với vô hạn bộ nhớ), vì không có lý do gì để xem xét một máy tính cùng với phần mềm của nó ít vật lý hơn máy tính "trần trụi". Rốt cuộc, phần mềm có một biểu diễn vật lý, là một phần của máy tính được lập trình. Vì vậy, vì tất cả các mô hình tính toán đều tương đương theo quan điểm đó, chúng tôi cũng có thể chọn một mô hình thuận tiện cho việc tổ chức kiến ​​thức.


Có thể đó là một nhận xét không thông cảm, nhưng câu đầu tiên không đúng vì bạn luôn có thể đi lên. Có một số mô hình cho siêu tính toán là các mô hình tính toán hoàn chỉnh Turing nhưng không thể thực hiện được.
Nikolaj-K

Cảm ơn. Tôi chưa bao giờ nghĩ về điều đó, nhưng tôi đoán điều đó có thể đúng, vì siêu tính toán luôn có thể bị suy yếu bởi một số phương tiện khác. Làm thế nào để bạn nghĩ rằng điều này nên được nêu ra, vì tôi cho rằng bạn hiểu những gì tôi muốn nói?
babou

1
Vâng, nó không chỉ là những thứ như cỗ máy thời gian không xác định hoặc vô hạn. Một máy Turing sau bước 7 của quá trình tính toán biến thành một con voi, ăn một bát Spaghetti, xây dựng một máy Turing khác và tiến hành bước 8 của tính toán ban đầu ... cũng là một mô hình tính toán hoàn chỉnh Turing hợp lệ. Sao cũng được, tôi không nghĩ bạn nên sửa nó.
Nikolaj-K

" Bất kỳ mô hình tính toán hoàn chỉnh Turing nào cũng có thể thực hiện được. ", Thực sự, không, hoàn toàn ngược lại, thực sự. Trên thực tế, không có mô hình hoàn chỉnh Turing nào có thể được xây dựng về mặt vật lý, bởi vì chúng ta không thể xây dựng bất cứ thứ gì vô hạn. Vì vậy, tất cả các mô hình tính toán "thực tế hóa" đều ở các mô hình Automata Bounded tuyến tính tốt nhất hoặc ít hơn.
RBarryYoung

@RBarryYoung Nếu bạn có đủ kiên nhẫn để đọc toàn bộ câu trả lời, bạn có thể nhận thấy rằng trong đoạn cuối, tôi nói rõ rằng đây là "không giới hạn cho vô hạn bộ nhớ". Câu đầu tiên được dự định là một giới thiệu. Bạn có nghĩ rằng không phù hợp để không đưa ra một thực tế được biết đến như vậy trong phần giới thiệu? Đúng là cố gắng phân tích sâu hơn vai trò của mô hình TM mở ra câu trả lời của tôi cho nhiều lời chỉ trích hơn. Bạn có thấy điều gì khác xảy ra với câu trả lời của tôi không?
babou

5

Hãy tưởng tượng một người mới đến hình học hỏi:

Có một sự tương tự vật lý với tam giác?

Không phải ý tưởng về một hình tam giác khá cổ xưa sao? Chúng ta có rất nhiều hình dạng vật lý (chứ không phải giả thuyết) trong văn phòng hoặc phòng khách của chúng ta dường như làm những gì hình tam giác làm.

Bạn sẽ trả lời gì?

Bạn có thể nói rằng những câu hỏi này tiết lộ hai quan niệm sai lầm cơ bản về hình tam giác:

  1. "Tam giác hoàn toàn là giả thuyết." Sai rồi! Trong khi chúng là các thực thể toán học, lý tưởng Platonic và giả thuyết theo nghĩa đó, hình tam giác là có thật : chúng ta thực sự có thể xây dựng chúng trong thế giới thực. Cấp, những gì chúng ta xây dựng sẽ không bao giờ là một tam giác hoàn hảo, nhưng lý thuyết toán học của chúng ta về chúng áp dụng cho thế giới thực, các định luật chúng ta có thể áp dụng cho các hình dạng trong thế giới thực, lý thuyết có thể được sử dụng làm cơ sở để thiết kế, xây dựng và đo hình dạng trong thế giới thực; đây là lý do lý thuyết được phát triển ngay từ đầu.
  2. "Tam giác là vô dụng vì chúng không mô tả các hình dạng chúng ta thường sử dụng."Sai rồi! Mô tả hình dạng thực tế bạn tìm thấy trong thế giới thực không phải là mục đích của họ. Nếu toàn bộ văn phòng hoặc phòng khách của bạn không chứa một hình tam giác, điều đó không có nghĩa là khái niệm tam giác là không thực tế hoặc lỗi thời và tốt hơn nên được thay thế bằng một cái khác. Mục đích chính của chúng là như một cấu trúc cơ bản mà từ đó tất cả các hình dạng phức tạp hơn có thể được xây dựng trên nguyên tắc - và do đó chúng ta có thể rút ra các định luật áp dụng cho các hình dạng nói chung. Lý luận về hình tam giác cho phép chúng ta suy luận về hình dạng nói chung. Phòng khách của bạn tuân theo các luật tương tự mà chúng tôi đã bắt nguồn cho hình tam giác, và kiến ​​thức của chúng tôi về các luật này đã được sử dụng, trực tiếp hoặc gián tiếp, để xây dựng nó. Phòng khách có thể không có một hình tam giác duy nhất trong đó, nói gì đến một hình hoàn hảo, nhưng chúng tôi không quan tâm đến việc tìm kiếm hình tam giác ở đó; chúng ta có thể. tuy nhiên, xây dựng một mô tả về các hình dạng trong đó bằng cách xấp xỉ chúng với các hình tam giác, và điều này - hình tam giác - là một điều phổ biến và hữu ích để làm. Vì vậy, hình tam giác đang xây dựng các khối để giúp chúng ta suy nghĩ về hình dạng nói chung.

Điều này cũng đúng với máy Turing.

Đã quá lâu kể từ khi tôi được giới thiệu về hình học, tôi thực sự không thể nhớ liệu có người mới nào thực sự có những quan niệm sai lầm về hình tam giác hay không. Nhưng khi nói đến máy Turing, tôi gặp phải những quan niệm sai lầm tất cả các thời gian . Trên thực tế, thông thường, dường như có điều gì đó sai về cơ bản với cách chúng thường được dạy. Có lẽ một cách tiếp cận chương trình và nói là theo thứ tự!

Vì vậy, để hoàn thiện:

  1. "Máy Turing hoàn toàn là giả thuyết." Sai rồi! Trong khi chúng là các thực thể toán học, lý tưởng Platonic và giả thuyết theo nghĩa đó, Turing Machines là có thật : chúng ta thực sự có thể xây dựng chúng trong thế giới thực. Cấp, những gì chúng ta xây dựng sẽ không bao giờ là một Máy Turing hoàn hảo, nhưng lý thuyết toán học của chúng ta về chúng áp dụng cho thế giới thực, các luật chúng ta có thể rút ra được áp dụng cho các thiết bị tính toán trong thế giới thực, lý thuyết có thể được sử dụng làm cơ sở cho thiết kế, xây dựng và đo lường các thiết bị tính toán trong thế giới thực; đây là lý do lý thuyết được phát triển ngay từ đầu.
  2. "Máy Turing là vô dụng vì chúng không mô tả các thiết bị máy tính mà chúng ta thường sử dụng."Sai rồi! Mô tả các thiết bị tính toán thực tế bạn tìm thấy trong thế giới thực không phải là mục đích của chúng. Nếu toàn bộ văn phòng hỗ trợ hoặc phòng giải trí gia đình của bạn không chứa một Turing Machine, điều đó không có nghĩa là khái niệm Turing Machine là không thực tế hoặc lỗi thời và tốt hơn nên được thay thế bằng một cái gì đó khác. Mục đích chính của chúng là một cấu trúc cơ bản mà từ đó tất cả các thiết bị tính toán phức tạp hơn có thể được xây dựng trên nguyên tắc - và do đó chúng ta có thể rút ra các định luật áp dụng cho các hình dạng nói chung. Lý do về Turing Machines cho phép chúng ta suy luận về các thiết bị tính toán nói chung. Phần cứng và phần mềm máy tính của bạn tuân theo các luật tương tự mà chúng tôi đã tạo ra cho Turing Machines và kiến ​​thức về các luật này đã được sử dụng, trực tiếp hoặc gián tiếp, để xây dựng chúng - mặc dù chúng có thể không ' t có một máy Turing duy nhất trong đó. Đó là luật chúng tôi quan tâm.

1
Bạn có thể mở rộng cuộc thảo luận này về hình tam giác cho trường hợp của tesseracts . Tôi cảm thấy rằng hình tam giác nên đối lập với các thực thể ít rõ ràng hơn về mặt vật lý.
babou

1
Tôi đã cười khi đọc câu hỏi, bởi vì với tôi nó xuất hiện chính xác là vô lý như nói rằng hình tam giác là cổ xưa. Khoa học máy tính về cơ bản là toán học; nó không tuổi và nó không trở nên lỗi thời. Câu trả lời rất hay; +1.
tự đại diện

Tôi không thấy sự liên quan của một tesseract, nhưng nó có thể là một cải tiến để sử dụng một số loại thủ tục hoặc máy móc, ví dụ như đan hoặc máy dệt kim . Một máy Turing không thực sự mô tả một đối tượng mà là một quá trình (có thể định cấu hình, từng bước).
Revierpost

3

Sự tương tự vật lý mà Turing dường như đã có trong đầu là một máy tính xử lý các vấn đề với bút chì, giấy và cục tẩy. Bạn nên hiểu rằng vào năm 1936, một "máy tính" là một người được thuê để tính toán. Tất nhiên vào năm 1936, hầu hết các máy tính sẽ sử dụng thêm máy, nhưng Turing không đề cập đến những thứ này vì chúng không cần thiết. Đây là những gì anh ấy nói, liên quan đến cuốn băng, khi cố gắng biện minh rằng "các số 'tính toán' [tức là những số mà máy Turing có thể tính toán] bao gồm tất cả các số tự nhiên được coi là có thể tính toán được"

Việc tính toán thường được thực hiện bằng cách viết các ký hiệu nhất định lên giấy. Chúng tôi có thể cho rằng bài báo này được chia thành các hình vuông giống như một cuốn sách số học của trẻ em. Trong số học cơ bản, ký tự hai chiều của bài báo đôi khi được sử dụng. Nhưng việc sử dụng như vậy luôn luôn có thể tránh được và tôi nghĩ rằng sẽ đồng ý rằng đặc tính hai chiều của giấy không phải là yếu tố cần thiết của tính toán. Tôi giả sử rằng việc tính toán được thực hiện trên giấy một chiều, tức là trên một cuộn băng được chia thành các hình vuông.

Mặc dù máy tính không còn là một giao dịch, nhưng lần trước tôi đã kiểm tra, những đứa trẻ vẫn được dạy để thực hiện các thuật toán sử dụng bút chì và giấy làm phương tiện lưu trữ. Vì vậy, mặc dù sự tương tự này có vẻ lỗi thời hoặc thậm chí cổ xưa, nhưng nó vẫn chưa lỗi thời.

Để biết thêm chi tiết, hãy xem các số có thể tính toán được với một ứng dụng cho entscheidungspropet , đặc biệt là phần 1 và 9.


Joe Weizenbaum đã sử dụng một phép loại suy vật lý khác để giải thích: mã thông báo trên một cuộn giấy vệ sinh.
Jerry101

1

@jkff có ý tưởng the Turing Machine is modeled on the idea of a human with a pen and paperkhông hoàn toàn chính xác. Nhưng có nhiều tình huống có thể được coi là chính xác.

Hãy nghĩ về con người như một cỗ máy Turing dưới sự phóng chiếu nhất định của các quốc gia. Nói cách khác, nếu bạn chỉ nhìn thấy một con người trong giờ làm việc của anh ta, thì trong giờ làm việc của anh ta, anh ta thực hiện một số nhiệm vụ nhất định. Những nhiệm vụ này là những nhiệm vụ cơ bản cho công việc.

Nếu bạn không quan tâm đến cuộc sống cá nhân của anh ấy, những gì anh ấy làm ở nhà, trong phòng của anh ấy, v.v. Sau đó, bạn có thể coi đây là dự đoán chức năng chuyển đổi của anh ấy thành một chức năng chuyển tiếp mới trong đó các trạng thái không liên quan đến công việc bị bỏ qua. Nói cách khác, bạn có thể bỏ qua tất cả các trạng thái và nhiệm vụ không liên quan gì đến mối quan tâm và quan điểm của bạn.

Trong mô hình này, sau đó máy Turing được mô phỏng theo con người bằng bút, giấy thực hiện một nhiệm vụ cố định (nghĩa là xem trong một phối cảnh cố định). Cuốn băng là những gì anh ta viết ra giấy (bỏ qua tất cả các giấy tờ hoặc viết trên một số giấy mà anh ta không viết cho nhiệm vụ)

Bây giờ nếu bạn tính đến các nhiệm vụ khác mà anh ta làm thì những gì bạn có là bạn có một tập hợp nhiều máy Turing trong một con người. Nhưng sau đó, nếu anh ta thay đổi công việc của mình và anh ta làm nhiệm vụ khác nhau. Sau đó, trạng thái não của anh ta thay đổi sang một máy Turing khác khi xem dưới góc nhìn khác trong khung thời gian khác.

Nếu bạn muốn có một câu trả lời tốt cho câu hỏi của bạn, thì tôi nghĩ Yuval Filmus đã trả lời tốt. Sử dụng mô hình RAM. Gắn bó với nó.

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.