Jump to content

Linear genetic programming

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 2601:405:4a00:5110:50b8:2902:e316:e172 (talk) at 15:45, 24 March 2023. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
"Linear genetic programming" is unrelated to "linear programming".

Linear genetic programming (LGP)[1] is a particular method of genetic programming wherein computer programs in a population are represented as a sequence of instructions from an imperative programming language or machine language. The adjective "linear" stems from the fact that the sequence of instructions is normally executed in a linear fashion. Like in other programs, the data flow in LGP can be modeled as a graph that will visualize the potential multiple usage of register contents and the existence of structurally noneffective code (introns) which are two main differences of this genetic representation from the more common tree-based genetic programming (TGP) variant.[2][3] [4]

Like other Genetic Programming methods, Linear genetic programming requires the input of data to run the program population on. Then, the output of the program (its behaviour) is judged against some target behaviour, using a fitness function. However, LGP is generally more efficient than tree genetic programming due to its two main differences mentioned above: Intermediate results (stored in registers) can be reused and a simple intron removal algorithm exists[1] that can be executed to remove all non-effective code prior to programs being run on the intended data. These two differences often result in compact solutions and substantial computational savings compared to the highly constrained data flow in trees and the common method of executing all tree nodes in TGP.

Linear genetic programming has been applied in many domains, including system modeling and system control with considerable success.[5][6][7][8]

Linear genetic programming should not be confused with linear tree programs in tree genetic programming, program composed of a variable number of unary functions and a single terminal. Note that linear tree GP differs from bit string genetic algorithms since a population may contain programs of different lengths and there may be more than two types of functions or more than two types of terminals.[9]

Examples of LGP programs

Because LGP programs are basically represented by a linear sequence of instructions, they are simpler to read and to operate on than their tree-based counterparts. For example, a simple program written in the LGP language Slash/A looks like a series of instructions separated by a slash:

input/   # gets an input from user and saves it to register F
0/       # sets register I = 0
save/    # saves content of F into data vector D[I] (i.e. D[0] := F)
input/   # gets another input, saves to F
add/     # adds to F current data pointed to by I (i.e. F := F + D[0])
output/. # outputs result from F

By representing such code in bytecode format, i.e. as an array of bytes each representing a different instruction, one can make mutation operations simply by changing an element of such an array.

See also

Notes

  1. ^ a b M. Brameier, W. Banzhaf, "Linear Genetic Programming", Springer, New York, 2007
  2. ^ Brameier, M.: "On linear genetic programming Archived 2007-06-29 at the Wayback Machine", Dortmund, 2003
  3. ^ W. Banzhaf, P. Nordin, R. Keller, F. Francone, Genetic Programming - An Introduction, Morgan Kaufmann, Heidelberg/San Francisco, 1998
  4. ^ Poli, R.; Langdon, W. B.; McPhee, N. F. (2008). A Field Guide to Genetic Programming. Lulu.com, freely available from the internet. ISBN 978-1-4092-0073-4.
  5. ^ M. Brameier, W. Banzhaf, A Comparison of Linear Genetic Programming and Neural Networks in Medical Data Mining", IEEE Transactions on Evolutionary Computation, 5 (2001) 17-26
  6. ^ A. Guven, Linear genetic programming for time-series modelling of daily flow rate, J. Earth Systems Science, 118 (2009) 137-146
  7. ^ R. Li, B.R. Noack, L. Cordier, J. Boree, F. Harambat, Drag reduction of a car model by linear genetic programming control, Experiments in Fluids, 58 (2017) 103
  8. ^ P.-Y. Passagia, A. Quansah, N. Mazellier, G.Y. Cornejo Maceda, A. Kourta, Real-time feedback stall control of an airfoil at large Reynolds numbers using linear genetic programming, Physics of Fluids, 34 (2022) 045108
  9. ^ Foundations of Genetic Programming.
  • Slash/A A programming language and C++ library specifically designed for linear GP
  • DigitalBiology.NET Vertical search engine for GA/GP resources
  • Discipulus Genetic-Programming Software
  • MicroGP Genetic-Programming Software (open source)
  • [1]