25.10.2012 Aufrufe

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

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 Implementierung<br />

nicht erfüllbar 1 , sind beide Muster m und m ′ äquivalent. Ist das Ergebnis jedoch für<br />

jedes m ′ ∈ MCand erfüllbar 2 , so ist m ein optimales Muster. Wie in Abschnitt 4.3.2<br />

angesprochen, werden die Zeugen, also Eingabevektoren tv, die beweisen, dass m �≡ m ′<br />

gilt, extrahiert und falls m optimal ist, in der Liste T V h(m) gespeichert (Zeile 9, 10, 16).<br />

Listing 4.6 Erfüllbarkeitstest<br />

1: function Erfüllbarkeitstest(m, mCand)<br />

2: T VT mp ← CreateEmptyList ⊲ Erzeuge List für gefundene Zeugen<br />

3: if mcand �=⊥ then<br />

4: proof ← CreateProof(m, mcand) ⊲ Erzeuge Beweis-Instanz<br />

5: unsat ← Solve(proof) ⊲ Beweis lösen<br />

6: if unsat then<br />

7: return mcand ⊲ mcand ist semantisch äquivalentes Muster<br />

8: else<br />

9: v ← ExtractProofVector(proof) ⊲ Zeuge extrahieren<br />

10: InsertInto(T VT mp, v) ⊲ Zeuge zwischenspeichern<br />

11: end if<br />

12: end if<br />

13:<br />

14: T V h(m) ← GetTestvectorsByHash(h(m))<br />

15:<br />

16: Append(T V h(m), T VT mp) ⊲ Neue Zeugen zur Liste hinzufügen<br />

17: return ⊥ ⊲ Kein äquivalentes Muster ⇒ m optimal<br />

18: end function<br />

4.4 Zusammenwirken der Komponenten<br />

In diesem Abschnitt soll der vollständige Ablauf eines <strong>Generierung</strong>svorgangs noch einmal<br />

zusammengefasst werden. Anschließend folgt ein ausführliches Beispiel.<br />

4.4.1 Ablauf<br />

Listing 4.7 stellt den Ablauf eines <strong>Generierung</strong>svorgangs in algorithmischer Form dar.<br />

Die Prozedur Generate wird mit einem Wert limit aufgerufen, der die gewünschte Kostenobergrenze<br />

für den durchzuführenden <strong>Generierung</strong>svorgang festlegt. Zunächst werden<br />

drei Listen RRules, MOpt und MErz erzeugt. RRules dient zur Speicherung der generierten<br />

Regeln, MOpt beinhaltet die optimalen Muster und MErz speichert alle erzeugten<br />

1 engl. unsatisfiable<br />

2 engl. satisfiable<br />

47

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!