Generierung lokaler Optimierungen - IPD Snelting
Generierung lokaler Optimierungen - IPD Snelting
Generierung lokaler Optimierungen - IPD Snelting
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