<< , >> , Title , Contents , Index


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.

Note that several things are not detailed here:


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.

6.3 GUI

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.

<< , >> , Title , Contents , Index