Informatik

Eigenschaften von Algorithmen einfach erklärt

Eigenschaften von Algorithmen einfach erklärt
Eigenschaften von Algorithmen einfach erklärt
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Algorithmus ist eine präzise Verarbeitungsvorschrift: Er führt von einer Eingabe über ausführbare Einzelschritte zu einer Ausgabe. Einen problemlösenden Algorithmus prüfst du vor allem auf Ausführbarkeit, Eindeutigkeit, Endlichkeit und Terminierung. Dabei musst du besonders Endlichkeit und Terminierung sowie Determinismus und Determiniertheit auseinanderhalten.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Die Eigenschaften gemeinsam prüfen

Stell dir mehrere Schachteln und eine Waage vor. Gesucht ist eine Schachtel mit größtem Gewicht. Eine mögliche Vorschrift lautet:

  1. Lege eine Schachtel auf eine Waagschale.
  2. Nimm eine weitere Schachtel und vergleiche beide.
  3. Lege die leichtere Schachtel beiseite. Sind beide gleich schwer, lege die neu hinzugekommene Schachtel beiseite.
  4. Wiederhole die Schritte 2 und 3, solange noch Schachteln vorhanden sind.
  5. Gib die verbliebene Schachtel als Ergebnis aus.
Beispiel

Nach jedem Vergleich bleibt eine Schachtel auf der Waage, die mindestens so schwer ist wie alle bereits geprüften Schachteln. Eine leichtere Schachtel kann nicht mehr das gesuchte Maximum sein und darf ausscheiden. Nach dem letzten Vergleich bleibt deshalb eine Schachtel mit größtem Gewicht übrig.

An diesem Beispiel kannst du mehrere Eigenschaften prüfen:

  • Ausführbarkeit: Der vorgesehene Ausführende kann jede Anweisung umsetzen. Mit der Waage lassen sich zwei Schachteln vergleichen. Die Anweisung „Sortiere sofort alle Schachteln“ wäre dagegen keine ausführbare Grundoperation dieses Ausführenden.
  • Eindeutigkeit: Für jeden Vergleich ist festgelegt, wie es weitergeht. Die Zusatzregel für gleich schwere Schachteln verhindert eine offene Entscheidung.
  • Endliche Beschreibung: Die Vorschrift besteht aus endlich vielen Anweisungen. Eine Schleife ersetzt dabei beliebig viele ausgeschriebene Wiederholungen.
  • Terminierung: Bei einer endlichen, nicht leeren Menge von Schachteln wird in jeder Runde eine Schachtel beiseitegelegt. Daher endet das Verfahren.
  • Allgemeinheit: Die Vorschrift funktioniert nicht nur für genau drei Schachteln, sondern für jede endliche, nicht leere Schachtelmenge. Allgemeinheit ist typisch, kann aber entfallen, wenn ausdrücklich nur ein einzelner Fall gelöst werden soll.
Merke

Ob ein Schritt ausführbar ist, hängt vom Ausführenden ab. Eine Person besitzt anderes Vorwissen und andere Grundoperationen als eine einfache Maschine.

Teste dich
Frage 1 von 2LeichtWelche Anweisung ist mit einer Waage zum Vergleich zweier Schachteln unmittelbar ausführbar?
Lösung: Vergleiche die beiden Schachteln und lege die leichtere beiseite. — Eine ausführbare Anweisung nennt einen Schritt, den der vorgesehene Ausführende mit seinen verfügbaren Operationen tatsächlich erledigen kann.
Frage 2 von 2MittelWarum ist die Regel für gleich schwere Schachteln wichtig?
Lösung: Sie legt auch in diesem Fall den nächsten Schritt eindeutig fest. — Ohne die Zusatzregel bliebe offen, welche Schachtel beiseitegelegt wird. Die Regel schließt diese Lücke.
Weg und Ergebnis unterscheiden

Zwei ähnlich klingende Eigenschaften beschreiben verschiedene Fragen:

Definition

Determinismus

Ein Algorithmus ist deterministisch, wenn in jedem Zustand eindeutig feststeht, welcher Schritt als Nächstes ausgeführt wird.

Definition

Determiniertheit

Ein Algorithmus ist determiniert, wenn gleiche Eingaben und gleiche Startbedingungen bei jeder Ausführung dasselbe Ergebnis liefern.

Beim Determinismus untersuchst du also den Weg. Bei der Determiniertheit untersuchst du das Ergebnis.

Beispiel

Ein Sortierverfahren soll dieselben Zahlen immer aufsteigend ausgeben. Es darf zufällig auswählen, welches noch ungeprüfte Element es als Nächstes betrachtet. Dadurch kann der Bearbeitungsweg wechseln. Wenn die vollständig sortierte Ausgabe trotzdem stets gleich ist, ist das Verfahren determiniert, aber wegen der zufälligen Wahl nicht deterministisch.

Ein deterministischer Algorithmus liefert unter gleichen Voraussetzungen einen festgelegten Ablauf. Im hier verwendeten Begriffsverständnis ist er damit auch determiniert. Umgekehrt kann ein determiniertes Verfahren verschiedene Wege zum gleichen Ergebnis zulassen.

