Ćwiczenia 7
Ćwiczenie 1
Niech
. Dla automatów
gdzie
skonstruuj automat
taki, że
Rozwiązanie . Funkcja przejść zadana jest grafem
<flash>file=ja-lekcja07-c-rys1.swf|width=250|height=250</flash>
<div.thumbcaption>Rysunek 1
Zauważ, że otrzymany automat nie jest minimalny. Jakie języki akceptują automaty , i ?
Ćwiczenie 2
Niech
. Dla automatu
gdzie
a funkcja przejść zdefiniowana jest
następująco:
skonstruuj automat deterministyczny taki, że
Wskazówka Pomocne może być użycie automatu z pustymi przejściami.
Rozwiązanie
Automat pokazany jest na rysunku 2.
<flash>file=ja-lekcja07-c-rys2.swf|width=250|height=150</flash>
<div.thumbcaption>Rysunek 2
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 3
Po usunięciu pustych przejść otrzymujemy automat z rysunku 4:
<flash>file=ja-lekcja07-c-rys4.swf|width=250|height=250</flash>
<div.thumbcaption>Rysunek 4
Teraz 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
Rozwiązanie
Niech będzie automatem takim, że . Wówczas,
Udowodnimy więc inkluzję , gdzie
Przyjmijmy . Niech
- Jeśli , to z założenia
- Jeśli , to z lematu o pompowaniu wynika, że , takie, że , i .
Mamy dwie możliwości:
- (a) , co oznacza , ,
- (b) , co oznacza .
- Jeśli , to , .
- Jeśli , 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.
Zauważ, że z zadania tego wynika
rozstrzygalność problemu równoważności automatów. Algorytmiczny aspekt tego problemu rozważymy w ćwiczeniach 8.
Ćwiczenie 4
Niech będzie dowolnym alfabetem, a językiem regularnym. Udowodnij, że język
jest też językiem regularnym.
Rozwiązanie
Rozważmy homomorfizm taki, że . Dla tak zdefiniowanego język jest homomorficzym obrazem języka regularnego ,
a więc jest regularny.
Ć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ą\;} \}}
,
- .
Rozwiązanie punktu 1
Skorzystamy z faktu, że język Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L' = \{a^n : n \; \text{ jest liczbą pierwszą\;} \}}
nie jest akceptowany (
ćwiczenie 8), a więc nie jest regularny.
Ponieważ klasa języków regularnych jest zamknięta ze względu na
uzupełnienie, to .
Rozwiązanie punktu 2
Język nie jest akceptowany
(patrz 3.1. z wykładu 6), a więc nie jest regularny.
Ponieważ klasa języków regularnych jest zamknięta ze względu na
uzupełnienie i przecięcie, to .
ZADANIA DOMOWE
Ćwiczenie 6
Niech . Skonstruuj automat , taki że
1.
gdzie
2.
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