From ok@atlas.otago.ac.nz  Fri Mar  3 00:00:49 2000
Received: from atlas.otago.ac.nz (atlas.otago.ac.nz [139.80.32.250])
	by swi.psy.uva.nl (8.9.3/8.9.3) with ESMTP id AAA21237
	for <prolog@swi.psy.uva.nl>; Fri, 3 Mar 2000 00:00:48 +0100 (MET)
Received: (from ok@localhost)
	by atlas.otago.ac.nz (8.9.3/8.9.3) id MAA26445;
	Fri, 3 Mar 2000 12:00:18 +1300 (NZDT)
Date: Fri, 3 Mar 2000 12:00:18 +1300 (NZDT)
From: "Richard A. O'Keefe" <ok@atlas.otago.ac.nz>
Message-Id: <200003022300.MAA26445@atlas.otago.ac.nz>
To: cs8486@hotmail.com, prolog@swi.psy.uva.nl
Subject: Re:  Recommendation on Project?

	I'm doing Intelligent Timetable Generator for my project,

One of the programs at the Prolog Benchmarking Workshop held some time
ago was a timetabling program.  It ran in VM/PROLOG, which at that time
had no constraint processing facilities.  It is certainly doable.

However, the major issues are algorithmic.  Timetabling is one of the
standard NP-hard problems.  There is a fairly substantial literature
on timetabling, because it is of such practical importance.

Of course you can _try_ using an off-the-shelf constraint solver.

Be aware that in most university timetabling there is _no_ feasible
schedule.  For example, this year, I'm studying a paper as well as
teaching others, and the lecture for the paper I'm studying clashes
with the lecture for a paper I'm teaching.  The way out is that the
paper I'm studying is set up to handle remote students through the Web.
In other clashes, students are just told that they -can't- do that
combination of papers.

You may need some sort of hierarchical constraint solver (see the
DeltaBlue algorithm, for example) where some constraints are regarded
as being more important than others.

