Übung 6.2Einfache Verifikation

5
Übung 6.2 Einfache Verifikation Gegeben ist folgender Algorithmus {a<0, b>0, c>0} // Vorbedingung P(a,b,c) a=b; d=b-a; if (c == 0) then d=5; else d=d+1; 1. Geben Sie eine Nachbedingung Q(d) für die Variable d an 2. Beweisen Sie dass sich durch den Algorithmus aus P(a,b,c) diese Nachbedingung Q(d) ableiten lässt 3. Schreiben Sie einen zweiten Algorithmus, der ebenfalls die Nachbedingung Q(d) aus P(a,b,c) ableiten kann 4. Verifizieren Sie Ihren Algorithmus

description

Übung 6.2Einfache Verifikation. Gegeben ist folgender Algorithmus {a0, c>0} // Vorbedingung P(a,b,c) a=b; d=b-a; if (c == 0) then d=5; else d=d+1; Geben Sie eine Nachbedingung Q(d) für die Variable d an - PowerPoint PPT Presentation

Transcript of Übung 6.2Einfache Verifikation

Page 1: Übung 6.2Einfache Verifikation

Übung 6.2 Einfache Verifikation

Gegeben ist folgender Algorithmus{a<0, b>0, c>0} // Vorbedingung P(a,b,c)

a=b;

d=b-a;

if (c == 0) thend=5;

else

d=d+1;

1. Geben Sie eine Nachbedingung Q(d) für die Variable d an

2. Beweisen Sie dass sich durch den Algorithmus aus P(a,b,c) diese Nachbedingung Q(d) ableiten lässt

3. Schreiben Sie einen zweiten Algorithmus, der ebenfalls die Nachbedingung Q(d) aus P(a,b,c) ableiten kann

4. Verifizieren Sie Ihren Algorithmus

Page 2: Übung 6.2Einfache Verifikation

Übung 6.3 Denksportaufgabe

1. Gegeben sei folgendes VerfahrenIn einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf.

1. Welche Farbe hat die letzte Kugel

2. Welche Aussage - die einen Hinweis auf die Antwort gibt - gilt vor, in und nach der Schleife (Invariante)

3. Terminiert die Schleife ? Begründen Sie ihre Antwort.

Page 3: Übung 6.2Einfache Verifikation

Übung 6.4 Invariante

1. Betrachten Sie nochmals das Verfahren aus der vorgegangenen Übung:

In einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf.

1. Beschreiben Sie das Verfahren als Algorithmus1. Das „Nehmen“ dürfen Sie als Block voraussetzen.

1. Entwerfen Sie den Kopf dieses Blocks,

2. Beschreiben Sie seine Parameter

3. beschreiben Sie sein Verhalten in Form einer Vor- und Nachbedingung

2. Bestimmen Sie die Invariante

3. Beweisen Sie die Korrektheit Ihrer Nachbedingung

Page 4: Übung 6.2Einfache Verifikation

Übung 6.6 Schranken

1. Angenommen, Ihr Algorithmus habe einen Aufwand vong(n) = 5n3 + n + 1000 für alle n

a) Geben sie eine obere Schranke O(g(n)) an.

b) Beweisen Sie, dass ihre Schranke tatsächlich eine obere Schranke ist.

c) Konstruieren Sie einen Graphen fü die beiden Funktionen g(n) O(g(n) so, dass der Schnittpunkt deutlich wird.

d) Geben Sie eine untere Schranke an

2. Sie haben zusätzlich einen Algorithmus mit O(2n) Aufwand. Vergleichen Sie diesen Algorithmus mit dem Algorithmus aus 1.

a) Welches ist der „schnellere“ Algorithmus ?

b) Begründen Sie Ihre Antwort quantitativ

Page 5: Übung 6.2Einfache Verifikation

Übung 6.8 Aufwand

1. Gegeben ist folgender Algorithmus:do (list:*liste) {i:integer;for i=1 to no_of_elements(list) { remove_last_element(list); do (list) // call list with one element less}

a) Geben Sie den Aufwand an.

b) Belegen Sie Ihre Antwort rechnerisch

2. Gegeben ist folgender Algorithmusfor i=1 to n { j=1; while (j<i) { j = j+2; }}

a) Geben Sie den Aufwand an.

b) Belegen Sie Ihre Antwort rechnerisch