Home > Informatik > Begriffe und Konzepte > Algorithmische Abstraktion

Algorithmische Abstraktion

Definitionen

"Zwei Algorithmen... sind äquivalent, wenn sie hinsichtlich der Eingabe-Ausgabe-Beziehung übereinstimmen. Sie haben dann die gleiche Wirkung... Dieses Absehen von den konstruktiven Einzelheiten heißt algorithmische Abstraktion". [1]

"Eine Abstraktion beschreibt das in einem gewählten Kontext Wesentliche eines Gegenstands oder eines Begriffs. Durch eine Abstraktion werden die Details ausgeblendet, die für eine bestimmte Betrachtungsweise nicht relevant sind. Abstraktionen ermöglichen es, unterschiedliche Elemente zusammenzufassen, die unter einem bestimmten Gesichtspunkt gleich sind." [2]

Beispiele

Bei dem Verfahren der algorithmischen Abstraktion legen Sie lediglich die Spezifikation des Algorithmus fest. Über die Konstruktion bzw. Implementierung des Algorithmus machen Sie keine Aussagen oder Vorgaben, außer vielleicht, dass der Algorithmus korrekt funktioniert.

Beispiel 1:

Sie wollen einen Algorithmus konstruieren, der das Idealgewicht einer Person berechnet. Als Eingabedaten legen Sie die Körpergröße der Person in Metern fest, als Ausgabedaten das Idealgewicht in Kilogramm. Außerdem geben Sie vor, dass der Algorithmus nach der Formel Idealgewicht = (Körpergröße in Zentimetern - 100 ) * 0.9 arbeitet.

Beispiel 2:

Sie wollen einen Sortieralgorithmus für ganze Zahlen einsetzen. Das Ziel ist es, einen Array von ganzen Zahl aufsteigend zu sortieren. Die Spezifikation des Algorithmus legt fest, dass der Array als int[]-Parameter übergeben wird und der sortierte Array als int[]-Wert zurückgegeben wird. Die Implementation wird nicht festgelegt. Für die Methode, die den Sortieralgorithmus aufruft, ist es völlig egal, ob die Zahlen mit einem Bubblesort, einem Selectionsort oder einem Quicksort in die aufsteigende Reihenfolge gebracht wurden.

Kernprinzipien der algorithmischen Abstraktion

  • Verbergen von Details (Information Hiding oder Datenkapselung): Die Implementierung eines Algorithmus wird bewusst verborgen. Der Anwender eines Algorithmus muss nicht wissen, wie dieser seine Aufgabe im Detail löst, sondern nur, was er tut und welche Ein- und Ausgaben er erwartet ( = Spezifikation des Algorithmus).

  • Fokus auf das "Was", nicht das "Wie": Die Abstraktion konzentriert sich auf den Zweck und das Ergebnis. Beispielsweise ist das Ziel eines Sortieralgorithmus, eine Liste zu ordnen. Welches spezifische Verfahren (z.B. Bubble Sort, Quick Sort, Merge Sort) dafür intern verwendet wird, ist auf der abstrakten Ebene für den Aufrufenden irrelevant.

  • Wiederverwendbarkeit: Ein einmal als Java-Methode implementierter Algorithmus kann in vielen verschiedenen Klassen wiederverwendet werden, ohne ihn neu implementieren zu müssen. Dies steigert die Effizienz und verringert die Fehleranfälligkeit.

Quellen:

  1. Baumann, "Informatik für die Sekundarstufe II, Band 2 - Höhere Datentypen, Automaten, Sprachen. Stuttgart 1993.
  2. Lahres et al.: Objektorientierte Programmierung, Rheinwerk Computing 2021.