Ć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:
- ,
- .
Rozwiązanie punktu 1
Skorzystamy z faktu, że język 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
Ćwiczenie 8
Udowodnij, że następujące języki nie są regularne:
- ,
- .
Wskazówka do punktu 2
Wykorzystaj fakt, że język nie jest regularny oraz
domkniętość klasy języków regularnych ze względu na homomorfizm.
Ćwiczenie 9
Zbuduj automat akceptujący język będący ogółem skończonych sekwencji
binarnych, w których liczba zer jest podzielna przez dwa, a liczba
jedynek przez 3, a następnie gramatykę generującą ten język.
Wskazówka
Stany automatu niech będą postaci , gdzie , . Stan początkowy to . Określ
funkcję przejść w ten sposób, że po przeczytaniu przez automat słowa
zawierającego symboli 0 oraz symboli 1 automat znajdzie się
w stanie . Zastanów się, który stan będzie
stanem końcowym. Na podstawie automatu określ gramatykę.