Activities/Kandid: Difference between revisions

No edit summary
 
(3 intermediate revisions by one other user not shown)
Line 164: Line 164:


=== Fitness Function ===
=== Fitness Function ===
In traditional genetic programming a function is needed to calculate an indication how optimal a genome is. This is called fitness function or fitness landscape. The parents with the best results are preferred producing offspring. Unfortunately some problems, like producing interesting digital images, don't have mathematically defined fitness functions. Therefore Kandid has no build in fitness function. No assumption is made how meaningfully an image is for the user. Kasimir Malewitsch 'black square on a white field' can be reinvented with Kandid. But must user wold prefer more colorful images.  
In traditional genetic programming a function is needed to calculate an indication how optimal a genome is. This is called fitness function or fitness landscape. The parents with the best results are preferred producing offspring. Unfortunately some problems, like producing interesting digital images, don't have mathematicall defined fitness functions. Therefore Kandid has no build in fitness function. No assumption is made how meaningfully an image is for the user. Kasimir Malewitsch 'black square on a white field' can be reinvented with Kandid. But most users would prefer more colorful images.


=== Interactive Genetic Algorithm ===
=== Interactive Genetic Algorithm ===
Line 170: Line 170:


=== Different evolution Strategies ===
=== Different evolution Strategies ===
There are different paradigms for implementing a genetic algorithm. ''Evolution Strategies'', invited by Ingo Rechenberg, are suitable for evolving real valued parameters to optimizing the result of a fixed formula. ''Genetic Algorithms'', introduced by John Holland are also for optimizing parameters in hard coded functions. Where the parameters are binary coded instead of floating point numbers. Genetic operations in Kandid can be better understand as 'Evolution Strategy''. But this abstract dispute.
There are different paradigms for implementing a genetic algorithm. ''Evolution Strategies'', invited by Ingo Rechenberg, are suitable for evolving real valued parameters to optimizing the result of a fixed formula. ''Genetic Algorithms'', introduced by John Holland are also for optimizing parameters in hard coded functions. Where the parameters are binary coded instead of floating point numbers. Genetic operations in Kandid can be better understand as 'Evolution Strategy'. But this abstract dispute.


=== Mutation ===
=== Mutation ===
Line 177: Line 177:


=== Crossing over ===
=== Crossing over ===
Merging two genes is called crossing over. It is only used in sexual reproduction. Genetic algorithm can be implemented only with mutation operations. The advantage of crossing over is that the successor gene can take profit from both parent genes. Crossing over is a list operation. The new merged gene list is created by copying elements from both list step by step. At every step a random generator decides between continuing with the current list or changing to the other list as a source for the copying. This leads to multiple crossing over points per gene sequence.
Merging two genes is called crossing over. It is only used in sexual reproduction. Genetic algorithm can be implemented only with mutation operations. The advantage of crossing over is that the successor gene can take profit from both parent genes. Crossing over is a list operation. The new merged gene list is created by copying elements from both lists step by step. At every step a random generator decides between continuing with the current list or changing to the other list as a source for the copying. This leads to multiple crossing over points per gene sequence.
 


= Releases, translation and known bugs =  
= Releases, translation and known bugs =  
Line 209: Line 208:
=== v2: December 2009 ===
=== v2: December 2009 ===
* first public release
* first public release
[[Category:Activities]]