Buchrezension

Algorithmen lernen mal ganz anders

| Autor / Redakteur: Ariane Rüdiger / Nico Litzel

Das rund 270-seitige Werk von Aditya Y. Bhargava richtet sich an absolute Programmierlaien.
Das rund 270-seitige Werk von Aditya Y. Bhargava richtet sich an absolute Programmierlaien. (Bild: Mitp-Verlag)

Programmieren ist für Viele ein Buch mit sieben Siegeln. Wer verstehen will, wie wichtige, häufig eingesetzte Algorithmen funktionieren, um Probleme zu lösen, muss nicht unbedingt über eine Programmiersprache einsteigen. Das beweist dieses Buch.

Wie findet man am schnellsten eine beliebige Zahl zwischen 1 und 100, an die jemand denkt? Das klingt nach einem albernen Jahrmarktscherz, ist aber der Einstieg ins Algorithmenlernen. Zumindest in dem Buch von Aditya Y. Bhargava, das die Autorin für BigData-Insider studieren durfte.

Das Buch ist besonders interessant dadurch, dass es sich an absolute Programmierlaien wendet, die aber (wie heute beinahe jeder) ständig mit dem Begriff „Algorithmus“ bombardiert werden. Ihm haftet, vor allem gern gebraucht in Verbindung mit „Big Data“ schon beinahe etwas Magisches an.

Das rund 270-seitige Werk von Aditya Y. Bhargava versucht, Wissen an die Stelle von nebulösen Vermutungen zu setzen. Es klärt darüber auf, was Algorithmen und grundlegende Datenstrukturen sind – nämlich Rezepte oder Verfahrensregeln, um Probleme zu lösen oder Fragen zu beantworten, die sich mithilfe von Daten lösen oder beantworten lassen. Zudem zeigt es, wie wichtige Algorithmen und Datenstrukturen funktionieren.

Ein Bild sagt mehr als tausend Worte

Einige Beispiele für Aufgaben, die algorithmisch lösbar sind: Lange Listen durchsuchen, die optimale Reihenfolge oder Auswahl von etwas herausfinden, Parametern Werte zuzuordnen und diese dann zu minimieren oder zu maximieren. Kurz: alles Aufgaben, die auch im Kontext von Big Data anfallen.

Der Autor des Buches geht dabei einen ungewöhnlichen Weg. Statt seine Leserschaft auf die Suche nach Verwert- und Merkbarem durch eine Textwüste zu schicken, wählt er die Methode, möglichst viele Beispiele grafisch aufzubereiten. Dazu nutzt er Zeichnungen, die den Sachverhalt und die Lösung veranschaulichen sollen.

Dieses Verfahren ist besonders gut für diejenigen, die gern optisch lernen. Den anderen Leserinnen und Lesern schadet es zumindest nicht. Weiteres hervorstechendes Detail: Bhargava langweilt nicht mit Code-Würsten. Vielmehr beschränkt er den im Buch vorhandenen Python-Code auf das, was man braucht, um zu verstehen, was der Code an dieser Stelle tatsächlich tut.

Das Problem des Handlungsreisenden und seine praktischen Anwendungen

Grundlagen Statistik & Algorithmen, Teil 1

Das Problem des Handlungsreisenden und seine praktischen Anwendungen

18.06.18 - Ob beim Design von künstlichen Neuronalen Netzwerken fürs Deep Learning, in der Logistik oder beim Layout von Leiterplatten – überall stößt man auf das mathematisch lösbare Problem des Handlungsreisenden: Wie lässt sich eine Tour mit mehreren Stationen auf dem kürzesten Weg und mit dem geringsten Aufwand bewältigen? lesen

Codewüste ade

