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 />
semantisch äquivalentes, günstigeres Muster. Daher wird eine neue Regel r0 : (d) → (b)<br />
erzeugt und der Menge der gefundenen Regeln hinzugefügt. Für die beiden nächsten<br />
Muster (e) und (f) kann diese Regel direkt angewendet werden. (e) und (f) werden verworfen.<br />
Auf das Muster (g) kann weder eine Regel angewendet werden, noch existiert ein<br />
semantisch äquivalentes Muster. (g) ist daher optimal und wird der Menge der optimalen<br />
Muster hinzugefügt. Für das folgende Muster (h) existiert wieder ein semantisch äquivalentes<br />
Muster: (a). Hieraus ergibt sich eine weitere Regel r1 : (h) → (a). Das letzten<br />
Muster (i) dieser Kostenstufe ist wieder ein optimales Muster.<br />
4.5 Erweiterung im Zusammenhang mit Konstanten<br />
Konstanten stellen aufgrund ihrer Vielzahl und der damit verbundenen starken Zunahme<br />
erzeugbarer Muster eine besondere Herausforderung an den <strong>Generierung</strong>sprozess hinsichtlich<br />
der benötigten Rechenzeit dar. Der nachfolgende Abschnitt befasst sich mit<br />
dieser Thematik und zeigt einen Lösungsansatz auf, der den im vorherigen Teil beschriebenen<br />
<strong>Generierung</strong>svorgang so erweitert, dass dieser in der Lage ist sämtliche Konstanten<br />
bei der Mustererzeugung und damit bei der Suche nach Ersetzungsregeln zu berücksichtigen.<br />
4.5.1 Symbolische Konstanten und komplexe symbolische Konstanten<br />
Ein erster Schritt um viele Konstanten auf einmal handhaben zu können, besteht in<br />
der Abstraktion von Konstanten, durch symbolische Konstanten. Hierzu wird ein neuer<br />
Operanden-Typ sc der Menge der zugelassenen Typen hinzugefügt (vgl. Definition 6).<br />
Die Kosten costT (sc) dieses neuen Typs entsprechen den Kosten von Konstanten, also<br />
dem Wert 0. Für den Ausgangsgrad gilt wie bei Konstanten: arity(sc) = 0. Eine<br />
symbolische Konstante entspricht formal der folgenden Definition 15.<br />
Definition 15 (Symbolische Konstante). Ein Knoten v ∈ VG eines Musters m mit dem<br />
zugehörigen Graphen G heißt symbolische Konstante, wenn gilt: type(v) = sc. Der Typ sc<br />
besitzt den Kostenwert 0, entsprechend betragen die Kosten einer symbolischen Konstante<br />
ebenfalls 0. Eine symbolische Konstante entspricht einem Stellvertreter für jede mögliche<br />
Konstante. Bei der Anwendung einer Regel überdeckt daher eine symbolische Konstante<br />
eine herkömmliche Konstante.<br />
Um symbolische Konstanten in den <strong>Generierung</strong>svorgang zu integrieren, wird, genau wie<br />
für Konstanten, zu Beginn der Mustererzeugung ein Basismuster mit einem Knoten vom<br />
Typ einer symbolischen Konstante generiert.<br />
Symbolische Konstanten sind allgemeiner als Konstanten und verhalten sich ähnlich zu<br />
Variablen. Für die Anwendung von Regeln gilt, dass eine Regel auch dann anwendbar<br />
51