Generierung lokaler Optimierungen - IPD Snelting
Generierung lokaler Optimierungen - IPD Snelting
Generierung lokaler Optimierungen - IPD Snelting
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
4 Implementierung<br />
Regel wirklich um das optimale Muster aus der Menge der zu m semantisch äquivalenten<br />
Muster handelt.<br />
Sollen Regelzyklen in einer Menge von Regeln ausgeschlossen werden, ist für jede neue<br />
Regel, die dieser Menge hinzugefügt werden soll, zu prüfen, ob anschließend ein Zyklus<br />
besteht. Falls ja, darf die Regel nicht der Menge hinzugefügt werden. Da dieses Vorgehen<br />
zusätzlichen Aufwand für den <strong>Generierung</strong>sprozess bedeutet, wird im Rahmen dieser<br />
Arbeit eine solche Überprüfung nicht im vollen Umfang durchgeführt. Stattdessen wird<br />
ein alternatives Vorgehen gewählt, von dem zwar nicht erwiesen ist, dass es tatsächlich<br />
alle Zyklen verhindert. Allerdings konnte während der Implementierung und Evaluierung<br />
kein Fall beobachtet werden, der zu diesbezüglichen Problemen geführt hat.<br />
Lösungsansatz<br />
Bevor auf den eigentlich Vorgang zur Lösung, oder genauer zur Begrenzung des Problems<br />
eingegangen wird, folgt noch eine Vorüberlegung.<br />
Eine Folge von Regeln mit mindestens einer Optimierungsregel kann keinen Regelzyklus<br />
bilden, da für eine Optimierungsregel r : rl → rr mit den beiden Mustern rl und rr, sowie<br />
deren Kosten costM(rl) und costM(rr) gilt: costM(rl) > costM(rr). Die Kosten nehmen<br />
für das resultierende Muster ab. Eine umgekehrte Regel r ′ : r ′ l → r′ r mit costM(r ′ l<br />
costM(r ′ r) wird nach Definition 12 ausgeschlossen, weswegen es nicht möglich ist ein<br />
teureres Muster zu erzeugen. Eine Rekonstruktion des ursprünglichen Musters m ist<br />
nach Anwendung einer Optimierungsregel mit den zugelassenen Regeln nicht möglich.<br />
Für Folgen, die ausschließlich aus Transformationsregeln bestehen, sind zwei Fälle zu<br />
unterscheiden. Folgen mit mindestens einer Transformationsregel, die ein Muster auf ein<br />
strukturell unterschiedliches Muster abbildet und Folgen, bei denen alle Transformationsregeln<br />
nur aus strukturell identischen Mustern aufgebaut sind.<br />
Definition 19 (strukturell identische Muster). Zwei Muster m und m ′ sind strukturell<br />
identisch, wenn sich die Muster nur im Typ der Knoten v mit Ausgangsgrad<br />
arity(type(v)) = 0 unterscheiden.<br />
Anders formuliert sind zwei Muster strukturell identisch, wenn sich die Muster lediglich<br />
dadurch unterscheiden, dass in einem der Muster anstelle einer Variablen ein Konstante<br />
oder eine symbolische Konstante, oder anstelle einer symbolischen Konstante eine<br />
Konstante befindet.<br />
Für Transformationsregeln mit zwei strukturell unterschiedlichen Mustern besteht der<br />
folgende Zusammenhang. Angenommen es existieren zwei strukturell unterschiedliche<br />
Muster m und m ′ sowie eine Regel r : m → m ′ . Es gilt aufgrund der Aufzählungsreihenfolge<br />
das m ′ vor m erzeugt wurde. Daraus folgt, dass es keine Regel r ′ : m ′ → m geben<br />
) <<br />
63