Ein Al­go­rith­mus ist eine vor­de­fi­nier­te Vor­ge­hens­wei­se, die in Ein­zel­schrit­ten Probleme oder Aufgaben löst. Während Al­go­rith­men in fast allen All­tags­be­rei­chen vorkommen, spielen sie vor allem in der In­for­ma­tik und im Zu­sam­men­hang mit Com­pu­ter­pro­gram­men eine zentrale Rolle. Bekannte Beispiele sind etwa der Google-Al­go­rith­mus, der das Ranking von Such­ergeb­nis­sen bestimmt, sowie die Newsfeed-Al­go­rith­men von Facebook oder Instagram.

Al­go­rith­mus: Eine kurze De­fi­ni­ti­on

Al­go­rith­men sind vor­de­fi­nier­te, endliche Hand­lungs­ab­fol­gen, die zur Lösung eines Problems dienen. Sie kommen zum Einsatz, um anhand fester Schritt­fol­gen bestimmte Aufgaben zu erfüllen oder Ein­ga­be­wer­te in Aus­ga­be­wer­te zu ver­wan­deln. Die Schritte sind präzise vor­be­stimmt und werden in einer vor­ge­se­he­nen Rei­hen­fol­ge aus­ge­führt. Al­go­rith­men sind zudem un­ab­hän­gig von einer be­stimm­ten Sprache und funk­tio­nie­ren daher sowohl ma­schi­nell als auch nicht­ma­schi­nell. Darüber hinaus finden sich Al­go­rith­men nicht nur in der Ma­the­ma­tik und In­for­ma­tik, sondern auch im Alltag – an­ge­fan­gen bei der Ampel im Stra­ßen­ver­kehr bis hin zur Ruf­funk­ti­on eines Aufzugs.

6 Ei­gen­schaf­ten, die ein Al­go­rith­mus aufweisen muss

Waren Al­go­rith­men früher eher vage definiert, lässt sich heute an sechs Ei­gen­schaf­ten erkennen, ob es sich um einen Al­go­rith­mus handelt:

Ein­deu­tig­keit/Ef­fek­ti­vi­tät

Jeder Schritt in der Hand­lungs­ab­fol­ge eines Al­go­rith­mus muss effektiv und eindeutig sein. Das bedeutet, dass jede Anweisung sinnvoll und für die Anwendung zweck­mä­ßig sein muss, um ein Ergebnis oder einen Aus­ga­be­wert zu erhalten.

Aus­führ­bar­keit

Die Hand­lun­gen und Ein­zel­schrit­te müssen aus­führ­bar und somit logisch sein.

End­lich­keit (Finitheit)

Ziel eines Al­go­rith­mus ist die Um­wand­lung von Ein­ga­be­da­ten in Aus­ga­be­da­ten. Das ist nur möglich, wenn es sich um einen endlichen Ablauf handelt. Al­go­rith­men müssen somit eine finite Form haben, z. B. durch eine begrenzte Zei­chen­zahl oder einen li­mi­tier­ten Spei­cher­be­darf.

Ter­mi­nie­rung

Die aus­führ­ba­ren, logischen und endlichen Ein­zel­schrit­te müssen in einem zeitlich finiten Rahmen zu einer Ausgabe führen. Die Abfolge sollte also ziel­füh­rend sein und nicht in einer End­los­schlei­fe ohne Ergebnis münden.

De­ter­mi­niert­heit

Gleiche Eingaben unter gleichen Vor­aus­set­zun­gen müssen zu gleichen Ausgaben führen. Nur so ga­ran­tie­ren Al­go­rith­men, dass eine Anwendung und Pro­blem­lö­sung zu­ver­läs­sig funk­tio­niert.

De­ter­mi­nis­mus

Bei der Schritt­fol­ge des Al­go­rith­mus gibt es stets nur eine Mög­lich­keit zur Fort­set­zung der Pro­blem­lö­sung. Fol­ge­schrit­te sind somit durch die Zwi­schen­er­geb­nis­se klar definiert und nicht zufällig.

Welche Bedeutung haben Al­go­rith­men?

