Vorwort | 6 |
Inhalt | 8 |
1 Künstliche Intelligenz | 12 |
1.1 Was ist, was kann künstliche Intelligenz? | 12 |
1.2 Struktur des Buches | 18 |
1.3 Intelligente Agenten | 21 |
1.3.1 Agenten und künstliche Intelligenz | 22 |
1.3.2 Anwendungen | 24 |
1.4 Künstliche Intelligenz und Wissensmanagement | 27 |
Übungen | 28 |
2 Darstellung und Verarbeitung von Wissen | 29 |
2.1 Darstellung von Wissen mit Hilfe von Logik | 33 |
2.1.1 Aussagenlogik | 34 |
2.1.2 Prädikatenlogik | 53 |
2.1.3 Logik und PROLOG | 68 |
Übungen | 70 |
2.2 Regelbasierte Wissensdarstellung | 72 |
2.2.1 Vorwärtsverkettung | 75 |
2.2.2 Rückwärtsverkettung | 79 |
2.2.3 Regelverarbeitung und Prolog | 80 |
2.2.4 Business Rules | 83 |
Übungen | 85 |
2.3 Semantische Netze und Frames | 86 |
2.3.1 Semantische Netze | 86 |
2.3.2 Frames | 88 |
2.3.3 Wissensnetze | 90 |
Übungen | 91 |
2.4 Vages Wissen | 92 |
2.4.1 Unsicheres Wissen | 93 |
2.4.2 Fuzzy-Mengen | 101 |
2.4.3 Fuzzy-Logik | 107 |
2.4.4 Fuzzy-Regler | 109 |
Übungen | 113 |
3 Problemlösung mittels Suche | 115 |
3.1 Uninformierte Suche | 120 |
3.2 Heuristische Suche | 129 |
3.2.1 Heuristik des nächsten Nachbarn | 133 |
3.2.2 Bergsteiger-Strategie | 134 |
3.2.3 Bestensuche | 136 |
3.2.4 A*-Suche | 137 |
3.3 Das Rundreiseproblem | 141 |
3.4 Zusammenfassung | 145 |
4 PROLOG | 150 |
4.1 Logisches Programmieren | 150 |
4.1.1 Erste Schritte | 150 |
4.1.2 Ein Beispiel | 153 |
4.1.3 Regeln | 155 |
Übungen | 158 |
4.2 PROLOG-Programme | 159 |
4.2.1 Lösungsfindung mittels Backtracking | 159 |
4.2.2 Parameterübergabe mittels Unifikation | 161 |
4.2.3 Interpretation von Programmen | 164 |
Übungen | 166 |
4.3 Datentypen und Arithmetik | 166 |
4.3.1 Einfache und zusammengesetzte Datentypen | 166 |
4.3.2 Listen | 169 |
4.3.3 Arithmetik | 172 |
Übungen | 173 |
4.4 Steuerung der Abarbeitung | 174 |
4.4.1 Reihenfolge der Klauseln | 175 |
4.4.2 Reihenfolge der Literale im Körper einer Regel | 176 |
4.4.3 Kontrolle des Backtracking | 177 |
4.4.4 Die Negation | 180 |
Übungen | 181 |
4.5 Vordefinierte Prädikate | 181 |
Übungen | 182 |
4.6 Beispielprogramme | 183 |
4.6.1 Das Einfärben einer Landkarte | 183 |
4.6.2 Die Türme von Hanoi | 184 |
4.6.3 Das Acht-Damen-Problem | 185 |
4.6.4 Das Problem der stabilen Paare | 187 |
Übungen | 189 |
5 Künstliche neuronale Netze | 190 |
5.1 Das künstliche Neuron | 192 |
5.2 Architekturen | 197 |
5.3 Arbeitsweise | 199 |
Übungen | 201 |
6 Vorwärtsgerichtete neuronale Netze | 203 |
6.1 Das Perzeptron | 203 |
6.1.1 Die Delta-Regel | 205 |
6.1.2 Musterzuordnungen | 208 |
Übungen | 209 |
6.2 Backpropagation-Netze | 211 |
6.2.1 Das Backpropagation-Verfahren | 212 |
6.2.2 Das XOR-Backpropagation-Netz | 216 |
6.2.3 Modifikationen des Backpropagation-Algorithmus | 219 |
Übungen | 221 |
6.3 Typische Anwendungen | 222 |
6.3.1 Zeichenerkennung | 222 |
6.3.2 Das Encoder-Decoder-Netz | 228 |
6.3.3 Ein Prognose-Netz | 229 |
Übungen | 231 |
6.4 Datenvorverarbeitung | 232 |
6.4.1 Verarbeitungsschritte | 233 |
6.4.2 Daten des Kreditvergabe-Beispiels | 235 |
Übungen | 240 |
6.5 Netzgröße und Optimierungen | 240 |
6.5.1 Die Größe der inneren Schicht | 241 |
6.5.2 Das Entfernen von Verbindungen | 244 |
6.5.3 Genetische Algorithmen | 245 |
Übungen | 247 |
6.6 Partiell rückgekoppelte Netze | 247 |
6.6.1 Jordan-Netze | 248 |
6.6.2 Elman-Netz | 250 |
Übungen | 251 |
7 Wettbewerbslernen | 252 |
7.1 Selbstorganisierende Karte | 253 |
7.1.1 Architektur und Arbeitsweise | 253 |
7.1.2 Das Training | 256 |
7.1.3 Visualisierung einer Karte und deren Verhalten | 260 |
7.1.4 Eine Lösung des Rundreiseproblems | 261 |
Übungen | 265 |
7.2 Neuronales Gas | 265 |
7.2.1 Architektur und Arbeitsweise | 265 |
7.2.2 Wachsendes neuronales Gas | 268 |
Übungen | 270 |
7.3 Adaptive Resonanz-Theorie | 271 |
7.3.1 Das Plastizitäts-Stabilitäts-Dilemma | 271 |
7.3.2 Struktur eines ART-Netzes | 273 |
7.3.3 Das Beispiel Würfelmuster | 274 |
7.3.4 Arbeitsweise | 276 |
Übungen | 279 |
8 Autoassoziative Netze | 280 |
8.1 Hopfield-Netze | 280 |
8.1.1 Arbeitsweise | 281 |
8.1.2 Wiedererkennung von Mustern | 283 |
8.1.3 Energie-Niveau eines Netzes | 287 |
8.2 Lösung von Optimierungsproblemen | 288 |
8.3 Die Boltzmann-Maschine | 291 |
9 Entwicklung neuronaler Netze | 296 |
9.1 Der Stuttgarter Neuronale Netze Simulator | 296 |
9.1.1 Ein erstes Beispiel | 297 |
9.1.2 Aufbau von Netzen – der Netzeditor | 301 |
9.1.3 Das Training von Netzen | 304 |
9.1.4 Die Visualisierung von Ergebnissen | 307 |
Übungen | 310 |
9.2 JavaNNS | 310 |
9.3 Implementation neuronaler Netze | 312 |
9.3.1 Einsatz von Array-Datenstrukturen | 313 |
9.3.2 Der objektorientierte Ansatz | 315 |
9.3.3 Ein einfaches Perzeptron | 317 |
Übungen | 323 |
Literatur | 324 |
Index | 328 |