80 likes | 90 Views
A Student Advisory System: a configuration problem for constraint programming. Kevin McDonald & Patrick Prosser. The Problem. University degrees are now modular a degree is composed of a set of modules each module is worth a certain amount of credits
E N D
A Student Advisory System: a configuration problem for constraint programming Kevin McDonald & Patrick Prosser
The Problem • University degrees are now modular • a degree is composed of a set of modules • each module is worth a certain amount of credits • students must accumulate a minimum number of credits • modules have pre and co-requisites • Students select modules • they design/configure their own degree course • they want to know implications of choices made • they want to know why certain choices are forced or disallowed
The Glasgow Computer Science Problem (4th year of study) This is a pilot study • 4th year is split across two semesters • 8 modules must be taken • 4 or 5 modules can be taken in 1st semester • 3 or 4 modules can be taken in 2nd semester • there are 8 modules to choose from in 1st semester • there are 8 modules to choose from in 2nd semester • The 1st semester module NCT is a prerequisite for 2nd semester module AC
Modeled as a CSP in Choco • Each module is an IntVar with 0/1 domain • take (1) or don’t take (0) • Each semester is an IntVar • the number of modules that can be taken in that semester • Constraints are • summation for each semester • summation in total • prerequisite as implication P Q • The problem is NOT solved • the user selects modules or de-selects modules • the user can specify the number of modules in a semester • arc-consistency is established • user can step back (undo a decision)
Explanations • User can ask why a module is disallowed or why a module is forced • why is a value disallowed? • why is a value forced? We use Ulrich Junker’s QuickXplain to explain event X
And example of Explanations by QuickXplain • Assume we have made the following decisions • A,B,C,D.E and somewhere in that sequence X has occurred • undo all decisions • make decisions A, then B, then C, then D, … and X occurs! • D is a culprit! • Undo all decisions • make decisions D, then A, then B, … and X occurs • D and B are culprits! • Undo all decisions • make decisions D, then B, … and X occurs • D and B are a sound and minimal explanation! X could be any event
Conclusion & Future Work • The CP encoding captures the dynamics of decision making • data base solutions failed to do this • QuickXplain is very neat • The encoding is simple • Although a CSP, it is not solved in the traditional sense • Did not need to use techniques from dynamic CSP • maybe required on large problem, due only to size. • A bigger problem with a GUI is “on the cards” • Why only arc-consistency? Why not higher levels of consistency?