Al­go­rith­men spielten im 19. und 20. Jahr­hun­dert vor allem für die Ma­the­ma­tik und Logik eine zentrale Rolle und waren ein beliebtes Streit­the­ma. Heut­zu­ta­ge finden sich Al­go­rith­men in nahezu jedem Bereich unseres Alltags. Das Fas­zi­nie­ren­de daran: Meist wissen wir nichts von den Al­go­rith­men, die bestimmte An­wen­dun­gen wie das Fließband an der Kasse, Na­vi­ga­ti­ons­ge­rä­te oder das Ranking einer Such­ma­schi­ne wie Google möglich machen.

In der In­for­ma­tik bilden Al­go­rith­men eine zentrale Grundlage für das Pro­gram­mie­ren. Wer Pro­gram­mie­ren lernen will, stellt schnell fest, dass nahezu jedes Programm Al­go­rith­men nutzt, um eine Aufgabe aus­zu­füh­ren. Leicht ver­ein­facht lässt sich sogar sagen, dass jedes Programm selbst ein Al­go­rith­mus ist.

Nicht jeder Al­go­rith­mus ist jedoch ein Programm, denn Al­go­rith­men sind un­ab­hän­gig von In­ter­net­pro­gram­mier­spra­chen. Sie lassen sich auch in „na­tür­li­cher“ Sprache for­mu­lie­ren, in ma­the­ma­ti­schen Formeln abbilden oder nicht­ma­schi­nell ausführen. Der Ursprung des Begriffs liegt im 8. Jahr­hun­dert und leitet sich ab vom cho­res­mi­schen Uni­ver­sal­ge­lehr­ten und Ma­the­ma­ti­ker al-Chwarizmi, abgekürzt für Abu Dscha ’far Muhammad ibn Musa al-Chwārizmī.

An­wen­dungs­be­rei­che von Al­go­rith­men

Al­go­rith­men sind weder auf Sprachen und Methoden noch auf bestimmte An­wen­dungs­be­rei­che be­schränkt. Da ihr Nutzen in der Pro­blem­lö­sung liegt, stellen sie eine bestimmte Handlungs- und Vor­ge­hens­wei­se dar, die mit ver­schie­de­nen Variablen und Schritt­fol­gen arbeitet. Dabei kann es sich um die Rou­ten­be­rech­nung für Na­vi­ga­ti­ons­ge­rä­te handeln, um Emp­feh­lungs­sys­te­me in On­line­shops, Real-Time Ad­ver­ti­sing für das in­tel­li­gen­te Aus­spie­len von On­line­wer­bung in Echtzeit sowie um Über­set­zer-Apps und Com­pu­ter­si­mu­la­tio­nen.

Besonders im Bereich Big Data und künst­li­che In­tel­li­genz (KI) gewinnen Al­go­rith­men zunehmend an Bedeutung. Mit der Di­gi­ta­li­sie­rung und der All­ge­gen­wär­tig­keit von smarten Tech­no­lo­gien wie Smart­phones, Smart­wat­ches sowie künst­li­cher In­tel­li­genz im Auto und Smart Home steigt die Zahl erzeugter Daten ins As­tro­no­mi­sche.

Hierzu braucht es nicht nur Computer und Server mit ent­spre­chen­der Re­chen­leis­tung, sondern auch Al­go­rith­men, die Da­ten­men­gen or­ga­ni­sie­ren, auswerten, ver­ar­bei­ten oder anwenden. Ein Beispiel hierfür sind Sensoren beim au­to­ma­ti­sier­ten Fahren, die aufgrund erfasster Daten bestimmte Fahr­zeug­hand­lun­gen ver­an­las­sen. Auch für die Er­stel­lung von Kli­ma­si­mu­la­tio­nen spielen ma­the­ma­ti­sche Com­pu­ter­al­go­rith­men eine ent­schei­den­de Rolle.

Die Funk­ti­ons­wei­se von Such­ma­schi­nen und Path­fin­ding in der In­for­ma­tik ließe sich ohne Al­go­rith­men ebenfalls nicht umsetzen. So kommen für die Suche, Analyse und In­di­zie­rung von Web­in­hal­ten Programme namens Crawler zum Einsatz. Crawler ka­ta­lo­gi­sie­ren und in­de­xie­ren Daten anhand des Such­ma­schi­nen-Al­go­rith­mus. Von einer optimalen Ka­ta­lo­gi­sie­rung hängt wiederum das Ranking und die Auf­find­bar­keit von Such­ergeb­nis­sen ab. Der Such­ma­schi­nen-Al­go­rith­mus dient daher auch als Ori­en­tie­rung zur ef­fi­zi­en­ten Such­ma­schi­nen­op­ti­mie­rung.

