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
problem solver.
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
problem solver.
2. A guided TDD session to implement a custom constraint satisfaction
problem solver.

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
provided solver.
* TDD a custom implementation for a constraint
satisfaction solver.
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
2. 3.