SPA Conference session: Advanced Problem Solving: Constraint Satisfaction Problems
|One-line description:||Constraint satisfaction problems can describe and solve a wide range of real-life problems and are a valuable tool in a developers toolkit.|
|Session format:||Tutorial 150 minutes [read about the different session types]|
|Abstract:||During the course of developing software you are constantly challenged by problems. How to iterate efficiently over a set of objects? How to assign time-consuming tasks to workers in the best possible way? Often these problems are solved in ad hoc ways.|
A lot of these problems can be described as a constraint satisfaction problem. By recognizing a constraint satisfaction problem the opportunity arises to use constraint satisfaction solvers. This provides a uniform and battle-tested solution to common occurring problems.
In this session we take a closer look into constraint satisfaction
problems. These kind of problems are applicable in a wide range of
contexts. Examples include schedule planning, frequency assignment to cell
towers and work-flow optimization.
After an introduction to constraint satisfaction problems, you will get
the opportunity to try your hands on a few problems of your own. We
even go the extra mile and implement a simple constraint satisfaction
|Audience background:||Developer with a working knowledge of an object oriented background|
with an interest in solving problems.
|Benefits of participating:||By participating you will benefits in the following ways:|
* Acquire a powerful tool in you problem solving toolkit.
* Be able to specify and solve constraint satisfaction problems.
* Be able to implement a simple constraint satisfaction problem solver.
* Acquire a practical set references for future investigations.
|Materials provided:||* Presentation|
* Environment to experiment with constraint satisfaction problems.
* Interesting problems to solve.
* A guiding set of failing test to implement a constraint satisfaction problem solver.
|Process:||The session will start of with a practical introduction to constraint|
satisfaction problems. During the introduction examples of constraint
satisfaction problems will be given and solved with a constraint
satisfaction problem solver.
After the introduction the participants can try their hands on
specifying a constraint satisfaction problem of their own and solve
them with a provided solver.
After getting to know the constraint satisfaction problem paradigm,
participants can test drive a custom implementation for a constraint
satisfaction problem solver.
There will be two types of exercises.
1. Specific problems that can be solved by a constraint satisfaction
2. A guided TDD session to implement a custom constraint satisfaction
It is advisable to team up and pair-programming throughout the
practical part of the session.
|Detailed timetable:||00:00 - 00:45 Presentation about constraint satisfaction problems &|
how to solve them.
00:45 - 01:00 Introduction to several problems
01:00 - 02:30 Hands-on workshop working in parallel
* Solving constraint satisfaction problems with a
* TDD a custom implementation for a constraint
|Outputs:||Working knowledge of solving constraint satisfaction problems and the|
means to implement your own constraint satisfaction problem solver.
|History:||This will be the first time I will give this session.|
|1. Daan van Berkel