Ein kurzer Blogartikel über die Geschichte der Algorithmen

Der Mensch scheint ein starkes Bedürfnis danach zu haben, seine „gesprochenen Gedanken“ niederzuschreiben (nicht umsonst sagt man: „Lesen ist Denken mit fremdem Gehirn“ ([1]). So kam es, dass die Menschen anfingen Verhaltensregeln, Gebote und Gesetze niederzuschreiben. Dies war die „Geburtsstunde“ erster Algorithmen ([2]).

Wann ist ein Algorithmus ein Algorithmus?

Was versteht man unter einem Algorithmus bzw. wann ist ein Algorithmus ein Algorithmus? Ein Algorithmus ist nichts Weiteres als eine Handlungsvorschrift zum Lösen von Problemen. Anhand dieser Handlungsvorschrift, werden schrittweise Eingabedaten in Ausgabedaten umgewandelt. Platt ausgedrückt beschreibt ein Algorithmus wie eine Funktion „funktioniert“.

Doch ein Algorithmus ist mehr als nur eine Handlungsvorschrift. So ist ein einfaches Kochrezept wie das Zubereiten eines Rühreis noch lange kein Algorithmus. Was fehlt sind konkrete Mengenangaben, Bedingungen und Wiederholungen, sowie ein Gedächtnis. Diese kamen hinzu als der Mensch anfing erste abstrakte Begriffe im Rahmen der Mathematik und Philosophie niederzuschreiben.

Schaut man jedoch genauer hin, dann stellt man fest, dass die Algorithmen nicht nur für die Mathematik und Informatik von zentraler Bedeutung sind. Sie reichen hinein bis in die Gebiete der Philosophie, der Medizin, der Biologie, der Kulturgeschichte (Musik) und der Politik. Es gibt kaum eine Wissenschaft in der Algorithmen nicht eingesetzt werden.

Babylon, Antikes Griechenland und China

Die ersten Algorithmen entstanden vor über 3000 Jahren im Babylon und danach im antiken Griechenland. Zu den bekanntesten Algorithmen zählen:

  • Codex Hammurapi (Wiki [3]) (Rechtssammlung ca. 1700 v. Chr)
  • Sumerisch-babylonisches Wurzelziehen (Unbekannt ca. 1700 v. Chr)
  • Ägyptische Multiplikation (Unbekannt ca. 1550 v. Chr)
  • Euklidischer Algorithmus  (Euklid von Alexandria ca. 4 Jh. v. Chr.) 
  • Sieb des Eratostenes ( Eratosthenes von Kyrene ca. 3 Jh. v. Chr.) 
  • Annäherung der Kreiszahl π (Archimedes von Syrakus, 3. Jh. v. Chr.)
  • Heron-Verfahren (Heron von Alexandria, 1. Jh. n. Chr.)
  • Chinesischer Restsatz (Sun Zi, 3. Jh. n. Chr.)

Wie alles anfing

Es ist etwas ungewöhnlich, dass gerade eine „obskure“ Rechtssammlung eines Herrschers Namens „Hammurapi“ (Wiki [4]) ganz oben auf der Liste altertümlicher Algorithmen auftaucht. Der Grund warum diese Rechtssammlung als Algorithmus angesehen werden kann ist der, dass diese eindeutige Handlungsvorschriften enthält. Ich möchte dies Anhand einiges Paragraphen aus seiner  Rechtsstellung verdeutlichen:

(§ 196) Wenn ein Bürger ein Auge eines (anderen) Bürgers zerstört, so soll man ihm ein Auge zerstören.

Codex des Hammurapi (Rechtsgrundsatz „Auge um Auge, Zahn um Zahn“ ca. 1700 v. Chr)

Was hier auffällt sind Eingabewerte, „Wenn-Dann“-Beziehungen, eindeutige Vorgehen und Ergebnisse. Diese Rechtssprechung blieb fast 1500 Jahre nach dem Tod der Herrschers Hammurapi weiterhin in Babylon gültig. Das soll mal die amerikanische Unabhängigkeitserklärung aus dem Jahr 1776 vormachen!   

Einer der ältesten mathematischen Algorithmen wurde ebenfalls von den Babyloniern um 1700 v. Chr auf sumerischen Tontafeln in Keilschrift verfasst. Es beschrieb das Wurzelziehen. Aus der gleichen Zeit stammt auch die ägyptische Multiplikation. Sie entspricht heute immer noch der äthiopischen und der russischen Multiplikationsmethode!

Den bekanntesten Algorithmus verfasste Euklid in seinem Buch ,,Die Elemente“ (Wiki [5]) im 3. Jh. v. Chr. In diesem Buch beschreibt er den den bis heute benutzten Euklidischen Algorithmus.  Dieser ermöglicht es, den größten gemeinsamen Teiler zweier natürlicher Zahlen zu bestimmen. Sicherlich ist jeder von uns schon bereits in der Grundschule auf diesen Algorithmus gestoßen. Nebenbei bemerkt, diente dieses Buch etwa noch 2000 Jahre lang als Standardlehrbuch!

Ebenfalls ist im antiken Griechenland der „Sieb des Eratosthenes“ (Wiki [6]) entstanden. Dieser Algorithmus ist deshalb interessant, weil er ein Verfahren zum Auffinden von Primzahlen beschreibt. Erwähnt wird dieser Algorithmus in dem Buch „Einführung in die Arithmetik“ von Nikomachos von Gerasa (ca. 1. bis 2. Jhd. n. Chr). 

Was ist mit China?

Um 180 v. Chr. verfasste der chinesische Mathematiker Shang Cang ein allgemeines Lösungsverfahren für lineare Gleichungssysteme mit fünf Unbekannten, in dem schon der Goulasche-Algorithmus zu erkennen ist. Bei Leonardo Fibonacci von Pisa (1170-1220) findet sich diese Lösungsmethode wieder. Man vermutet, dass sie ihren Weg von den Babyloniern über die Griechen und dann über die Araber nach Westen über Spanien genommen hat. Hierzu jedoch gleich mehr in den folgenden Kapiteln!

Der Ursprung des Begriffes „Algorithmus“

Der Begriff „Algorithmus“, so wie wir ihn heute kennen und gebrauchen, hat einen weiten Weg durch die Geschichte zu uns gehabt.

Alles fing damit an, dass der Kalif Al-Mamun (786–833) in Bagdad das „Haus der Weisheit“ errichtete. Dies war ein Bibliothek, in der sich damals die größten Gelehrten jener Zeit versammelten. Einer der Gründe, warum so viele Gelehrte nach Bagdad kamen, muss wohl der gewesen sein, dass die Bibliothek begonnen hatte die größten Werke der griechischen Philosophen und Mathematiker ins Arabische zu übersetzen. Einer der Gelehrten, die nach Bagdad kamen, war auch „„Muhammad ibn Musa al-Khwarizmi“ (Wiki [7]) (787-850). Sein Name bedeutet übersetzt „Mohammed der Vater Jafars, der Sohn Musas aus Khwarizmi“. Dies lässt schließen, dass er wohl aus der Region „Khwarizmi“ (aus der Gegend des heutigen Uzbekistan) kam und damit kein Araber war.

Berühmt wurde al-Khwarizmi durch sein Buch „Über die indischen Ziffern“. Dieses Buch enthielt Handlungsvorschriften für die Grundregeln zum Rechnen und Lösen von Gleichungen. Im Grunde genommen kann man sagen, dass das Buch das enthielt, was wir heute in der Grundschule im Fach Mathematik lernen. Die heutige moderne Art und Weise wie wir mit der Null im dekadischem System rechnen, stammte von ihm. Seine Rechenmethoden verbreiteten sich schnell unter den arabischen Kaufläuten und Schulen und kamen dann im 12 Jhd. über Spanien nach Europa. 

Wie km es nun zu dem Namen „Algorithmus“?

Dieser entstand aus der Namensendung „al-Khwarizmi“. Bei der Übersetzung ins Lateinische wurde daraus das Wort „Algorismi“ und zeitgleich ins Mittelhochdeutschen „Algorismi“ oder auch „Alchorismus“ abgeleitet. Dieser Ausdruck stand damals stellvertretend für Regeln und Handlungsvorschriften zum Lösen von Rechenaufgaben. Heute jedoch versteht man unter einem Algorithmus wesentlich mehr als nur das kleine Einmaleins.

Im 12. Jhd. wird die Schrift bruchstückhaft ins Lateinische übersetzt: „Algoritmi de numero Indorum“. Danach geht das Wissen um die Herkunft des Wortes „Algorithmus“ über die Zeit verloren. Die Stadt Chiwa im westlichen Usbekistan hat Abu Ja’far Muhammad ibn Musa al-Khwarizmi ein Denkmal gewidmet.

Jetzt wollen wir uns aber der Zahl „Null“ widmen.

Eine Wahnsinnserfindung, diese „Null“!

Die Babylonier, die Maya und auch die Inder hatten die Null längst erfunden, als die Europäer von dieser Zahl noch nichts wussten. Wie wir aus den heutigen Untersuchungen wissen, wurde mit der Null bereits 300 v. Chr. in Indien gerechnet. In Europa wurde sie im 12. Jhd. von Leonardo Fibonacci (Wiki [8]) eingeführt.

Die indische Null nannten die Araber „as-sifr“ (die Leere). Aus diesem Wort leiteten sich die Wörter „zefiro“ oder „zero“ (italienisch), „chiffre“ (französisch) und „Ziffer“ (deutsch) ab. Die Null war damals für die Menschen abstrakt schwer greifbar. Es fehlte in den Köpfen der Menschen die mathematische Vorstellung des „Nichts“. Ebenfalls kannten sowohl die Römer als auch die alten Griechen keine Null und übersetzt wurde die Zahl in Lateinische durch den Ausdruck „nullus“.

Doch wie kam es bei uns Europäer zum heutigen Symbol der Null? Wenn man sich die arabische Null näher anguckt, so sieht man, dass es sich um einen großen Punkt (fast eine Raute) als Symbol handelt. Später wurde das „Leere“ als Loch in der Mitte eingeführt und fertig war die europäische Null.

Wie kann man sich die Null vorstellen?

Zum Schluss dieses Kapitels jedoch noch einiges über die Bedeutung der Null für unsere Gesellschaft (sie wird leider noch immer von den meisten Leuten als keine Zahl angesehen). Die Null bildet einen Übergang zwischen positiven und negativen Zahlen. Ohne diese fällt es uns schwer einfach im Kopf zu rechnen. Am besten stellt man sich positive Zahlen als einen Sandhaufen und negative Zahlen als Löcher im Boden vor. Stopft man die Löcher mit der gleichen Menge Sand, so haben wir die Null. Trotzdem ist der Sand noch immer da. Und man bedenke: Was wäre unsere heutige digitale Gesellschaft ohne das binäre System (Einsen und Nullen)? Hierzu jedoch mehr im nächsten Kapitel, wenn es um Gottfried Wilhelm Leibniz geht.

Gottfried Wilhelm Leibniz (1646 – 1716) 

Man sagt, dass Gottfried Wilhelm Leibniz (Wiki [9]) einer der letzten Universalgelehrten gewesen ist. Daher würde ein kleiner Blogabschnitt über sein Leben nicht ausreichen. Deshalb konzentriere ich mich in diesem Abschnitt auf sein Wirken innerhalb der Algorithmik und Digitalisierung, was uns zum binären bzw. dualen Zahlensystem bringt. Dies ist die Sprache der Digitalisierung, in der alles mit „1“ und „0“ kodiert ist. 

Leibniz kam auf die Idee nur „Nullen“ und „Einsen“ zur Darstellung von Zahlen zu verwenden. Der Grund dafür war der, weil er erkannte, dass sich Rechenprozesse mit solchen Binärzahlen leichter in Maschinen (Zahnräder)  behandeln lassen können. So kam es, dass sich Binärzahlen in den späteren elektronischen Rechenmaschinen durchsetzen. Hier ein kurzes Beispiel wie die Binärzahlen zu lesen sind:

DezimalBinär
0000
1001
2010
3011
4100
5101
6110
7111
Binärzahlen – Darstellung bis zur Zahl 7

Wir sehen aus der Tabelle, dass alle Binärzahlen mithilfe zweier Ziffern (0 und 1) dargestellt werden. Diese werden zu jeder darauffolgenden Stelle mit 2 multipliziert und zum Ergebnis des Vorherigen dazu addiert. Hier ein Beispiel für die Zahl 6.

110 =>  1*22+1*21+0*20  => 1*4+1*2+0*1 => 6

Alles nur geklaut?

Leibniz baute dieses Zahlensystem nicht ganz zu 100% auf seiner Arbeit auf, sondern „guckte“ sich diese vom  spanisch-italienischen Bischof Giovanni Caramuel y Lobkowitz (Wiki [10]) (1606-1682) ab. Was jedoch die praktische Implementierung einer Rechenmaschine angeht, so konnte er die von Blaise Pascal entworfene Addiermaschine so umbauen, dass diese auch multiplizieren konnte. Er scheitere an seinem Vorhaben eine universelle Rechenmaschine zu erstellen. Der Rechner erforderte wohl viel zu viel Feinmechanik, so Leibniz. Nach ihm war jedoch die „Digitale Sprache“ geblieben.  Diese ebnete den Weg zur heutigen maschinellen Datenverarbeitung.

Algorithmen Heute

Unter einem Algorithmus versteht man heutzutage weit mehr als eine Handlungsvorschrift zum Lösen von mathematischen Problemen. Ein Algorithmus steht heute gleichbedeutend mit Anwendungen innerhalb der Künstlichen Intelligenz. Diese werden interdisziplinär von Data Scientists und Machine Learning Ingenieuren benutzt. Das Wort wird aber auch marketingtechnisch „vergewaltigt“, da die meisten Algorithmen schon seit Jahren bekannt sind. 

Die momentan wichtigsten findet man sehr gut strukturiert auf der Wikipedia Seite „Liste von Algorithmen“ (Wiki [11]) und dem Buch „Algorithmen von Hammurapi bis Gödel“ (Ziegenbalg [12]) (keine Sorge, diese werden in meinen kommenden Blogartikeln vorkommen).

Der einzige Unterschied zu damals ist der, dass wir heutzutage genügend Netzwerk-, Speicher- und Rechenkapazität besitzen.

Ein Ausblick in die Zukunft

Wir fingen mit der einfachen Sprache an und landetet bei dynamischen Systemen, welche eigenständig nach Methoden und Problemlösungen suchen. Scheint es nicht irgendwie in der Natur der Sache zu liegen, dass Algorithmen ein fester Bestandteile der Natur sind? Bestes Beispiel wäre die Evolution. Alles Leben folgt einem „genetischen Algorithmus“ (Wiki [13]) in dem die RNA die Programme des Lebens enthalten. Es entsteht Leben und aus dem Leben Intelligenz, aus der Intelligenz Algorithmen, welche am Ende Optimierungsaufgaben lösen.  Wie auch immer in Zukunft die Algorithmen aussehen werden, es werden Algorithmen sein, die Algorithmen zur Optimierung und Problemlösung eigenständig erzeugen können. Genau wie es bei Lebewesen (s. E. Schrödinger „Was ist Leben? (Schrödinger [14]) der Fall ist. Nur nicht als „Wetware“ (Gehirn), sondern als „Hardware“!

Referenzen

  1.  Jorge Luis Borges (Autor), Osvaldo Ferrari (Autor), Gilbert Haefs (Übersetzer) „Lesen ist Denken mit fremdem Gehirn: Gespräche mit Osvaldo Ferrari (Kampa Salon / Gespräche), 2018 Kampa Verlag
  2. https://de.wikipedia.org/wiki/Algorithmus
  3. https://de.wikipedia.org/wiki/Codex_Hammurapi
  4. https://www.lernhelfer.de/schuelerlexikon/geschichte/artikel/hammurapi-und-seine-zeit
  5. https://de.wikipedia.org/wiki/Elemente_(Euklid)
  6. https://de.wikipedia.org/wiki/Sieb_des_Eratosthenes
  7. https://de.wikipedia.org/wiki/Al-Chwarizmi
  8. https://de.wikipedia.org/wiki/Leonardo_Fibonacci
  9. https://de.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz
  10. https://de.wikipedia.org/wiki/Juan_Caramuel_y_Lobkowitz
  11. https://de.wikipedia.org/wiki/Liste_von_Algorithmen
  12. J. , O. und B. Ziegenbalg „Algorithmen von Hammurapi bis Gödel: mit Beispielen aus den Computeralgebra-Systemen Mathematica und Maxima“ 4. Auflage 2010 Springer-Spektrum 
  13. https://de.wikipedia.org/wiki/Genetischer_Code
  14. E. Schrödinger „Was ist Leben?“ 1944 Cambridge University Press

Add a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.