Konkrete Beispiele für Al­go­rith­men

Täglich kommen neue Al­go­rith­men und prak­ti­sche An­wen­dungs­mög­lich­kei­ten hinzu. Zur Ver­an­schau­li­chung von Al­go­rith­men in der Praxis sollen die folgenden Beispiele dienen:

Google-Al­go­rith­mus

Wenn Sie einen Such­be­griff oder eine Such­an­fra­ge in Google eingeben, dauert es nur den Bruchteil einer Sekunde, bis sie mehrere Seiten an Such­ergeb­nis­sen erhalten. Möglich macht das der Such­ma­schi­nen-Al­go­rith­mus von Google. Dieser listet Er­geb­nis­se nach Relevanz, Keywords, Ver­lin­kungs­struk­tur, Les­bar­keit des Contents und Si­cher­heit auf. Wie der Al­go­rith­mus genau aussieht und im Detail funk­tio­niert, ist und bleibt jedoch eines der größten Ge­schäfts­ge­heim­nis­se der Welt.

Koch­re­zep­te

Bereits einfache Koch­re­zep­te ver­kör­pern das Grund­prin­zip eines Al­go­rith­mus. Die Zutaten lassen sich hierbei als Eingaben verstehen, die in einer be­stimm­ten und fest­ge­leg­ten Hand­lungs­ab­fol­ge zum Ergebnis führen. Auch Koch­sei­ten, die es er­mög­li­chen, die Menge an Zutaten anhand der Portionen und Personen zu berechnen, nutzen Al­go­rith­men.

Body-Mass-Index

Der Kör­per­fett­an­teil eines Menschen lässt sich durch den Body-Mass-Index berechnen. Hierbei wird das Kör­per­ge­wicht in Relation zur Kör­per­grö­ße gesetzt. Die Eingaben sind das aktuelle Gewicht und die Kör­per­grö­ße, die Ausgabe wiederum ist der BMI. Der BMI gibt einen An­halts­punkt dafür, ob Personen nor­mal­ge­wich­tig, un­ter­ge­wich­tig, über­ge­wich­tig oder fett­lei­big sind.

ASIC

Die so­ge­nann­te an­wen­dungs­spe­zi­fi­sche in­te­grier­te Schaltung lässt sich als hard­ware­sei­tig verbauter Al­go­rith­mus verstehen. Hierbei handelt es sich um nicht ver­än­der­li­che Schal­tun­gen in Hardware, die eine bestimmte Funktion erfüllt. Ein Beispiel hierfür sind Gra­fik­pro­zes­so­ren.

Data Mining

Die Suche, Sammlung, Analyse, Ka­ta­lo­gi­sie­rung und In­de­xie­rung von Daten nennt sich auch Data Mining. Hierbei kommen Al­go­rith­men, künst­li­che In­tel­li­genz und Machine Learning zum Einsatz.

Mining-Al­go­rith­men von Kryp­to­wäh­run­gen

Beim Cryp­to­mi­ning werden Trans­ak­tio­nen mit Kryp­to­wäh­run­gen do­ku­men­tiert, ve­ri­fi­ziert und in der Block­chain verbucht. Hierbei lösen Krypto-Miner trans­ak­ti­ons­be­zo­ge­ne Al­go­rith­men, die an Zah­len­rät­sel erinnern. Das Lösen der Rätsel dient wiederum der Ve­ri­fi­zie­rung von Trans­ak­tio­nen.

Neuronale Netzwerke

Bei einem Neural Network handelt es sich um einen Bereich des Deep Learning. Hierbei kommen Deep-Learning-Al­go­rith­men zur Anwendung, die Funk­ti­ons­wei­sen des mensch­li­chen Gehirns si­mu­lie­ren und nach­bil­den. Mit diesen lassen sich ver­schie­de­ne Funk­tio­nen wie Sprach­as­sis­tenz, Über­set­zung, Schutz vor Cy­ber­an­grif­fen oder auch Tex­terstel­lung nutzen.

Zum Hauptmenü