Korrektheit als Problem

Gewünschtes und tatsächliches Verhalten eines Algorithmus

Oft findet man folgende Situation vor: Gesucht ist ein Algorithmus, der ein bestimmtes Verhalten hat. Nachdem man einen Algorithmus entwickelt hat, stellt sich die Frage, ob er das gewünschte Verhalten tatsächlich auch zeigt.

Beispielsweise könnte das Problem darin bestehen, einen Algorithmus zur Berechnung des größten gemeinsamen Teilers zweier natürlicher Zahlen zu entwickeln. Das gewünschte Verhalten könnte man informell so beschreiben:

Übergabe: zwei natürliche Zahlen a und b, die größer als 0 sind
Rückgabe: ggT(a, b)

Folgender Algorithmus wird zur Lösung des Problems vorgeschlagen:

Algorithmus Wechselwegnahme

Es ergibt sich die Frage, ob der Algorithmus tatsächlich das gewünschte Verhalten hat:

vorher:  x = a;  y = b; a und b sind natürliche Zahlen größer als 0
nachher: x+y = ggT(a, b)

In diesem Fall sagen wir, dass der Algorithmus korrekt bzgl. der vorgegebenen Spezifikation ist.

Aufgabe 1

Was meinst du, ist der gezeigte Algorithmus korrekt bzgl. der vorgegebenen Spezifikation? Wie kann man das ggf. überprüfen?

X

Fehler melden

X

Suche