Constraint Programming
Connections with HPC
Jean-Guillaume FAGES, PhD COSLING CEO
Constraint Programming Connections with HPC Jean-Guillaume FAGES, - - PowerPoint PPT Presentation
Constraint Programming Connections with HPC Jean-Guillaume FAGES, PhD COSLING CEO Outline 1 What is Constraint-Programming? 2 How does it work? 3 How does HPC contributes to Constraint-Programming? CP Introduction - COSLING - Teratec17 2 /
Connections with HPC
Jean-Guillaume FAGES, PhD COSLING CEO
1 What is Constraint-Programming? 2 How does it work? 3 How does HPC contributes to Constraint-Programming?
CP Introduction - COSLING - Teratec’17 2 / 29
What is Constraint-Programming?
CP Introduction - COSLING - Teratec’17 3 / 29
What is Constraint-Programming?
COSLING
Constraint-Programming A programming paradigm between AI and OR to solve constrained decision problems in a generic way.
CP Introduction - COSLING - Teratec’17 4 / 29
What is Constraint-Programming?
COSLING
Constraint-Programming A programming paradigm between AI and OR to solve constrained decision problems in a generic way.
CP Introduction - COSLING - Teratec’17 4 / 29
What is Constraint-Programming?
COSLING
Focus
→ CP is a generic toolbox to design algorithms
CP Introduction - COSLING - Teratec’17 5 / 29
What is Constraint-Programming?
COSLING
CP Introduction - COSLING - Teratec’17 6 / 29
What is Constraint-Programming?
COSLING
CP Introduction - COSLING - Teratec’17 7 / 29
What is Constraint-Programming?
COSLING
CP Introduction - COSLING - Teratec’17 8 / 29
What is Constraint-Programming?
COSLING
CP Introduction - COSLING - Teratec’17 9 / 29
How does it work?
CP Introduction - COSLING - Teratec’17 10 / 29
How does it work?
COSLING
Constraint Satisfaction Problem (CSP) Defined by
CP Introduction - COSLING - Teratec’17 11 / 29
How does it work?
COSLING
Constraint Satisfaction Problem (CSP) Defined by
Variable Domain Example Binary two integers {0, 1} Integer (bounded) integer interval [ [3, 11] ] Integer (enum) integer set {−2, ..., 3, 12} Set (int) set interval [{2}, {0, 2, 3, 5}] Graph graph interval Real real interval [3.14, 12.7]
CP Introduction - COSLING - Teratec’17 11 / 29
How does it work?
COSLING
Constraint Satisfaction Problem (CSP) Defined by
Constraints Examples Arithmetic +, −, ×, ÷, =, >, ≤ , = Logical ∨, ∧, ⇒ , ⇔ Set ∩, ∪, ⊆ , card, partition Global AllDifferent, Cumulative, Regular, Circuit... Graph Degrees, NCliques, NSCC, Tree No restrictions!
CP Introduction - COSLING - Teratec’17 11 / 29
How does it work?
COSLING
CP Introduction - COSLING - Teratec’17 12 / 29
How does it work?
COSLING
Constraint Programming represents one of the closest approaches computer science has yet made to the Holy Grail
solves it. [Eugene Freuder]
CP Introduction - COSLING - Teratec’17 13 / 29
How does it work?
COSLING
Solving loop
Until all variables are fixed to a value (solution)
CP Introduction - COSLING - Teratec’17 14 / 29
How does it work?
COSLING
Solving loop
Until all variables are fixed to a value (solution) Optimization
Until no better solution exists
CP Introduction - COSLING - Teratec’17 14 / 29
How does it work?
COSLING
From constraints to filtering Every constraint comes with one or many filtering algorithms to remove inconsistent values (domain modifications)
CP Introduction - COSLING - Teratec’17 15 / 29
How does it work?
COSLING
From constraints to filtering Every constraint comes with one or many filtering algorithms to remove inconsistent values (domain modifications) Example
6,✚
✚
10}
0, ✁ 1, ✁ 2, 3, 5, 6}
CP Introduction - COSLING - Teratec’17 15 / 29
How does it work?
COSLING
From constraints to filtering Every constraint comes with one or many filtering algorithms to remove inconsistent values (domain modifications) Example: AllDifferent Let X = {x1, x2, x3} with x1 ∈ {1, 2}, x2 ∈ {1, 2} and x3 ∈ {1, 2, 3} such that x1 = x2, x1 = x3, x2 = x3 x1 ∈ {1, 2}, x2 ∈ {1, 2} and x3 ∈ {✁ 1, ✁ 2, 3}
CP Introduction - COSLING - Teratec’17 15 / 29
How does it work?
COSLING
From constraints to filtering Every constraint comes with one or many filtering algorithms to remove inconsistent values (domain modifications) Scope
reaching a fix point
CP Introduction - COSLING - Teratec’17 15 / 29
How does it work?
COSLING
Search Heuristic domain modification to drive the solving process
Binary branching At each node a decision (var, op, val) is taken
CP Introduction - COSLING - Teratec’17 16 / 29
How does it work?
COSLING
Search heuristics Which decision (var, op, val) to generate?
Many strategies
CP Introduction - COSLING - Teratec’17 17 / 29
How does it work?
COSLING
CP Introduction - COSLING - Teratec’17 18 / 29
How does HPC contributes to Constraint-Programming?
CP Introduction - COSLING - Teratec’17 19 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Parallelism Can we achieve significant gains using parallel computing?
CP Introduction - COSLING - Teratec’17 20 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Parallelism Can we achieve significant gains using parallel computing? Filtering parallelization Filtering algorithms could be called in parallel, but:
⇒ Not used in practice
CP Introduction - COSLING - Teratec’17 20 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Parallelism Can we achieve significant gains using parallel computing? Search parallelization
CP Introduction - COSLING - Teratec’17 20 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Portfolio
strategies run in parallel
Many strategies
CP Introduction - COSLING - Teratec’17 21 / 29
How does HPC contributes to Constraint-Programming?
COSLING
CP Introduction - COSLING - Teratec’17 22 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Work stealing [Jaffar et. al.]
Issue
CP Introduction - COSLING - Teratec’17 23 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Embarrassingly Parallel Search [Regin et. al.]
Issue
CP Introduction - COSLING - Teratec’17 24 / 29
How does HPC contributes to Constraint-Programming?
COSLING
CP Introduction - COSLING - Teratec’17 25 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Insight
CP Introduction - COSLING - Teratec’17 26 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Insight
Good news! It is often possible to decompose a problem
CP Introduction - COSLING - Teratec’17 26 / 29
How does HPC contributes to Constraint-Programming?
COSLING
HPC
CP Introduction - COSLING - Teratec’17 27 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Contact
CP Introduction - COSLING - Teratec’17 28 / 29
How does HPC contributes to Constraint-Programming?
COSLING
Main references
Difference in CSPs
http://sofdem.github.io/gccat/
Parallel Search in Constraint Programming Journals & conferences
CP Introduction - COSLING - Teratec’17 29 / 29