Tại sao băng không phải là một phần của định nghĩa của Máy Turing?


11

Tôi đã tự hỏi tại sao băng / băng không phải là một phần của định nghĩa chính thức của Máy Turing. Ví dụ, hãy xem xét định nghĩa chính thức của máy Turing trên trang Wikipedia . Định nghĩa, sau Hopcroft và Ullman, bao gồm: tập hữu hạn các trạng thái , băng bảng chữ cái Γ , biểu tượng trống b Γ , tình trạng ban đầu q 0Q , tập các trạng thái thức F Q , và quá trình chuyển đổi hàm δ : ( Q F ) × Γ Q × Γ ×Q ΓbΓq0QFQ . Không ai trong số đó là băng chính nó.δ:(QF)×ΓQ×Γ×{L,R}

Máy Turing luôn được coi là hoạt động trên băng và chức năng chuyển đổi được hiểu là di chuyển đầu, thay thế biểu tượng và thay đổi trạng thái. Vậy, tại sao băng lại rời khỏi định nghĩa toán học của máy Turing?

Từ những gì tôi có thể thấy, bản thân định nghĩa chính thức dường như không ngụ ý rằng Máy Turing hoạt động giống như nó thường được mô tả không chính thức (với một cái đầu di chuyển xung quanh trên một cuộn băng). Hay không?


1
phần tiếp theo trong wikipedia nói: "Theo lời của van Emde Boas (1990), trang 6:" Đối tượng lý thuyết tập hợp [mô tả bảy tuple chính thức của ông tương tự như trên] chỉ cung cấp một phần thông tin về cách thức hoạt động của máy và tính toán của nó sẽ trông như thế nào. "" nó khá giống với sự phân đôi phần mềm / phần cứng / hiệp lực / phụ thuộc lẫn nhau. phần mềm giả định một phần cứng cụ thể mà nó chạy. nếu ai đó phát hiện ra một số phần mềm trong tương lai, họ không thể hiểu "ý nghĩa" của nó mà không hiểu phần cứng mà nó chạy.
vzn

Tại sao đường không phải là một phần của xe?
Andrej Bauer

Câu trả lời:


8

Để chính thức xác định một thể hiện của máy Turing (không phải khái niệm chung), bạn không cần đề cập rõ ràng đến chính băng hoặc nội dung của nó. Để biểu thị một cấu hình của máy cụ thể này, hoặc một tính toán được thực hiện bởi nó, đó là khi bạn cần một số dạng ký hiệu để mô tả nội dung của băng.


Vì vậy, một băng là cần thiết để xác định một cấu hình và tính toán, chỉ?
Shuzheng

Có, máy chỉ hoạt động trên băng. Nội dung khác nhau của băng không tạo ra các máy khác nhau.
André Souza Lemos

1
Nói cách khác: câu hỏi chỉ trích dẫn cú pháp của TM. Chỉ khi xác định ngữ nghĩa thì băng mới vào hình. (Tương tự: định nghĩa cú pháp của C (hoặc bất kỳ ngôn ngữ lập trình nào khác) không đề cập đến tập lệnh kiến ​​trúc phần cứng / hệ điều hành / CPU giả định.)
Raphael

Ngay cả về mặt ngữ nghĩa, thật tự nhiên khi nghĩ rằng máy vẫn giữ nguyên cùng một máy ngay cả khi nội dung băng thay đổi. (Chính thức, đây không phải là trường hợp, vì nội dung ban đầu là một phần của định nghĩa của máy.)
rebierpost

2

Đó là một vùng màu xám, nhưng tôi muốn nói định nghĩa sẽ tách mô hình khỏi thể hiện . Nếu bạn muốn có một ý tưởng đơn giản trong đầu, hãy nghĩ về phần cứng và phần mềm.

Các mô hình là phần cứng: là một người đứng đầu. Có một cuộn băng. Băng là vô hạn ở một bên và chứa khoảng trống (bên cạnh đầu vào). Đầu có thể di chuyển một bước một lần.

Các ví dụ là phần mềm: mệnh lệnh đầu vào những gì các băng giữ ngay từ đầu, chức năng nhà nước / chuyển tiếp nói với cách di chuyển đầu và làm thế nào máy "công trình". Các trạng thái cuối cùng cho ý nghĩa của thành công / thất bại.

Cả hai tham số đều có thể cấu hình --- cả hai đều có thể thay đổi. Các mô hình thay thế tồn tại với hai băng, hai đầu, băng hai mặt, băng không trống, v.v. Nhưng một khi bạn sửa mô hình, bạn cần giải quyết các tham số "có thể định cấu hình" khác, như số lượng trạng thái có thể và chức năng chuyển đổi .

PMpattern


1

Ở đây đã có câu trả lời tốt, nhưng tôi cố gắng thực hiện một câu trả lời ngắn gọn.

Định nghĩa không nên thừa hoặc dài dòng.

Thật vậy, định nghĩa máy Turing cũng định nghĩa trừu tượng băng. Q0 - là bắt đầu của băng. Bảng chữ cái là một nội dung của băng. Và δ: (Q F) × → Q × Γ × {L, R} nói rằng băng có trái và phải và vô cùng theo cả hai hướng.

Vì vậy, băng, đầu, chỉ di chuyển các biểu diễn thân thiện với con người của mô hình, chúng đã có trong mô hình toán học , nhưng bản thân chúng không phải là mô hình chính thức.


1

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 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.

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.