Języki, automaty i obliczenia/Ćwiczenia 7: Twierdzenie Kleene'ego. Własności języków i gramatyk regularnych: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rogoda (dyskusja | edycje)
Nie podano opisu zmian
Rogoda (dyskusja | edycje)
Nie podano opisu zmian
Linia 90: Linia 90:
\in S\times F \cup T\times Q    </math></center>
\in S\times F \cup T\times Q    </math></center>
Mamy dwie możliwości:
Mamy dwie możliwości:
## <math>\displaystyle g(t_0,v_1v_2) \in F</math>, co oznacza  <math>\displaystyle v_1v_2 \in L(\mathcal{B})</math>, <math>\displaystyle w \in  
 
:(a) <math>\displaystyle g(t_0,v_1v_2) \in F</math>, co oznacza  <math>\displaystyle v_1v_2 \in L(\mathcal{B})</math>, <math>\displaystyle w \in  
L(\mathcal{B})</math>,
L(\mathcal{B})</math>,
## <math>\displaystyle  f(s_0,v_1v_2)\in T</math>, co oznacza  <math>\displaystyle v_1v_2 \in L(\mathcal{A})</math>. <br>
 
Jeśli <math>\displaystyle |v_1v_2|<p</math>, to <math>\displaystyle v_1v_2 \in L(\mathcal{B})</math>, <math>\displaystyle w \in L(\mathcal{B})</math>.<br>
:(b) <math>\displaystyle  f(s_0,v_1v_2)\in T</math>, co oznacza  <math>\displaystyle v_1v_2 \in L(\mathcal{A})</math>. <br>
Jeśli <math>\displaystyle |v_1v_2|>p</math>, to powtarzamy punkt 2.
: Jeśli <math>\displaystyle |v_1v_2|<p</math>, to <math>\displaystyle v_1v_2 \in L(\mathcal{B})</math>, <math>\displaystyle w \in L(\mathcal{B})</math>.<br>
: Jeśli <math>\displaystyle |v_1v_2|>p</math>, to powtarzamy punkt 2.


Po każdym kroku długość rozważanego słowa silnie maleje, więc po skończonej ilości kroków uzyskamy oczekiwany efekt.<br>
Po każdym kroku długość rozważanego słowa silnie maleje, więc po skończonej ilości kroków uzyskamy oczekiwany efekt.<br>
Linia 148: Linia 150:
\{s_{\mathcal B},s_1,s_2\}, \;\;F_{\mathcal B} = \{s_2\},\;\;\; S_{\mathcal C} =  
\{s_{\mathcal B},s_1,s_2\}, \;\;F_{\mathcal B} = \{s_2\},\;\;\; S_{\mathcal C} =  
\{s_{\mathcal C},{s'}_1,{s'}_2\},\;\; F_{\mathcal C} = \{{s'}_2\},</math></center>
\{s_{\mathcal C},{s'}_1,{s'}_2\},\;\; F_{\mathcal C} = \{{s'}_2\},</math></center>


<center><math>\displaystyle \begin{array} {c|c|c|c|} f_{\mathcal B} &s_{\mathcal B} &s_1 & s_2 \\  
<center><math>\displaystyle \begin{array} {c|c|c|c|} f_{\mathcal B} &s_{\mathcal B} &s_1 & s_2 \\  
Linia 158: Linia 161:
<center><math>\displaystyle S_{\mathcal B} = \{s_{\mathcal B},s_1,s_2,s_3\}, \;\;F_{\mathcal  
<center><math>\displaystyle S_{\mathcal B} = \{s_{\mathcal B},s_1,s_2,s_3\}, \;\;F_{\mathcal  
B} = \{s_2\},</math></center>
B} = \{s_2\},</math></center>


<center><math>\displaystyle \begin{array} {c|c|c|c|c|} f_{\mathcal B} &s_{\mathcal B} &s_1 & s_2 & s_3\\ \hline a & s_1 & s_3 & s_3 & s_3 \\  
<center><math>\displaystyle \begin{array} {c|c|c|c|c|} f_{\mathcal B} &s_{\mathcal B} &s_1 & s_2 & s_3\\ \hline a & s_1 & s_3 & s_3 & s_3 \\  
Linia 201: Linia 205:
w stanie <math>\displaystyle (k \mod 2, l \mod 3)</math>. Zastanów się, który stan będzie  
w stanie <math>\displaystyle (k \mod 2, l \mod 3)</math>. Zastanów się, który stan będzie  
stanem końcowym. Na podstawie automatu określ gramatykę.
stanem końcowym. Na podstawie automatu określ gramatykę.
}}</div>
</div></div>}}

