At the beginning of the semester we aimed to complete version 1 of BOTSsim
by the week 5 client meeting. This meant getting BOTSsim to the stage we
originally aimed to have it at the end of last semester. (See section 8.1.1 on
page 126
of this document.) We spent the rest of the semester working on BOTSsim Version
2. Version 2 has enhanced functionality over Version 1, and in some cases bots
actually achieve their set task.
The following lists the stages each of the components made, and the approximate
dates. See also the Gantt Chart which appends this report.
19
August 1997
|
Connected
the GUI/Environment Component, using the Complex Brain Environment Protocol
(CBEP). Both the brain and the GUI/Environment sides respond correctly to the
messages transmitted via this protocol.
|
1
September 1997
|
Created
a new version of the fast-eval function, written in Delphi instead of
Allegro Common LISP, in the hope of improving BOTSsim performance. This
function evaluates the environment at a given instant and determines what
action should be taken.
|
1
September 1997
|
Started
trialing fitness functions, rewarding the bot's behaviour in different ways.
The fitness functions have largely evolved by trial and error (this is not
unusual in the field of evolutionary computation, and so shouldn't be a cause
for concern). See section 3.2 on page 11 of this document for more information
about fitness functions.
|
9
September 1997
|
Improved
BOTSsim performance by using new population size defaults and tree depth
settings. Quartered the time for a population to successfully converge.
|
16
September 1997
|
Completed
statistical analysis scripts, written in Perl. These help us understand what
was occurring within the GP system. Statistics produced relate to best fitness
over time, average fitness over time, population diversity, a 2D fitness
histogram of the current generation and a 3D histogram of all fitnesses over
time. This has allowed us to gain much greater insight into the processes
occurring within the population, which has been instrumental in devising better
fitness functions and tuning Genetic Programming parameters.
|
5
November 1997
|
First
implementation of mirror messaging, in the hope of it helping bots working out
how to drop blocks into bins. See section 3.3 on page 13 of this document for
more information about mirroring.
|
18
November 1997
|
Debugged
mirror messaging, but found it didn't work. See section 3.3 on page 13 of this
document for more information about mirroring.
|
5
August 1997
|
Added
bin-collide sensor, so bots can determine whether they've made contact with a
bin.
|
2
September 1997
|
Created
evalution.pas, which contains the TEvaluation class (see
section 4.5.2 on page 50 of this report). This encapsulates the methods and
properties of a collection of worlds, as the TWorld class encapsulated
those of a single world.
|
2
September 1997
|
Completed
the environment.pas code, by writing the TWorld.Clone and
TWorld.InitSimulation methods, which are necessary for creating
workable environments.
|
11
November 1997
|
Implemented
Blocking I/O, which reduced CPU load and hence sped up BOTSsim's execution.
Instead of having the GUI constantly polling the brain for information,
blocking I/O allows the operating system wake up the GUI when the brain
responds.
|
2
September 1997
|
Fully
implemented the bot and environment windows, featuring panning and zooming,
removed redundancy from sensor information, and the ability to switch between
environments.
|
14
October 1997
|
Loading
and Saving of Template files rewritten and fixed. Template files are now in a
text format, which has helped us eliminate the bug with loading them.
|
28
October 1997
|
Completed
"robot ranking", which allows the user to quickly view the best bot, the
second-best bot, etc.
|
23
September 1997
|
Added
a shortcut that allows users to open a template (.TED) file from the main window.
|
21
October 1997
|
Implemented
Multiple Environment Windows, which allows users to view up to four
environments simultaneously during a run.
|
28
October 1997
|
Enhanced
Histogram Window, so the Histogram also shows pickups and Drops for bots, as
well as the original information about.
|
28
October 1997
|
Implemented
Show Environment button on the bot window.
|
4
November 1997
|
Improved
error messages, for when users try to view non-existent environments or bots.
|
4
November 1997
|
Storage
and Retrieval of Run Information and Rule Sets.
|
18
November 1997
|
Added
the ability for bot IDs to be displayed alongside the bots in the environment.
|
21
November 1997
|
Error
messages preventing users from running nonsensical templates, ie: when there
are fewer than one bot, distribution area and bin.
|