Sự khác biệt giữa máy turing và máy trạng thái hữu hạn?


27

Tôi đang trình bày về máy Turing và tôi muốn cung cấp một số thông tin cơ bản về FSM trước khi giới thiệu Máy Turing. Vấn đề là, tôi thực sự không biết RẤT khác nhau là gì.

Đây là những gì tôi biết nó khác nhau:

FSM có các trạng thái tuần tự tùy thuộc vào điều kiện tương ứng được đáp ứng trong khi máy Turing hoạt động trên "Băng" vô hạn với đầu đọc và ghi.

Có nhiều chỗ hơn cho lỗi trong FSM vì chúng ta có thể dễ dàng rơi vào trạng thái không kết thúc, trong khi đó không quá nhiều cho các máy Turing vì chúng ta có thể quay lại và thay đổi mọi thứ.

Nhưng khác với điều đó, tôi không biết nhiều sự khác biệt nữa giúp máy Turing tốt hơn so với FSM.

Bạn có thể giúp tôi không?


2
Không khó để google cho "FSM so với Turing Machine"! Đó là phần thú vị của việc nghiên cứu của riêng bạn. Sự khác biệt chính là máy Turing có "bộ nhớ" vô hạn, nhưng FSM thì không.
Đại

Ok, tôi đã lừa một chút ở đó>.> ;; Gotcha! Cảm ơn!
Julio Garcia

3
lập luận về "lỗi" là không chính xác. Hãy thử wikipedia và sách khóa học. Xem sự khác biệt cơ bản của chúng là gì, mục đích của việc sử dụng từng cái (ví dụ: khi chúng ta không thể chọn một FSM trên TM?) Và mối quan hệ của chúng.
Parham

@MahmoudAlimohamadi ý tôi là có một cơ hội lớn hơn cho một fsm hạ cánh trên một trạng thái không kết thúc.
Julio Garcia

@Dai: Sẽ đúng hơn khi nói rằng Máy Turing có thể sử dụng một lượng bộ nhớ lớn tùy ý . Số lượng sử dụng không bao giờ là vô hạn.
Revierpost

Câu trả lời:


24

Sự khác biệt chính giữa cách DFA (Automine Finite Automaton) và TM hoạt động là về cách chúng sử dụng bộ nhớ.

Theo trực giác, các DFA hoàn toàn không có bộ nhớ "cào"; cấu hình của DFA hoàn toàn được tính bởi trạng thái mà hiện tại nó tự tìm thấy và tiến trình hiện tại của nó trong việc đọc đầu vào.

Theo trực giác, các TM có bộ nhớ "cào" dưới dạng băng; cấu hình của TM bao gồm cả trạng thái hiện tại của nó và nội dung hiện tại của băng, mà TM có thể thay đổi khi thực thi.

Một DFA có thể được coi là một TM không thay đổi bất kỳ biểu tượng băng nào cũng như không di chuyển đầu sang trái. Những hạn chế này khiến cho không thể nhận ra một số ngôn ngữ nhất định có thể được chấp nhận bởi các TM.

Lưu ý rằng tôi sử dụng thuật ngữ "DFA" thay vì "FSM", vì về mặt kỹ thuật, tôi coi TM là một máy trạng thái hữu hạn, vì các định nghĩa TM có số lượng trạng thái hữu hạn. Sự khác biệt giữa DFA và TM là ở số lượng cấu hình, tương đương với số trạng thái của DFA, nhưng vô cùng tuyệt vời đối với TM.


À, hiểu rồi Một câu hỏi liên quan đến phần "không có bộ nhớ": Tôi thấy một ví dụ về máy bán hàng tự động có thêm các đồng tiền được phân phối. Làm thế nào để họ biết có bao nhiêu tiền nếu nó không có bộ nhớ?
Julio Garcia

@JulioGarcia Thật khó để nói mà không biết chính xác những gì bạn đã thấy. Có máy Moore và Mealy có thể xuất các ký hiệu trên các chuyển tiếp. Hoạt động của máy bán hàng tự động có thể được mô hình hóa tốt hơn bởi một trong những cơ chế đó. Một DFA vanilla chỉ chấp nhận và từ chối các chuỗi ... một máy bán hàng tự động nên "chấp nhận" bất kỳ "chuỗi" tiền đúc nào. Tùy thuộc vào cách bạn mô hình hóa các tác dụng phụ bổ sung của việc thay đổi, loại bộ nhớ đầu cần thiết có thể là không có hoặc truy cập ngẫu nhiên vô hạn.
Patrick87

Không thấy ví dụ của bạn, tôi không thể hoàn toàn chắc chắn, nhưng tôi có hai dự đoán. Một là nó không biết có bao nhiêu tiền: nó chỉ giả định là có đủ. Bạn sẽ không muốn xây dựng một máy bán hàng tự động thực sự theo cách đó, nhưng nó vẫn là một ví dụ hữu ích về khái niệm này. Khả năng khác là nó không thực sự là một FSA "thuần túy": nó được nối với một cảm biến có thể lấy dữ liệu này từ "bên ngoài" máy bằng cách nào đó. Máy không biết hoặc không quan tâm dữ liệu đến từ đâu và nó không thể lưu trữ bất cứ thứ gì trong cảm biến (vì vậy nó không thực sự là "bộ nhớ"), nhưng nó vẫn có thể hoạt động theo những gì nó nhìn thấy ở đó.
Chiếc thìa ngon nhất

16

Turing Machines mô tả một lớp ngôn ngữ lớn hơn nhiều, lớp ngôn ngữ đệ quy vô số. Máy trạng thái hữu hạn mô tả các lớp của ngôn ngữ thông thường.

Máy trạng thái hữu hạn không có "bộ nhớ", nó bị giới hạn bởi các trạng thái của nó.

Máy trạng thái hữu hạn là máy Turing bị hạn chế trong đó đầu chỉ có thể thực hiện các thao tác "đọc" và luôn di chuyển từ trái sang phải.

Lấy ngôn ngữ này làm ví dụ:

L={aibi| i>=0}

Vì các máy trạng thái hữu hạn bị giới hạn theo nghĩa là chúng không có bộ nhớ, nên không thể xây dựng một FSM chấp nhận L.

Để tóm tắt:

Các máy trạng thái hữu hạn mô tả một lớp nhỏ các ngôn ngữ không cần bộ nhớ.

Turing Machines là mô tả toán học của máy tính và chấp nhận một lớp ngôn ngữ lớn hơn nhiều so với các FSM.

Máy Turing có sức mạnh tính toán nhiều hơn so với FSM. Có những nhiệm vụ mà không FSM nào có thể làm được, nhưng Turing Machines có thể làm được.


3

Tôi có cùng nghi ngờ và tôi đã thấy hai video rất khai sáng và một lời giải thích về Quora như sau:

Một máy trạng thái hữu hạn chỉ là một tập hợp các trạng thái và chuyển tiếp. Bộ nhớ duy nhất nó có là trạng thái của nó. Do đó, số lượng trạng thái bộ nhớ là ... hữu hạn.

Máy Turing là máy trạng thái hữu hạn cộng với bộ nhớ băng. Mỗi lần chuyển đổi có thể đi kèm với một thao tác trên băng (di chuyển, đọc, viết).

Tôi đã hiểu từ đó rằng một máy turing sử dụng / có một máy trạng thái hữu hạn như là một phần của quy trình vận hành của nó, cộng với việc thêm một số bộ nhớ có thể chỉnh sửa vào nó.

Xin vui lòng xem cả hai video, họ đang khai sáng!

https://youtu.be/gJQTFhkhwPA

https://youtu.be/E3keLeMwfHY


2

Theo như tôi hiểu về sự khác biệt giữa (mô hình tiêu chuẩn) Turing và (mô hình tiêu chuẩn) Mealy Machines:

  • Máy Turing đọc và ghi trên cùng một băng so với Máy Mealy đọc trên một băng đầu vào và ghi trên băng đầu ra khác
  • Máy Turing có thể thay đổi "hướng băng" (tiến sang trái hoặc phải [hoặc tạm dừng]) so với Máy Mealy chỉ có thể tiến hành sang phải (đó là lý do tại sao không có hướng nào được đặt {L, R, H} trong chức năng chuyển tiếp của Máy Mealy [nó hoàn toàn là {R}, có nghĩa là không có lựa chọn nào cả])
  • Máy Turing có thể tạm dừng trên bất kỳ ô băng nào so với Máy Mealy đọc đầu vào hoàn chỉnh và sau đó dừng chấp nhận hoặc từ chối nó

-3

Một máy Turing có thể lưu trữ, như một phần của băng, những thứ nó muốn ghi nhớ.


5
Không rõ ý của bạn là "nó" nhưng cả máy Turing và FSM đều có thể làm điều này vì vậy nó không phải là một sự khác biệt.
David Richerby

@DavidR Richby Nhưng một FSM chỉ có thể lưu trữ một lượng định trước, trong khi máy Turing có thể lưu trữ bao nhiêu tùy thích. Đó sự khác biệt cơ bản.
Gilles 'SO- ngừng trở nên xấu xa'

1
@Gilles Đồng ý nhưng đó không phải là câu trả lời.
David Richerby
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.