11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4. Eigenschaften von <strong>Algorithmen</strong><br />

4.3.1. Relative Korrektheit<br />

Der Nachweis der Korrektheit eines Algorithmus bezieht sich immer auf eine Spezifikation<br />

dessen, was er tun soll. Insofern handelt es sich immer um eine relative<br />

Korrektheit.<br />

¯ Verifikation: formaler Beweis der Korrektheit bezüglich einer formalen Spezifikation<br />

¯ Validation: (nicht-formaler) Nachweis der Korrektheit bezüglich einer informellen<br />

oder formalen Spezifikation (etwa systematisches Testen)<br />

4.3.2. Korrektheit von imperativen <strong>Algorithmen</strong><br />

Wir behandeln zunächst imperative <strong>Algorithmen</strong>. Eine verbreitete Methode, die<br />

gewünschten Eigenschaften von <strong>Algorithmen</strong> zu spezifizieren, ist die Angabe von<br />

Vor- <strong>und</strong> Nachbedingungen:<br />

(£) VOR ANW NACH <br />

VOR <strong>und</strong> NACH sind dabei Aussagen über den Zustand vor bzw. nach Ausführung<br />

der Anweisung ANW. Genauer bedeutet die Aussage (£):<br />

Gilt VOR unmittelbar vor Ausführung von ANW <strong>und</strong> terminiert ANW,<br />

so gilt NACH unmittelbar nach Ausführung von ANW.<br />

Terminiert ANW nicht, so ist (£) trivialerweise wahr, wie auch immer VOR <strong>und</strong><br />

NACH aussehen!<br />

Entsprechend ist (£) trivialerweise wahr, wenn VOR nicht gilt, gleichgültig, ob<br />

ANW terminiert oder nicht <strong>und</strong> ob NACH gilt oder nicht!<br />

Beispiel 4.15 Anweisungen über <br />

ist wahr<br />

true ist wahr<br />

ist wahr für alle <br />

ist falsch für alle <br />

<br />

ist wahr für alle <br />

<br />

false ÆÏ ÆÀ ist wahr für alle ANW, NACH<br />

true ÆÏ false ist genau dann wahr,<br />

wenn ANW nicht terminiert<br />

while do od ist wahr für alle <br />

Auch für , da dann die<br />

while-Schleife nicht<br />

terminiert!)<br />

90

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!