Automata trạng thái hữu hạn: trạng thái cuối cùng


8

Trong khóa học về khái niệm ngôn ngữ lập trình của chúng tôi, người hướng dẫn của chúng tôi tuyên bố rằng trạng thái cuối cùng sẽ dẫn đến trạng thái khác trong sơ đồ trạng thái hữu hạn.

Nhưng đây dường như là một khái niệm mâu thuẫn cơ bản. Bởi vì một trạng thái cuối cùng theo định nghĩa là một trạng thái chấm dứt quá trình chuyển đổi, tức là, một khi bạn đạt đến nó, không còn gì để làm nữa.

Tuy nhiên, ông đã trình bày một slide như thế này, trong đó các trạng thái cuối cùng được biểu thị bằng hai vòng tròn ... Làm sao B, D, E và H có thể trở thành trạng thái cuối cùng khi chúng không rõ ràng như vậy?

nhập mô tả hình ảnh ở đây


Một khi bạn đạt được nó, không còn gì để làm nữa. Chỉ khi bạn đã tiêu thụ tất cả các đầu vào và xem xét bất kỳ chuyển đổi epsilon.
Andrea Lazzarotto

Câu trả lời:


17

Bạn dường như có một sự hiểu lầm về các mô hình thế hệ so với các mô hình "nhận biết".

Ngữ pháp bạn có ở bên phải tạo ra các từ bằng cách áp dụng các quy tắc, bắt đầu từ biến ban đầu và dừng lại sau khi không còn biến nào nữa.

Tuy nhiên, Automata nhận ra một ngôn ngữ như sau: bạn cung cấp cho máy tự động một từ, từng chữ cái và máy tự động thực hiện chuyển đổi dựa trên các chữ cái được cung cấp cho nó.

Nếu, sau khi đọc tất cả các chữ cái, automaton kết thúc ở trạng thái chấp nhận (còn gọi là cuối cùng), thì chúng ta nói rằng automaton chấp nhận từ đó.

Vì vậy, tốt hơn nên nghĩ về những trạng thái đó là trạng thái "chấp nhận", thay vì trạng thái "cuối cùng", mặc dù cả hai thuật ngữ thường được sử dụng.


Tôi đồng ý rất nhiều. Sách giáo khoa của tôi cũng gọi chúng là trạng thái "cuối cùng" và nó làm tôi bối rối cho đến khi tôi bắt đầu buộc mình phải gọi chúng là "trạng thái chấp nhận" haha.
Seankala

Thật buồn cười, tôi chưa bao giờ có ý thức nhìn thấy thuật ngữ Nhà nước cuối cùng trước đây, tôi luôn thấy họ gọi là Chấp nhận trạng thái - và, như câu trả lời này giải thích, tình trạng cuối cùng của Hồi là sai.
Konrad Rudolph

7

một trạng thái cuối cùng theo định nghĩa là một trạng thái chấm dứt quá trình chuyển đổi, nghĩa là một khi bạn đạt đến nó, không còn gì để làm nữa.

Nguồn gốc của sự nhầm lẫn của bạn là đây không phải là định nghĩa. "Trạng thái cuối cùng" là một lựa chọn tên kém và hầu hết các tác giả dường như thích "trạng thái chấp nhận". Định nghĩa là automaton chấp nhận nếu lần chạy của nó kết thúc ở trạng thái cuối cùng / chấp nhận và từ chối theo cách khác.


7

Thật vậy, thật khó hiểu! Để giải quyết vấn đề của bạn, hãy gọi họ là trạng thái "chấp nhận" thay vì trạng thái "cuối cùng". Bởi vì đó là những gì họ thực sự là, chỉ là một điểm đánh dấu cho chúng ta biết rằng tại thời điểm này, chuỗi được xử lý thuộc về ngôn ngữ.


3

"một trạng thái cuối cùng theo định nghĩa là một trạng thái chấm dứt quá trình chuyển đổi, tức là một khi bạn đạt đến nó, không còn gì để làm nữa."

Trong quy ước truyền thống làm việc với người chấp nhận (nghĩa là automata trạng thái hữu hạn cho bạn biết một chuỗi đã cho có thuộc / không thuộc về ngôn ngữ hay không), trạng thái cuối cùng là một trạng thái, khi đạt đến một chuỗi trống (đầu vào là được tiêu thụ hoàn toàn) biểu thị rằng chuỗi ban đầu được chấp nhận, nghĩa là nó là một phần của ngôn ngữ tự động.


3

Bạn có thể thấy. Ngữ pháp đã cho nói A -> a. Do đó, automatom chấp nhận chấm dứt chuỗi "a". Nhưng nó cũng cho phép A -> aB -> abD -> abc, vì vậy chuỗi "abc" cũng được chấp nhận. Nếu chúng ta kết thúc chuỗi vào thời điểm này, chúng ta sẽ đứng ở trạng thái cuối cùng và do đó chuỗi đã được chấp nhận. Nhưng chúng ta vẫn có thể muốn chuỗi "ab" được chấp nhận. Vì vậy, chúng ta cần đảm bảo rằng {"a", "ab", "abc"} đều được máy tự động chấp nhận. Không xem các trạng thái cuối cùng là trạng thái sao cho nếu chúng ta nhập nó, chúng ta có thể không bao giờ rời khỏi trạng thái đó, hãy xem trạng thái đó để cho chúng ta biết chuỗi hiện tại của chúng ta có được chấp nhận hay không.

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.