Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten. Damit können sie zur Ausführung in ein Computerprogramm implementiert, aber auch in menschlicher Sprache formuliert werden. Bei der Problemlösung wird eine bestimmte Eingabe in eine bestimmte Ausgabe überführt.
Was ist ein Algorithmus? Alexander Pinker, Innovation-Profiler, Zukunftsstratege und Medienexperte, erklärt in diesem Video anhand von Beispielen, was ein Algorithmus ist und wie er funktioniert. Er zeigt auch, wo Algorithmen im Alltag und in der Arbeitswelt eingesetzt werden.
Alle Informationen aus Alexander Pinkers Video zum Thema Algorithmus übersichtlich dargestellt.
Alexander Pinker ist Innovation-Profiler, Zukunftsstratege und Medienexperte und hilft Unternehmen, die Chancen hinter Technologien wie künstlicher Intelligenz für die nächsten fünf bis zehn Jahre zu verstehen. Er ist Gründer des Beratungsunternehmens „Alexander Pinker – Innovation-Profiling“, der Agentur für Innovationsmarketing "innovate! communication" und der Nachrichtenplattform „Medialist Innovation“. Außerdem ist er Autor dreier Bücher und Dozent an der Technischen Hochschule Würzburg-Schweinfurt.
Ein Algorithmus besteht typischerweise aus drei aufeinanderfolgenden Schritten:
Zu Beginn werden die erforderlichen Daten oder Informationen eingegeben. Dies könnte zum Beispiel eine Suchanfrage sein. Der Nutzer sucht gezielt nach spezifischen Informationen und gibt diese in eine Suchmaschine wie Google ein.
In diesem Schritt werden die eingegebenen Daten nach vordefinierten Regeln und Abläufen verarbeitet. Dabei können verschiedene Operationen angewendet werden, um die gewünschten Ergebnisse zu erzielen. Suchmaschinen wie Google verwenden Algorithmen, um Millionen von Webseiten zu durchsuchen und die relevantesten Ergebnisse für eine bestimmte Suchanfrage zu liefern. Die Algorithmen analysieren verschiedene Faktoren wie Relevanz, Popularität und Qualität der Webseite, um die Suchergebnisse zu bestimmen. Der Google-Algorithmus würde in unserem Beispiel die eingegebenen Daten analysieren und nach spezifischen Schlüsselwörtern suchen, um relevante Inhalte zu finden.
Nach der Verarbeitung der Daten erfolgt die Ausgabe des Ergebnisses an den Nutzer. Dies kann in verschiedenen Formen geschehen, abhängig von der Art des Algorithmus und dem spezifischen Anwendungsfall. Im Fall einer Google Suchanfrage wird das Ergebnis beispielsweise in Form einer Liste von relevanten Suchergebnissen präsentiert.
Jeder Schritt eines Algorithmus muss durchführbar sein. Es darf keine unrealistischen oder nicht realisierbaren Schritte geben. Der Algorithmus muss tatsächlich umgesetzt werden können.
Der Determinismus eines Algorithmus bezieht sich darauf, dass der gesamte Ablauf eindeutig bestimmt ist. Der Algorithmus folgt einem vordefinierten logischen Schema, bei dem jeder Schritt auf dem vorherigen basiert und in einer vorhersehbaren Reihenfolge abläuft.
Die Determiniertheit eines Algorithmus bezieht sich speziell auf die eindeutige Bestimmtheit des Ergebnisses. Ein determinierter Algorithmus liefert für gleiche Eingaben stets das gleiche Ergebnis. Während deterministische Algorithmen aufgrund ihres eindeutig bestimmten Ablaufs auch determiniert sind, trifft dies nicht auf alle nicht-deterministischen Algorithmen zu. Es gibt nicht-deterministische Algorithmen, die verschiedene Wege nutzen können, um zum gleichen Ergebnis zu gelangen, also ein determiniertes Resultat liefern.
Ein Algorithmus ist endlich, was bedeutet, dass er in einer endlichen Anzahl von Schritten abläuft. Es gibt eine feste Anzahl von Anweisungen oder Operationen, die im Algorithmus ausgeführt werden.
Eine abschließende Eigenschaft von Algorithmen ist ihre Terminierung. Ein Algorithmus bezeichnet man terminierend, wenn er in einer endlichen Zeit ausgeführt wird und nicht in einer endlosen Schleife stecken bleibt oder ohne Ergebnis abbricht. Er muss also zwangsläufig enden und ein Ergebnis liefern.
Die Schönheit von Algorithmen besteht darin, dass sie universell anwendbar sind. Sie können in vielen verschiedenen Bereichen eingesetzt werden, von der Datenverarbeitung und Programmierung bis hin zur alltäglichen Problemlösung. Es braucht Algorithmen für die Nutzung moderner Navigationssysteme, für die Beantwortung von Suchanfragen oder im Gaming.
Algorithmen werden bei der Künstlichen Intelligenz (KI) verwendet, um Lösungen für die verschiedensten Arten von Problemen zu finden. So helfen diese beispielsweise, viele Daten in Kategorien einzuteilen, um Strukturen und Zusammenhänge zu erkennen. Alles mittels Eingabe und fest definierter, eindeutiger und wiederkehrender Ausgaben. Nahezu keine Anwendung in unserer heutigen Zeit würde ohne ihre Algorithmen funktionieren – und wir stehen aktuell erst am Anfang der Möglichkeiten dieser Ausführungsprogramme.
Ein Kochrezept ist ein klassisches Beispiel für einen Algorithmus. Es gibt klare Anweisungen darüber, welche Zutaten benötigt werden, wie sie vorbereitet werden müssen und wie sie in welcher Reihenfolge kombiniert werden sollen, um ein bestimmtes Gericht zuzubereiten.
Navigationssysteme in Fahrzeugen verwenden komplexe Algorithmen, um uns den besten Weg von einem Ort zum anderen zu zeigen. Sie berücksichtigen Faktoren wie Verkehr, Straßenbedingungen und die kürzeste oder schnellste Route, um uns effektiv ans Ziel zu führen.
Beim Lösen eines Sudoku-Puzzles verwenden wir Algorithmen, um systematisch die leeren Felder zu füllen. Wir prüfen die Regeln des Spiels und testen verschiedene Zahlenkombinationen, um das Rätsel zu lösen.
Der Euklidische Algorithmus ist ein mathematischer Algorithmus, der verwendet wird, um den größten gemeinsamen Teiler von zwei Zahlen zu finden. Er wurde vom antiken griechischen Mathematiker Euklid entwickelt und ist immer noch einer der effizientesten Wege, um den größten gemeinsamen Teiler zweier Zahlen zu berechnen.
Das Sieb des Eratosthenes ist ein einfacher Algorithmus zur Identifizierung aller Primzahlen bis zu einer bestimmten Zahl. Es wurde vom antiken griechischen Mathematiker Eratosthenes von Kyrene entwickelt.
Hier ist ein einfaches Beispiel, um die Primzahlen bis 20 zu finden:
Schritt 1: Erstelle eine Liste von 2 bis 20.
Schritt 2: Wähle die erste Zahl in der Liste (2), da 1 keine Primzahl ist.
Schritt 3: Streiche alle Vielfachen von 2 aus der Liste, außer der Zahl 2 selbst (4, 6, 8, 10, 12, 14, 16, 18, 20).
Schritt 4: Wähle die nächste nicht gestrichene Zahl in der Liste (3).
Schritt 5: Streiche alle Vielfachen von 3 aus der Liste, außer der Zahl 3 selbst (9, 15).
Schritt 6: Wähle die nächste nicht gestrichene Zahl in der Liste (5).
Schritt 7: In der Liste befinden sich keine Vielfachen von 5 mehr, die gestrichen werden können.
Schritt 8: Die übrig gebliebenen Zahlen in der Liste sind die Primzahlen bis 20: 2, 3, 5, 7, 11, 13, 17, 19.
Es gibt viele verschiedene Algorithmen zum Sortieren von Daten in Informatik, wie zum Beispiel Quicksort, Bubblesort und Mergesort. Jeder dieser Algorithmen hat seine eigenen Vor- und Nachteile und ist in bestimmten Situationen effizienter.
Diese Algorithmen werden verwendet, um bestimmte Daten in einer Datenstruktur zu finden. Beispiele sind die binäre Suche, die in einer sortierten Liste arbeitet, und die Tiefen- oder Breitensuche, die in Graphen und Bäumen verwendet wird.
Der vielleicht bekannteste Algorithmus ist der Google-Algorithmus, welchen wir nutzen, wenn wir etwas suchen. Er berücksichtigt über 200 Faktoren und wird quasi täglich angepasst. Mit 4. Mrd. Anfragen täglich hat der Google-Algorithmus auch genug Informationen, um dies zu tun.
Worauf legt der TikTok-Algorithmus Wert? Es ist bekannt, dass u.a. die Interessen im Account, die Interaktionen, der genutzte Soundclip und die Hashtags ausschlaggebend sind. Besonders wichtig ist die Ansichtsdauer. Der Algorithmus belohnt zudem, wenn das Video bis zum Ende angeschaut wird.
Musik-Streaming-Plattformen wie Spotify verwenden Algorithmen, um uns personalisierte Musikempfehlungen basierend auf unseren Hörgewohnheiten, Vorlieben und dem Verhalten anderer Nutzer mit ähnlichem Musikgeschmack zu geben.
Algorithmen für Gesichtserkennung werden in vielen Anwendungen eingesetzt, von der biometrischen Identifikation auf Smartphones bis hin zur Überwachungstechnologie. Sie analysieren Merkmale des Gesichts, um eine Person zu identifizieren oder zu verifizieren.
Flussdiagramme sind eine gebräuchliche Methode zur Darstellung von Algorithmen. Sie verwenden Symbole wie Rechtecke, Rauten, Parallelogramme und Pfeile, um den Fluss der Ausführung darzustellen. Rechtecke repräsentieren Aktionen oder Operationen, Rauten stehen für Entscheidungen oder Bedingungen, Parallelogramme symbolisieren Ein- und Ausgaben, und Pfeile zeigen den Fluss der Kontrolle.
Das abgebildete Flussdiagramm zeigt den Ablauf des Backens eines Kuchens. Zuerst werden die Zutaten bereitgestellt, dann wird der Teig gemischt und in die Form gegossen. Anschließend wird der Kuchen im Ofen gebacken. Nach einer bestimmten Zeit wird überprüft, ob der Kuchen fertig ist. Wenn ja, wird er aus dem Ofen genommen. Andernfalls wird er weitere Zeit gebacken, bis er fertig ist.
Pseudocode ist eine informelle Art der Darstellung von Algorithmen mit einer Mischung aus natürlicher Sprache und Programmierkonstrukten. Pseudocode ist weniger formal als eine Programmiersprache, aber dennoch präzise genug, um den Algorithmus zu verstehen. Es bietet eine flexible und verständliche Möglichkeit, Algorithmen zu beschreiben.
Funktion kuchenBacken():
bereiteZutatenVor()
mischeTeig()
gießeInForm()
backeImOfen()
solange (kuchenNichtFertig()):
weitereZeitBacken()
nehmeAusOfen()
Dieses Beispiel zeigt den Pseudocode für eine Funktion namens "kuchenBacken()", die den Algorithmus zum Backen eines Kuchens darstellt. Die einzelnen Schritte werden als Funktionen dargestellt, wie zum Beispiel "bereiteZutatenVor()" oder "backeImOfen()". Die Schleife "solange" wird verwendet, um den Kuchen weiterzubacken, bis er fertig ist.
Struktogramme sind ähnlich wie Flussdiagramme, aber sie verwenden spezifische Symbole wie Rechtecke, Rhomben, Trapeze und Linien, um den Algorithmus darzustellen. Struktogramme legen besonderen Wert auf die Strukturierung und Hierarchie des Algorithmus und eignen sich gut, um komplexe Algorithmen zu visualisieren.
Das abgebildete Struktogramm zeigt die einzelnen Aktionen und Entscheidungen beim Backen eines Kuchens. Die Rechtecke repräsentieren die Schritte wie Zutaten bereitstellen, Teig mischen, in die Form gießen und im Ofen backen. Die Entscheidung stellt die Frage, ob der Kuchen fertig ist oder nicht dar. Abhängig von der Antwort werden entweder weitere Zeit gebacken oder der Kuchen aus dem Ofen genommen.