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 |
|||
Linia 21: | Linia 21: | ||
F_{\mathcal B}\times F_{\mathcal C})</math>. Funkcja przejść zadana jest grafem | F_{\mathcal B}\times F_{\mathcal C})</math>. Funkcja przejść zadana jest grafem | ||
rys1< | <center> | ||
<div class="thumb"><div style="width:250px;"> | |||
<flash>file=ja-lekcja07-c-rys1.swf|width=250|height=250</flash> | |||
<div.thumbcaption>ja-lekcja07-c-rys1</div> | |||
</div></div> | |||
</center> | |||
Zauważ, że otrzymany automat nie jest minimalny. Jakie języki akceptują automaty <math>\displaystyle {\mathcal A}</math>, <math>\displaystyle {\mathcal B}</math> i <math>\displaystyle {\mathcal C}</math>? | Zauważ, że otrzymany automat nie jest minimalny. Jakie języki akceptują automaty <math>\displaystyle {\mathcal A}</math>, <math>\displaystyle {\mathcal B}</math> i <math>\displaystyle {\mathcal C}</math>? | ||
Linia 48: | Linia 53: | ||
<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 [[##ja-lekcja7-c-rys2|Uzupelnic ja-lekcja7-c-rys2|]]. | Automat <math>\displaystyle \mathcal{B}</math> pokazany jest na rysunku [[##ja-lekcja7-c-rys2|Uzupelnic ja-lekcja7-c-rys2|]]. | ||
<center> | |||
<div class="thumb"><div style="width:250px;"> | |||
<flash>file=ja-lekcja07-c-rys2.swf|width=250|height=150</flash> | |||
<div.thumbcaption>ja-lekcja07-c-rys2</div> | |||
</div></div> | |||
</center> | |||
Aby skonstruować automat akceptujący język <math>\displaystyle L(\mathcal{B})^*</math>, | Aby skonstruować automat akceptujący język <math>\displaystyle L(\mathcal{B})^*</math>, | ||
Linia 55: | Linia 64: | ||
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 [[##ja-lekcja7-c-rys3|Uzupelnic ja-lekcja7-c-rys3|]]. | pokazany jest na rysunku [[##ja-lekcja7-c-rys3|Uzupelnic ja-lekcja7-c-rys3|]]. | ||
<center> | |||
<div class="thumb"><div style="width:250px;"> | |||
<flash>file=ja-lekcja07-c-rys3.swf|width=250|height=150</flash> | |||
<div.thumbcaption>ja-lekcja07-c-rys3</div> | |||
</div></div> | |||
</center> | |||
Po usunięciu pustych przejść otrzymujemy automat z rysunku | Po usunięciu pustych przejść otrzymujemy automat z rysunku | ||
[[##ja-lekcja7-c-rys4|Uzupelnic ja-lekcja7-c-rys4|]]: | [[##ja-lekcja7-c-rys4|Uzupelnic ja-lekcja7-c-rys4|]]: | ||
<center> | |||
<div class="thumb"><div style="width:250px;"> | |||
<flash>file=ja-lekcja07-c-rys4.swf|width=250|height=250</flash> | |||
<div.thumbcaption>ja-lekcja07-c-rys4</div> | |||
</div></div> | |||
</center> | |||
Teraz wystarczy skonstruować równoważny automat deterministyczny. | Teraz wystarczy skonstruować równoważny automat deterministyczny. | ||
Linia 176: | Linia 193: | ||
Skonstruuj minimalny automat <math>\displaystyle \mathcal{A}</math>, taki że | Skonstruuj minimalny automat <math>\displaystyle \mathcal{A}</math>, taki że | ||
<math>\displaystyle L(\mathcal{A})=L(\mathcal{B})^*</math>, gdzie <math>\displaystyle \mathcal{B}</math> opisany jest | <math>\displaystyle L(\mathcal{A})=L(\mathcal{B})^*</math>, gdzie <math>\displaystyle \mathcal{B}</math> opisany jest | ||
poniższym grafem: | poniższym grafem:}} | ||
<center> | |||
<div class="thumb"><div style="width:250px;"> | |||
<flash>file=ja-lekcja07-c-rys5.swf|width=250|height=250</flash> | |||
<div.thumbcaption>ja-lekcja07-c-rys5</div> | |||
</div></div> | |||
</center> | |||
{{cwiczenie|1.8|| | {{cwiczenie|1.8|| |
Wersja z 14:34, 25 sie 2006
ĆWICZENIA 7
Ćwiczenie 1.1
gdzie
Zauważ, że otrzymany automat nie jest minimalny. Jakie języki akceptują automaty , i ?
Ćwiczenie 1.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 Uzupelnic ja-lekcja7-c-rys3|.
<flash>file=ja-lekcja07-c-rys3.swf|width=250|height=150</flash>
<div.thumbcaption>ja-lekcja07-c-rys3Po usunięciu pustych przejść otrzymujemy automat z rysunku Uzupelnic ja-lekcja7-c-rys4|:
<flash>file=ja-lekcja07-c-rys4.swf|width=250|height=250</flash>
<div.thumbcaption>ja-lekcja07-c-rys4Teraz wystarczy skonstruować równoważny automat deterministyczny.
Ćwiczenie 1.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 1.4
Niech będzie dowolnym alfabetem, a językiem regularnym. Udowodnij, że język jest też językiem regularnym.
Ćwiczenie 1.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ą\;} \}} ,
- .
ZADANIA DOMOWE
Ćwiczenie 1.6
Niech . Skonstruuj automat , taki że
- gdzie
- gdzie
Podaj dwie konstrukcje:
- opartą na dowodzie twierdzenia Kleene'ego,
- z wykorzystaniem automatu z pustymi przejściami.
Ćwiczenie 1.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>ja-lekcja07-c-rys5
Ćwiczenie 1.8
Ćwiczenie 1.9