|
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.
|