Schleifeninvariante

Schleifeninvariante

Als Schleifeninvariante werden Eigenschaften einer Schleife in einem Algorithmus bezeichnet, die zu einem bestimmten Punkt bei jedem Schleifendurchlauf gültig sind, unabhängig von der Zahl ihrer derzeitigen Durchläufe. Sie werden zur Verifizierung von Algorithmen benötigt und helfen zudem, die Vorgänge innerhalb einer Schleife besser zu erfassen. Typischerweise beschreiben Schleifeninvarianten Wertebereiche von Variablen und Beziehungen der Variablen untereinander.

Zu jeder Schleife lässt sich eine Aussage finden, die vor und nach der Schleife gilt, z. B. eine Tautologie wie „wahr = wahr“. Es ist also stets möglich, eine Invariante anzugeben.

Korrektheitsbeweis

Beim Korrektheitsbeweis für einen Algorithmus mittels einer Schleifeninvariante ist zu zeigen, dass die Schleifeninvariante bei Initialisierung, Aufrechterhaltung und Beendigung der Schleife eingehalten wird. Die Korrektheitsüberprüfung lässt sich zweiteilen. Hierzu prüft man zuerst, ob sie beim ersten kritischen Zeitpunkt gilt, ob sie also initialisiert ist. Schließlich wird geprüft, ob sie beim Übergang von einem Durchgang zum nächsten erhalten bleibt. Dieses Vorgehen entspricht der vollständigen Induktion der Mathematik. Zu allen drei Zeitpunkten muss die Schleifeninvariante korrekt sein, d. h. Variablen müssen etwa innerhalb definierter Bereiche liegen. Außerdem dürfen z.B. Input-Arrays bei einem Sortierverfahren nicht wertmäßig verändert werden, sondern nur die Reihenfolge darf angepasst werden.

Es ist bewiesen, dass es keinen Algorithmus gibt, der eine Schleifeninvariante automatisch bestimmt.

Beispiel

Der folgende Algorithmus multipliziert die beiden Variablen a und b miteinander:

x := a; 
y := b;  
p := 0;
while x > 0 do
begin
  p := p + y;
  x := x - 1;
end;

Eine Schleifeninvariante für diesen Algorithmus lautet:

(x \cdot y) + p = a \cdot b.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Hoare-Logik — Der Hoare Kalkül (auch Hoare Logik) ist ein Formales System, entwickelt von dem britischen Informatiker C. A. R. Hoare und später verfeinert von Hoare und anderen Wissenschaftlern. Er wurde 1969 in einem Artikel mit dem Titel An axiomatic basis… …   Deutsch Wikipedia

  • Hoare-Tripel — Der Hoare Kalkül (auch Hoare Logik) ist ein Formales System, entwickelt von dem britischen Informatiker C. A. R. Hoare und später verfeinert von Hoare und anderen Wissenschaftlern. Er wurde 1969 in einem Artikel mit dem Titel An axiomatic basis… …   Deutsch Wikipedia

  • Hoarekalkül — Der Hoare Kalkül (auch Hoare Logik) ist ein Formales System, entwickelt von dem britischen Informatiker C. A. R. Hoare und später verfeinert von Hoare und anderen Wissenschaftlern. Er wurde 1969 in einem Artikel mit dem Titel An axiomatic basis… …   Deutsch Wikipedia

  • Endlosrekursion — Der Ausdruck infiniter Regress (auch unendlicher Regress oder Endlosrekursion; regressus in/ad infinitum) wird allgemein in der Logik (Argumentationstheorie) und speziell in der Mathematik und Informatik verwendet. Infiniter Regress im Sinne der… …   Deutsch Wikipedia

  • Hoare-Kalkül — Der Hoare Kalkül (auch Hoare Logik) ist ein Formales System, entwickelt von dem britischen Informatiker C. A. R. Hoare und später verfeinert von Hoare und anderen Wissenschaftlern. Er wurde 1969 in einem Artikel mit dem Titel An axiomatic basis… …   Deutsch Wikipedia

  • Unendlicher Regress — Der Ausdruck infiniter Regress (auch unendlicher Regress oder Endlosrekursion; regressus in/ad infinitum) wird allgemein in der Logik (Argumentationstheorie) und speziell in der Mathematik und Informatik verwendet. Infiniter Regress im Sinne der… …   Deutsch Wikipedia

  • wp-Kalkül — Der wp Kalkül ist ein Kalkül in der Informatik zur Verifikation eines imperativen Programmcodes. Die Abkürzung wp steht für weakest precondition, auf deutsch schwächste Vorbedingung. Bei der Verifikation geht es nicht darum, die Funktion mit… …   Deutsch Wikipedia

  • Endlosschleife — Endlosschleifen in der Informatik sind Schleifen, die nach jeder Abarbeitung erneut abgearbeitet werden, falls die Ausführung nicht durch äußere Einflüsse abgebrochen wird. Äußere Einflüsse sind dabei solche, die im idealtypischen Ablauf des… …   Deutsch Wikipedia

  • Infiniter Regress — Der Ausdruck infiniter Regress (auch unendlicher Regress oder Endlosrekursion; regressus in/ad infinitum) wird allgemein in der Philosophie, insb. in der Logik und Argumentationstheorie, sowie in der Mathematik und Informatik verwendet. Infiniter …   Deutsch Wikipedia

  • Invariante (Informatik) — Eine Invariante ist eine Aussage, die über die Ausführung bestimmter Programmbefehle hinweg gilt. Sie ist also vor und nach diesen Befehlen wahr, sie ist demnach nicht veränderlich, also invariant. Invarianten können zum Beweis der Korrektheit… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”