Là máy turing và ngôn ngữ chính thức là cùng một đối tượng toán học?


7

Mục tiêu của Turing trong khi xây dựng khái niệm của mình là chính thức hóa cách con người thực hiện lý luận trừu tượng.

Bây giờ hãy sửa tôi nếu tôi sai nhưng lý do đó dường như chỉ là một bài tập mà bạn thao tác một tập hợp các câu lệnh chính thức tức là các chuỗi không có ngữ nghĩa kèm theo nó.

Vì vậy, nếu máy Turing giống như lý luận, liệu có sự đồng hình (hoặc một cái gì đó tương tự) giữa các ngôn ngữ chính thức và máy Turing không?


Các TM thực sự "tương đương" với các ngôn ngữ đệ quy đệ quy (hay còn gọi là Turing có thể nhận ra bên dưới)
vzn

Câu trả lời:


3

Không hẳn. Một máy Turing được mô tả bởi đối tượng toán học này:

(Q,Σ,δ,H,q0,b)

Ở đâu

  • Q là một tập hợp hữu hạn của các trạng thái
  • Σlà một bảng chữ cái , một bộ ký hiệu hữu hạn
  • δ:Q×ΣQ×Σ×{,} là một chức năng chuyển tiếp
  • HQlà tập hợp các trạng thái tạm dừng
  • q0Q là trạng thái ban đầu
  • bΣ là biểu tượng "trống"

Máy có một số chuỗi đầu vào, xΣvà sử dụng hàm chuyển đổi để cập nhật lặp lại các ký hiệu riêng lẻ trong chuỗi đó cho đến khi δ trả về một trạng thái thuộc về H. Tại thời điểm đó, chúng tôi nói rằng máy đã tạm dừng - điều mà nó có thể hoặc không bao giờ làm được.

So với tất cả những điều đó, ngôn ngữ chính thức là những đối tượng đơn giản hơn nhiều. Một ngôn ngữ chỉ là một tập hợp con của tập hợp tất cả các chuỗi trên một số bảng chữ cái. Nói cách khác,LΣ, Ở đâu là toán tử sao Kleene .

Kết nối là máy Turing có thể được sử dụng để xác định ngôn ngữ chính thức. Ví dụ:

L={xΣ|M halts when given x as input }

Xác định ngôn ngữ chính thức L về mặt máy Turing M. Đối với một ngôn ngữ,L, nếu tồn tại một máy Turing dừng lại khi và chỉ khi đầu vào của nó thuộc về L, sau đó ngôn ngữ được gọi là Turing - có thể nhận ra . Một số ngôn ngữ không thể được xác định bởi bất kỳ máy Turing nào, điều đó có nghĩa là chúng không thể tính toán được - không có quy trình hữu hạn nào có thể quyết định liệu một chuỗi tùy ý có thuộc về ngôn ngữ hay không.

Ngôn ngữ chính thức không giống như máy Turing, nhưng tính dễ nhận biết của Turing có một vị trí thú vị trong nghiên cứu ngôn ngữ chính thức. Trong hệ thống phân cấp Chomsky, ngôn ngữ Loại 0 là ngôn ngữ có thể được liệt kê bởi bất kỳ ngữ pháp chính thức nào, và điều này hóa ra tương đương với việc có thể nhận ra bởi máy Turing! Ngữ pháp chính thức và máy Turing chỉ là hai trong số nhiều mô hình tính toán có sức mạnh tương đương!

Người ta thường tin rằng mọi mô hình tính toán tạo ra sự khác biệt giống nhau giữa các ngôn ngữ có thể tính toán và không tính toán được - khái niệm này được gọi là luận án Church-Turing .

EDIT: Thuật ngữ của tôi đã tắt khi tôi viết bài này. Một ngôn ngữ có thể quyết định Turing có thể được quyết định bởi một cỗ máy luôn dừng lại và đưa ra một cách dứt khoát có hoặc không về việc liệu đầu vào của nó có thuộc về ngôn ngữ đó hay không. Khi chúng tôi chỉ yêu cầu máy chấp nhận thành viên, nhưng không nhất thiết phải từ chối những người không phải thành viên, ngôn ngữ được liên kết được gọi là Turing có thể nhận biết được , hoặc, thông thường hơn, có thể liệt kê đệ quy. Các ngôn ngữ dễ nhận biết tương đương với các ngôn ngữ có thể được tạo bởi các ngữ pháp không giới hạn.

