Programare multi-expresie - Multi expression programming
Multi Expression Programming (MEP) este o variantă de programare genetică care codifică mai multe soluții în același cromozom. Reprezentarea MEP nu este specifică (reprezentări multiple au fost testate). În cea mai simplă variantă, cromozomii MEP sunt șiruri liniare de instrucțiuni. Această reprezentare a fost inspirată din codul cu trei adrese . Puterea MEP constă în capacitatea de a codifica mai multe soluții, ale unei probleme, în același cromozom. În acest fel, puteți explora zone mai mari ale spațiului de căutare. Pentru majoritatea problemelor, acest avantaj vine fără penalizare în timpul funcționării în comparație cu variantele de programare genetică care codifică o singură soluție într-un cromozom.
Exemplu de program MEP
Iată un program simplu MEP:
1: a 2: b 3: + 1, 2 4: c 5: d 6: + 4, 5 7: * 3, 5
Pe fiecare linie putem avea un terminal sau o funcție. În cazul funcțiilor avem nevoie, de asemenea, de indicatori pentru argumentele sale.
Când decodăm cromozomul, obținem expresii multiple:
E1 = a, E2 = b, E4 = c, E5 = d, E3 = a + b. E6 = c + d. E7 = (a + b) * d.
Care expresie va reprezenta cromozomul? În MEP fiecare expresie este evaluată și cea mai bună dintre ele va reprezenta cromozomul. Pentru majoritatea problemelor, această evaluare are aceeași complexitate ca și în cazul codificării unei singure soluții în fiecare cromozom.
Software
MEPX
MEPX este un software gratuit multiplataforma (Windows, Mac OSX și Linux Ubuntu) pentru generarea automată de programe de calculator. Poate fi folosit pentru analiza datelor, în special pentru rezolvarea problemelor de regresie și clasificare.
libmep
Libmep este o bibliotecă gratuită și open source care implementează tehnica de programare multi-expresie. Este scris în C ++.
hmep
hmep este o nouă bibliotecă open source care implementează tehnica de programare Multi Expression în limbajul de programare Haskell.
Vezi si
- Programare genetică carteziană
- Programare genetică
- Programarea expresiei genelor
- Evoluția gramaticală
- Programare genetică liniară
Note
- ^ Oltean M .; Dumitrescu D .: „ Programare cu expresii multiple ”, Raport tehnic, Univ. Babeș-Bolyai, Cluj-Napoca, 2002
- ^ Oltean M .; Grosan C .: " Evoluand evoluționistă Algoritmi folosind Multi Expression Programming ", A 7Conferință Europeană privind Viața artificială, paisprezece-17 septembrie 2003, Dortmund, Editat de W. Banzhaf (et al), LNAI 2801, pp. 651-658, Springer-Verlag, Berlin, 2003
- ^ Oltean M .; Grosan C .: " Circuite Evoluand digital folosind Multi Expression Programming ", NASA / Conferință DoD pe evolvable Hardware, 24-26 iunie, Seattle, Editat de R. Zebulum (et. Al), paginile 87-90, IEEE Press, New Jersey, 2004
