TOGA Roadmap

Title:TOGA Roadmap
Author: Dave Haynes
Organization: Thuswise Ltd, UK
Contact: toga@thuswise.co.uk
Version: 0.01.002 Supercedes previous version 0.01
Date: 15th August 2003

Contents

Current Status

TOGA's GA implementation is still very basic. For example, it has no Elite controlling mechanism. Also, it has been tried and found wanting against the problems posed in the 2002 PATAT Timetabling Competition. Of course, these challenges were deliberately designed to be difficult. It's possible that even in its present form TOGA might be a useful tool against real-world problems.

One immediate criticism you could level at TOGA is that it is slow. You need a couple of hours to spare at least! I don't see this as an issue as yet, for the following reasons:

What TOGA currently offers is a fully functional framework as a basis for development; "the simplest thing that could possibly work".

Future Priorities

A move to Python 2.3 will enable a rewrite, and hopefully result in faster performance. I intend to try using Sets, which will eliminate an ugly hack currently in use with regard to populations.

I hope in future releases to hybridise the algorithm, perhaps to include Graph Colouring and Matching to improve the chances of feasible solutions. These could still be directed by GA; for example, in choosing strategies to cope with degeneracy.

It is likely that chromosome encoding will change radically, therefore. Also, the Objective function is going to change. I'll be adding extra measures; for example, to balance staff workload evenly, or to maintain a consistent association between staff and pupils.

In the longer term, I am developing a graphical interface to TOGA. I have an idea that it could form part of a wider database application for schools, perhaps based on the Twisted framework and PostgreSQL. I have some learning to do before then. If you're familiar with these environments, and want to help, please get in touch.

Lastly, I'll be considering an overhaul of source distribution for future releases.

Release Schedule

Version Release date
v0.01 Early July 2003
v0.01.002 Mid August 2003
v0.01.003 Late September 2003

Development Schedule

v 0.01.003

  • [courseNo, .., pupilNo] -> [courseID, .., pupilID]
  • Fork to become grapevine package
  • Adopt Python 2.3
  • Investigate status of new wxPython namespace
  • Refactor nsga2.Optimiser.Run to allow plug-in methods for selection, etc
  • Create and save the Y table
  • Plot population statistics for performance analysis
  • Implement Elite controlling algorithm
  • Investigate if using Sets speeds up the Objective and Book methods
  • Research Sequential Graph Colouring Algorithm (Greedy Algorithm?)
  • Research Matching Algorithm
  • First implementation of heuristic to improve feasibility
  • Advisor should pronounce on difficulty of problem
  • Token GUI
  • Implement bug fixes in response to v0.01 and v0.01.002

v 0.01.004

  • Basic functional GUI
  • Implement Heuristic / GA hybrid
  • Improve distribution (distutils ?)

Change Log

v 0.01.002

  • Package name is now toga-src-0-01-002
  • Advisor previously ignored staff commitments: fixed this
  • Fixed trapping of python toga.py (ie no arguments)
  • Edited documentation for style
  • Smartened up timetable plotting
  • Renamed previously 'B' table as 'Y'. The Booking table will now be the 'master' table of a working database. The Prototype table is to be a template with which to create the initial state of the Booking table
  • Refactored main() as per Guido's article
  • Created class diagram of TOGA for developers manual
  • Removed discriminator hack
  • Add unskilled objective
  • Added some new Table codes - some of these are reserved for future use:

Summary of Table Codes

Code Name Description
A Arrangement Staff arranged to teach specific lessons
B Booking Bookings against intervals, not slots
C Course  
D Department  
E Enrolmemt  
F Facility  
G    
H Home Locations preferred by members of staff
I Interval Time Intervals for the whole year. intervalNo, slotNo, start, end
J    
K Candidate  
L Lesson  
M Commitment  
N Location  
O    
P Pupil  
Q Requirement  
R Resource  
S Slot  
T Staff  
U    
V Aversion Staff who prefer not to work in certain slots
W    
X    
Y Prototype Output of TOGA, against slots, not intervals
Z Zone Locations preferred by departments