JFiZO - Zadanie 09.019

Twierdzenie 4.11 z Hopcrofta

Jeśli L jest regularny, to L^R = \lbrace w : w^R \in L \rbrace też jest regularny.

Rozwiązanie

(indukcja względem struktury wyrażenia regularnego) Skoro L jest regularny, to istnieje wyrażenie regularne E takie, że L(E) = L. Pokażemy, że istnieje wyrażenie regularne E^R takie, że L(E^R) = \left(L(E)\right)^R.

Podstawa indukcji

E \in \{ \epsilon, \emptyset, a \}, gdzie a \in \Sigma. Wtedy E^R = E, bo \epsilon^R = \epsilon, \emptyset^R = \emptyset, a^R = a.

Krok indukcyjny

Mamy trzy przypadki (trzeba je udowodnić, korzystając z założenia indukcyjnego, że prostsze wyrażenia regularne są już dobrze odwrócone):

  • E = E_1 + E_2. Wtedy E^R = E_1^R + E_2^R.
  • E = E_1E_2. Wtedy E^R = E_2^RE_1^R.
  • E = E_1^*. Wtedy E^R = (E_1^R)^*.

Rozwiązanie alternatywne

Wiemy, że jeżeli istnieje NDFA A rozpoznający dany jezyk,
to możemy skonstuować DFA A' taki, że L(A)=L(A').

Naszym automatem rozpoznającym język L^R(A') będzie NDFA B.
A' = (\Sigma, Q, S, F, \delta )
B = (\Sigma, Q, S_B, F_B, \delta_B )
S_B = q_0
F_B = \{ S \}
\delta_B = \{ (q_2,a,{q_1}) : (q_1,a,q_2) \in \delta \} \cup \{ (q_0,\epsilon,F)\}

Wystarczy pokazać, że:
w \in L^R(A') ⇔ w jest rozpoznawany przez B

(\Rightarrow) Weźmy dowolne słowo w z L(A'). Czyli słowo w^R \in L^R(A').
Dla słowa w, w A' istnieje taka ścieżka stanów q_0 \rightarrow q_1 \rightarrow … \rightarrow q_n, że q_0 \in S \wedge q_n \in F.
Czyli z definicji B wiemy, że istnieje tam ścieżka stanów q_n \rightarrow q_{n-1} \rightarrow … \rightarrow q_0, że q_n \in S_B \wedge q_0 \in F_B.
Widać, że to ścieżka dla słowa w^R, czyli jest ono rozpoznawane przez automat.

(\Leftarrow) Weźmy dowolne słowo v akceptowane przez automat B. To znaczy, że istnieje w B ścieżka stanów q_0 \rightarrow q_1 \rightarrow … \rightarrow q_n, że q_0 \in S_B \wedge q_n \in F_B.
Z definicji automatu B wiemy, że musi istnieć ścieżka stanów q_n \rightarrow q_{n-1} \rightarrow … \rightarrow q_0, że q_n \in S \wedge q_0 \in F w automacie A'.
Widzimy, że to ścieżka dla słowa v^R. Czyli v^R \in L(A'). Czyli v \in L^R(A').

Ścieżka, to taki ciąg \{q_i, a_i\}, że δ(q_i, a_i) = q_{i+1} oraz \hat{δ}(q_0, w ) \in F, dla każdego q_0 \in S.

 
jfizo/zadanie09.019.txt · ostatnio zmienione: 2010/03/07 22:07 przez alistra
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:MIT License
Recent changes RSS feed