Języki, automaty i obliczenia/Ćwiczenia 7: Twierdzenie Kleene'ego. Własności języków i gramatyk regularnych: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Ćwiczenia 7== | ||
{{cwiczenie|1|| | {{cwiczenie|1|| | ||
Linia 24: | Linia 24: | ||
<div class="thumb"><div style="width:250px;"> | <div class="thumb"><div style="width:250px;"> | ||
<flash>file=ja-lekcja07-c-rys1.swf|width=250|height=250</flash> | <flash>file=ja-lekcja07-c-rys1.swf|width=250|height=250</flash> | ||
<div.thumbcaption> | <div.thumbcaption>Rysunek 1</div> | ||
</div></div> | </div></div> | ||
</center> | </center> | ||
Linia 52: | Linia 52: | ||
</div></div> | </div></div> | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"> | ||
Automat <math>\displaystyle \mathcal{B}</math> pokazany jest na rysunku | Automat <math>\displaystyle \mathcal{B}</math> pokazany jest na rysunku 2. | ||
<center> | <center> | ||
<div class="thumb"><div style="width:250px;"> | <div class="thumb"><div style="width:250px;"> | ||
<flash>file=ja-lekcja07-c-rys2.swf|width=250|height=150</flash> | <flash>file=ja-lekcja07-c-rys2.swf|width=250|height=150</flash> | ||
<div.thumbcaption> | <div.thumbcaption>Rysunek 2</div> | ||
</div></div> | </div></div> | ||
</center> | </center> | ||
Linia 63: | Linia 63: | ||
wystarczy dodać przejście <math>\displaystyle f(s_1,1)=s_{\mathcal{B}}</math> (dlaczego?). | wystarczy dodać przejście <math>\displaystyle f(s_1,1)=s_{\mathcal{B}}</math> (dlaczego?). | ||
Automat z pustymi przejściami akceptujący <math>\displaystyle L(\mathcal{B})^*</math> | Automat z pustymi przejściami akceptujący <math>\displaystyle L(\mathcal{B})^*</math> | ||
pokazany jest na rysunku | pokazany jest na rysunku 3. | ||
<center> | <center> | ||
<div class="thumb"><div style="width:250px;"> | <div class="thumb"><div style="width:250px;"> | ||
<flash>file=ja-lekcja07-c-rys3.swf|width=250|height=150</flash> | <flash>file=ja-lekcja07-c-rys3.swf|width=250|height=150</flash> | ||
<div.thumbcaption> | <div.thumbcaption>Rysunek 3</div> | ||
</div></div> | </div></div> | ||
</center> | </center> | ||
Po usunięciu pustych przejść otrzymujemy automat z rysunku | Po usunięciu pustych przejść otrzymujemy automat z rysunku 4: | ||
<center> | <center> | ||
<div class="thumb"><div style="width:250px;"> | <div class="thumb"><div style="width:250px;"> | ||
<flash>file=ja-lekcja07-c-rys4.swf|width=250|height=250</flash> | <flash>file=ja-lekcja07-c-rys4.swf|width=250|height=250</flash> | ||
<div.thumbcaption> | <div.thumbcaption>Rysunek 4</div> | ||
</div></div> | </div></div> | ||
</center> | </center> | ||
Linia 118: | Linia 117: | ||
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> | ||
Zauważ, że z zadania tego wynika | Zauważ, że z zadania tego wynika | ||
rozstrzygalność problemu równoważności automatów. Algorytmiczny aspekt tego problemu rozważymy w ćwiczeniach | rozstrzygalność problemu równoważności automatów. Algorytmiczny aspekt tego problemu rozważymy w ćwiczeniach 8. | ||
</div></div> | </div></div> | ||
Linia 145: | Linia 143: | ||
Skorzystamy z faktu, że język <math>\displaystyle L' = \{a^n : n | Skorzystamy z faktu, że język <math>\displaystyle L' = \{a^n : n | ||
\; \text{ jest liczbą pierwszą\;} \}</math> nie jest akceptowany ( | \; \text{ jest liczbą pierwszą\;} \}</math> nie jest akceptowany ( | ||
ćwiczenie | ćwiczenie 8), a więc nie jest regularny. | ||
<center><math>\displaystyle a^*=L \cup L', L\cap L' = \emptyset, \;\text {a więc}\;L'=\overline{L}. </math></center> | <center><math>\displaystyle a^*=L \cup L', L\cap L' = \emptyset, \;\text {a więc}\;L'=\overline{L}. </math></center> | ||
Linia 200: | Linia 198: | ||
<div class="thumb"><div style="width:250px;"> | <div class="thumb"><div style="width:250px;"> | ||
<flash>file=ja-lekcja07-c-rys5.swf|width=250|height=250</flash> | <flash>file=ja-lekcja07-c-rys5.swf|width=250|height=250</flash> | ||
<div.thumbcaption> | <div.thumbcaption>Rysunek 5</div> | ||
</div></div> | </div></div> | ||
</center> | </center> |
Wersja z 12:34, 26 sie 2006
Ćwiczenia 7
Ćwiczenie 1
gdzie
Zauważ, że otrzymany automat nie jest minimalny. Jakie języki akceptują automaty , i ?
Ćwiczenie 2
gdzie
a funkcja przejść zdefiniowana jest następująco:
skonstruuj automat deterministyczny taki, że
Aby skonstruować automat akceptujący język , wystarczy dodać przejście (dlaczego?). Automat z pustymi przejściami akceptujący pokazany jest na rysunku 3.
<flash>file=ja-lekcja07-c-rys3.swf|width=250|height=150</flash>
<div.thumbcaption>Rysunek 3Po usunięciu pustych przejść otrzymujemy automat z rysunku 4:
<flash>file=ja-lekcja07-c-rys4.swf|width=250|height=250</flash>
<div.thumbcaption>Rysunek 4Teraz wystarczy skonstruować równoważny automat deterministyczny.
Ćwiczenie 3
Dane są dwa automaty nad tym samym alfabetem
i . Udowodnij,
że istnieje liczba taka, że jeśli dla każdego słowa o długości spełniona jest implikacja
,
to
Ćwiczenie 4
Niech będzie dowolnym alfabetem, a językiem regularnym. Udowodnij, że język jest też językiem regularnym.
Ćwiczenie 5
Udowodnij, że następujące języki nie są regularne:
- Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L = \{a^n : n \; \text{nie jest liczbą pierwszą\;} \}} ,
- .
Ćwiczenie 6
Niech . Skonstruuj automat , taki że
1. gdzie
Podaj dwie konstrukcje:
- opartą na dowodzie twierdzenia Kleene'ego,
- z wykorzystaniem automatu z pustymi przejściami.
Ćwiczenie 7
Skonstruuj minimalny automat , taki że , gdzie opisany jest
poniższym grafem:<flash>file=ja-lekcja07-c-rys5.swf|width=250|height=250</flash>
<div.thumbcaption>Rysunek 5
Ćwiczenie 8
Ćwiczenie 9