Algorithmen – Berechenbarkeit und Komplexität

  • Ernst H
  • Schmidt J
  • Beneken G
N/ACitations
Citations of this article
1Readers
Mendeley users who have this article in their library.
Get full text

Abstract

In den vorigen Kapiteln wurde gezeigt, dass die durch einen Computer zu bearbeitenden Aufgaben durch eine endliche Folge elementarer Anweisungen beschrieben werden müssen, und zwar letztlich in Maschinensprache. Eine solche Beschreibung, wie eine Aufgabe auszuführen ist, bezeichnet man als Algorithmus. Der Begriff Algorithmus leitet sich vom Namen des arabischen Gelehrten Al Chwarizmi ab, der um 820 lebte. Definition des Algorithmus-Begriffs Ein prozeduraler Algorithmus ist eine Vorschrift zur Lösung einer Klasse von Problemen in Form einer endlichen Anzahl elementarer Aktionen, die man als Zustandsübergänge eines (technischen) Systems interpretieren kann, wobei die Zustände durch Variablen gekennzeichnet werden. Die Klasse der Probleme entspricht dem Definitionsbereich des Algorithmus, die Auswahl bestimmter Probleme erfolgt durch Parameter. Der Algorithmus soll dabei so allgemein formuliert sein, dass er auch für ähnlich gelagerte Problemklassen anwendbar ist. Die elementaren Aktionen müssen klar, eindeutig und hinreichend einfach sein, so dass auf Grund vorgegebener Definitionen ihre Ausführung immer möglich ist. Die Werte der Variablen können nach dem Schema Eingabe-Verarbeitung-Ausgabe (EVA) als Startwerte (Parameter) von außen vorgegeben (Eingabe), durch einzelne Aktionen des Algorithmus geändert (Verarbeitung, Wertzuweisung) und nach außen übertragen werden (Ausgabe). Sinnvollerweise verlangt man mindestens einen Ausgabewert als Ergebnis. Wegen der endlichen Anzahl der Aktionen ist ein Algorithmus statisch finit. Die Aktionen müssen ferner effektiv und mit endlichen Ressourcen (insbesondere Zeit und Speicherplatz) ausführbar sein. Wegen der Erfordernis endlicher Ressourcen müssen Algorithmen auch dynamisch finit sein. Es sei darauf hingewiesen, dass Effektivität nur bedeutet, dass einzelne Anweisungen grundlegend genug sind, so dass sie prinzipiell exakt und in endlicher Zeit ausgeführt werden können. Davon abzugrenzen ist die Effizienz bzgl. Zeit und Speicherplatz, die praktisch natürlich eine Rolle spielt, aber keine grundlegende Anforderung für einen Algorithmus ist. Weiterhin soll ein Algorithmus für jede gültige Eingabe nach endlich vielen Schritten anhalten (terminieren). Auch nicht-terminierende Algorithmen können durchaus sinnvoll sein, etwa in Prozess-Steuerungen und Betriebssystemen, die in Endlosschleifen laufen. Streng genommen sind dies nach dieser Definition keine Algorithmen, Knuth schlägt die Verwendung des Begriffs Computational Method vor [Knu97a]. Gibt es nach jeder Aktion nur höchstens eine Folgeaktion, so heißt der Algorithmus determinis-tisch. Liefert ein Algorithmus für eine bestimmte Eingabe immer die gleiche Ausgabe, so heißt er determiniert. Jeder deterministische Algorithmus ist determiniert, die Umkehrung gilt nicht: So kann ein Algorithmus durchaus nichtdeterministisch sein, indem er beispielsweise intern auf H. Ernst et al., Grundkurs Informatik, DOI 10.1007/978-3-658-01628-9_11, © Springer Fachmedien Wiesbaden 2015

Cite

CITATION STYLE

APA

Ernst, H., Schmidt, J., & Beneken, G. (2015). Algorithmen – Berechenbarkeit und Komplexität. In Grundkurs Informatik (pp. 415–468). Springer Fachmedien Wiesbaden. https://doi.org/10.1007/978-3-658-01628-9_11

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free