Linear genetic programming
Encyclopedia
Linear Genetic Programming (LGP) is a particular subset of genetic programming
Genetic programming
In artificial intelligence, genetic programming is an evolutionary algorithm-based methodology inspired by biological evolution to find computer programs that perform a user-defined task. It is a specialization of genetic algorithms where each individual is a computer program...

 wherein computer programs in population are represented as a sequence of instructions from imperative programming language
Imperative programming
In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state...

 or machine language
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

. The graph-based data flow that results from a multiple usage of register
Processor register
In computer architecture, a processor register is a small amount of storage available as part of a CPU or other digital processor. Such registers are addressed by mechanisms other than main memory and can be accessed more quickly...

 contents and the existence of structurally noneffective code (introns) are two main differences to more common tree-based genetic programming (TGP) variant.

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. D[0] := F)
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.

People interested in LGP

  • Wolfgang Banzhaf
  • Peter Nordin
    Peter Nordin
    Peter Nordin is a Swedish computer scientist, entrepreneur and author who has contributed to artificial intelligence, automatic programming, machine learning, and evolutionary robotics.- Studies and early career :...

  • Mith Tenac
  • Markus Brameier
  • Ashley Reid-Montanaro
  • Frank Francone
  • Frank Eriksson
  • Amir Hossein Gandomi
  • Amir Hossein Alavi

External links

  • 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
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK