Java Reference
In-Depth Information
das Problem der Summenbildung von Natürlichen Zahlen nicht nur für eine fest vorgegebene
Zahl, sondern für beliebige Zahlen n . n wird auch Parameter des Algorithmus genannt.
• Finitheit: Die Beschreibung eines Algorithmus besitzt eine endliche Länge.
• Ausführbarkeit: Algorithmen dürfen keine Anweisungen enthalten, die prinzipiell nicht aus-
führbar sind, wie bspw. widersprüchliche Anweisungen.
• Terminierung: Algorithmen müssen nach endlich vielen Schritten terminieren, d.h. sie müssen
ein Ergebnis liefern und dann anhalten.
• Determiniertheit: Algorithmen bezeichnet man als determiniert, wenn sie unter gleichen Be-
dingungen mehrfach ausgeführt immer die gleichen Ergebnisse liefern.
• Determinismus: Algorithmen heißen deterministisch, wenn zu jedem Zeitpunkt ihrer Ausfüh-
rung höchstens eine Möglichkeit zur Fortsetzung besteht.
Die ersten drei Eigenschaften sind dabei Eigenschaften der Formulierung eines Algorithmus an sich
(statische Eigenschaften), die letzten vier sind Eigenschaften der Ausführung eines Algorithmus
(dynamische Eigenschaften).
Nicht alle Algorithmen erfüllen die letzten drei Eigenschaften. Steuerungsprogramme in Betriebs-
systemen sind häufig nicht-terminierend, und aus dem Bereich der Stochastik sind bspw. nicht-
determinierte und nicht-deterministische Algorithmen bekannt.
1.2.6 Praxisrelevante Eigenschaften von Algorithmen
Algorithmen sind Beschreibungen zur Lösung eines Problems bzw. einer Aufgabe. Dabei ist jedoch
festzustellen, dass es zur Lösung eines Problems nicht nur immer genau einen korrekten Algorithmus
gibt. Vielmehr kann sogar mathematisch bewiesen werden, dass es zu jedem Algorithmus unendlich
viele verschiedene äquivalente Algorithmen gibt, also Algorithmen, die dasselbe Problem mit iden-
tischen Ergebnissen lösen.
In der Praxis ist es aber im Allgemeinen nicht gleichgültig, welchen von zwei äquivalenten Algo-
rithmen man zur Lösung eines Problems einsetzt. Kriterien, die in der Praxis bei der Findung bzw.
Auswahl eines Algorithmus eine wichtige Rolle spielen, sind insbesondere:
• Effizienz: Algorithmen sollten so schnell wie möglich und mit möglichst wenig Ressourcen
zu einem korrekten Ergebnis kommen.
• Speicherbedarf: Die Beschreibung eines Algorithmus sollte möglichst knapp sein, worunter
die Verständlichkeit aber nicht leiden darf.
• Erweiterbarkeit: Algorithmen sollten ohne großen Aufwand an geänderte Anforderungen an-
passbar sein.
• Wiederverwendbarkeit: Algorithmen sollten so formuliert werden, dass sie nicht nur einmalig,
sondern auch zur Lösung von Teilproblemen in anderen Zusammenhängen genutzt werden
können.
• Portabilität: Algorithmen sollten nicht auf einen bestimmten Computertyp zugeschnitten sein,
sondern prinzipiell auf beliebigen Computern ausgeführt werden können.
• Zuverlässigkeit: Algorithmen sollten das Problem korrekt und vollständig lösen. Zu beachten
sind dabei insbesondere sogenannte Grenzfälle.
Search WWH ::




Custom Search