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.
Listing 4.7 Ablauf des <strong>Generierung</strong>svorgangs in algorithmischer Form<br />
4 Implementierung<br />
1: procedure Generate(limit)<br />
2: RRules ← CreateEmptyList() ⊲ Liste speichert Regeln<br />
3: MOpt ← CreateEmptyList() ⊲ Liste speichert optimale Muster<br />
4: MErz ← CreateEmptyList() ⊲ Liste speichert alle erzeugten Muster<br />
5:<br />
6: m ← CreateNextPattern(MErz) ⊲ erstes Muster erzeugen<br />
7: while m.costs ≤ limit do<br />
8: result ← RuleApplicableTest(RRules, m)<br />
9: if result �= true then<br />
10: p ← m, m ′ ←⊥<br />
11: while p �=⊥ ∧ m ′ =⊥ do<br />
12: mCand ← Vorabtest(p, MOpt) ⊲ Kandidat ermitteln<br />
13:<br />
14: m ′ ← ErfüllbarkeitsTest(p, mCand)<br />
15: if m ′ �=⊥ then ⊲ äquivalentes Muster gefunden?<br />
16: r ← CreateNewRule(p, m ′ )<br />
17: StoreRuleInto(RRules, r)<br />
18: else ⊲ weitersuchen für strukturell identische Muster<br />
19: p ← CreateNextPermutation(p) ⊲ nächste Permutation<br />
20: end if<br />
21: end while<br />
22:<br />
23: if m ′ =⊥ then<br />
24: StorePatternInto(MOpt, m) ⊲ m ist optimales Muster<br />
25: end if<br />
26: end if<br />
27:<br />
28: StorePatternInto(MErz, m)<br />
29: m ← CreateNextPattern(MErz)<br />
30: end while<br />
31: end procedure<br />
49