Archive for the ‘open source’ tag
JGAP Java Genetic Algorithms Package
There are several tutorials and examples on the source forge site.
JGAP (pronounced “jay-gap”) is a Genetic Algorithms and Genetic Programming component provided as a Java framework. It provides basic genetic mechanisms that can be easily used to apply evolutionary principles to problem solutions. See the examples for a demonstration or watch out the graphical tree that can be created with JGAP for found solutions of genetically evolved programs.
JGAP was designed to be very easy to use “out of the box”, while also designed to be highly modular so that more adventurous users can easily plug-in custom genetic operators and other sub-components.
Download and more information at JGAP at SourceForge
More information:
Traveling Salesman problem solved with JGAP ( pdf )
A Genetic Algorithm Based Mobile Sensor Network Deployment Algorithm ( pdf )
Biota podcasts, open source AI life projects and more
Biota has podcasts, several open source artificial life projects, and papers all available for you to use. Biota exists to promote and assist the creation of biologically inspired artificial life forms in digital ecosystems. ( See the links page for a list of several projects )
The mission of Biota.org is to promote and assist in the engineering of complete, biologically-inspired, synthetic ecosystems and organisms. This involves the creation and deployment of digital tools and environments for simulation, research, and learning about living systems both natural and artificial. These tools could range from simple genetic algorithms all the way up to full multi-user virtual environments. Biota.org will seek to nourish a community of interest and to bring the experience of interacting with digital biota to a large audience through the medium of the Internet. Cyberbiology is Artificial Life made visible through Cyberspace.
More information:
Biota
Tierra artificial life programs
Developed by Tom Ray, Tierra is a program that allows simple computer code to evolve and reproduce. Ray originally began as a biologist studying evolution and hoped to create an electric powered evolution machine to better study evolution. A friend in computer science and the current ( 1980s ) rash of computer viruses gave him the idea he needed.
To keep his creations from escaping or crashing his computer with bad code he wrote a computer emulator and let his creations loose in there. The first creation was an 80 byte program designed to fill in a free memory space on his computer with a copy of itself. Each program would continue its reproduction. The programs scrambled a few bits during the copy. If a program was broken enough to damage the computer or got too old it would be killed off.
After billions of generations working mutants appeared. Smaller programs doing the best since they needed the least resources. Parasites appeared which used other programs code to reproduce themselves. Programs would then evolve that had immunity to the parasites. Social programs evolved that would cooperate or steal from each other.
The algorithm has been on the internet and you can download it and experiment with Tom Rays programs.
More information and code:
Tierra home page
Polyworld open source artificial life software
Polyworld is an evolutionary environment with simulated physics that allows you create creatures that will evolve. The creatures are free form neural networks. It was created by Larry Yaeger. They will learn to find food, become or hunt prey and mate and have children. It is open source, code is available at Source Forge ( link below ) and it does have versions for Windows, Linux and OSX.
Although we have had great success solving toy problems in artificial environments evolved creatures in virtual environments haven’t found great success in solving real world problems yet.
PolyWorld is a computational ecology that I developed to explore issues in Artificial Life. Simulated organisms reproduce sexually, fight and kill and eat each other, eat the food that grows throughout the world, and either develop successful strategies for survival or die. An organism’s entire behavioral suite (move, turn, attack, eat, mate, light) is controlled by its neural network “brain”. Each brain’s architecture–it’s neural wiring diagram–is determined from its genetic code, in terms of number, size, and composition of neural clusters (excitatory and inhibitory neurons) and the types of connections between those clusters (connection density and topological mapping). Synaptic efficacy is modulated via Hebbian learning, so, in principle, the organisms have the ability to learn during the course of their lifetimes. The organisms perceive their world through a sense of vision, provided by a computer graphic rendering of the world from each organism’s point of view. The organisms’ physiologies are also encoded genetically, so both brain and body, and thus all components of behavior, evolve over multiple generations. A variety of “species”, with varying individual and group survival strategies have emerged in various simulations, displaying such complex ethological behaviors as swarming/flocking, foraging, and attack avoidance.” ( introduction to PolyWorld: Life in a new context ( link below ))
More information:
Poly’s world
Download source code for PolyWorld
Papers:
Polyworld, Yaeger ( pdf)
Computational Genetics, Physiology, Metabolism, Neural Systems, Vision and Behavior or PolyWorld: Life in a new context ( pdf)
You Tube:
PolyWorld: Google Tech Talks
Processing
Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is an alternative to proprietary software tools in the same domain.
Processing is free to download and available for GNU/Linux, Mac OS X, and Windows. Please help to release the next version!
Processing is an open project initiated by Ben Fry and Casey Reas. It evolved from ideas explored in the Aesthetics and Computation Group at the MIT Media Lab.