Project Title: The Development of a Heuristic Algorithm for Tournament Scheduling at the University of Nottingham Student: James Edwards Course: MSci in Computer Science Abstract: This project proposes an automated scheduling system to be used by students at the University of Nottingham. This system is to aid students in producing fair sports schedules for other students to take part in. There a plenty of sporting competitions created each year at the University for a Variety of reason, this gives an area in which an application can be applied. The dissertation also goes into great detail about the challenges in scheduling and techniques that have been used to address them. Sufficient research is applied to techniques such as integer programming, constraint programming, local search techniques and my chosen method of hill climbing. The focus of this dissertation is the design of a heuristic algorithm that takes into account a considerable number of constraints that appear in 'typical' University sports competition. Scheduling real life problems is considered a difficult task considering the large number of constraints that need to be satisfied at any given time. This dissertation is able to produce a sports schedule up to fifty teams using a hill climbing technique which is competitive against other attempts in the literature such as Urban and Russell (2003)[9] where the method is tested up to sixteen teams. Where this project differs to other before it is it is able to implement a flexible dynamic design open to changes from a list of predetermined constraints. These constraints are either hard (must apply by) or soft (attempt to reduce) constraints. There are many implementations where hard constraints alone have been tested but few that are specific to problems faced in the real world. Here this dissertation introduces some key soft constraints that are faced at the creation of a schedule at the university, including limited facilities, a share of pitches, break minimization and removal. An increase in soft constraints will increase complexity and execution time and an attempt to reduce and solve such issues during implementation is undertaken. A user friendly interface is created at the end of the implementation which combines the algorithm and scheduler into a simple easy to user window. While this interface remains open a user is able to generate schedules based on their desired constraints producing randomly generated matrixes on each run. Evaluation is made at the end giving positive results to the creation of a sporting schedule under all altercations of the implemented constraints. Being able to create large schedules that satisfy all hard and soft constraints is a difficult complex task which increases as the number of teams increase. In the summary at the end of this dissertation a full conclusion is made over the successful implementation of another real world problem in scheduling.