Poděkování 8 // Věnování 9 // Proč číst tuto knihu? 10 // Jak číst tuto knihu? 12 // Úvod 15 // 1. Množiny 19 // 1.1 Naivní (intuitivní) vymezení pojmu množina 20 // 1.1.1 Zápis množin 22 // 1.1.2 Operace s množinami 23 // 1.2 Paradoxy naivní teorie množin 26 // 1.3 Axiomatické teorie množin 27 // 1.4 Alternativní teorie množin 30 // 1.5 Zobrazení 31 // 1.6 Mohutnost množiny 34 // 1.7 Fuzzy množiny 38 // 2. Relace, grafy, operace, struktury 43 // 2.1 Relace 43 // 2.1.1 Relace s obecně různými doménami 44 // 2.1.2 Relace na množině 50 // 2.2 Binární relace a uspořádání 50 // 2.2.1 Vlastnosti binárních relací 51 // 2.2.2 Ekvivalence 52 // 2.2.3 Relace preferencí a pořadí 53 // 2.2.4 Způsoby popisu relací 57 // 2.2.5 Dimenze částečného uspořádání 58 // 2.2.6 Preference s relací nerozlišitelnosti 59 // 2.2.7 Fuzzy relace 61 // 2.3 Grafy 62 // 2.3.1 Pojem grafu. Orientované a neorientované grafy 63 // 2.3.2 Některé základní charakteristiky grafů 65 // 2.3.3 Kreslení grafů, isomorfismus grafů 65 // 2.3.4 Ohodnocené grafy 68 // 2.3.5 Sledy, tahy a cesty 68 // 2.3.6 Některé speciální grafy 70 // 2.3.7 Reprezentace grafů daty pro výpočet 72 // 2.4 Operace 77 // 2.5 Struktury 79 // 2.5.1 Obecný pojem struktury 79 // 2.5.2 Isomorfismus a homomorfismus struktur 80 // 2.5.3 Struktury s preferencemi a skládáním 80 // 2.6 Algebry 82 // 2.7 Teorie 84 // 2.8 Koncepty 86 // Obsah // 3 3. Měření 89 // 3.1 Měření jako formální popis výseku světa 89 // 3.2 Nejěastější typy měřicích stupnic 92 // 3.2.1 Absolutní typ měřicí stupnice 92 // 3.2.2 Poměrový typ měřicí stupnice 93 // 3.2.3 Intervalový typ měřicí stupnice 93 // 3.2.4 Ordinální typ měřicí stupnice 94 // 3.2.5 Nominální typ měřicí stupnice 95 // 3.2.6 Některé další typy měřicích stupnic 95 //
3.3 Reprezentační věty 97 // 3.3.1 Existence měření ordinálního typu 97 // 3.3.2 Existence měření poměrového typu 98 // 3.4 Různá slučování na témže slabě uspořádaném nosiěi 99 // 4. Matematická logika 101 // 4.1 Výroková logika 102 // 4.1.1 Neformální úvod do výrokové logiky 102 // 4.1.2 Skládání výroků 103 // 4.1.3 Formální syntaxe výrokové logiky 106 // 4.1.4 Sémantický důsledek 108 // 4.1.5 Tautologická ekvivalence formulí 109 // 4.1.6 Úplné systémy logických spojek 110 // 4.1.7 Booleovské funkce více proměnných, normální formy 112 // 4.2 Predikátová logika 115 // 4.2.1 Neformální úvod do predikátové logiky 115 // 4.2.2 Formální syntaxe predikátové logiky 117 // 4.2.3 Sémantika predikátové logiky. Interpretace formulí 120 // 4.2.4 Tautologie, kontradikce a splnitelnost v predikátové logice 123 // 4.3 Logické odvozování 126 // 4.3.1 Neformální úvod do logického odvozování 126 // 4.3.2 Základní dedukční pravidla výrokové a predikátové logiky 127 // 4.3.3 Přirozená dedukce 128 // 4.3.4 Vztah mezi sémantickým a logickým důsledkem 130 // 4.3.5 Resoluční princip 131 // 4.4 Vícehodnotové logiky 140 // 4.4.1 Trojhodnotová logika 140 // 4.4.2 Fuzzy logiky 141 // 4.4.3 Intuicionistické logiky 142 // 5. Informace, data, kódy 143 // 5.1 Pojem informace 143 // 5.1.1 Sémantická teorie informace 143 // 5.1.2 Základy Shannonovy teorie informace 149 // 5.1.3 Data a j ejich interpretace 151 // 5.2 Kódování informací a dat 152 // 5.2.1 Nadbytečnost a zabezpečení dat 152 // 5.2.2 Lineární kódy 155 // 5.3 Šifrování dat a kryptografie 157 // 5.3.1 Monoalfabetické šifry 159 // 5.3.2 Polyalfabetické šifry 161 // 5.3.3 Asymetrické šifry 162 // ’ 5.3.4 Hybridní kryptosystémy 164 // 6. Formální jazyky a gramatiky 167 //
6.1 Abeceda, slovo a jazyk 167 // 6.1.1 Abeceda 168 // 6.1.2 Slovo 168 // 6.1.3 Jazyk 169 // 6.2 Gramatiky 170 // 6.3 Chomského hierarchie gramatik 173 // 6.3.1 Gramatika typu 0 173 // 6.3.2 Gramatika typu 1 173 // 6.3.3 Gramatika typu 2 174 // 6.3.4 Gramatika typu 3 175 // 6.4 Stromy odvození (derivační stromy) 176 // 7. Formální modely výpočtu 183 // 7.1 Konečné automaty a jejich modifikace 183 // 7.1.1 Mealyho automat 191 // 7.1.2 Moorův automat 191 // 7.1.3 Nedeterministický konečný automat 193 // 7.1.4 Nerodova věta 196 // 7.2 Regulární výrazy a jazyky 197 // 7.3 Zásobníkový automat 201 // 7.3.1 Deterministický zásobníkový automat 204 // 7.3.2 Nedeterministický zásobníkový automat 205 // 7.4 Turingův stroj 206 // 7.4.1 Rozhodování a rozpoznávání jazyků Turingovým strojem 210 // 7.5 Teorie vyčíslitelnosti 212 // 7.5.1 Rekurzivní a částečně rekurzivní funkce 213 // 7.5.2 Algoritmicky neřešitelné problémy 215 // 7.5.3 Poslův korespondenční problém 216 // 7.5.4 RASP-stroje 217 // 7.6 Petriho sítě 218 // 8. Výpočetní složitost 221 // 8.1 Účinnost jako charakteristika jakosti softwaru 222 // 8.2 Časová a prostorová složitost - Praktický a teoretický pohled 225 // 8.2.1 Asymptotické odhady růstu funkcí. Symboly 0,o a& 225 // 8.2.2 Typické třídy výpočetní složitosti algoritmů 227 // 8.2.3 Teoretický pohled na složitost 229 // 8.2.4 Praktický pohled na složitost 230 // 8.2.5 Pesimistická a průměrná složitost 231 // 8.2.6 Ukázka, jak úprava algoritmu může ovlivnit jeho časovou složitost 232 // 8.3 P-těžké, NP-těžké a NP-úplné problémy 237 // 8.3.1 Deterministická a nedeterministická složitost problémů 239 // 8.3.2 NP-úplné problémy 241 // 8.3.3 Některé nejznámější prakticky důležité NP-úplné problémy 245 // 9. Paradigmata tvorby softwaru 249 //
9.1 Lambda-kalkul a funkcionální paradigma 249 // 9.1.1 Neformální definice lambda-kalkulu 249 // 9.1.2 Formální definice lambda-kalkulu 250 // 9.1.3 Operace lambda-kalkulu 251 // 9.1.4 Formální datové typy a operace lambda-kalkulu 252 // 9.1.5 Rekurze v lambda-kalkulu 253 // 9.1.6 Složené datové struktury 256 // 9.1.7 Funkcionální programovací jazyky 259 // 9.2 Imperativní paradigma 259 // 9.2.1 Datové prvky a struktury 262 // 9.2.2 Strukturované paradigma 263 // 9.2.3 Modulární paradigma 270 // 9.3 Objektové paradigma 273 // 9.3.1 Objekt jako abstraktní datový typ 273 // 9.3.2 Struktura objektově orientovaného programu 274 // 9.3.3 Objektově orientované programovací jazyky 275 // 9.4 Návrhové vzory 276 // 9.4.1 Co to je návrhový vzor 277 // 9.4.2 Příklady návrhových vzorů 278 // 9.5 Logické paradigma 282 // 9.5.1 Jazyk Prolog, jeho historie a princip syntaxe 283 // 9.5.2 Databáze Prologu 286 // 9.5.3 Výpočet v Prologu, rekurze a práce se seznamy 288 // 10. Analýza některých algoritmů 293 // 10.1 Princip rozděl a panuj 293 // 10.2 Vyhledávání a zařazování 299 // 10.3 Řazení 310 // 10.3.1 Adresové algoritmy řazení 312 // 10.3.2 Asociativní algoritmy řazení 313 // 10.3.3 Hybridní algoritmy řazení 318 // 10.4 Základní algoritmy lineární algebry 319 // 10.4.1 Maticová algebra 319 // 10.4.2 Soustavy lineárních rovnic 321 // 10.4.3 Inverze matice 324 // 10.5 Optimalizační úlohy 325 // 10.5.1 Úloha lineárního programování 325 // 10.5.2 Princip horolezce 329 // 10.5.3 Metoda největšího spádu 331 // 10.5.4 Úloha o batohu 335 // 10.6 Optimalizační úlohy na grafech 336 // 10.6.1 Problém nejkratší cesty v grafu 336 // 10.6.2 Problém minimální kostry souvislého grafu 339 // 10.6.3 Problém maximálního toku v síti 342 //
10.6.4 Problém párování a problém minimální souvislosti grafu 345 // 10.6.5 Problém obchodního cestujícího 346 // 11. Netradiční výpočetní postupy 349 // 11.1 Heuristiky 349 // 11.2 Prořezávání stromu 350 // 11.2.1 Heuristika pro problém hamiltonovské cesty 351 // 11.2.2 Heuristika pro úlohu o batohu 353 // 11.3 Evoluční algoritmy 355 // 11.4 Neuronové sítě 358 // 11.4.1 Stručná historie 358 // 11.4.2 Biologický a umělý neuron 360 // 11.4.3 Propojení neuronů do sítě 364 // 11.4.4 Proces učení sítě 367 // 11.4.5 Použití neuronových sítí 369 // 11.5 Vysoce paralelní a jiné netradiční výpočty 371 // 11.5.1 Kvantové počítače 373 // 11.5.2 DNA počítače 374 // 11.5.3 Analogové a hybridní počítače 375 // Rejstřík 377 // Rejstřík anglických ekvivalentů termínů užitých v českém rejstříku 405 // Literatura 424 // Seznam některých často užívaných symbolů 427