Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Multi expression programming

From Wikipedia, the free encyclopedia
Part ofa series on the
Evolutionary algorithm
Genetic algorithm (GA)
Genetic programming (GP)
Differential evolution
Evolution strategy
Evolutionary programming
Related topics
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
The topic of this articlemay not meet Wikipedia'sgeneral notability guideline. Please help to demonstrate the notability of the topic by citingreliable secondary sources that areindependent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to bemerged,redirected, ordeleted.
Find sources: "Multi expression programming" – news ·newspapers ·books ·scholar ·JSTOR
(August 2016) (Learn how and when to remove this message)
This articlemay rely excessively on sourcestoo closely associated with the subject, potentially preventing the article from beingverifiable andneutral. Please helpimprove it by replacing them with more appropriatecitations toreliable, independent sources.(August 2016) (Learn how and when to remove this message)
This articlemay be too technical for most readers to understand. Pleasehelp improve it tomake it understandable to non-experts, without removing the technical details.(August 2015) (Learn how and when to remove this message)
A major contributor to this article appears to have aclose connection with its subject. It may require cleanup to comply with Wikipedia's content policies, particularlyneutral point of view. Please discuss further on thetalk page.
See ouradvice if the article is about you and read ourscam warning in case someone asks for money to edit this article.
(August 2016) (Learn how and when to remove this message)
(Learn how and when to remove this message)

Multi Expression Programming (MEP) is an evolutionary algorithm for generating mathematical functions describing a given set of data. MEP is aGenetic Programming variant encoding multiple solutions in the same chromosome. MEP representation is not specific (multiple representations have been tested). In the simplest variant, MEP chromosomes are linear strings of instructions. This representation was inspired byThree-address code. MEP strength consists in the ability to encode multiple solutions, of a problem, in the same chromosome. In this way, one can explore larger zones of the search space. For most of the problems this advantage comes with no running-time penalty compared withgenetic programming variants encoding a single solution in a chromosome.[1][2][3]

Representation

[edit]

MEP chromosomes are arrays of instructions represented inThree-address code format.

Each instruction contains a variable, a constant, or a function. If the instruction is a function, then the arguments (given as instruction's addresses) are also present.

Example of MEP program

[edit]

Here is a simple MEP chromosome (labels on the left side are not a part of the chromosome):

1: a2: b3: + 1, 24: c5: d6: + 4, 57: * 3, 5

Fitness computation

[edit]

When the chromosome is evaluated it is unclear which instruction will provide the output of the program. In many cases, a set of programs is obtained, some of them being completely unrelated (they do not have common instructions).

For the above chromosome, here is the list of possible programs obtained during decoding:

E1 = a,E2 = b,E4 = c,E5 = d,E3 = a + b.E6 = c + d.E7 = (a + b) * d.

Each instruction is evaluated as a possible output of the program.

The fitness (or error) is computed in a standard manner. For instance, in the case ofsymbolic regression, the fitness is the sum of differences (in absolute value) between the expected output (called target) and the actual output.

Fitness assignment process

[edit]

Which expression will represent the chromosome? Which one will give the fitness of the chromosome?

In MEP, the best of them (which has the lowest error) will represent the chromosome. This is different from other GP techniques: InLinear genetic programming the last instruction will give the output. InCartesian Genetic Programming the gene providing the output is evolved like all other genes.

Note that, for many problems, this evaluation has the same complexity as in the case of encoding a single solution in each chromosome. Thus, there is no penalty in running time compared to other techniques.

Software

[edit]

MEPX

[edit]

MEPX is a cross-platform (Windows, macOS, and Linux Ubuntu) free software for the automatic generation of computer programs. It can be used for data analysis, particularly for solvingsymbolic regression,statistical classification andtime-series problems.

Screenshot from the MEPX software

libmep

[edit]

Libmep is a free and open source library implementing Multi Expression Programming technique. It is written in C++.

hmep

[edit]

hmep is a new open source library implementing Multi Expression Programming technique in Haskell programming language.

See also

[edit]

Notes

[edit]
  1. ^Oltean M.; Dumitrescu D.: "Multi Expression Programming", Technical report, Univ. Babes-Bolyai, Cluj-Napoca, 2002
  2. ^Oltean M.; Grosan C.: "Evolving Evolutionary Algorithms using Multi Expression Programming", The 7th European Conference on Artificial Life, September 14–17, 2003, Dortmund, Edited by W. Banzhaf (et al), LNAI 2801, pp. 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 June, Seattle, Edited by R. Zebulum (et al.), pages 87-90, IEEE Press, NJ, 2004

External links

[edit]
Main Topics
Algorithms
Related techniques
Metaheuristic methods
Related topics
Organizations
Conferences
Journals
Retrieved from "https://en.wikipedia.org/w/index.php?title=Multi_expression_programming&oldid=1329878134"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp