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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!