150 likes | 299 Views
Using Constraint Programming to Assign Students to First-year Seminars. Xiang Yao ( yaox@dickinson.edu ) Advisor: Timothy Wahls (wahlst@dickinson.edu) Submitted in partial fulfillment of Honors Requirements for the Computer Science Major Dickinson College, 2013 March 17, 2014.
E N D
Using Constraint Programming to Assign Students to First-year Seminars Xiang Yao (yaox@dickinson.edu) Advisor: Timothy Wahls(wahlst@dickinson.edu) Submitted in partial fulfillment of Honors Requirements for the Computer Science Major Dickinson College, 2013 March 17, 2014
Introduction • Constraint programming is used for solving constraint satisfaction and combinatorial optimization problems ( CSP & COP ) • CSP: solve problems defined by object having to satisfy limitations • COP: find the optimal solutions from a set of objects • Ex. old-fashioned marriage problem • Language: ECLiPSe • Use techniques such as node and arc consistency to limit the domains of variables and find the solutions in the search tree Emily Bill Tim Lily Sam Rosy
Research Topic • Problem Description: 1. More than six hundred students for each incoming class 2. Each student choose six seminars with different rankings 3. Each student can be either international or American and male or female • Long-term Planning: 1. Solve basic scenario 2. Add multiple objective functions 3. Compare the results with the operations research approach
Method Used: Finite Domain Constraint • Method 1: A finite domain variable has its values restricted to finite set • Difficulties: • Model’s flexibility • Running time NT Q B1 NSW WA SA V en.wikipedia.org
Method Used:Finite Set Constraint • Method 2: Have a lower bound and an upper bound for each set • The cardinality limits the number of elements in each set • DisjointConstraint makes sure each student is assigned to one class
Method Used:Branch and Bound Algorithm • Find a good solution quickly . The algorithm iteratively finds better and better solutions. • First, it finds a solution. • Then, it adds a constraint to exclude additional solutions, making Θ’ no better than Θ. • Next, it solves the new constraints with the one added and updates the previous solutions to find a better solution. • Finally, this process keeps going until the program cannot find any feasible solutions.
Previous Progress • Use Finite Domain Constraint Constraint: Conjunto • Too slow • Use Finite Set Constraint: Cardinal • Does not work with ic set • Use Finite Set Constraint: ic_hybridFinite Set • Be able to optimized based on gender, nationality and ranking. However, it is slow when including ranking. • Currently, use Finite Domain Constraint: We are able to optimize on the ranking
Current Progress • Add the mathematics models for both finite domain and finite set model • Apply different searching strategy for finite set and finite domain model • Finite Set Model: search different groups of variables • Finite Domain Model: search domain element in order(default: numerical. We implement to search in students’ actual choice), first fail strategy
Preliminary Resultsfrom Finite Set Constraint • Search certain groups of variables first to take them into priority. • Disadvantage: cannot optimized all three objectives equally at the same time. Dev: -785518 -> Male: 8 7 7 8 7 7 7 6 7 6 7 4 7 6 7 7 7 7 7 4 7 7 7 5 7 6 7 7 7 7 7 7 5 7 7 6 6 7 6 6 7 -> Intern: 2 1 3 1 3 3 3 3 3 1 2 1 3 2 3 3 1 2 0 1 1 0 3 2 2 1 2 1 1 3 3 3 3 0 3 0 3 2 1 3 3 -> Size: 16 16 16 16 16 16 16 15 16 14 16 12 16 16 16 16 16 16 15 9 16 16 16 13 16 15 16 16 16 16 16 16 16 16 14 16 16 16 16 16 16 -> First Choice: 139 + + 119 + + 108 + + 95 + + 90 + + 84 Found a solution with cost -785518
Preliminary Resultsfrom Finite Domain Constraint • For finite domain variable, we only consider the ranking of the program. After the program runs for 8 hours, we only have two solutions. • 400 • 85 • 58 • 51 • 27 • 15 • Found a solution with cost 3292 • 400 • 85 • 56 • 52 • 27 • 15 • Found a solution with cost 3291
Future Work • Try hard constraints on the number of certain groups in each seminar and iteratively raise the constraints. • Research different labeling and search strategies.
Reference • Michael Marte. Models and Algorithms for School Timetabling - AConstraint- Programming Approach. Dissertation/Ph.D. thesis, Institute of Computer Science, LMU, Munich, 2003. • Delgado, A. and Perez, J (2005). An Interactive Tool for the Controlled Execution of an Automated Timetabling Constraint Engine. In R. Roy (Ed.). Multiparadigm • Programming in Mozart/Oz (pp. 317-327). Berlin: Springer Verlag. • Kim Marriott and Peter J. Programming with Constraints: An Introduction, first edition. Stuckey. The MIT Press, 1998. ISBN: 0-262-13341-5 • Willoughby, K. and Zappe, C. (2006) A methodology to optimize foundation seminar assignments. Journal of the Operational Research Society 57(8): 950–956. • Forrester, R., Hutson, K., and To, T. (2013) Improving the Quality of the Assignment of Students to First-Year Seminars. OR Insight 26(2):120-139. • Forrester, R and Hutson, K Balancing Student and Faculty Preferences in the Assignment of First-Year Seminars, submitted to International Journal of Information Technology and Decision Making • River, NJ. Krass, D. and Ovchinnikov, A. (2006) The University of Toronto’s Rotman School of Management uses management science to create MBA study groups. Interfaces 36(2): 126–137. • Azevedo, Francisco.(2012) Cardinal: A Finite Sets Constraint Solver Constraints. Constraints 12 (1): 93-129. • Müller, T. (2008). Scheduling a Golf Tournament. Retrieved July 02, 2008,from: http://mozart.github.io/mozart-v1/doc-1.4.0/fst/node6.html#fset.example s.golf. • Müller, T. (2008). Scheduling a Golf Tournament. Retrieved July 02, 2008, from: http://mozart-oz.info.ucl.ac.be/documentation/fst/node1.h tml#fset.tutorial.intro • Russell, Stuart and Norvig, Peter. Artificial Intelligence: A Modern Approach, third edition. Prentice Hall, 2009. ISBN: 0136042597