Chứng minh rằng các ngôn ngữ thông thường được đóng dưới toán tử chu kỳ


8

Tôi đã có một vài ngày thi và gặp vấn đề để giải quyết nhiệm vụ này.

Hãy L là một ngôn ngữ thông thường trên bảng chữ cái Σ . Chúng tôi có các hoạt động đi xe đạp(L)= ={xy|x,yΣ* và yxL} Và bây giờ chúng ta nên chứng minh rằng cũng là bình thường.đi xe đạp(L)

Tham chiếu là chúng ta có thể tạo ra một DFA với a -NFA với và trạng thái.L ( D ) = L ϵ N L ( N ) = chu kỳ ( L ) 2 · | Q | 2 + 1D=(Q,Σ,δ,q0,F)L(D)=LϵNL(N)=cycle(L)2·|Q|2+1


Bài tập 5.4 , do ngày 24/5.
Raphael

Câu trả lời:


15

Ý tưởng là quyết định không nhất định ngay từ đầu bao nhiêu từ được đạp xe và có một bản sao của máy tự động cho mọi trường hợp. Về mặt tự động, điều đó có nghĩa là chúng tôi đoán trạng thái sẽ có sau khi sử dụng tiền tố của một từ (là hậu tố của đầu vào của chúng tôi) và bắt đầu ở trạng thái đó.D

Bây giờ thi công. Đối với mỗi trạng thái , riêng D thành hai phần A 1A 2 . A 1 chứa các trạng thái mà q có thể truy cập và A 2 các trạng thái có thể truy cập từ q :qQDA1A2A1qA2q

nhập mô tả hình ảnh ở đây
[ nguồn ]

Lưu ý rằng bất kỳ nút đã cho nào cũng có thể được chứa trong cả A 2 . Do đó, số lượng trạng thái có thể tăng gấp đôi nếu chúng ta thực hiện bước này rõ ràng.A1A2

Bây giờ chúng tôi sắp xếp lại máy tự động này để nó chấp nhận tất cả các từ mà đánh dấu "điểm chu kỳ":q

nhập mô tả hình ảnh ở đây
[ nguồn ]

Chúng tôi nhận được automata của hình thức này; tạo ra một trạng thái ban đầu mới có ε -transitions cho tất cả các quốc gia bắt đầu của họ. Kết quả automaton chấp nhận chu kỳ ( L ) . Tổng cộng, chúng tôi nhận được nhiều nhất | Q | ( 2 | Q | + 1 ) + 1 tiểu bang, chỉ | Q | nhiều tiểu bang hơn các yêu cầu tham khảo là có thể.|Q|εcycle(L)|Q|(2|Q|+1)+1|Q|

Bạn có thể đạt được Trạng thái 2 + 1 bằng cách sửa đổi thành phần automata một chút; loại bỏ tất cả q 0 bằng cách thay thế đến ε -transitions theo bản sao chuyển đi của nó. Nghĩa là, với mọi cặp chuyển đổi ( q 1 , ε , q 0 ) , ( q 0 , a , q 2 ) , giới thiệu một quá trình chuyển đổi ( q 1 , a , q 2 ) .2|Q|2+1q0ε(q1,ε,q0),(q0,a,q2)(q1,a,q2)

Xây dựng nghiêm ngặt và bằng chứng chính xác vẫn còn là bài tập.


Nhưng làm thế nào bạn có thể chứng minh điều này bạn vừa tạo ra một nfa?
Sad Golduhren

3
@SadGolduhren Raphael đã xây dựng một NFA (nó hữu hạn vì có giới hạn về số lượng trạng thái). Để thấy rằng NFA này nhận ra cùng ngôn ngữ với bản gốc, hãy quan sát các đường dẫn qua automata: q q F (trong đó q F là bất kỳ trạng thái cuối cùng nào đạt được từ q ) trở thành q q Fq 0q ' , và q F ε q 0 hoàn thành con đường. q0qqqFqFqqqFq0qqFϵq0
Gilles 'SO- đừng trở nên xấu xa'
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.