Les cung cấp một câu trả lời ngắn gọn và chính xác: các định nghĩa toán học càng ngắn gọn càng tốt, và rõ ràng bao gồm một băng vô hạn vào định nghĩa của máy Turing sẽ làm cho định nghĩa của nó ngắn gọn hơn nhiều, vì vậy chúng tôi không.
Điều này không trả lời câu hỏi: tại sao ? Làm thế nào định nghĩa có thể loại trừ băng vô hạn khi chúng ta cần?
Câu trả lời: chúng tôi không. Theo một nghĩa nào đó, máy Turing thực sự không yêu cầu băng vô hạn và định nghĩa của chúng cho thấy rõ điều này.
Theo định nghĩa, di chuyển của máy Turing đưa máy từ cấu hình này sang cấu hình khác; một cấu hình bao gồm một chuỗi hữu hạn , mà chúng tôi coi là một đoạn hữu hạn của băng ghi. Mỗi lần di chuyển hoặc di chuyển đầu băng theo một vị trí hoặc ghi đè lên biểu tượng dưới đầu băng. Tuy nhiên - và điều này rất cần thiết cho hoạt động của nó:
- b
- chúng ta có thể làm như vậy vô cùng thường xuyên .
nn
Một cách để nói lại điều này là để nói: máy hoạt động trên một băng vô hạn, hoàn toàn chứa đầy các khoảng trống, ngoại trừ một đoạn hữu hạn mà đầu băng của nó được bật. Đây là những gì hầu hết các giải thích nói.
Một cách khác để nói lại điều này là để nói: máy hoạt động trên một băng hữu hạn, được mở rộng với các khoảng trống bất cứ khi nào đầu của nó di chuyển khỏi băng ở hai đầu.
Đây là cả hai cách hợp lệ để khái niệm hóa cách thức hoạt động của máy: trong cả hai trường hợp, nếu bạn thực sự có một máy hoạt động như vậy, nó sẽ thực hiện chính xác một máy Turing.
Nếu tất cả những gì bạn quan tâm là dạy cho sinh viên cách máy Turing hoạt động, có lẽ bạn không chọn khái niệm nào.
Tuy nhiên, tôi nghĩ rằng khái niệm đầu tiên là một sai lầm, vì hai lý do:
- Nó là không thực tế . Chúng ta thực sự không thể chế tạo một cỗ máy với một cuộn băng vô hạn. Chúng tôi có thể xây dựng một máy với một băng hữu hạn mở rộng theo yêu cầu.
- Nó là phản trực giác. Chúng tôi không nghĩ rằng máy móc thực hiện các nhiệm vụ thường xuyên như chứa một lượng tài nguyên vô hạn. Chẳng hạn, chúng tôi không nghĩ máy photocopy có chứa một lượng giấy sao chép vô hạn. Máy Turing mô hình hóa hoạt động của máy tính. Họ mô hình hóa những gì sẽ xảy ra nếu chúng ta thay thế một máy tính (mà tại thời điểm phát minh ra nó là một phụ nữ thực hiện các phép tính trên giấy) bằng một máy có khả năng thực hiện các tính toán lập trình tùy ý. Chúng tôi không nghĩ người phụ nữ đó chứa một lượng giấy vô hạn. Thay vào đó, chúng tôi cho rằng cô ấy sẽ được cung cấp bất kỳ số lượng giấy nào cô ấy cần và chúng tôi coi việc không làm như vậy là do sự thất bại của môi trường, thay vì nói rằng một người phụ nữ như vậy không thể tồn tại. Tại sao không làm tương tự cho máy?
- Nó mời kết luận sai lệch. Tôi đã thấy điều này rất nhiều. Ví dụ:
- Mọi người nói rằng máy Turing thực sự không thể được chế tạo, trong khi máy trạng thái hữu hạn thì có thể. Chà, chúng ta không thể xây dựng các máy trạng thái hữu hạn lớn tùy ý nhiều hơn chúng ta có thể cung cấp số lượng băng tùy ý cho máy Turing.
- Mọi người nói rằng máy Turing không mô hình hóa máy tính chính xác, trong khi máy trạng thái hữu hạn thì có. Điều này phục vụ cho một điểm quan trọng: nếu tất cả chúng ta quan tâm đến việc sử dụng máy để quyết định ngôn ngữ nhập liệu, thì một máy tính chỉ hoạt động trên bộ nhớ trong (cố định) của nó có thể thực hiện đầy đủ bất kỳ máy trạng thái hữu hạn nào ở một kích thước nhất định, trong khi nó không thể thực hiện đầy đủ hầu hết các máy Turing, vì nó sẽ hết bộ nhớ trong cho nhiều máy. Tuy nhiên, điều này thường được khái quát bằng cách nói: máy tính là máy trạng thái hữu hạn, gây hiểu lầm:
- Nó không vẽ ra một bức tranh thực tế của hầu hết các chương trình máy tính. Thật vậy, lập trình dataflow trên thực tế dựa trên các máy trạng thái hữu hạn, nhưng lập trình mệnh lệnh truyền thống thì không; nó sử dụng các chương trình gần với các phiên bản máy Turing hơn.
- Trong thực tế, máy tính cũng tương tác với các nguồn đầu vào, đầu ra và lưu trữ bên ngoài không cố định về kích thước.
- Máy Turing không phải là mô hình máy tính ở nơi đầu tiên; họ mô hình tính toán tùy ý.
Tóm lại: ý tưởng về các máy Turing sử dụng hoặc chứa băng vô hạn dùng để nhấn mạnh một điểm kỹ thuật quan trọng, nhưng nó không nhất thiết là cách suy nghĩ trực quan nhất về máy Turing và nó đưa ra một số kết luận không chính xác. Sử dụng cẩn thận.