NOPT042 Constraint programming
In the tutorial we will be modeling constraint problems in the logic-based multi-paradigm language Picat
(Pattern-matching,
Intuitive,
Constraints,
Actors,
Tabling).
Tutorial schedule
Before the first tutorial
1st tutorial (Sep 30)
- Program: Overview of Picat.
- Homework: leaves
2nd tutorial (Oct 7)
3rd tutorial (Oct 14)
- Program: Improving models, symmetry breaking, solvers.
- Homework: boardomino
4th tutorial (Oct 21)
- Program: Search space, search strategies.
- Homework: knapsack - due on Nov 4 (Oct 28 is a national holiday)
5th tutorial (Nov 4)
- Program: Dual modeling, channeling. Assignment.
- Homework: stable-marriage due on Nov 11
6th tutorial (Nov 11)
- Program: Modeling functions. Scheduling, the cummulative constraint
- Homework: moving due on Nov 18
7th tutorial (Nov 18)
- Program: Rostering
- Homework: feast due Nov 25
8th tutorial (Nov 25 )
- Program: Routing
- Homework: routing due Dec 2
9th tutorial (Dec 2)
- Program: Implicit constraints
- Homework: life due Dec 9
10th tutorial (Dec 9)
- Program: Modeling with sets
- Homework: golfers due Dec 16
11th tutorial (Dec 16)
- Program: Tabling
- Homework: triangle due Jan 6
12th tutorial (Jan 6)
Resources
Credit requirements
There will be 12 homework assignments each of which is worth 1 point. In order to get the credit, you must gain at least 8 points, out of which at least 4 points must be from the second half of the semester (assignments 7-). Expect increasing complexity of the assignments as the semester progresses. There will be an additional option to get at most 4 points after the end of classes for solving somewhat harder problems.
The solutions to the homework assignments must be 100% your own work. Do not discuss them with anyone but me, do not search for solutions on the internet, and do not share your code.
Frequently asked questions (FAQ)
- What should I do if I have a question? — Check the FAQ. If you don’t see the answer here email me putting “nopt042” in the subject.
- What if I want a consultation? — Talk to me after class, come to the scheduled office hours, or email me to arrange an appointment.