Der mitgelieferte Code hilft dann auch tatsächlich, etwas zu begreifen. Leider sind Codebeispiele auch in diesem Buch dunkelgrau unterlegt, was zusammen mit schwarzem Text nicht gerade die Lesbarkeit verbessert. Vielleicht kann man es irgendwann sogar umsetzen. Aber das ist wohl gar nicht unbedingt das Ansinnen. Zwar wendet sich das Buch an Programmierer aller Art. Doch es reicht auch, verstehen zu wollen, was welche Algorithmen leisten.

Die Beispiele, an denen Bhargava grundlegende Algorithmen vorführt, sind angenehm einfach und aus dem Leben gegriffen: Zahlen raten, Produkten Preise zuordnen, eine Reise optimal planen, einen Rucksack so packen, dass möglichst viel Wertvolles hineinpasst und so weiter. Das nimmt die Scheu, sich mit dem dahinter stehenden Thema auseinanderzusetzen. Denn so etwas möchte eigentlich jeder irgendwann einmal optimal erledigen.

So verfeinert das Bayes-Theorem Spam-Filter – und mehr

Grundlagen Statistik & Algorithmen, Teil 2

So verfeinert das Bayes-Theorem Spam-Filter – und mehr

25.06.18 - Mithilfe des Satzes von Bayes lassen sich Parameter schätzen und Hypothesen induktiv testen. In einem Spamfilter können so wahrscheinliche Spam-Mails ermittelt werden. Und aus den Symptomen, die bei einem bekannten Test auftreten, lassen sich wahrscheinliche Krankheitsursachen aufspüren. Der Satz von Bayes, der bedingte Wahrscheinlichkeiten beschreibt, ist also ein nahezu universell nutzbares Werkzeug der Statistik. lesen

Im Einzelnen stellt Bhargava in acht der zehn Kapitel seines Buches jeweils einen Algorithmus oder eine Datenstruktur vor. Das einleitende Kapitel macht mit grundlegenden Begriffen und der Landaunotation vertraut. Letztere ist ein Verfahren zur Angabe von Laufzeiten – schließlich ist neben der Tatsache, dass ein Algorithmus richtig rechnet, auch wichtig, wie lange er dazu braucht.

Die wichtigsten Algos und Datenstrukturen

Die folgenden acht Kapitel behandeln kapitelweise Selectionsort (Sortieren), Rekursion , Quicksort (ebenfalls Sortieren, aber anders), Hashtabellen, Breitensuche (Graphen), der Dijkstra-Algorithmus, Greedy-Algorithmen (beide für Optimierungsaufgaben), dynamisches Programmieren und k-nächste Nachbarn. Das letzte Kapitel schließlich beschreibt einige Algorithmen, die hohe praktische Bedeutung haben. Beispiele sind Bäume, invertierte Indices, die Fourier-Transformation, MapRedzcem SHA und anderes.

Speed für Mustererkennung mit dem Rete-Algorithmus

Grundlagen Statistik & Algorithmen, Teil 3

Speed für Mustererkennung mit dem Rete-Algorithmus

02.07.18 - Geschäftsregeln halten zahlreiche Unternehmensprozesse am Laufen, deshalb können sie mitunter sehr umfangreich werden. Der Umfang macht ihre Ausführung zeitaufwendig, weshalb jede Methode, sie zu beschleunigen, willkommen ist. Der Rete-Algorithmus beschleunigte 1979 die damals bestehenden Systeme für die Verarbeitung von Business Rules um den Faktor 3.000. Er ist bis heute die Grundlage zahlreicher Expertensysteme, etwa in der Mustererkennung. lesen

Jedes Kapitel, das einen Algorithmus beschreibt, ist dabei ein bisschen anders aufgebaut. Es vermittelt ganz nebenbei grundlegende mathematische oder informatische Kenntnisse, beispielsweise zum Aufbau von Computerspeichern, über Mengenlehre oder Graphen. Zu jedem Algorithmus gibt es ein Beispiel.

Nach der grundlegenden Vorgehensweise und der nötigen mathematischen Theorie folgt der Praxisteil. Er besteht in der Umsetzung grundlegender Funktionen in Python-Code. Anschließend werden die Laufzeiten der Algorithmen mithilfe der Landaunotation bewertet und gegebenenfalls mit Varianten verglichen.

Übung macht den Meister

Das abschließende Kapitel bricht leider mit dieser sehr einsichtigen Methodik. Es gewährt nur einen jeweils sehr kurz gefassten Einblick in bestimmte Algorithmen und ihre Anwendungen. Immerhin weist der Autor jeweils auf weiterführende Literatur hin.

Schließlich hat jedes Kapitel noch einen Übungsteil. Mit einfachen, manchmal auch kniffligen, Fragen wird überprüft, ob vom Inhalt des Kapitels auch etwas verstanden wurde. Die Auflösungen stehen hinten. Dort findet sich auch ein Stichwortverzeichnis.

Der Monte-Carlo-Algorithmus und -Simulationen

Grundlagen Statistik & Algorithmen, Teil 4

Der Monte-Carlo-Algorithmus und -Simulationen

10.09.18 - Eine Reihe von Algorithmen dient der Suche von Lösungen, ohne vorher die Antwort zu kennen, und von Entscheidungen, die nach „wahrscheinlich richtig oder falsch“ beurteilt werden. Das ist sinnvoll für das Risiko-Management, aber auch für die Nutzung von Supercomputern. Ein solcher Algorithmus ist der Monte-Carlo-Algorithmus und die darauf basierenden Simulationen lesen

Zudem ist die gesamte Codebasis, wie heute bei Programmierbüchern beinahe flächendeckend üblich, bei Github erhältlich. Gut wäre gewesen, wenn der Autor die Voraussetzungen erklärt hätte, die der eigene PC erfüllen muss, damit man den Code der Beispiele dort ablaufen lassen kann. Gerade Einsteiger aus anderen Fachbereichen hätten davon profitiert.

Fazit

Wegen seiner übersichtlichen Struktur eignet sich das Buch gut zum Lernen und Wiederauffrischen von Algorithmenwissen. Dazu trägt mit Sicherheit auch der relativ große, gut lesbare Schrifttyp bei. Wer allerdings professionell an Programmierproblemen aus dem Bereich der Datenanalyse arbeitet, wird um vertiefende Lektüre nicht herumkommen.

Ergänzendes zum Thema
 
Bibliografie

Optimale Clusteranalyse und Segmentierung mit dem k-Means-Algorithmus

Grundlagen Statistik & Algorithmen, Teil 5

Optimale Clusteranalyse und Segmentierung mit dem k-Means-Algorithmus

19.11.18 - Der k-Means-Algorithmus ist ein Rechenverfahren, das sich für die Gruppierung von Objekten, die sogenannte Clusteranalyse, einsetzen lässt. Dank der effizienten Berechnung der Clusterzentren und dem geringen Speicherbedarf eignet sich der Algorithmus sehr gut für die Analyse großer Datenmengen, wie sie im Big-Data-Umfeld üblich sind, so etwa in der Bildverarbeitung und in der Kundensegmentierung. lesen

Die Ereigniszeitanalyse – wenn Anfang und Ende die Erfolgsrate bestimmen

Grundlagen Statistik & Algorithmen, Teil 6

Die Ereigniszeitanalyse – wenn Anfang und Ende die Erfolgsrate bestimmen

04.02.19 - Die Ereigniszeitanalyse bzw. Survival Analysis umfasst eine Reihe von Werkzeugen der Statistik, mit denen die Zeit bis zum Eintritt eines bestimmten Ereignisses zwischen Gruppen verglichen wird. Auf diese Weise will man die Wirkung von prognostischen Faktoren, einer medizinischen Behandlung oder von schädlichen Einflüssen abschätzen. Bei dem Ereignis kann es sich um etwas so Endgültiges wie den Tod handeln, aber auch um den Verlust einer Arbeitsstelle, eine Scheidung oder einen Beginn, etwa um eine Geburt oder einen Heilungseintritt. lesen

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45772940 / Analytics)