Tournament Scheduler

Project Proposal by Martin Stacey


Tournament Scheduler

Software

Java or C++ or Smalltalk or another object oriented language with good GUI facilities

Covers

GUI application development, artificial intelligence search methods

Skills Required

Programming, some interest in artificial intelligence

Challenge

Conceptual ??? Technical ?? Programming ???

Brief Description

An artificial intelligence application that someone might actually use! When I worked at the Open Univesity and DMU Milton Keynes, I occasionally played for the Mad Kows of Milton Keynes (the Open University's Ultimate team - see http://www.mkultimate.com/) in tournaments in which teams play four or five games a day on Saturdays and Sundays, or sometimes longer periods. Organising such tournaments is hard work, and one difficult job is scheduling the games. The schedule should fulfil a number of criteria of varying importance, such as not requiring a team to play three games in succession, not requiring a team to play two games in succession on widely separated pitches, two teams from the same club should be kept apart if possible, and so on. Scheduling to meet conflicting constraints is a classic artificial intelligence problem, as it often involves search and backtracking to find the best solution. One advantage of automating it is that you can generate new schedules quickly for unforseen events or hypothetical situations, such as a team not turning up to a tournament.

Your task is to develop a robust user-friendly stand-alone Windows application or web-based tool for scheduling tournaments - I want a product that really works. It should generate easy-to-read hardcopy output as well as screen displays. It should enable users to input and edit information like team names and seeding order, and time slots and number of pitches; and also tailor the set of constraints to match the circumstances of individual tournaments. How much sophistication you put into handling constraints and hypothetical situations is up to you - there is a lot of scope for exploring AI search techniques. (See http://www.cs.rochester.edu:80/u/ferguson/ultimate/upa-formats/ for a detailed guide to some aspects of tournament scheduling and a lot of tournament formats. Can you do better?)

Extensions

A complete tournament management system that records game results, works out rankings and play off places, and generates tournament result reports. If you're developing a scheduler for Ultimate tournaments, you might want to hook in the Infera ranking calculation system (see http://wol.ra.phy.cam.ac.uk/ultimate/infera/).

An interactive WWW application that enables everyone with a web browser to use your system remotely to schedule their tournaments, without possessing their own copy. (If it works and is robust enough, I'll install it.)

It would be a great help to a tournament organiser to have automatically generated well-formatted printable versions of schedules and any other information managed by the system.

Variants

A system to perform any other practically useful scheduling task.


Back to