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 mehr verändert werden, da andernfalls die zu vergleichenden Ergebnisse auf unterschiedlichen<br />

Testvektoren beruhen würden und somit nicht mehr vergleichbar sind.<br />

Listing 4.3 Vorabtest – Variante 2<br />

1: function Vorabtest2(m, MOpt)<br />

2: MCand ← CreateEmptyList() ⊲ Liste für Erfüllbarkeitstest Kandidaten<br />

3: T V ← GetTestvectors() ⊲ Liste aller Testvektoren<br />

4: n ← Count(TV) ⊲ Anzahl der Testvektoren<br />

5:<br />

6: i ← 0<br />

7: for all t ∈ T V do<br />

8: res ← Result(m, t) ⊲ wird für jedes Muster nur einmal bestimmt<br />

9: m.results[i] ← res<br />

10: i ← i + 1<br />

11: end for<br />

12:<br />

13: for all m ′ ∈ MOpt do<br />

14: i ← 0<br />

15: equal ← true<br />

16: while i < n do<br />

17: if m.results[i] �= m ′ .results[i] then ⊲ Ergebnisse unterschiedlich?<br />

18: equal ← false ⊲ ⇒ m ′ kein Kandidat<br />

19: break<br />

20: end if<br />

21: i ← i + 1<br />

22: end while<br />

23: if equal then<br />

24: StorePatternInto(MCand, m ′ ) ⊲ m ′ ist Kandidat<br />

25: end if<br />

26: end for<br />

27:<br />

28: return MCand<br />

29: end function<br />

Verwendete Variante<br />

Im Rahmen dieser Arbeit wird eine Kombination aus beiden Varianten verwendet, die<br />

zusätzlich durch den Einsatz einer Hash-Funktion ergänzt wird. Listing 4.4 stellt den<br />

konkreten Ablauf dar. Um das Problem des höheren Speicherverbrauchs von Variante<br />

2 gegenüber Variante 1 zu vermeiden, werden nicht die Ergebnisse gespeichert, sondern<br />

es wird aus ihnen ein Hashwert gebildet. Die hierzu verwendete Hashfunktion h besteht<br />

aus einer einfachen Gewichtung der Ergebnisse, die in der Reihenfolge in der sie berech-<br />

41

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!