Are you working with a computer program for which you don't know the best values for some numbers in the configuration file? You may be able to use our Meta-Evolver to systematically search for them.
Metavolv.py is a computer program that searches for a better set of parameters for some other program. (the target Program) The target program determines what "better" means, and it writes a merit value to the screen. The parameters appear in a configuration file for the target program. Although metavolv.py is written in Python, the target program can be any executable file that meets two conditions: It must read a configuration file to get values for parameters, and it must eventually write a result to the screen. Metavolv will repeatedly execute the target program, each time re-writing the configuration file with new parameter values. Metavolv.py will use two other Python files, modify.py and editThis.py. The three files together comprise the program. Metavolv is primarily designed for stochastic target programs, and also for those that require significant execution time. For such programs we cannot be sure of finding a global optimum in a reasonable time span; we are primarily interested in improving the set of parameters that we start with. Hence we are primarily attempting to move toward a local optimum.
EvSail demonstrates the ability of neuroevolution to create a "virtual
yachtsman" capable of navigation & guidance of a simulated sailboat. It is
written in standard C. All source code is included, along with ample
documentation. This version has an interface to gnuplot, and makes graphs of
trajectories during evolution.
EvSail consists of the following principal components:
- A mathematical model of sailboat physics, involving lift & drag of the keel &
sails, and vector resolution of relative wind and water flows. The virtual
sailboat moves under the influence of wind with controlling inputs of sail
and keel angle of attack.... read more
SailChallenge 2.0 for Unix and Windows is available for download, from the
Files section of the ANNEvolve Sourceforge project:
http://sourceforge.net/project/showfiles.php?group_id=78946
SailChallenge consists of:
* A selection of 'chromosome' files each specifying an Artificial Neural
Network (ANN).
* C sources and Makefile for the executables: the ANN controller, and the
hand-coded alternative.
* An initial settings file, specifying the ANN to run, number of runs, etc.
* The Python graphic interface program, which communicates via pipe with the
controller executables; plus .PNG files for the program.
* Simple documentation for running SailChallenge. (Details on creation of the
ANN chromosomes are available in our EvSail package.)... read more
EvNim is a program that evolves an ANN that can play the game of NIM. It is an example of machine learning. It is unsupervised learning because the program is given no strategy advice whatsoever. In fact the individual ANNs don't learn anything. There is a population of ANNs, and the population learns, even though the individuals do not. The learning is due to removing the worst players from the population, and allowing the others to breed. This is repeated through many generations. Eventually perfect players of Nim are produced. The details are explained in the documentation supplied with the package.... read more
ANNEvolve Releases Graphic Neural Net Demonstrator (VizANN-2.0)
VizANN is a program to graphically demonstrate the operational details
of two types of ANN (Artificial Neural Network). The program is 100%
GUI, meaning that there is no line-by-line input nor output. The program is
very easy to use with no programming experience required. It runs on
Windows, linux, Unix & Mac systems.
To use the program you must have Python installed on your computer. (A free
download from www.python.org) The program is written in Python, and supplied
as source code.... read more
EvSail 3.0 is now available for download.
It uses gnuplot to show trajectories during evolution.
This feature is optional. To use it you must have gnuplot (a free download) installed on your computer.
There are separate versions for Windows and *nix.
The most important changes are:
An optional additional neuron layer
Population size & neuron counts can be changed without recompiling. (They are now in the SAIL.INI file.)
VizANN-1.0 is now available from the ANNEvolve team at Sourceforge.net. This program shows the detailed working of a recurrent binary ANN with two neurons. VizANN graphically demonstrates the operational details of this type of ANN (Artificial Neural Network). There are two neurons in the VizANN display, and weight sets are supplied that allow it to perform the XOR function. Other weight sets can be entered into the diagram and their effect will be shown.... read more
The people at ANNEvolve have been working hard again and have released EvNim 1.08. This new release fixes a bug in earlier versions. The effect was to initialize only a small part of each chromosome in the initial population, leaving most of the chromosome with zeroes. Version 1.08 will evolve faster, especially at the beginning.
EvNim uses neuroevolution to evolve an ANN that plays the game of Nim. In this version of Nim two players begin the game with 15 "beans". As the game play continues players take turns removing beans. On each turn a player may remove 1, 2 or 3 beans. Each player must remove at least one bean and may not take more than 3. The player removing the last bean loses. EvNim will evolve a perfect player of the game. This is accomplished purely by a tournament among the population of ANNs, hence the perfect player ANN is created with no game analysis by the programmer. A hand-written perfect player is used to evaluate the results, but this information is not used in any way to guide the evolution or to influence the construction of the ANNs.... read more
SailChallenge has gone unanswered. Six months ago the ANNEvolve project at Sourceforge.net presented a challenge to the scientific and engineering software communities to create a virtual sailboat controller. The Annevolve project has yet to hear about a successful controller, other than our own. Annevolve is an opensource project hosted at sourceforge.net.
Here are the details for the SailChallenge competition:... read more
ANNEvolve has gone through several successful releases and has also moved up to a top 25 ranking on Sourceforge in the Artificial Intelligence area. So, who has led this project to where it is today?... Mitchell Timin, a guy with a Ph.D that learned he could think for himself, not to mention he had a little bit of spare time on his hands.
The following is an interview between ANNEvolve's founder and leader Mitchell Timin and Mike Livsey.... read more
The Annevolve project has released another update to their Evsail software, now at release 2.4. This time we added migration. Now, if two or more copies of EvSail are running, then chromosomes will migrate among them. If they are on the same computer, then no additional software is required. If they are on networked machines then an additional program is required. This program is currently being developed. This software now behaves essentially the same as our 4Play project, which has had the migration capability for some time.... read more
More great news from the Annevolve team! Before we end the year we wanted to get one more release out and we are happy to announce the release of 4play 1.1. This new version contains many improvements and several bug fixes.
The purpose of this software is to demonstrate that recurrent neural networks can solve a problem requiring both active use of RAM and logical decision making. They are thus able to do what is usually done by a procedural computer program. In the present case the ANN that does this has been found by simulated evolution. ... read more
4play is a new program that performs neuroevolution. It uses simulated genetic evolution in order to optimize an ANN. 4play is being developed by the opensource project ANNEvolve. It is written in standard C for all platforms, and may be downloaded from the sourceforge website, below.
The motivation for this software is to demonstrate that an ANN can store data in memory, and make use of that data. This is something that cannot be done by the most common types of ANNs, such as MLP's. Feed-forward ANNs have only the equivalent of ROM; they have no writeable memory. Training or evolving the ANN determines a set of weights and biases that can handle a given problem. This memory is analogous to ROM. It is also analogous to species learning, as done by ants or bees, whereby the species as a whole has learned much, but the individuals learn little. In contrast, there are problems that require learning after the training or evolution is completed. In principle, an ANN with recurrent connections can act as a RAM and store information even with fixed weights & biases. The challenge was to create an ANN that "knows" how to make use of this ability. Therefore a problem was chosen in which active, RAM-like, memory was central to the solution. The 4-card puzzle in 4play requires the ANN to remember the locations of two cards, and also the identity of those cards. Then it must make correct decisions based on that information.... read more
Did you know that the Annevolve project is home (well, part time anyway) to a skydiving, mouseball collecting Unix admin, Eric Anderson? Eric has been with the Annevolve project since May, 2003. As a creative problem solver, Eric is fascinated at the idea that a machine could adapt. He is very interested in AI, machine learning, decision-making, data storage and processing, and neural nets,
This article is based on an email interview between Annevolve's Eric Anderson and Mike Livsey.... read more
Objective Comparison of Virtual Sailboat Controllers
Sail Challenge 1.2 is now available for download. See if you have what it takes to create a virtual sailboat controller!
The Sail Challenge package consists of software in C that includes a physics model for a virtual sailboat, and a virtual yachtsman, or controller. The object of the controller is to circumnavigate a circular island. The purpose of this is to allow anyone to substitute their controller for ours, and see how it performs.... read more
Adaptive Optimal Controllers Generated by Neuroevolution
The Annevolve project is moving ahead with the release of EvSail 2.3. This program evolves ANNs that control virtual sailboats. These must function in spite of randomly varying winds and attempt to circumnavigate an island in minimum time. Hence, these ANNs are adaptive optimal controllers.
EvSail 2.3 now runs twice as fast as previous versions. This increase in speed was obained by replacing the conventional sigmoid formula with a pair of parabolas and two horizontal lines.... read more
The Annevolve project is moving ahead with the release of EvSail 2.2. This program evolves ANNs that control virtual sailboats.
EvSail 2.2 emphasizes the full random mode which was introduced in EvSail 2.0. The program is now able to evolve virtual yachtsmen that can reliably circumnavigate the island in randomly changing winds, and from random starting positions.
This release includes additional features including:
- In RandomMode 0, EvSail no longer re-calculates the fitness of survivors. Their fitness has already been determined. This causes a large increase in execution speed.
- A stop condition is checked so that the program can terminate early if a certain condition is reached.
- At end of execution the elapsed time is shown and a double-beep sounded.
- The fitness function has been modified to give negative fitness to any ANN that goes backward or hits the island.... read more
Welcome to the Sail Challenge 1.0. See if you have what it takes to create a virtual sailboat controller. We have included an example controller and the sailboat physics model from our EvSail program to get you started. The example controller is an artificial neural network, but yours may be hand coded, or use any technology that appeals to you. You may even use the EvSail software to create a better one that we have!... read more
The Annevolve project is moving ahead with the release of EvSail 2.0.
EvSail 2.0 contains an optional stochastic wind model in either a highly random or slightly random mode. The fitness function, which guides evolution, is based on progress sailing counter-clockwise around a circular island. The SAIL.INI file can initialize several more parameters, including the starting position of the sailboats. With this release, when a new ANN evolves with superior fitness, the corresponding boat trajectory data is printed. This is suitable for plotting with gnuplot or other plotting utility. For those that want to learn how EvSail works will be happy to see the greatly enhanced documentation.... read more
News flash just in, after going through several webmasters and months waiting for a website, the Annevolve project found someone that delivered results! The Annevolve project now has a website!
Thanks to Ryan Tetter, our web designer, who produced the Annevolve website. This is a long awaited addition to the project. The website will be updated over the next several weeks with additional information to fill in some gaps. Currently, the website contains general information about the project and a tutorial about neural networks. The site will contain more tutorials, project news, file releases, and other project information.... read more
Great news, EvSail 1.3 is now released! The Annevolve project fixed an error in the EvSail program. Now when a saved ANN is placed into memory, EvSail prints each memory location that was used into a separate file. This allows EvSail to use the correct ANNs when they are read back into the program.
The EvSail program is moving along. We are anticipating the release of EvSail 2.0 fairly soon, which will hold some interesting features including a stochastic wind model so that the wind shifts in direction, and changes speed, in a semi-realistic manner.
Great news! The Annevolve project will get a website! Ryan Tetter joined our team as the new web designer. This comes as a relief to the project after going through several webmasters in the past. Ryan has already submitted a draft of the site to the team. It won't be long before Annevolve has a new website.
The Annevolve project is proud to release EvSail 1.2, a virtual sailboat that moves under the influence of virtual wind with controlling inputs of sail and keel angle of attack. The Annevolve team created an ANN (Artificial Neural Network) that can trim the sails and adjust the rudder of a virtual sailboat. This allows the ANN to sail around an island in near optimal time, the minimum possible time. The trip around the island also includes a virtual boat to tack upwind. This program is a mathematical model of sailboat physics involving lift and drag of the keel and sails and vector resolution of relative wind and water flows. ... read more
ANNEVOLVE PROJECT RELEASES NIM EVOLVER
evnim-1.06.zip is the final version of this package, which uses simulated
genetic evolution to create an Artificial Neural Net (ANN) that plays the game
of Nim. The zip file includes thorough, illustrated documentation of the
program and its underlying theory. The files are all in plain text format,
except for some binary files representing "chromosomes" of ANNs. A program is
included which interprets these files. The illustrations are in the form of
.gif files. A DOS executable of the EvNim program is included for those who
may not have C compilers.... read more