FAQ

Q. How do I learn more about this project?

A. By using the mailing list and downloading the files. The mailing list has archives which anyone can read, and anyone can subscribe to the mailing list. The files are in .zip form, and contain programs written in C, and documentation. EvNim and EvSail have considerable documentation and source code commenting.

Q. Why is this FAQ so short?

A. We are awaiting questions from the public. These can be sent to the mailing list.

Q. Can you describe what the EvSail software is or does?

The short answer to the question is that EvSail demonstrates adaptive optimal control of a virtual sailboat, and also the use of simulated evolution to determine the necessary parameter values for the controller. Also, the controller is an artificial neural network.

A longer answer will describe the major components:

1. A simulation of the physics of a sailboat, considering it primarily as one wing in the water and one in the air. Vector mathematics is used to compute the local fluid flow over each wing. Lift and drag is then calculated and used to accelerate the boat. This is repeated every .1 seconds. The simulation is only approximate, but it models the most important phenomena. The resulting virtual sailboat responds to wind, rudder, and sail setting in a realistic manner. The model is not based on any particular real sailboat.

2. A wind model which simulates wind gradually changing in speed and direction in a pseudo-random, but realistic, manner. The model is not based on real meteorological data.

3. An artificial neural network (ANN) which is used as a controller. Its input signals are all boat-relative. They are: boat speed relative to the water, wind speed and direction relative to the boat, distance and orientation angle of a reference point on the land. These are what a sailor on board would see and feel from his point of view. The outputs of the ANN are the sail angle of attack and the keel angle of attack. (We assume the rudder is used to adjust the keel angle of attack; we do not simulate the rudder directly, only its effect.) The ANN has a few hundred "weights" (i.e., parameters) which determine its characteristics.

4. Simulated evolution software which creates a population of several hundred ANNs, each with a different set of weights. Each of the ANNs is given the task of controlling the boat and its performance evaluated. The evaluation is based on progress sailing counter-clockwise around the island. Those ANNs that don't perform well are replaced by "offspring" of those ANNs that perform well. The "offspring" are created from pairs of ANNs in a manner simulating the mating of simple organisms. This process is repeated through thousands of generations and results in ANNs that perform well. These surviving ANNs are adaptive optimal controllers for the task at hand.