Zum Hauptinhalt springen

Algorithmenforschung heute

Algorithmen sind ein Teil des Fundamentes der Informatik. Jedes Programm, jede Software basiert auf einem Algorithmus, so einfach er auch sein mag. Algorithmenforschung hat sich im Laufe der Jahre in viele Teilbereiche aufgespalten.

Algorithmentheorie:  Hier geht es um Algorithmen für wohldefinierte Probleme. Ziel ist es, dass der Algorithmus mit gewissen Ressourcen, oft Zeit und Platz, sparsam umgeht und dies auch bewiesen werden kann. Auch die Korrektheit des Algorithmus muss bewiesen werden. Selbst bei einfachen Algorithmen können diese Beweise mathematisch sehr anspruchsvoll sein.

Algorithm Engineering:  Hier wird auch die Anwendungsseite in Betracht gezogen. Wie verhält sich der Algorithmus wenn man ihn tatsächlich implementiert. Passen die empirischen Beobachtungen zur Theorie, und wenn nicht, wie kann man sie in Einklang bringen. Welche für die Praxis wesentlichen Aspekte müssen im theoretischen Modell mit berücksichtigt werden. Ein typisches Beispiel für letzteres ist die Cache-Effizienz eines Algorithmus.

Angewandte Algorithmik:  Hier geht es noch einen Schritt weiter Richtung Praxis. Betrachtet werden sehr konkrete Probleme aus der Praxis und Ziel sind konkrete Lösungen für die Praxis. Dabei sind Methoden sowohl aus der Algorithmentheorie als auch aus dem Algorithm Engineering hilfreich.

Parallele / Verteilte Algorithmen:  Hier geht es darum, ein Programm auf mehreren Rechnern gleichzeitig laufen zu lassen. Sind diese Rechner gleichartig und können sehr schnell miteinander kommunizieren, spricht man von parallelen Algorithmen. Sind die Rechner verschiedenartig und / oder mit einem komplexen Netzwerk dazwischen spricht man von verteilten Algorithmen.