If you don't have the jvm, click here
If you want to learn more about this project click here

Eclipse project with source code



Applet User Guide

The parameters below can be tweaked. One of the nice features of the applet is the ability to speed up or slow down a run in the middle of that run. This can be done by pausing the run, changing the run speed or percent to display and continuing the run. One can also tweak other parameters during the run. However, the num of the respective agents will only be modified when the run is restarted.

All parameters

These parameters will only take effect after Start/Restart is pressed.

Num Sheep - blue circles, number of sheep in run
Num Wolves - red circles, number of wolves in a run
Num Grass - black circles, number of grass units in run

Online Neuro-Evolution Parameters

These parameters will take effect after either Start/Restart or Pause/Continue is pressed when the run resumes.

Epoch Length - number of iterations in an epoch
Birth Cost - penalty for each time a sheep is bitten
Food Bonus Value - reward for each time a sheep eats grass for 1 time step
OverConsumption Penalty - not currently used
Mutate frac - % to mutate rather than replace using crossover
% keep btw epochs - % of individuals to keep for each run
Num epochs - number of epochs for the run
Mutate prob - not currently used

Run speed - controls the rate of painting
Percent to display - controls the number of epochs that are display

Graphing Fitness of Best Individuals over Time Parameters

These parameters will take effect after either Start/Restart or Pause/Continue is pressed when the run resumes.

Time Window Max - number of time steps displayed at a time
Fitness Window Max - maximum viewable fitness graphed
Fitness Window Min - minimum viewable fitness graphed

User Interaction

The applet is multi-threaded in order to allow the user to make changes in the user interface while the computationally intensive portion of the applet runs. One may find it agreeable to pause a run when one needs the cpu to complete a high priority task and then resume the run when that task is completed. Although it is possible to suspend a thread when the applet is minimized, I prefer to be able to let the applet run even if it is minimized.

Configurable Parameters

Parameters can be modified during a run. For example, one can simply pause the current run, tweak some parameters, and then continue a run which will use the new parameters. This can be extremely useful if one wants to evolve a population while not watching the applet. In this case, evolution may proceed much more quickly because the time consuming drawing phase is skipped. Additionally, one can increase or decrease the speed of the drawing phase so that users can watch the action at a pace that is agreeable to them.