
Probleme lösen - um nichts Geringeres geht es in diesem Kapitel. Damit ist die Ausgestaltung eines Verarbeitungsvorgangs bzw. eines Algorithmus gemeint, der für eine gegebene Funktion den Rechenweg von der Eingabe zur gewünschten Ausgabe definiert. Zunächst beschäftigen wir uns mit den Grundlagen des Algorithmenentwurfs. Sie lernen bewährte Strategien kennen, mit denen sich schwierige Probleme anpacken und effiziente Programme konstruieren lassen. Anschließend schauen wir uns intelligente Algorithmen an, d. h. Verarbeitungsprozesse, die Aspekte des menschlichen Verhaltens nachbilden. Es geht darum, wie Computer lernen, spielen und Sprachen erkennen können. Zum Schluss widmen wir uns der Frage, was eigentlich ein guter Algorithmus ist bzw. wann ein Problem gut gelöst ist. Wir werden sehen, dass es große Unterschiede geben kann zwischen geschickten und naiven Lösungen und dass manche Probleme gar nicht lösbar sind. Algorithmik, Künstliche Intelligenz und Komplexitätstheorie heißen die Zutaten dieses Kapitels im Informatikjargon.