Dưới đây là cách thực hiện giải pháp của bạn. Hãy để là một DFA cho . Chúng tôi sẽ xây dựng một NFA như sau:A=⟨Q,q0,F,δ⟩LA′=⟨Q′,q′0,F′,δ′⟩
- Q′={q′0}∪Q3 . Trạng thái có nghĩa là chúng tôi đã đoán rằng khi đọc xong bản sao đầu tiên của , nó sẽ ở trạng thái ; bản sao đầu tiên của , bắt đầu từ , ở trạng thái ; và bản sao thứ hai của , bắt đầu từ , ở trạng thái .(q1,q2,q3)Awq1Aq0q2Aq1q3
- F′={(q1,q1,q2):q1∈Q,q2∈F} . Do đó, chúng tôi chấp nhận nếu bản sao đầu tiên của ở trạng thái đoán và bản sao thứ hai của ở trạng thái chấp nhận.AA
- δ′(q′0,ϵ)={(q,q0,q):q∈Q} . Đây khởi sự mô phỏng của hai bản sao của .A
- δ′((q1,q2,q3),a)={(q1,δ(q2,a),δ(q3,a))} . Điều này mô phỏng cả hai bản sao của , trong khi vẫn giữ trạng thái đoán.A
Chúng tôi để lại cho người đọc bằng chứng chính thức rằng .L(A′)=L(A)−−−−√
Đây là một giải pháp khác, tạo ra một DFA. Bây giờ chúng ta chạycác bản sao của song song, bắt đầu từ mỗi trạng thái của :|Q|AA
- Q′=QQ .
- q′0=q↦q , chức năng nhận dạng.
- δ′(f,a)=q↦δ(q,a) .
- F′={f∈Q′:f(f(q0))∈F} .
Ý nghĩa của điều kiện gì? Sau khi đọc một từ , automaton ở trạng thái được cho bởi . Do đó .f(f(q0))∈FwA′ff(q)=δ(q,w)f(f(q0))=δ(δ(q0,w),w)=δ(q0,w2)