Teste dich
Frage 1 von 2LeichtWelche Frage prüft den Determinismus?
Lösung: Ist in jedem Zustand der nächste Schritt eindeutig festgelegt? — Determinismus beschreibt die Eindeutigkeit des nächsten Schritts und damit des Bearbeitungswegs.
Frage 2 von 2MittelEin Verfahren wählt zufällig, ob es eine Liste von links oder von rechts prüft, gibt aber immer zuverlässig deren größtes Element aus. Wie ist es einzuordnen?
Lösung: Es ist determiniert, aber nicht deterministisch. — Der Weg kann wechseln, weil die Richtung zufällig gewählt wird. Das Ergebnis bleibt bei gleicher Eingabe dennoch gleich.
Endlichkeit und Terminierung trennen

Eine kurze Beschreibung kann eine Schleife enthalten, die niemals endet. Deshalb sind Endlichkeit und Terminierung nicht dasselbe.

Definition

Statische Finitheit

Die statische Finitheit bedeutet: Die Beschreibung des Algorithmus hat eine endliche Länge.

Definition

Dynamische Finitheit

Die dynamische Finitheit bedeutet: Während der Ausführung wird zu jedem einzelnen Zeitpunkt nur endlich viel Speicher benötigt.

Definition

Terminierung

Ein Algorithmus terminiert für eine Eingabe, wenn er nach endlich vielen Schritten anhält oder kontrolliert abbricht. Er terminiert überall, wenn dies für jede zulässige Eingabe gilt.

Beispiel

Die Vorschrift „Warte auf einen Befehl, verarbeite ihn und warte danach wieder“ lässt sich mit wenigen Anweisungen beschreiben. Sie ist also statisch endlich. Ohne Beenden-Befehl läuft sie jedoch unbegrenzt weiter und terminiert dann nicht.

Bei einem Algorithmus, der eine einzelne Aufgabe lösen und ein Ergebnis liefern soll, ist Terminierung normalerweise erforderlich. Betriebssysteme, Steuerungen und andere fortlaufende Systeme sollen dagegen absichtlich weiterlaufen, bis sie beendet werden. Ob man solche fortlaufenden Verfahren im engen Sinn als Algorithmen bezeichnet, hängt von der verwendeten Definition ab.

Gut zu wissen

Effizienz ist eine zusätzliche Bewertung: Wie viel Zeit und Speicher benötigt ein Verfahren abhängig von der Eingabegröße? Ein schnelles Verfahren kann falsch sein, und ein korrektes Verfahren kann langsam sein. Deshalb prüfst du Korrektheit, Terminierung und Ressourcenbedarf getrennt.

Teste dich
Frage 1 von 2LeichtWelche Aussage beschreibt statische Finitheit?
Lösung: Die Verarbeitungsvorschrift besitzt eine endliche Beschreibung. — Statische Finitheit bezieht sich ausschließlich auf die Länge der Beschreibung.
Frage 2 von 2MittelEine endlich beschriebene Schleife wiederholt sich ohne Abbruchbedingung. Was folgt daraus?
Lösung: Die Beschreibung kann endlich sein, obwohl die Ausführung nicht terminiert. — Die Zahl der aufgeschriebenen Anweisungen und die Zahl der tatsächlich ausgeführten Schritte sind verschiedene Größen.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Eigenschaften von Algorithmen
    • Beschreibung
      • statische Finitheit
      • Eindeutigkeit
    • Ausführung
      • Ausführbarkeit
      • dynamische Finitheit
      • Terminierung
    • Weg und Ergebnis
      • Determinismus betrifft den nächsten Schritt
      • Determiniertheit betrifft die Ausgabe
    • Geltungsbereich
      • Allgemeinheit für eine Problemklasse

Prüfe eine Verarbeitungsvorschrift in dieser Reihenfolge: Sind die Eingaben und die gewünschte Ausgabe klar? Kann der vorgesehene Ausführende jeden Schritt umsetzen? Ist die Fortsetzung eindeutig? Ist die Beschreibung endlich? Endet das Verfahren im verlangten Geltungsbereich? Liefert es das richtige Ergebnis? Erst danach vergleichst du bei Bedarf Zeit- und Speicherbedarf.

Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Eigenschaft ist verletzt, wenn eine Anweisung lautet „Löse das Problem irgendwie“?
Lösung: Eindeutigkeit — „Irgendwie“ legt weder einen konkreten Schritt noch eine eindeutige Fortsetzung fest.
Frage 2 von 3MittelEine Vorschrift besteht aus fünf Zeilen, läuft für eine bestimmte Eingabe aber endlos. Welche Aussage ist richtig?
Lösung: Sie ist statisch endlich, terminiert für diese Eingabe jedoch nicht. — Endliche Beschreibung und endliche Ausführungsdauer müssen getrennt geprüft werden.
Frage 3 von 3SchwerEin Verfahren darf an einer Stelle zufällig zwischen zwei korrekten Bearbeitungswegen wählen. Beide liefern bei gleicher Eingabe immer dieselbe Ausgabe. Welche Diagnose trifft zu?
Lösung: Das Verfahren ist determiniert, aber nicht deterministisch. — Die zufällige Wahl verändert den möglichen Weg. Da die Ausgabe dennoch feststeht, bleibt das Verfahren determiniert.

Passend dazu