## 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. | ||

Presenters | |||

1. Daan van Berkel Luminis |
2. | 3. |