Wersja z 21:52, 23 sie 2006

ĆWICZENIA 7

Ćwiczenie 1.1

Niech A={a,b}. Dla automatów
=(S,A,f,s,F),𝒞=(S𝒞,A,f𝒞,s𝒞,F𝒞)
S={s,s1,s2},F={s2},S𝒞={s𝒞,s},F𝒞={s},

gdzie

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \begin{array} {c|c|c|c|} f_{\mathcal B} &s_{\mathcal B} &s_1 & s_2 \\ \hline a & s_2 & s_1 & s_2 \\ \hline b & s_1 & s_1 & s_2\\ \hline \end{array} \hspace{2cm} \begin{array} {c|c|c|} f_{\mathcal C} &s_{\mathcal C} &s \\ \hline a & s & s \\ \hline b & s_{\mathcal C} & s_{\mathcal C} \\ \hline \end{array} }
skonstruuj automat 𝒜 taki, że
L(𝒜)=L()L(𝒞),
Rozwiązanie

Ćwiczenie 1.2

Niech A={a,b}. Dla automatu
=(S,A,f,s,F),

gdzie

S={s,s1,s2},F={s1},

a funkcja przejść zdefiniowana jest następująco:

fss1s2as1s2s2bs1ss1

skonstruuj automat deterministyczny 𝒜 taki, że

L(𝒜)=L()*.
Wskazówka
Rozwiązanie

Ćwiczenie 1.3

Dane są dwa automaty nad tym samym alfabetem A
𝒜=(S,f,s0,T) i =(Q,g,t0,F). Udowodnij, że istnieje liczba p0 taka, że jeśli dla każdego słowa w o długości |w|p spełniona jest implikacja wL(𝒜)wL(), to

L(𝒜)L()
Rozwiązanie

Ćwiczenie 1.4

Niech A będzie dowolnym alfabetem, a LA* językiem regularnym. Udowodnij, że język L={a|w|:wL} jest też językiem regularnym.

Rozwiązanie

Ćwiczenie 1.5

Udowodnij, że następujące języki nie są regularne:

  1. Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L = \{a^n : n \; \text{nie jest liczbą pierwszą\;} \}} ,
  2. L={anbm:0n,m;nm}.
Rozwiązanie punktu 1
Rozwiązanie punktu 2

ZADANIA DOMOWE

Ćwiczenie 1.6

Niech A={a,b}. Skonstruuj automat 𝒜, taki że

  1. L(𝒜)=L()L(𝒞), gdzie
    =(S,A,f,s,F),𝒞=(S𝒞,A,f𝒞,s𝒞,F𝒞),
S={s,s1,s2},F={s2},S𝒞={s𝒞,s1,s2},F𝒞={s2},


Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle \begin{array} {c|c|c|c|} f_{\mathcal B} &s_{\mathcal B} &s_1 & s_2 \\ \hline a & s_2 & s_1 & s_2 \\ \hline b & s_1 & s_1 & s_2\\ \hline \end{array} \hspace{2cm} \begin{array} {c|c|c|c|} f_{\mathcal C} &s_{\mathcal C} &{s'}_1&{s'}_2 \\ \hline a & {s'}_1 & {s'}_1& {s'}_2 \\ \hline b & {s'}_2 & {s'}_1& {s'}_2 \\ \hline \end{array} }
  1. L(𝒜)=L()*, gdzie
    =(S,A,f,s,F),
S={s,s1,s2,s3},F={s2},


fss1s2s3as1s3s3s3bs3s2s3s3

Podaj dwie konstrukcje:

  1. opartą na dowodzie twierdzenia Kleene'ego,
  2. z wykorzystaniem automatu z pustymi przejściami.

Ćwiczenie 1.7

Skonstruuj minimalny automat 𝒜, taki że L(𝒜)=L()*, gdzie opisany jest poniższym grafem:

RYSUNEK ja-lekcja7-c-rys5

Ćwiczenie 1.8

{{{3}}}

Ćwiczenie 1.9

{{{3}}}