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.

Programowanie wielu wyrażeń X zrzut ekranu

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ż

Uwagi

  1. ^ Oltean M.; Dumitrescu D.: " Multi Expression Programming ", Raport techniczny, Univ. Babes-Bolyai, Kluż-Napoka, 2002
  2. ^ 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
  3. ^ 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

Zewnętrzne linki