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

ermittelten Eingabevektoren dasselbe Ergebnis wie m liefern. Demzufolge ist auch<br />

höchstens ein Kandidat durch den Erfüllbarkeitstest zu untersuchen. Falls m zu<br />

keinem m ′ ∈ M h(m) semantisch äquivalent ist, dann existiert ebenfalls höchstens<br />

ein m ′ , so dass für jeden Eingabevektor tv ∈ T V h(m) m(tv) �= m ′ (tv) gilt, da für<br />

jedes Paar (m ′ , m ′′ ) von Mustern aus M h(m) mindestens ein Zeuge tv ∈ T V h(m)<br />

existiert, der beweist, dass m ′ �≡ m ′′ gilt.<br />

In der vorherigen Betrachtung wurde der Fall ausgelassen, das es zwar für ein neues<br />

Muster m eine Menge von semantisch äquivalenten Kandidaten geben kann, diese jedoch<br />

alle durch die im vorherigen Abschnitt beschriebene Menge von zusätzlichen Testvektoren<br />

T VADD ausgeschlossen wurden. In diesem Fall ist kein Erfüllbarkeitstest erforderlich<br />

und es wird auch kein Zeuge aufgrund eines Äquivalenzbeweises von m zu einem anderen<br />

Muster generiert. Dies ändert jedoch die Situation nicht, da sich zwar kein diesbezüglicher<br />

Zeuge bzw. Eingabevektor in der Hash-Klasse T Vh(m) befindet, jedoch in der Menge<br />

T VADD.<br />

4.3.3 Erfüllbarkeitstest<br />

Der im vorherigen Abschnitt 4.3.2 beschriebene Vorabtest liefert für ein neues Muster m<br />

eine Vorauswahl Mcand von Mustern die möglicherweise semantisch äquivalent zu m sind.<br />

Durch die Verwendung von Zeugen wird erreicht, dass sich höchstens ein Muster mcand in<br />

der Menge Mcand befinden kann. Für dieses Paar ist noch zu beweisen oder zu widerlegen,<br />

dass m ≡ mcand gilt. Dies ist die Aufgabe des hier beschriebenen Erfüllbarkeitstests.<br />

Ein einfacher Ansatz um die semantische Äquivalenz zwischen zwei Mustern zu beweisen<br />

wäre es, entsprechend der Definition, die Ergebnisse zweier Muster für jeden möglichen<br />

Eingabevektor zu vergleichen. Es ist offensichtlich, dass dies aufgrund der Komplexität<br />

der Eingabemenge ein unpraktikabler Ansatz ist und daher ein effizienteres Beweisverfahren<br />

vorteilhaft wäre.<br />

Für das hier vorgestellte Verfahren ebenso geeignet ist die Frage, ob zwei Muster m und<br />

m ′ nicht semantisch äquivalent sind, ob also ein Eingabevektor tv ∈ Z n existiert, für<br />

den m(tv) �= m ′ (tv) gilt. Dieses Problem lässt sich wie folgt als Erfüllbarkeitsrelation<br />

der Aussagenlogik formulieren und mittels entsprechender Programme wie SAT-Solvern<br />

oder SMT-Solvern lösen:<br />

m �≡ m ′ ⇔ ∃tv ∈ Z n : m(tv) �= m ′ (tv)<br />

45

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!