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.
2 Grundlagen<br />
Die Abbildung type ordnet jedem Knoten v ∈ V einen Typ t ∈ T zu. T repräsentiert die<br />
Menge der zugelassenen Typen. Jede Operation, jede Konstante und die Variable bilden<br />
einen eigenen Typ t. Jedem dieser Typen wird durch die Abbildung arity : T → N0<br />
sein Ausgangsgrad zugeordnet. Jedem Typ t wird zudem durch die Abbildung eval : T ×<br />
Z arity(t) → Z ein Ergebnis bezüglich seiner Semantik und einem Eingabevektor tv ∈<br />
Z arity(t) zugeordnet.<br />
Die Abbildung pos ordnet jeder Kante e ∈ E ihre Position bezüglich des Ausgangsgrades<br />
arity(type(src(e))) des Quellknoten der Kante e zu. Für ein Muster mit Knotenmenge<br />
V und Kantenmenge E muss zudem gelten:<br />
∀e ∈ E : pos(e) < arity(type(src(e)))<br />
∀e, e ′ ∈ E : src(e) = src(e ′ ) ∧ pos(e) = pos(e ′ ) ⇒ e = e ′<br />
∀v ∈ V : |{e ∈ EG : src(e) = v}| = arity(type(v))<br />
Die Abbildung idx ordnet jedem Knoten v einen Index zu, so dass gilt:<br />
idx(v) < |{v ′ ∈ V : type(v ′ ) = type(v)}|<br />
∀v ′ ∈ V : idx(v ′ ) = idx(v) ∧ type(v ′ ) = type(v) ⇒ v = v ′<br />
Die Indizes aus der Abbildung idx werden immer pro Typ vergeben, d. h. eine Addition<br />
kann beispielsweise denselben Index wie eine Variable erhalten. Über den Index<br />
wird eine Ordnung der Knoten eines Typs innerhalb eines Muster erreicht. Vor allem<br />
für die Zuordnung von konkreten Zahlenwerten zu Variablen wird dies benötigt (vgl.<br />
Definition 9).<br />
Um zwei Muster hinsichtlich eines Kostenmodells vergleichen zu können, wird eine Kostenfunktion<br />
benötigt, die jedem Muster einen Kostenwert entsprechend des gewählten<br />
Kostenmodells zuordnet. Dazu werden die beiden folgenden Definitionen eingeführt:<br />
Definition 7 (Kosten eines Typs). Sei T die Menge der zugelassenen Typen. Die Abbildung<br />
costT : T → N0 ordnet jedem Typ t ∈ T seinen Kostenwert zu.<br />
Definition 8 (Kosten eines Musters). Sei m ein Muster, sowie costM : M → N0 eine<br />
Abbildung, die jedem Muster einen Kostenwert zuordnet. Für die Kosten costM(m) eines<br />
Musters m gilt:<br />
costM(m) = �<br />
costT (type(v))<br />
v∈V<br />
Anders ausgedrückt, die Kosten eines Muster m ergeben sich aus der Summe der Kosten<br />
jedes einzelnen Knotens v des Musters.<br />
13