Aktuelle Zeit:0:00Gesamtdauer:5:28
0 Energiepunkte

Was ist ein Algorithmus und warum sollte es dich interessieren?

Video-Transkript
Was ist ein Algorithmus? Eine Definition könnte eine Menge von Schritten sein, um eine Aufgabe zu erledigen. Du könntest einen Algorithmus haben, um von der Schule nach Hause zu kommen, oder ein getoastetes Käsebrot zu machen, oder um zu etwas in einem Supermarkt zu finden. In der Informatik ist ein Algorithmus eine Menge von Schritten, die ein Computerprogramm zum Erledigen einer Aufgabe benötigt. Algorithmen sind ein wesentlicher Teil der Informatik. Wenn Du einen guten Algorithmus finden und ihn passend anwenden kannst, dann wirst Du interessante und wichtige Programme schreiben können. Lass uns einige bekannte Algorithmen anschauen. Wie überträgt Google Hangout Live-Videos so schnell über das Internet? Es verwendet Audio und Video Kompressionsalgorithmen. Wie schafft es Google Maps herauszufinden wie man von Dallas, Texas nach Orlando, Florida kommt, um Disney World zu besuchen? Dazu wird ein Wegfindungsalgorithmus verwendet. Wie färbt Pixar das 3D Modell eines Charakters abhängig von der Beleuchtung eines virtuellen Raumes? Pixar verwendet einen Rendering-Algorithmus. Wie bestimmt Nasa die Ausrichtung der Solarzellen auf der internationalen Raumstation und bestimmt wann sie gedreht werden sollen? Nasa verwendet Optimierungs- und Ablaufplanungsalgorithmen. Diese Algorithmen sind komplexer als Algorithmen unseres täglichen Lebens, wie z.B. ein getoastetes Käsebrot zu machen. Aber grundsätzlich haben sie gemeinsam, dass sie eine Menge von Schritten sind, die eine Aufgabe erfüllen. Wenn Du etwas über existierende Algorithmen weißt, dann kannst Du Dir Arbeit ersparen und Dein Programm schneller machen indem Du den richtigen Algorithmus anwendest. Angenommen, Du schreibst ein Spiel und Du willst, dass der Spieler gegen den Computer spielen können soll. Du könntest also andere Spiele anschauen, um Dich inspirieren zu lassen. Informatiker haben gelernt wie man ein Dame Programm schreibt, das niemals verliert. Dazu verwenden sie den MiniMax Suchalgorithmus, der durch einen riesigen Baum möglicher Züge sucht. Wenn Dein Spiel so ähnlich ist wie Dame ist, dann ist es möglich, dass Du einen Algorithmus verwenden kannst, der auf dieser Technik aufbaut. Falls nicht, dann kann das Wissen um die Limitation dieser Algorithmen Dich zu einem veränderten Design Deines Spieles führen, wenn es einen guten Computerspieler benötigt. Es ist auch wichtig zu wissen, wie man einen neuen Algorithmus entwirft, ebenso, wie man die Korrektheit und Effizienz analysiert. In der Biologie werden immer wieder neue Algorithmen entworfen z.B. um die molekulare Struktur von Medikamenten zu entwerfen, um Krankheiten zu behandeln. In der Physik simulieren Algorithmen Klima- und Wettervorgänge. Wieder andere Algorithmen suchen und analysieren die Daten von Sternen im Universum, welche von automatischen Weltraumteleskopen aufgenommen werden. In allen Wissenschaften und sogar auf Webseiten wie der Khan Academy werden effiziente Algorithmen benötigt, um große Datenmengen zu analysieren oder um intelligent aus einer großen Anzahl von möglichen Entscheidungen auszuwählen. In fast allen Bereichen werden Algorithmen massive Rechenleistungen bereitstellen, um Dinge zu tun die für Menschen wichtig sind. Nun, nicht alle Algorithmen sind gleich. Was macht also einen guten Algorithmus aus? Die beiden wichtigsten Kriterien sind, daß er ein Problem löst und dass er dabei effizient ist. Die meist Zeit wollen wir, daß ein Algorithmus uns immer eine korrekte Antwort gibt. Manchmal kann es aber ausreichen, wenn die Antwort nicht 100% korrekt, oder nicht die beste ist, weil der einzige perfekte Algorithmus, den wir für diese Probleme kennen viel zu lange rechnen muß. Nehmen wir einmal an, dass wir ein Programm wollen, das den besten Weg berechnet damit ein Lastwagen Pakete abliefert, beginnend und endend am Depot. Es würde Wochen dauern um alle Möglichkeiten zu berechnen. Aber wenn es uns reicht ein Programm zu haben, das einen Weg berechnet der gut genug ist, aber vielleicht nicht perfekt, dann würde es vielleicht nur ein paar Sekunden dauern. In manchen Fällen reicht das. Wie misst man die Effizienz eines Algorithmus? Wir könnten die Laufzeit messen. Aber damit würden wir nur etwas über die konkrete Implementierung in einer bestimmten Programmiersprache auf einem bestimmten Computer mit dem vordefinierten Input erfahren. Stattdessen verwenden Informatiker eine Technik die asymptotische Analyse genannt wird. Damit kann man Algorithmen miteinander vergleichen, unabhängig von der verwendeten Programmiersprache oder Hardware, damit wir schlüssig feststellen können, dass einige Algorithmen effizienter sind als andere. Du kannst über Algorithmen und asymptotische Analyse auf der Khan Academy lernen, dank der Beiträge zweier Professoren vom Dartmouth College. Tom Cormen ist der erste Autor eines weltweit sehr bekannten Buchs über Algorithmen, und der Autor von Algorithms Unlocked. Devin Balkcom entwarf Dartmouths einführenden Informatikkurs und forscht im Bereich der Robotik. Er baute den weltweit ersten Roboter, der Origami falten kann. Tom and Devin werden Dir viele der Algorithmen beibringen, die Du normalerweise in APCS or CS 101 lernen würdest, wie z.B. Such-, oder Sortieralgorithmen, rekursive Algorithmen, und mein persönlicher Favorit, Graphenalgorithmen. Viele interaktive Visualisierungen, Rätsel und Coding Challenges, werden Dir auf Deiner Lern-Reise helfen.