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.
var0 0<br />
add<br />
(a) Regel r<br />
⇒<br />
var0<br />
var0<br />
var1<br />
add 0<br />
add<br />
(b) Muster m<br />
var0<br />
4 Implementierung<br />
var1<br />
add 0<br />
add<br />
var0 0<br />
add<br />
(c) Anwendung von r auf m<br />
Abbildung 4.11: Anwendung einer Regel auf ein Muster. Variablen einer Regel können<br />
Knoten mit anderem Typ überdecken.<br />
hintereinander ausgeführte Operationen op1 auf eine Operation op2 abbildet. Die Gesamtkosten<br />
reduzieren sich hierdurch um 1. Wird r auf das in der Abbildung gezeigte<br />
Muster m angewendet, so reduzieren sich die Kosten nicht, obwohl es sich bei r um<br />
eine Optimierungsregel handelt. Vielmehr steigen die Kosten von vormals 4 auf 5, wie<br />
das Ergebnis m ′ zeigt. Der Grund besteht darin, dass eine Kante existiert, die ein echtes<br />
Teilmuster der Regel zum Ziel hat. In der Abbildung entspricht dies der Kante e1<br />
im Muster m. Aufgrund dieser Kante müssen die zwei folgenden op1-Knoten erhalten<br />
bleiben. Es wird nur einer der drei op1 Knoten entfernt, wodurch sich die Kosten nur<br />
um 1 verringern, es kommt aber ein neuer Knoten mit Kosten 2 hinzu. Somit ist das<br />
Endergebnis sogar teurer.<br />
Um dieses Problem zu vermeiden, muss die Anwendbarkeit von Regeln eingeschränkt<br />
werden. Die Voraussetzung, dass ein Muster durch Anwendung einer Ersetzungsregel<br />
teurer werden kann ist, dass es zusätzliche Kanten (Datenabhängigkeiten, Referenzen)<br />
zu Knoten gibt, die von der Regel ersetzt werden. Die Referenz verhindert, dass diese<br />
Knoten aus dem Muster entfernt werden, da von ihnen noch andere Knoten bzw. Operationen<br />
abhängig sind (Mehrfachnutzung durch Knoten, die von der Anwendung der<br />
Regel nicht betroffen sind). Eine Ausnahme bildet der Knoten, der dem Wurzel-Knoten<br />
des linken Musters der Regel entspricht und Knoten, die keine Kosten verursachen, z. B.<br />
Variablen oder Konstanten. Entsprechend darf eine Regel nur angewendet werden, wenn<br />
die Anzahl der Eingangs-Kanten eines Muster-Knotens mit der Anzahl der Eingangs-<br />
Kanten des Regel-Knotens übereinstimmt.<br />
Die beschriebene Einschränkung betrachtet nur den Fall, dass lediglich eine Regel angewendet<br />
wird. Berücksichtigt man die Anwendung mehrerer Regeln, kann ein Muster,<br />
welches zunächst durch die Anwendung einer Regel teurer wird, zum Schluss nach An-<br />
35