Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Cover Über die Autoren
John Muellers Widmung Luca Massarons Widmung John Muellers Danksagung Luca Massarons Danksagung
Teil I: Erste Schritte Kapitel 1: Grundlegendes über Algorithmen
Algorithmen beschreiben
Definitionen zur Anwendung von Algorithmen Algorithmen sind überall
Mit Computern Aufgaben lösen
Moderne CPUs und GPUs wirksam einsetzen Arbeiten mit Spezialchips Netzwerke wirksam einsetzen Daten effektiv nutzen
Zwischen Aufgaben und Lösungen unterscheiden
Richtigkeit und Effizienz Die Erkenntnis, dass nichts umsonst ist Die Strategie an die Aufgabe anpassen Algorithmen in einer Lingua franca beschreiben Schwierige Aufgaben angehen
Daten für Lösungen strukturieren
Die Sichtweise eines Computers Datenordnung muss sein
Einführung
Über dieses Buch Konventionen in diesem Buch Törichte Annahmen über den Leser Symbole, die in diesem Buch verwendet werden Wie es weitergeht
Kapitel 2: Algorithmendesign
Der Anfang der Problemlösung
Praxisaufgaben modellieren Lösungen und Gegenbeispiele finden Auf den Schultern von Riesen stehen
Teile und herrsche
Brute-Force-Lösungen vermeiden Erster Schritt: Vereinfachen Reduktion ist meist vorteilhaft
Erkennen, dass Gier gut sein kann
Gierig denken Eine gute Lösung
Kostenberechnungen und Heuristiken
Das Problem in einem Raum darstellen Zufällig und von Glück gesegnet Heuristiken und Kostenfunktionen verwenden
Algorithmen auswerten
Simulationen mittels abstrakter Maschinen Weitere Abstrahierungen Mit Funktionen arbeiten
Kapitel 3: Mit Python Algorithmen verwenden
Die Vorteile von Python
Wie Python in diesem Buch verwendet wird Mit MATLAB arbeiten Andere Testumgebungen für Algorithmen
Python-Distributionen
Analytics Anaconda installieren Enthought Canopy Express Python(x,y) WinPython
Python auf Linux installieren Python auf MacOS installieren Python auf Windows installieren Datensätze und Beispielcode herunterladen
Jupyter Notebook benutzen Das Coderepository definieren Ein neues Notebook erstellen Ein Notebook exportieren Ein Notebook entfernen Ein Notebook importieren Die Datensätze in diesem Buch verstehen
Kapitel 4: Algorithmen mit Python programmieren: Grundlagen
Mit Zahlen und Logik arbeiten
Variablenzuordnungen vornehmen Berechnungen durchführen Datenvergleich durch boolesche Ausdrücke
Strings erstellen und verwenden Mit Datumsangaben arbeiten Funktionen erstellen und verwenden
Mehrfach aufrufbare Funktionen erstellen Funktionen aufrufen
Bedingte Anweisungen und Schleifen verwenden
Entscheidungen mittels if-Befehl treffen Mittels verschachtelter Entscheidungen zwischen mehreren Möglichkeiten auswählen Iterative Aufgaben mittels for-Schleife ausführen Der while-Befehl
Daten in Mengen, Katalogen und Tupeln speichern
Datasets erstellen Listen erstellen Tupel erstellen und verwenden
Nützliche Iteratoren definieren Daten mittels Dictionaries indizieren
Kapitel 5: Grundlagen der Datenbearbeitung mit Python
Berechnungen mit Vektoren und Matrizen
Variablen- und Vektoroperationen verstehen Vektoren multiplizieren Der erste Schritt: Matrizen erstellen Matrizen multiplizieren Erweiterte Matrizenoperationen definieren
Der richtige Weg: Kombinationen erzeugen
Permutationen unterscheiden Kombinationen erzeugen Wiederholungen behandeln
Ergebnisse mit Rekursion erzielen
Die Funktionsweise der Rekursion Endrekursionen entfernen
Prozesse schneller ausführen
Der »teile und herrsche«-Ansatz Zwischen möglichen Lösungen unterscheiden
Teil II: Die Notwendigkeit des Suchens und Sortierens Kapitel 6: Daten strukturieren
Die Notwendigkeit einer Struktur
Inhalt vereinfacht darstellen Daten aus verschiedenen Quellen anpassen Die Wichtigkeit der Datenbereinigung
Daten gestapelt und kumuliert anordnen
Stapelweise Anordnungen Warteschlangen verwenden Daten mittels assoziativen Datenfeldern finden
Mit Bäumen arbeiten
Grundlegendes über Bäume Bäume erstellen
Relationen in Graphen darstellen
Über Bäume hinauswachsen Graphen erstellen
Kapitel 7: Daten ordnen und durchsuchen
Daten mit Mergesort und Quicksort sortieren
Die Notwendigkeit des Sortierens Daten naiv anordnen Bessere Sortiertechniken einsetzen
Suchbäume und Heaps verwenden
Die Notwendigkeit einer effizienten Suche Binäre Suchbäume erstellen Spezialisierte Suchen mit einem binären Heap
Hashing verwenden
Alles in Buckets füllen Kollisionen vermeiden Hashfunktionen selbst erstellen
Teil III: Die Welt der Graphen Kapitel 8: Die Grundlagen von Graphen
Die Wichtigkeit von Netzwerken
Grundlegendes über Graphen Graphen sind überall Die soziale Seite eines Graphen Teilgraphen verstehen
Definitionen für das Zeichnen von Graphen
Die wichtigsten Eigenschaften von Graphen Graphen zeichnen
Die Funktionalität eines Graphen
Kanten und Knoten zählen Zentralität berechnen
Graphen in ein numerisches Format bringen
Graphen zu einer Matrix hinzufügen Dünn besetzte Matrizen verwenden Graphen durch Listen ausdrücken
Kapitel 9: Punkte verbinden
Graphen effizient durchsuchen
Einen Graphen erstellen Breitensuche anwenden Tiefensuche anwenden Die Entscheidung für eine Methode
Die Elemente eines Graphen sortieren
Mit gerichteten azyklischen Graphen arbeiten Topologische Sortierungen verwenden
Die Reduktion auf einen minimalen Spannbaum
Geeignete Algorithmen verwenden Vorrangwarteschlangen kennenlernen Den Algorithmus von Prim einsetzen Den Algorithmus von Kruskal testen Entscheiden, welcher Algorithmus am besten passt
Den kürzesten Weg finden
Definieren, was der kürzeste Weg ist Der Dijkstra-Algorithmus: eine Erklärung
Kapitel 10: Die Geheimnisse der Graphen
Soziale Netzwerke als Graphen betrachten
Netzwerke in Gruppen clustern Communitys entdecken
Einen Graphen durchlaufen
Grade der Trennung abzählen Graphen zufällig durchlaufen
Kapitel 11: Die richtige Webseite finden
Die Welt in einer Suchmaschine
Datensuche im Internet Die richtigen Daten finden
Die Funktionsweise des PageRank-­Algorithmus
Die Logik hinter dem PageRank-Algorithmus Das A und O von PageRank
PageRank implementieren
Pythonskripte implementieren Der Kampf mit naiven Implementierungen Langeweile und Teleportation Das Leben einer Suchmaschine Andere Verwendungsmöglichkeiten von PageRank
Über das PageRank-Paradigma hinaus
Semantisches Suchen Ranking von Suchergebnissen mit künstlicher Intelligenz
Teil IV: Der Kampf mit Big Data Kapitel 12: Big Data verwalten
Die Umwandlung von Strom in Daten
Die Auswirkungen von Moore Daten sind überall Algorithmen ins Geschäft bringen
Datenflüsse streamen
Streams korrekt analysieren Die richtigen Daten auswählen
Lösungen aus Stream-Daten skizzieren
Datenstromelemente filtern Bloomfilter darstellen Die Anzahl der Elemente bestimmen Elemente eines Streams abzählen
Kapitel 13: Abläufe parallelisieren
Die Handhabung großer Datenmengen
Die parallele Methode Dateien und Vorgänge verteilen Lösungen mit MapReduce Operationen verteilen
Algorithmen für MapReduce erstellen
MapReduce-Simulationen erstellen Anfragen durch Mapping
Kapitel 14: Daten komprimieren
Daten reduzieren
Codierungen verstehen Die Folgen der Kompression Die Entscheidung für eine Kompressionsart Die Wahl einer vernünftigen Codierung Codieren mit der Huffman-Kompression Folgen merken mit dem LZW-Algorithmus
Teil V: Komplexe Aufgaben angehen Kapitel 15: Mit gierigen Algorithmen arbeiten
Die Entscheidung, wann Gier Sinn macht
Die Vorteile der Gier Gierige Algorithmen im Zaum halten NP-vollständige Probleme
Herausfinden, wieso Gier nützlich ist
Daten im Cache anordnen Der Kampf um Ressourcen Noch mal zu Huffman-Codierungen
Kapitel 16: Dynamische Programmierung
Dynamische Programmierung – was ist das?
Die historische Grundlage Probleme dynamisieren Rekursion dynamisch auslegen Memoisation verwenden
Die besten dynamischen Techniken
Den Rucksack packen Städte bereisen Näherungsweise nach Strings suchen
Kapitel 17: Randomisierte Algorithmen
Die Funktionsweise der Randomisierung
Die Notwendigkeit der Randomisierung Das Wahrscheinlichkeitsprinzip verstehen Verteilungen verstehen Die Monte-Carlo-Simulation
Den Zufall in die Logik einbauen
Den Median durch Quickselect bestimmen Monte-Carlo-Simulationen ausführen Schneller sortieren mit Quicksort
Kapitel 18: Lokale Suchen durchführen
Lokale Suchen verstehen
Die Nachbarschaft kennen
Tricks bei der lokalen Suche
Bergsteigen und das Damenproblem Die Funktionsweise des Simulated Annealing Wiederholungen durch die Tabu-Suche vermeiden
Die Erfüllbarkeit boolescher Schaltkreise
2-SAT mittels Randomisierungen lösen Die Code-Implementierung in Python Die Wichtigkeit des Anfangspunkts
Kapitel 19: Lineare Optimierung
Lineare Funktionen – ein Werkzeug
Die mathematischen Grundlagen Während des Planens vereinfachen Das Simplex-Verfahren geometrisch bearbeiten Die Grenzen der linearen Optimierung
Lineare Optimierung in der Praxis
PuLP auf dem eigenen Computer installieren Produktionsvorgänge und Einnahmen optimieren
Kapitel 20: Heuristiken untersuchen
Unterschiedliche Heuristiken kennenlernen
Die Ziele heuristischer Verfahren Von genetisch zu künstlich
Heuristische Routensuche bei Robotern
Unbekannte Gebiete erkunden Entfernungsmessungen als Heuristiken verwenden
Pathfinding-Algorithmen verstehen
Einen Irrgarten erstellen Die Suche nach dem besten Weg Heuristische Bewegungen mit A*
Teil VI: Der Top-Ten-Teil Kapitel 21: Zehn algorithmische Verfahren, die die Welt verändern
Sortierverfahren einsetzen Suchen durchführen Mit Zufallszahlen eine neue Ordnung herstellen Datenkompressionen vornehmen Die Geheimhaltung von Daten Datenbereiche ändern Zusammenhänge erkennen Muster in Daten erkennen Mit Automatisierung und automatischen Antworten arbeiten Eindeutige Identifizierungen erstellen
Kapitel 22: Zehn bislang ungelöste Probleme
Textsuchen bearbeiten Wörter unterscheiden Herausfinden, wann eine Anwendung anhält Einwegfunktionen erstellen und verwenden Die Multiplikation großer Zahlen Die Gleichverteilung von Ressourcen Die Berechnungszeit der Editierdistanz reduzieren Aufgaben schnell lösen Das Paritätsspiel spielen Räumliche Aufgabenstellungen verstehen
Stichwortverzeichnis Wiley End User License Agreement
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion