Evolutionary systems & genetic algorithms

From GenerativeArt

(Difference between revisions)
Jump to: navigation, search
(More Examples)
__FORCETOC__
__FORCETOC__
 +
Genetic Algorithms are biologically inspired programming techniques used to generate variations and approximate the solution to a problem by iterative selective breeding.  Genetic Algorithms have the advantage of finding novel solutions or variations for a specific situation without the programmer having to explicitly provide an analytic solution for the general case.  Like natural evolution, genetic algorithms yield increasingly optimized results by discarding poor adaptations, and breeding new generations from those successful adaptations selected by the environment.
Genetic Algorithms are biologically inspired programming techniques used to generate variations and approximate the solution to a problem by iterative selective breeding.  Genetic Algorithms have the advantage of finding novel solutions or variations for a specific situation without the programmer having to explicitly provide an analytic solution for the general case.  Like natural evolution, genetic algorithms yield increasingly optimized results by discarding poor adaptations, and breeding new generations from those successful adaptations selected by the environment.
 +
== Biological Genetic Information ==
== Biological Genetic Information ==
Its worth noting that in a biological genetic system the "data" (the nucleotides) and the "computer" (the DNA and RNA machines that produce proteins) are composed of the same kind of "stuff"...chemicals. In a very real sense in DNA the software is also the hardware.
Its worth noting that in a biological genetic system the "data" (the nucleotides) and the "computer" (the DNA and RNA machines that produce proteins) are composed of the same kind of "stuff"...chemicals. In a very real sense in DNA the software is also the hardware.
   
   
 +
== Digital Genetic Information ==
== Digital Genetic Information ==
* A way to express genotypes to create phenotypes
* A way to express genotypes to create phenotypes
* A way to assign each genotype a score based on an evaluation of the corresponding phenotype
* A way to assign each genotype a score based on an evaluation of the corresponding phenotype
 +
== Types of Genotype Representations ==
== Types of Genotype Representations ==
* A genotype can provide an extensible number of parameters
* A genotype can provide an extensible number of parameters
* A gentotype can provide construction machines of a fixed or extensible number
* A gentotype can provide construction machines of a fixed or extensible number
 +
== Practical Notes for Computer Artists ==
== Practical Notes for Computer Artists ==
* An evaluation based on design criteria such as scale, color, aspect ratio, degree of contrast, etc.
* An evaluation based on design criteria such as scale, color, aspect ratio, degree of contrast, etc.
* A rule-based automated fitness function.
* A rule-based automated fitness function.
 +
== Genetic Variation Operations ==
== Genetic Variation Operations ==
(In non-artistic optimization applications genetic algorithms often ramp down the frequency and size of mutations as the system converges on a solution. This is often referred to as "simulated annealing.")
(In non-artistic optimization applications genetic algorithms often ramp down the frequency and size of mutations as the system converges on a solution. This is often referred to as "simulated annealing.")
 +
== An Aside Regarding Bit String Genetic Representations ==
== An Aside Regarding Bit String Genetic Representations ==
{{SingleImage|imageWidthPlusTen=460|imageURL=http://www-viz.tamu.edu/courses/viza658/wiki/genetic/06.png|caption=Gray Code to Binary Conversion}}
{{SingleImage|imageWidthPlusTen=460|imageURL=http://www-viz.tamu.edu/courses/viza658/wiki/genetic/06.png|caption=Gray Code to Binary Conversion}}
 +
== Example of Classic Genetic Programming for Problem Solving - Lawrence Fogel ==
== Example of Classic Genetic Programming for Problem Solving - Lawrence Fogel ==
{{SingleImage|imageWidthPlusTen=460|imageURL=http://www-viz.tamu.edu/courses/viza658/wiki/genetic/10.png|caption=Traveling Salesman Problem Visualized}}
{{SingleImage|imageWidthPlusTen=460|imageURL=http://www-viz.tamu.edu/courses/viza658/wiki/genetic/10.png|caption=Traveling Salesman Problem Visualized}}
 +
== Early Genetic Art - William Latham (with Stephen Todd and others) ==
== Early Genetic Art - William Latham (with Stephen Todd and others) ==
{{SingleImage|imageWidthPlusTen=460|imageURL=http://www-viz.tamu.edu/courses/viza658/wiki/genetic/22.png|caption=16}}
{{SingleImage|imageWidthPlusTen=460|imageURL=http://www-viz.tamu.edu/courses/viza658/wiki/genetic/22.png|caption=16}}
 +
== Further Evolutionary Art Development by Karl Sims ==
== Further Evolutionary Art Development by Karl Sims ==
Sims is also well known for his [http://www.genarts.com/karl/evolved-virtual-creatures.html Evolved Virtual Creatures]. Using block like modules connected to actuators and neural networks, all in a virtual world with simulated physics, the genes fix the structure and then the resulting creature learns how to move based on a reward system providing feedback.
Sims is also well known for his [http://www.genarts.com/karl/evolved-virtual-creatures.html Evolved Virtual Creatures]. Using block like modules connected to actuators and neural networks, all in a virtual world with simulated physics, the genes fix the structure and then the resulting creature learns how to move based on a reward system providing feedback.
 +
== More Examples ==
== More Examples ==
Artist/Programmer Scott Draves is the creator of [http://electricsheep.org/ Electric Sheep]. Electric Sheep uses a distributed network of over 60,000 computers that donate surplus computation cycles. This network renders frames of genetically-based animated fractal flames. Fractal flames are a particularly robust and complex family of fractals. Completed animations, called sheep, are then automatically downloaded and displayed on the computers in the network as screensavers. Users can rate the sheep, and those ratings are folded back into the system as fitness scores used to evolve the next generation of sheep.
Artist/Programmer Scott Draves is the creator of [http://electricsheep.org/ Electric Sheep]. Electric Sheep uses a distributed network of over 60,000 computers that donate surplus computation cycles. This network renders frames of genetically-based animated fractal flames. Fractal flames are a particularly robust and complex family of fractals. Completed animations, called sheep, are then automatically downloaded and displayed on the computers in the network as screensavers. Users can rate the sheep, and those ratings are folded back into the system as fitness scores used to evolve the next generation of sheep.
 +
== Additional Resources ==
== Additional Resources ==

Revision as of 14:45, 21 September 2009

Personal tools