Programowanie wielu wyrażeń - Multi expression programming
Programowanie Multi Expression (MEP) to wariant programowania genetycznego kodujący wiele rozwiązań w tym samym chromosomie. Reprezentacja MEP nie jest specyficzna (przetestowano wiele reprezentacji). W najprostszym wariancie chromosomy MEP są liniowymi ciągami instrukcji. Ta reprezentacja została zainspirowana Trójadresowym kodem . Siła MEP polega na umiejętności kodowania wielu rozwiązań problemu w tym samym chromosomie. W ten sposób można eksplorować większe strefy przestrzeni poszukiwań. W przypadku większości problemów ta zaleta wiąże się z brakiem kary za czas działania w porównaniu z wariantami programowania genetycznego kodującymi pojedyncze rozwiązanie w chromosomie.
Przykład programu MEP
Oto prosty program MEP:
1: a 2: b 3: + 1, 2 4: c 5: d 6: + 4, 5 7: * 3, 5
W każdej linii możemy mieć terminal lub funkcję. W przypadku funkcji potrzebujemy również wskaźników do jej argumentów.
Kiedy dekodujemy chromosom, otrzymujemy wiele wyrażeń:
E1 = a, E2 = b, E4 = c, E5 = d, E3 = a + b. E6 = c + d. E7 = (a + b) * d.
Które wyrażenie będzie reprezentować chromosom? W MEP każde wyrażenie jest oceniane, a najlepsze z nich będzie reprezentować chromosom. W przypadku większości problemów ocena ta ma taką samą złożoność, jak w przypadku kodowania pojedynczego rozwiązania w każdym chromosomie.
Oprogramowanie
MEPX
MEPX to wieloplatformowe (Windows, Mac OSX i Linux Ubuntu) darmowe oprogramowanie do automatycznego generowania programów komputerowych. Może być używany do analizy danych, w szczególności do rozwiązywania problemów regresji i klasyfikacji.
libmep
Libmep to darmowa biblioteka typu open source implementująca technikę programowania wielu wyrażeń. Jest napisany w C++.
hmep
hmep to nowa biblioteka open source implementująca technikę Multi Expression Programming w języku programowania Haskell.
Zobacz też
- Kartezjańskie programowanie genetyczne
- Programowanie genetyczne
- Programowanie ekspresji genów
- Ewolucja gramatyczna
- Liniowe programowanie genetyczne
Uwagi
- ^ Oltean M.; Dumitrescu D.: " Multi Expression Programming ", Raport techniczny, Univ. Babes-Bolyai, Kluż-Napoka, 2002
- ^ Oltean M.; Grosan C.: „ Evolving Evolutionary Algorithms using Multi Expression Programming ”, The 7th European Conference on Artificial Life, 14-17 września 2003, Dortmund, pod redakcją W. Banzhaf (i in.), LNAI 2801, s. 651-658, Springer-Verlag, Berlin, 2003
- ^ Oltean M.; Grosan C.: „ Evolving Digital Circuits using Multi Expression Programming ”, NASA/DoD Conference on Evolvable Hardware, 24-26 czerwca, Seattle, pod redakcją R. Zebulum (i in.), strony 87-90, IEEE Press, NJ, 2004