Bằng chứng đóng cửa không chính xác trong hoạt động sao sử dụng kết quả NFA trong NFA nhận ra các chuỗi không mong muốn?


8

Tôi hiện đang đọc cuốn sách Giới thiệu về Lý thuyết tính toán (Ed thứ 2 hoặc 3) của Michael Sipser , và đã vấp phải một câu hỏi trong Chương 1 - Ngôn ngữ thông thường , cụ thể là khi tác giả trình bày ý tưởng chứng minh của Định lý 1.49 - "Lớp ngôn ngữ thông thường được đóng lại dưới thao tác sao." sử dụng NFA.

Phương pháp gợi ý là, nếu chúng ta có một ngôn ngữ thường xuyên và muốn chứng minh rằng A * 1 cũng là bình thường, chúng ta có thể lấy một NFA N 1 và sửa đổi nó thành một N như trong hình dưới đây, đó là sau đó một đặc biệt NFA nhận Một * 1 .A1A1N1NA1

Sửa đổi NFA $ N_1 $

Anh lưu ý:

Một ý tưởng (hơi xấu) chỉ đơn giản là thêm trạng thái bắt đầu vào tập hợp các trạng thái chấp nhận. Cách tiếp cận này chắc chắn thêm với ngôn ngữ được công nhận, nhưng nó cũng có thể thêm khác, chuỗi không mong muốn.ε

Tôi đã rút ra NFA "xấu" như dưới đây và cố gắng tìm hiểu tại sao điều này sẽ dẫn đến các chuỗi không mong muốn. Tuy nhiên, tôi không thể tìm thấy một ví dụ về thời điểm chuỗi không mong muốn được nhận ra. Tại sao ý tưởng này sẽ dẫn đến việc NFA nhận ra các chuỗi không mong muốn?

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

Ai đó có thể chỉ ra điều này cho tôi hoặc cho tôi một gợi ý, hoặc tôi đã hiểu nhầm tác giả? Cảm ơn trước!

Câu trả lời:


11

Hãy xem xét một máy tự động hai trạng thái cho ngôn ngữ , hai lần chuyển từ trạng thái ban đầu, một vòng lặp với nhãn , vòng kia có nhãn sang trạng thái cuối cùng.abab

Làm cho trạng thái ban đầu cuối cùng, cũng sẽ chấp nhận .a

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.