Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting Generierung lokaler Optimierungen - IPD Snelting

pp.info.uni.karlsruhe.de
von pp.info.uni.karlsruhe.de Mehr von diesem Publisher
25.10.2012 Aufrufe

4 Implementierung var0 op1 op1 op1 Kosten 3 ⇒ Regel r var0 op2 Kosten 2 op1 var0 op1 op1 add e1 m, Kosten 4 r → op2 var0 add op1 op1 m ′ , Kosten 5 Abbildung 4.12: Nicht immer ist die Anwendung eine Optimierungsregel sinnvoll. Die Kosten von m nehmen durch Anwendung von r zu. wendung mehrerer Regeln dennoch günstiger sein. Sollen solche Fälle berücksichtigt werden, wäre es für jedes Muster nötig, jede mögliche Kombination von nacheinander anwendbaren Regeln dahingehend zu untersuchen, ob eine Kombination existiert, deren resultierende Muster ebenso teuer, oder günstiger als das ursprüngliche Muster wären. Aus Komplexitätsgründen, die eine Überprüfung jeder Kombination mit sich bringt, wird dieser Ansatz im Rahmen dieser Arbeit nicht weiter verfolgt. Verringerung des Suchraums durch Ausnutzen von Regeln Wie zuvor beschrieben, werden alle Muster dahingehend untersucht, ob eine bereits bekannte Regel anwendbar ist, um so möglichst frühzeitig nicht-optimale Muster zu erkennen. Wenn man bedenkt, dass neue Muster auf der Grundlage bereits bekannter Muster erzeugt werden, stellt sich die Frage, ob es möglich ist, Muster auf die eine Regel anwendbar ist, bereits bei der Mustererzeugung zu vermeiden, indem nicht-optimale Muster nicht länger berücksichtigt werden. Würden nur Muster betrachtet, deren Graph einem gerichteten Baum entspricht, für die also zu jedem Knoten genau ein Pfad von der Wurzel aus existiert, träfe diese Annahme zu. Da in diesem Fall ein neues Muster je nach Stelligkeit der verwendeten Operation keinen, einen oder zwei Teilbäume, also Muster mit geringeren Kosten besitzt und diese nicht untereinander verbunden sind, kann jeder Teilbaum durch seine günstigste Repräsentation dargestellt werden. Alle anderen Fälle, also alle nicht-optimalen Teilbäume oder Muster können ignoriert werden, da auf sie ohnehin eine Ersetzungsregel anwendbar ist. 36

4 Implementierung Für die in diesem Verfahren betrachteten Graphen bzw. Muster trifft dies allerdings nicht zu. Die Ursache hierfür ist die mögliche Mehrfachnutzung von Knoten durch unterschiedliche Teilmuster. Im Folgenden wird dies anhand von Abbildung 4.13 und Abbildung 4.14 erläutert. Angenommen es existieren die beiden Regel r und r ′ wie in der Abbildung gezeigt, sowie die Operationen op1, op2, op3, op4 mit den jeweiligen Kosten costT (op1) = costT (op3) = 1 und costT (op2) = costT (op4) = 3. Die Kosten der jeweiligen Muster sind in den Abbildungen angegeben. var0 op1 op1 op1 op1 add var0 op1 op1 op1 op1 Kosten 4 var1 m1, Kosten 5 ⇒ Regel r var0 op2 Kosten 3 var0 op2 add var1 m2, Kosten 4 var0 op1 op1 op1 op3 var0 op1 op1 op1 op3 Kosten 4 add var1 m3, Kosten 5 ⇒ Regel r ′ var0 op4 Kosten 3 var0 op4 add var1 m4, Kosten 4 Abbildung 4.13: Abbildung zweier Regeln r und r ′ sowie jeweils ein optimales (m2 und m4) und ein nicht-optimales (m1 und m3) Muster, das aus der Kombination des rechten bzw. linken Musters der jeweiligen Regel mit einer Addition und einer Variablen erzeugt wurde. 37

4 Implementierung<br />

var0<br />

op1<br />

op1<br />

op1<br />

Kosten 3<br />

⇒<br />

Regel r<br />

var0<br />

op2<br />

Kosten 2<br />

op1<br />

var0<br />

op1<br />

op1<br />

add<br />

e1<br />

m, Kosten 4<br />

r<br />

→<br />

op2<br />

var0<br />

add<br />

op1<br />

op1<br />

m ′ , Kosten 5<br />

Abbildung 4.12: Nicht immer ist die Anwendung eine Optimierungsregel sinnvoll. Die<br />

Kosten von m nehmen durch Anwendung von r zu.<br />

wendung mehrerer Regeln dennoch günstiger sein. Sollen solche Fälle berücksichtigt<br />

werden, wäre es für jedes Muster nötig, jede mögliche Kombination von nacheinander<br />

anwendbaren Regeln dahingehend zu untersuchen, ob eine Kombination existiert, deren<br />

resultierende Muster ebenso teuer, oder günstiger als das ursprüngliche Muster wären.<br />

Aus Komplexitätsgründen, die eine Überprüfung jeder Kombination mit sich bringt,<br />

wird dieser Ansatz im Rahmen dieser Arbeit nicht weiter verfolgt.<br />

Verringerung des Suchraums durch Ausnutzen von Regeln<br />

Wie zuvor beschrieben, werden alle Muster dahingehend untersucht, ob eine bereits<br />

bekannte Regel anwendbar ist, um so möglichst frühzeitig nicht-optimale Muster zu<br />

erkennen. Wenn man bedenkt, dass neue Muster auf der Grundlage bereits bekannter<br />

Muster erzeugt werden, stellt sich die Frage, ob es möglich ist, Muster auf die eine Regel<br />

anwendbar ist, bereits bei der Mustererzeugung zu vermeiden, indem nicht-optimale<br />

Muster nicht länger berücksichtigt werden. Würden nur Muster betrachtet, deren Graph<br />

einem gerichteten Baum entspricht, für die also zu jedem Knoten genau ein Pfad von der<br />

Wurzel aus existiert, träfe diese Annahme zu. Da in diesem Fall ein neues Muster je nach<br />

Stelligkeit der verwendeten Operation keinen, einen oder zwei Teilbäume, also Muster<br />

mit geringeren Kosten besitzt und diese nicht untereinander verbunden sind, kann jeder<br />

Teilbaum durch seine günstigste Repräsentation dargestellt werden. Alle anderen Fälle,<br />

also alle nicht-optimalen Teilbäume oder Muster können ignoriert werden, da auf sie<br />

ohnehin eine Ersetzungsregel anwendbar ist.<br />

36

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!