Spis treści - Księgarnia PWN

Transkrypt

Spis treści - Księgarnia PWN
Księgarnia PWN: John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman - Wprowadzenie do teorii automatów, języków i obliczeń
Spis treści
Przedmowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1. Dlaczego mamy badać teorię automatów? . . . . . . . . . . . . . .
1.1.1. Wprowadzenie do automatów skończonych . . . . . . . . . . . . .
1.1.2. Reprezentacja strukturalna . . . . . . . . . . . . . . . . . . . . . .
1.1.3. Automaty i złożoność . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Wprowadzenie do dowodu formalnego . . . . . . . . . . . . . . . . .
1.2.1. Dowody dedukcyjne . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2. Sprowadzenie do definicji . . . . . . . . . . . . . . . . . . . . . . .
1.2.3. Inne postacie twierdzeń . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4. Twierdzenia, które – jak się wydaje – nie są stwierdzeniami
„ jeśli, to” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Dodatkowe postacie dowodu . . . . . . . . . . . . . . . . . . . . . . .
1.3.1. Dowodzenie równoważności zbiorów . . . . . . . . . . . . . . . . .
1.3.2. Kontrapozycja . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3. Dowód przez sprowadzenie do sprzeczności . . . . . . . . . . . . .
1.3.4. Kontrprzykłady . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. Dowody przez indukcję matematyczną . . . . . . . . . . . . . . . .
1.4.1. Indukcja na liczbach naturalnych . . . . . . . . . . . . . . . . . .
1.4.2. Bardziej ogólne postacie indukcji na liczbach naturalnych . . . . .
1.4.3. Indukcja strukturalna . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.4. Indukcja wzajemna . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Podstawowe pojęcia teorii automatów . . . . . . . . . . . . . . . . .
1.5.1. Alfabety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2. Łańcuchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.3. Języki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4. Problemy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6. Podsumowanie rozdziału 1 . . . . . . . . . . . . . . . . . . . . . . . .
1.7. Bibliografia do rozdziału 1 . . . . . . . . . . . . . . . . . . . . . . . .
2
2
4
5
5
6
9
10
13
14
14
15
17
18
20
20
23
24
27
29
29
29
31
32
34
36
VI
SPIS TREŚCI
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
2.1. Nieformalny wizerunek automatów skończonych . . . . . . . . . .
2.1.1. Podstawowe reguły . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Protokół . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3. Umożliwienie automatowi zignorowania akcji . . . . . . . . . . . .
2.1.4. Cały system jako automat . . . . . . . . . . . . . . . . . . . . . .
2.1.5. Zastosowanie automatu produktowego do dowodzenia poprawności protokołu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Deterministyczny automat skończony . . . . . . . . . . . . . . . . .
2.2.1. Definicja deterministycznego automatu skończonego . . . . . . . .
2.2.2. Jak DAS przetwarza łańcuchy . . . . . . . . . . . . . . . . . . . .
2.2.3. Prostsze oznaczenia dla DAS . . . . . . . . . . . . . . . . . . . . .
2.2.4. Rozszerzenie funkcji przejścia na łańcuchy . . . . . . . . . . . . .
2.2.5. Język DAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.6. Ćwiczenia do podrozdziału 2.2 . . . . . . . . . . . . . . . . . . . .
2.3. Niedeterministyczny automat skończony . . . . . . . . . . . . . . .
2.3.1. Nieformalne spojrzenie na niedeterministyczne automaty skończone
2.3.2. Definicja niedeterministycznego automatu skończonego . . . . . .
2.3.3. Rozszerzona funkcja przejścia . . . . . . . . . . . . . . . . . . . .
2.3.4. Język NAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.5. Równoważność automatów deterministycznych i niedeterministycznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.6. Zły przypadek konstrukcji podzbiorów . . . . . . . . . . . . . . .
2.3.7. Ćwiczenia do podrozdziału 2.3 . . . . . . . . . . . . . . . . . . . .
2.4. Zastosowanie: przeszukiwanie tekstu . . . . . . . . . . . . . . . . . .
2.4.1. Znajdowanie łańcuchów w tekście . . . . . . . . . . . . . . . . . .
2.4.2. Niedeterministyczne automaty skończone do przeszukiwania tekstu
2.4.3. DAS rozpoznający zbiór słów kluczowych . . . . . . . . . . . . . .
2.4.4. Ćwiczenia do podrozdziału 2.4 . . . . . . . . . . . . . . . . . . . .
2.5. Automaty skończone z ε-przejściami . . . . . . . . . . . . . . . . . .
2.5.1. Zastosowania ε-przejść . . . . . . . . . . . . . . . . . . . . . . . .
2.5.2. Formalna notacja dla ε-NAS . . . . . . . . . . . . . . . . . . . . .
2.5.3. Epsilon-domknięcia . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.4. Rozszerzone przejścia i języki dla ε-NAS . . . . . . . . . . . . . .
2.5.5. Eliminacja ε-przejść . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.6. Ćwiczenia do podrozdziału 2.5 . . . . . . . . . . . . . . . . . . . .
2.6. Podsumowanie rozdziału 2 . . . . . . . . . . . . . . . . . . . . . . . .
2.7. Bibliografia do rozdziału 2 . . . . . . . . . . . . . . . . . . . . . . . .
38
38
39
41
43
59
63
64
66
66
67
68
70
70
70
72
72
73
74
77
77
78
. . . . . . . . . . . . . . . . . . . . . . . . .
79
3.1. Wyrażenia regularne . . . . . . . . . . . . . . . . . . .
3.1.1. Operatory wyrażeń regularnych . . . . . . . . . .
3.1.2. Budowanie wyrażeń regularnych . . . . . . . . . .
3.1.3. Priorytet operatorów w wyrażeniach regularnych .
3.1.4. Ćwiczenia do podrozdziału 3.1 . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
45
45
46
47
49
51
52
54
54
56
56
57
79
80
82
84
86
SPIS TREŚCI
VII
3.2. Automaty skończone i wyrażenia regularne . . . . . . . . . . . . .
3.2.1. Od DAS do wyrażeń regularnych . . . . . . . . . . . . . . . . . .
3.2.2. Przekształcanie DAS na wyrażenie regularne przez eliminowanie
stanów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3. Przekształcanie wyrażeń regularnych na automaty . . . . . . . . .
3.2.4. Ćwiczenia do podrozdziału 3.2 . . . . . . . . . . . . . . . . . . . .
3.3. Zastosowania wyrażeń regularnych . . . . . . . . . . . . . . . . . . .
3.3.1. Wyrażenia regularne w systemie UNIX . . . . . . . . . . . . . . .
3.3.2. Analiza leksykalna . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3. Znajdowanie wzorców w tekście . . . . . . . . . . . . . . . . . . .
3.3.4. Ćwiczenia do podrozdziału 3.3 . . . . . . . . . . . . . . . . . . . .
3.4. Prawa algebraiczne dla wyrażeń regularnych . . . . . . . . . . . .
3.4.1. Przemienność i łączność . . . . . . . . . . . . . . . . . . . . . . .
3.4.2. Elementy neutralne i anihilator . . . . . . . . . . . . . . . . . . .
3.4.3. Prawa rozdzielności . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.4. Prawo idempotencji . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.5. Prawa dotyczące domknięć . . . . . . . . . . . . . . . . . . . . . .
3.4.6. Odkrywanie praw dla wyrażeń regularnych . . . . . . . . . . . . .
3.4.7. Test prawa algebraicznego dla wyrażeń regularnych . . . . . . . .
3.4.8. Ćwiczenia do podrozdziału 3.4 . . . . . . . . . . . . . . . . . . . .
3.5. Podsumowanie rozdziału 3 . . . . . . . . . . . . . . . . . . . . . . . .
3.6. Bibliografia do rozdziału 3 . . . . . . . . . . . . . . . . . . . . . . . .
86
87
91
96
99
101
101
103
105
106
107
107
108
109
110
110
111
113
114
115
115
! " . . . . . . . . . . . . . . . . . . . . . . . 117
4.1. Dowodzenie, że języki nie są regularne . . . . . . . . . . . . . . . .
4.1.1. Lemat o pompowaniu dla języków regularnych . . . . . . . . . . .
4.1.2. Zastosowania lematu o pompowaniu . . . . . . . . . . . . . . . . .
4.1.3. Ćwiczenia do podrozdziału 4.1 . . . . . . . . . . . . . . . . . . . .
4.2. Własności zamkniętości języków regularnych . . . . . . . . . . . .
4.2.1. Zamkniętość języków regularnych ze względu na operacje boolowskie
4.2.2. Odwrócenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3. Homomorfizmy . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.4. Przeciwobrazy homomorficzne . . . . . . . . . . . . . . . . . . . .
4.2.5. Ćwiczenia do podrozdziału 4.2 . . . . . . . . . . . . . . . . . . . .
4.3. Własności decyzyjne języków regularnych . . . . . . . . . . . . . .
4.3.1. Wzajemne przekształcanie reprezentacji . . . . . . . . . . . . . . .
4.3.2. Testowanie pustości języków regularnych . . . . . . . . . . . . . .
4.3.3. Testowanie należenia do języka regularnego . . . . . . . . . . . . .
4.3.4. Ćwiczenia do podrozdziału 4.3 . . . . . . . . . . . . . . . . . . . .
4.4. Równoważność i minimalizacja automatów . . . . . . . . . . . . . .
4.4.1. Testowanie równoważności stanów . . . . . . . . . . . . . . . . . .
4.4.2. Testowanie równoważności języków regularnych . . . . . . . . . .
4.4.3. Minimalizacja DAS . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4. Dlaczego zminimalizowany DAS jest nie do pobicia . . . . . . . .
4.4.5. Ćwiczenia do podrozdziału 4.4 . . . . . . . . . . . . . . . . . . . .
117
118
119
121
122
122
128
129
131
135
138
139
141
142
143
143
144
147
149
152
153
VIII
SPIS TREŚCI
4.5. Podsumowanie rozdziału 4 . . . . . . . . . . . . . . . . . . . . . . . . 154
4.6. Bibliografia do rozdziału 4 . . . . . . . . . . . . . . . . . . . . . . . . 155
# $ %
. . . . . . . . . . . . . . . . . . . . 156
5.1. Gramatyki bezkontekstowe . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1. Nieformalny przykład . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2. Definicja gramatyk bezkontekstowych . . . . . . . . . . . . . . . .
5.1.3. Wyprowadzenia w gramatyce . . . . . . . . . . . . . . . . . . . . .
5.1.4. Wyprowadzenia lewostronne i prawostronne . . . . . . . . . . . .
5.1.5. Język gramatyki . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.6. Formy zdaniowe . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.7. Ćwiczenia do podrozdziału 5.1 . . . . . . . . . . . . . . . . . . . .
5.2. Drzewa wyprowadzenia . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1. Konstruowanie drzew wyprowadzenia . . . . . . . . . . . . . . . .
5.2.2. Plon drzewa wyprowadzenia . . . . . . . . . . . . . . . . . . . . .
5.2.3. Wnioskowanie, wyprowadzenia i drzewa wyprowadzenia . . . . . .
5.2.4. Od wnioskowania do drzew . . . . . . . . . . . . . . . . . . . . . .
5.2.5. Od drzew do wyprowadzeń . . . . . . . . . . . . . . . . . . . . . .
5.2.6. Od wyprowadzeń do wnioskowania rekurencyjnego . . . . . . . . .
5.2.7. Ćwiczenia do podrozdziału 5.2 . . . . . . . . . . . . . . . . . . . .
5.3. Zastosowania gramatyk bezkontekstowych . . . . . . . . . . . . . .
5.3.1. Parsery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2. Generator parserów YACC . . . . . . . . . . . . . . . . . . . . . .
5.3.3. Języki znakowania . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.4. XML i definicja typu dokumentu . . . . . . . . . . . . . . . . . .
5.3.5. Ćwiczenia do podrozdziału 5.3 . . . . . . . . . . . . . . . . . . . .
5.4. Wieloznaczność języków i gramatyk . . . . . . . . . . . . . . . . . .
5.4.1. Gramatyki wieloznaczne . . . . . . . . . . . . . . . . . . . . . . .
5.4.2. Usuwanie wieloznaczności z gramatyk . . . . . . . . . . . . . . . .
5.4.3. Wyprowadzenia lewostronne jako metoda wyrażenia wieloznaczności
5.4.4. Ścisła wieloznaczność . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.5. Ćwiczenia do podrozdziału 5.4 . . . . . . . . . . . . . . . . . . . .
5.5. Podsumowanie rozdziału 5 . . . . . . . . . . . . . . . . . . . . . . . .
5.6. Bibliografia do rozdziału 5 . . . . . . . . . . . . . . . . . . . . . . . .
156
157
158
160
162
164
165
166
168
168
170
170
171
173
176
177
178
178
181
182
184
189
190
191
192
196
197
198
199
200
& . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.1. Definicja automatu ze stosem . . . . . . .
6.1.1. Nieformalne wprowadzenie . . . . . . .
6.1.2. Formalna definicja automatu ze stosem
6.1.3. Notacja graficzna dla AZS . . . . . . .
6.1.4. Opis chwilowy AZS . . . . . . . . . . .
6.1.5. Ćwiczenia do podrozdziału 6.1 . . . . .
6.2. Języki AZS . . . . . . . . . . . . . . . . . . .
6.2.1. Akceptacja przez stan końcowy . . . .
6.2.2. Akceptacja przez pusty stos . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
202
202
204
206
207
210
211
211
212
IX
SPIS TREŚCI
6.3.
6.4.
6.5.
6.6.
6.2.3. Od pustego stosu do stanu końcowego . .
6.2.4. Od stanu końcowego do pustego stosu . .
6.2.5. Ćwiczenia do podrozdziału 6.2 . . . . . .
Równoważność AZS i GBK . . . . . . . . .
6.3.1. Od gramatyk do automatów ze stosem .
6.3.2. Od AZS do gramatyk . . . . . . . . . . .
6.3.3. Ćwiczenia do podrozdziału 6.3 . . . . . .
Deterministyczne automaty ze stosem . . .
6.4.1. Definicja deterministycznego AZS . . . .
6.4.2. Języki regularne a deterministyczne AZS
6.4.3. DAZS i języki bezkontekstowe . . . . . .
6.4.4. DAZS i gramatyki wieloznaczne . . . . .
6.4.5. Ćwiczenia do podrozdziału 6.4 . . . . . .
Podsumowanie rozdziału 6 . . . . . . . . . .
Bibliografia do rozdziału 6 . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
213
216
217
219
219
222
227
227
228
229
230
231
232
233
234
' ! %
" . . . . . . . . . . . . . . . . . . . 235
7.1. Postacie normalne gramatyk bezkontekstowych . . . . . . . . . . .
7.1.1. Eliminowanie symboli bezużytecznych . . . . . . . . . . . . . . . .
7.1.2. Obliczanie symboli generujących i osiągalnych . . . . . . . . . . .
7.1.3. Eliminowanie ε-produkcji . . . . . . . . . . . . . . . . . . . . . . .
7.1.4. Eliminowanie produkcji jednostkowych . . . . . . . . . . . . . . .
7.1.5. Postać normalna Chomsky’ego . . . . . . . . . . . . . . . . . . . .
7.1.6. Ćwiczenia do podrozdziału 7.1 . . . . . . . . . . . . . . . . . . . .
7.2. Lemat o pompowaniu dla języków bezkontekstowych . . . . . . .
7.2.1. Wielkość drzew wyprowadzenia . . . . . . . . . . . . . . . . . . .
7.2.2. Sformułowanie lematu o pompowaniu . . . . . . . . . . . . . . . .
7.2.3. Zastosowania lematu o pompowaniu dla języków bezkontekstowych
7.2.4. Ćwiczenia do podrozdziału 7.2 . . . . . . . . . . . . . . . . . . . .
7.3. Własności zamkniętości języków bezkontekstowych . . . . . . . .
7.3.1. Podstawienie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.2. Zastosowania twierdzenia o podstawieniu . . . . . . . . . . . . . .
7.3.3. Odwrócenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.4. Przecięcie z językiem regularnym . . . . . . . . . . . . . . . . . .
7.3.5. Przeciwobraz homomorficzny . . . . . . . . . . . . . . . . . . . . .
7.3.6. Ćwiczenia do podrozdziału 7.3 . . . . . . . . . . . . . . . . . . . .
7.4. Własności decyzyjne JBK . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1. Złożoność obustronnej konwersji pomiędzy JBK a AZS . . . . . .
7.4.2. Czas wykonywania konwersji na postać normalną Chomsky’ego .
7.4.3. Testowanie pustości JBK . . . . . . . . . . . . . . . . . . . . . . .
7.4.4. Testowanie należenia do JBK . . . . . . . . . . . . . . . . . . . .
7.4.5. Rzut oka na problemy nierozstrzygalne dla JBK . . . . . . . . . .
7.4.6. Ćwiczenia do podrozdziału 7.4 . . . . . . . . . . . . . . . . . . . .
7.5. Podsumowanie rozdziału 7 . . . . . . . . . . . . . . . . . . . . . . . .
7.6. Bibliografia do rozdziału 7 . . . . . . . . . . . . . . . . . . . . . . . .
235
236
238
239
243
247
251
253
254
254
257
259
261
261
263
264
264
268
270
272
272
273
274
276
280
280
281
282
X
SPIS TREŚCI
( ) * . . . . . . . . . . . . . . . . . . . . . 283
8.1. Problemy, których nie potrafią rozwiązać komputery . . . . . . .
8.1.1. Programy drukujące „hello, world” . . . . . . . . . . . . . . . . . .
8.1.2. Hipotetyczny program dla testu „hello, world” . . . . . . . . . . .
8.1.3. Redukcja jednego problemu do drugiego . . . . . . . . . . . . . .
8.1.4. Ćwiczenia do podrozdziału 8.1 . . . . . . . . . . . . . . . . . . . .
8.2. Maszyna Turinga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.1. Zadanie rozstrzygnięcia wszystkich pytań matematycznych . . . .
8.2.2. Notacja dla maszyn Turinga . . . . . . . . . . . . . . . . . . . . .
8.2.3. Opisy chwilowe dla maszyn Turinga . . . . . . . . . . . . . . . . .
8.2.4. Diagramy przejść dla maszyn Turinga . . . . . . . . . . . . . . . .
8.2.5. Język maszyny Turinga . . . . . . . . . . . . . . . . . . . . . . . .
8.2.6. Maszyny Turinga i problem stopu . . . . . . . . . . . . . . . . . .
8.2.7. Ćwiczenia do podrozdziału 8.2 . . . . . . . . . . . . . . . . . . . .
8.3. Techniki programowania dla maszyn Turinga . . . . . . . . . . . .
8.3.1. Pamięć w stanie . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.2. Wiele ścieżek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.3. Podprocedury . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.4. Ćwiczenia do podrozdziału 8.3 . . . . . . . . . . . . . . . . . . . .
8.4. Rozszerzenia podstawowej maszyny Turinga . . . . . . . . . . . . .
8.4.1. Wielotaśmowa maszyna Turinga . . . . . . . . . . . . . . . . . . .
8.4.2. Równoważność jednotaśmowych i wielotaśmowych maszyn Turinga
8.4.3. Czas pracy a konstrukcja sprowadzania wielu taśm do jednej . . .
8.4.4. Niedeterministyczne maszyny Turinga . . . . . . . . . . . . . . . .
8.4.5. Ćwiczenia do podrozdziału 8.4 . . . . . . . . . . . . . . . . . . . .
8.5. Ograniczone maszyny Turinga . . . . . . . . . . . . . . . . . . . . . .
8.5.1. Maszyny Turinga o taśmach jednostronnie nieskończonych . . . .
8.5.2. Maszyny wielostosowe . . . . . . . . . . . . . . . . . . . . . . . . .
8.5.3. Maszyny licznikowe . . . . . . . . . . . . . . . . . . . . . . . . . .
8.5.4. Moc maszyn licznikowych . . . . . . . . . . . . . . . . . . . . . .
8.5.5. Ćwiczenia do podrozdziału 8.5 . . . . . . . . . . . . . . . . . . . .
8.6. Maszyny Turinga a komputery . . . . . . . . . . . . . . . . . . . . .
8.6.1. Symulacja maszyny Turinga przez komputer . . . . . . . . . . . .
8.6.2. Symulacja komputera przez maszynę Turinga . . . . . . . . . . .
8.6.3. Porównywanie czasu pracy komputerów i maszyn Turinga . . . .
8.7. Podsumowanie rozdziału 8 . . . . . . . . . . . . . . . . . . . . . . . .
8.8. Bibliografia do rozdziału 8 . . . . . . . . . . . . . . . . . . . . . . . .
283
284
286
289
292
292
293
294
295
299
302
302
303
304
305
306
308
310
310
311
312
313
315
317
319
319
322
325
325
328
328
329
330
334
337
339
+ ,
- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
9.1. Język, który nie jest rekurencyjnie przeliczalny .
9.1.1. Ponumerowanie łańcuchów binarnych . . . . . .
9.1.2. Kody maszyn Turinga . . . . . . . . . . . . . . .
9.1.3. Język diagonalizacji . . . . . . . . . . . . . . . .
9.1.4. Dowód, że Ld nie jest rekurencyjnie przeliczalny
9.1.5. Ćwiczenia do podrozdziału 9.1 . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
341
342
342
344
345
345
XI
SPIS TREŚCI
9.2. Problem nierozstrzygalny, który jest RP . . . . . . . . .
9.2.1. Języki rekurencyjne . . . . . . . . . . . . . . . . . . . .
9.2.2. Dopełnienie języków rekurencyjnych i RP . . . . . . . .
9.2.3. Język uniwersalny . . . . . . . . . . . . . . . . . . . . .
9.2.4. Nierozstrzygalność języka uniwersalnego . . . . . . . .
9.2.5. Ćwiczenia do podrozdziału 9.2 . . . . . . . . . . . . . .
9.3. Problemy nierozstrzygalne dotyczące maszyn Turinga
9.3.1. Redukcje . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.2. Maszyny Turinga akceptujące język pusty . . . . . . .
9.3.3. Twierdzenie Rice’a i własności języków RP . . . . . . .
9.3.4. Problemy dotyczące specyfikacji maszyn Turinga . . . .
9.3.5. Ćwiczenia do podrozdziału 9.3 . . . . . . . . . . . . . .
9.4. Problem odpowiedniości Posta . . . . . . . . . . . . . . .
9.4.1. Definicja problemu odpowiedniości Posta . . . . . . . .
9.4.2. Zmodyfikowany problem odpowiedniości Posta . . . . .
9.4.3. Zakończenie dowodu nierozstrzygalności POP . . . . .
9.4.4. Ćwiczenia do podrozdziału 9.4 . . . . . . . . . . . . . .
9.5. Inne problemy nierozstrzygalne . . . . . . . . . . . . . . .
9.5.1. Problemy dotyczące programów . . . . . . . . . . . . .
9.5.2. Nierozstrzygalność wieloznaczności GBK . . . . . . . .
9.5.3. Dopełnienie języka listy . . . . . . . . . . . . . . . . . .
9.5.4. Ćwiczenia do podrozdziału 9.5 . . . . . . . . . . . . . .
9.6. Podsumowanie rozdziału 9 . . . . . . . . . . . . . . . . . .
9.7. Bibliografia do rozdziału 9 . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
346
346
347
350
352
353
355
355
356
359
362
362
363
364
366
369
374
375
375
375
377
380
381
381
. /% ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
10.1. Klasy P i N P . . . . . . . . . . . . . . . . . . . .
10.1.1. Problemy, które można rozwiązać w czasie
10.1.2. Przykład: algorytm Kruskala . . . . . . .
10.1.3. Niedeterministyczny czas wielomianowy .
10.1.4. Przykład N P: problem komiwojażera . .
10.1.5. Redukcje w czasie wielomianowym . . . .
10.1.6. Problemy NP-zupełne . . . . . . . . . . .
10.1.7. Ćwiczenia do podrozdziału 10.1 . . . . . .
10.2. Problem NP-zupełny . . . . . . . . . . . . . . .
10.2.1. Problem spełnialności . . . . . . . . . . .
10.2.2. Reprezentacja przypadków SAT . . . . . .
10.2.3. NP-zupełność problemu SAT . . . . . . .
10.2.4. Ćwiczenia do podrozdziału 10.2 . . . . . .
10.3. Ograniczony problem spełnialności . . . . . .
10.3.1. Postać normalna wyrażeń boolowskich . .
10.3.2. Przekształcanie wyrażeń do PNK . . . . .
10.3.3. NP-zupełność CSAT . . . . . . . . . . . .
10.3.4. NP-zupełność 3SAT . . . . . . . . . . . .
10.3.5. Ćwiczenia do podrozdziału 10.3 . . . . . .
10.4. Inne problemy NP-zupełne . . . . . . . . . . .
. . . . . . . . . .
wielomianowym
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
384
384
385
389
389
391
392
394
395
396
397
398
404
405
405
406
410
414
415
416
XII
SPIS TREŚCI
10.4.1. Opisywanie problemów NP-zupełnych . .
10.4.2. Problem zbiorów niezależnych . . . . . . .
10.4.3. Problem pokrycia wierzchołkowego . . . .
10.4.4. Problem skierowanego obwodu Hamiltona
10.4.5. Nieskierowane obwody Hamiltona i PK . .
10.4.6. Podsumowanie problemów NP-zupełnych
10.4.7. Ćwiczenia do podrozdziału 10.4 . . . . . .
10.5. Podsumowanie rozdziału 10 . . . . . . . . . . .
10.6. Bibliografia do rozdziału 10 . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
416
417
421
423
428
430
431
434
435
0 )%! . . . . . . . . . . . . . . . . . . . . . . . . 436
11.1. Dopełnienia języków z N P . . . . . . . . . . . . . . . . . . . . . .
11.1.1. Klasa języków ko-N P . . . . . . . . . . . . . . . . . . . . . .
11.1.2. Problemy NP-zupełne a ko-N P . . . . . . . . . . . . . . . . .
11.1.3. Ćwiczenia do podrozdziału 11.1 . . . . . . . . . . . . . . . . .
11.2. Problemy rozwiązywalne w pamięci wielomianowej . . . . . . .
11.2.1. Maszyny Turinga o pamięci wielomianowej . . . . . . . . . . .
11.2.2. Związek między PS i N PS a poprzednio zdefiniowanymi klasami
11.2.3. Deterministyczna i niedeterministyczna pamięć wielomianowa
11.3. Problem zupełny dla PS . . . . . . . . . . . . . . . . . . . . . . . .
11.3.1. PS-zupełność . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3.2. Kwantyfikowana formuła boolowska . . . . . . . . . . . . . . .
11.3.3. Obliczanie wartości kwantyfikowanych formuł boolowskich . .
11.3.4. PS-zupełność problemu KFB . . . . . . . . . . . . . . . . . .
11.3.5. Ćwiczenia do podrozdziału 11.3 . . . . . . . . . . . . . . . . .
11.4. Klasy języków oparte na losowości . . . . . . . . . . . . . . . . .
11.4.1. Quicksort: przykład algorytmu losowego . . . . . . . . . . . .
11.4.2. Model maszyny Turinga wykorzystującej losowość . . . . . . .
11.4.3. Język losowej maszyny Turinga . . . . . . . . . . . . . . . . .
11.4.4. Klasa LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4.5. Rozpoznawanie języków należących do LP . . . . . . . . . . .
11.4.6. Klasa ZPP . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4.7. Związek pomiędzy LP a ZPP . . . . . . . . . . . . . . . . . .
11.4.8. Związki z klasami P i N P . . . . . . . . . . . . . . . . . . . .
11.5. Złożoność testowania, czy dana liczba jest liczbą pierwszą . .
11.5.1. Waga testowania, czy dana liczba jest liczbą pierwszą . . . . .
11.5.2. Wprowadzenie do arytmetyki modulo . . . . . . . . . . . . . .
11.5.3. Złożoność obliczeń w arytmetyce modulo . . . . . . . . . . . .
11.5.4. Losowo wielomianowe testowanie, czy dana liczba jest liczbą
pierwszą . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.5.5. Niedeterministyczne testowanie, czy dana liczba jest liczbą
pierwszą . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.5.6. Ćwiczenia do podrozdziału 11.5 . . . . . . . . . . . . . . . . .
11.6. Podsumowanie rozdziału 11 . . . . . . . . . . . . . . . . . . . . . .
11.7. Bibliografia do rozdziału 11 . . . . . . . . . . . . . . . . . . . . . .
437
437
438
439
440
440
441
443
445
445
446
447
449
454
455
455
456
457
460
462
462
463
465
466
466
468
470
471
472
475
476
477
Skorowidz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478

Podobne dokumenty