Một số ngôn ngữ thậm chí không thể đếm được đệ quy - ví dụ: tập hợp tất cả các máy Turing không dừng lại là hoàn toàn không thể nhận ra. Có một ngôn ngữ tương ứng với bộ này không thể được tạo bởi bất kỳ ngữ pháp nào, nhưng đó vẫn có thể được gọi là "ngôn ngữ chính thức". Theo định nghĩa này, không có ánh xạ hoàn chỉnh từ các máy Turing sang các ngôn ngữ chính thức và chắc chắn không có sự đẳng cấu giữa hai loại này.


@ kebertx Vậy chúng ta có thể nói có sự đồng hình giữa các ngôn ngữ có thể quyết định và máy Turing không?
Jerome

Chắc chắn có sự từ chối từ các máy Turing sang các ngôn ngữ có thể quyết định được, nhưng điều ngược lại là không đúng. Mỗi ngôn ngữ có thể quyết định thực sự tương ứng với vô số máy Turing, điều đó có nghĩa là không thể có sự đồng hình ở đó. - Bằng chứng: Giả sử bạn có một chương trình quyết định xem một chuỗi tùy ý có thuộc về ngôn ngữ hay không. Sau đó, bạn có thể viết một chương trình khác trước tiên thực hiện bất kỳ phép tính ngẫu nhiên nào, sau đó loại bỏ kết quả và đưa ra quyết định tương tự như chương trình đầu tiên. Điều này cho chúng ta biết rằng mọi vấn đề đều có 0 hoặc vô số giải pháp!
kebertx

11

Không, chúng không giống nhau. Một ngôn ngữ là một tập hợp các từ trên một số bảng chữ cái hữu hạn. Một máy Turing là 7 tuple như được định nghĩa trong Wikipedia .

Đối với một số ngôn ngữ, thật thuận tiện để mô tả chúng bằng một TM nhận ra chúng. Đối với mọi ngôn ngữ có thể được nhận dạng bởi một TM, có vô số TM nhận ra cùng một ngôn ngữ, vì vậy bạn phải áp dụng một số tiêu chí bổ sung nếu bạn muốn tạo ra sự độc đáo đó.

Điều này có vẻ như là một khởi đầu tốt cho một đẳng cấu, nhưng thật không may, có vô số ngôn ngữ mà các TM không thể nhận ra. Điều này có thể được nhìn thấy bởi một đối số đếm đơn giản. Tập hợp tất cả các từ có thể trên một bảng chữ cái cố định là đẳng cấu với các số tự nhiên. Do đó, tập hợp tất cả các ngôn ngữ trong bảng chữ cái đó (= tập hợp tất cả các tập hợp con của các từ) là không thể đếm được. Mặt khác, chỉ có vô số máy Turing. Vì vậy, không chỉ "sự công nhận" không thể được biến thành một đẳng cấu, mà không thể có bất kỳ sự đồng hình hóa nào vì điều đó có nghĩa là tập hợp các TM có cùng số lượng với bộ ngôn ngữ.


Chúng ta không thể nói rằng một ngôn ngữ chính thức nhất thiết phải được công nhận bởi ít nhất một TM?
Jerome

2
@Jerome Không. Có vô số ngôn ngữ thậm chí không thể bán được, vì vậy không được quyết định hoặc chấp nhận bởi bất kỳ máy Turing nào.
David Richerby 17/8/2016

@ adrianN. Phải và ngược lại? Tức là một khi bạn có một TM, nó có thể tạo ra bất cứ thứ gì khác ngoài ngôn ngữ chính thức không?
Jerome

@Jerome Đối với mọi Turing Machine, có một ngôn ngữ (có thể trống) mà nó chấp nhận, được định nghĩa là tập hợp các từ mà TM tạm dừng ở trạng thái CÓ. Có một ngôn ngữ cho mỗi TM, nhưng không phải là một ngôn ngữ cho mỗi ngôn ngữ.
jmite

Được rồi, tôi có đúng không khi nói rằng, chẳng hạn, không có TM nào chấp nhận ngôn ngữ chính thức được xác định bởi ZFC? (vì có một số tuyên bố đúng trong ZFC khi không có TM tạm dừng)
Jerome
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.