CP Next Challenge:
Simplicity of Use
Jean-François Puget
ILOG
1
Motivation
An industry (aka evil) stand point
• We monitor how our CP tools are used by
our customers in industry
• Many c...
Overview

• Compare CP with MP
• CP is too complex for engineers in industry
• How serious is this?

• Is CP academic rese...
ILOG optimization products
Same R&D team (I am their boss

)

• Constraint Programming (CP) products
• ILOG Solver and spe...
MP CP comparison
Not that easy! Cultural difference
• MP

• CP

• Programming
• Planning

• Solution
• Solution
• Feasible...
MP CP comparison
Many common points
• A problem is described by
• Variables
• Constraints (linear for MP, general for CP)
...
MP CP
Many hybrid combinations
• Use LP in global constraints for CP
• Use MP on one part, CP on the other, in
sequential ...
What precedes is not relevant!
An industry stand point
• What matters is the usefulness of the technology
• Is CP (or MP) ...
Example 1

• A big software company in SCM
• They use ILOG Solver and ILOG Scheduler in
their scheduling package
• This is...
Example 1 continued
True story
• They want transfer maintenance to an India
team trained 1 week on CP
• Indian people are ...
Example 2 : from another customer

True story
• What solution does the system outputs
when there is no solution?
• None

•...
Example 3: graceful graph
Graph coloring problem
x3

x0

x2
x1

m vertices and n edges. Color
vertices and edges with numb...
Example 3
Tighten the representation
• All different (abs(xi - xj)) for all edges (i,j)
• xi and xj are different, therefo...
Example 4 : coin design problem

From [Wallace 03]
• Select coin values so that any change can
be given with a minimum amo...
A model
Using OPL
range coin 1..6;
range change 1..100;
var int value[coin] in 1..100;
var int num[coin] in 1..100;
var in...
To make it work
Write search!
search{
generate(value);
generate (num);
forall(s in change) generate(sel[s]);
};

Straightf...
To make it work (continued)
The problem has symmetries
forall(i in coin: i <> 6) {
value[i]*num[i] < value[i+1];
};

It ru...
MP for dummies (engineers)
Modeling is what matters
1. Model your problem with
•

Decision variables (integer and continuo...
MP for dummies (engineers)
Modeling can be tricky
• It may run forever
• In such case, change the model
• Tighten it
• Use...
CP for dummies
Is modeling what matters?
1. Model your problem with
•

Decision variables (integer or continuous)

•

Cons...
CP for dummies
Modeling can be tricky
• Your model is not right
• Use that fancy global constraint
• Yes, I know it is log...
CP for dummies
Modeling can be tricky, the rest too!
• You’re not using the software as documented!
• You need to write a ...
CP for dummies
Modeling can be tricky, the rest too!
• Your problem has symmetries!
• State generators of the symmetry gro...
CP for dummies
Modeling can be tricky, the rest too!
• Use dominance constraints (or conditional
symmetry breaking)
• Use ...
CP vs MP for dummies

• In order to be able to use CP, one must master
modeling
• Same for MP.
• There are many more possi...
CP for dummies
Oxymoron
• CP is designed for clever users
• Academics
• Authors of CP systems

• Clever users that master ...
MP at work

• Modeling is what matters
• Modeling can be done independently from
solvers
• Several modeling languages: AMP...
MP research

• Oriented towards algorithms
• Input : an MPS file
• Output : a solution + duality information (gap,
reduced...
CP research

• CP is oriented towards toolkits
• One has to combine various pieces when trying
to solve a problem
• See th...
Example: symmetry breaking
Different approaches for similar issue
• In MP (Margot)
• Use graph automorphism software (NAUT...
CP academic research is wrong
From an industry stand point
• The more successful CP research, the richer CP
becomes
• Sele...
What can we do?

• Fire academics?
• No, see later why!

• Let’s not bother with engineers?
• No, because industrial succe...
Learn from MP
Modeling is what matters most
• Standard for expressing CP models
• Standard file format

• Existing CP book...
Learn from MP
Think algorithms
• Create executables
• Input is a problem, output is a solution
• Running time is what matt...
Learn from MP
Think about optimization
• CP is not geared towards optimization
• Almost no cost aware global constraints
•...
Learn from MP
Search code should come for free
• Improve “out of the box” performance
• Move away from DFS
• CPLEX is DFS ...
Learn from MP
Search code should come for free
• Learn during search
• No goods, symmetry breaking
• Learn which decisions...
Learn from MP

Reformulate before search
• Called “presolve” in MP
• For instance
• From X ≠ Y, Y ≠ Z, Z ≠ X add all_diffe...
Learn from MP

Explanations
• CPLEX provides for sensitivity analysis and
explanations
• Explanations are important when t...
Conclusion

• CP can solve complex problems, with good
performance
• BUT, CP is difficult to learn use and maintain for
en...
What academics could do
Some of this is already happening
• CP academic research should look at new topics
• Standard file...
If we (CP community) don’t do this…

• CP will stay …
• … as an academic research topic
• … embedded in industry packages
...
Upcoming SlideShare
Loading in …5
×

Cp04invitedslide

826 views

Published on

Slides for my keynote speech at the CP 2004 conference.
It laid out our roadmap to create CP Optimizer, a much simpler to use constraint programming solver

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
826
On SlideShare
0
From Embeds
0
Number of Embeds
145
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cp04invitedslide

  1. 1. CP Next Challenge: Simplicity of Use Jean-François Puget ILOG 1
  2. 2. Motivation An industry (aka evil) stand point • We monitor how our CP tools are used by our customers in industry • Many customers achieve very good performance with CP • But they find it difficult to learn, use and maintain • CP academic research offers little help here • Math programming (MP) community seems more interested in usability • SAT community as well 1/7/2014 2
  3. 3. Overview • Compare CP with MP • CP is too complex for engineers in industry • How serious is this? • Is CP academic research addressing the problem? • No, it even makes it worse! • What can we do about it? • Interesting new research topics • Conclusions 1/7/2014 3
  4. 4. ILOG optimization products Same R&D team (I am their boss ) • Constraint Programming (CP) products • ILOG Solver and specialized extensions • ILOG OPL Studio • Math Programming (MP) products • ILOG CPLEX • ILOG OPL Studio • It is “easy” to compare them and learn from their differences 1/7/2014 4
  5. 5. MP CP comparison Not that easy! Cultural difference • MP • CP • Programming • Planning • Solution • Solution • Feasible solution • Decision variables • X >=0 by default ≠ ≠ ≠ ≠ • No upper bound is OK • Almost integer is OK • Floating point computations 1/7/2014 • Programming • Computer programming • Solution • Optimal solution • Solution • Variables • X in [a, b] • a can be < 0 • a,b must be finite ≠ • Integrality is strict • Integer computations 5
  6. 6. MP CP comparison Many common points • A problem is described by • Variables • Constraints (linear for MP, general for CP) • An objective function • Models look similar • Tree search/ branch and bound for both • Inference at each node • Bound strengthening / Constraint propagation • LP relaxation / Global constraints 1/7/2014 6
  7. 7. MP CP Many hybrid combinations • Use LP in global constraints for CP • Use MP on one part, CP on the other, in sequential order • Use MP on one part, CP on another, concurrently • Dantzig Wolfe decomposition • MP on the master problem • CP for generating variables (columns) • Linearize CP constraints 1/7/2014 7
  8. 8. What precedes is not relevant! An industry stand point • What matters is the usefulness of the technology • Is CP (or MP) useful for my problem? • How can I assess that quickly? • Is a CP (or MP) code easy to tune, to maintain? • Is a CP (or MP) code robust ? • Does performance depend too much on data? • When faced with these questions • CP doesn’t provide good answers • MP seems much more appealing • CP performance is not the issue per se • CP has numerous successes in industry 1/7/2014 8
  9. 9. Example 1 • A big software company in SCM • They use ILOG Solver and ILOG Scheduler in their scheduling package • This is successful • Performance is great • They will not launch new CP projects • CP is difficult to maintain 1/7/2014 9
  10. 10. Example 1 continued True story • They want transfer maintenance to an India team trained 1 week on CP • Indian people are smart and cheap • First question from India: • Why do you write in your code IlcOr(x==a, x!=a) since this is a tautology? •This is a non deterministic choice point… 1/7/2014 10
  11. 11. Example 2 : from another customer True story • What solution does the system outputs when there is no solution? • None • I want a solution! • Nope • Explain me why there is no solution! 1/7/2014 11
  12. 12. Example 3: graceful graph Graph coloring problem x3 x0 x2 x1 m vertices and n edges. Color vertices and edges with numbers from 0 to n x5 x4 •Colors of the vertices must be all different •all different (x1, x2, …, xm) •Other constraints on edges •Color of edge (i, j) is abs(xi – xj) 1/7/2014 •Colors of edges must be all different 12
  13. 13. Example 3 Tighten the representation • All different (abs(xi - xj)) for all edges (i,j) • xi and xj are different, therefore abs(xi – xj) > 0 • Stating this makes the all different constraint tight • Much better propagation of the global constraint • Running times improve a lot • This is straightforward, isn’t it? 1/7/2014 13
  14. 14. Example 4 : coin design problem From [Wallace 03] • Select coin values so that any change can be given with a minimum amount of coins • Mark said that a CP solution is easy to produce! •Let’s see if you’re as clever as Mark… 1/7/2014 14
  15. 15. A model Using OPL range coin 1..6; range change 1..100; var int value[coin] in 1..100; var int num[coin] in 1..100; var int sel[change, coin] in 0..100; minimize sum(i in coin) num[i] subject to { forall(i in coin, s in change) sel[s,i] <= num[i]; forall(s in change) sum(i in coin) value[i]*sel[s,i] = s; }; It runs forever ! 1/7/2014 15
  16. 16. To make it work Write search! search{ generate(value); generate (num); forall(s in change) generate(sel[s]); }; Straightforward isn’t it? It runs forever ! 1/7/2014 16
  17. 17. To make it work (continued) The problem has symmetries forall(i in coin: i <> 6) { value[i]*num[i] < value[i+1]; }; It runs in .45 seconds on this laptop! See, CP is really good on this problem! 1/7/2014 17
  18. 18. MP for dummies (engineers) Modeling is what matters 1. Model your problem with • Decision variables (integer and continuous) • Linear constraints • Linear objective 2. Run It may output solutions without any tuning 1/7/2014 18
  19. 19. MP for dummies (engineers) Modeling can be tricky • It may run forever • In such case, change the model • Tighten it • Use Dantzig Wolfe decomposition • This is sufficient for the vast majority of MP applications • There is no need to understand MP algorithms • Difficult problems are still difficult • For these, one can use advanced techniques such as branch and price, specialized cut generation, etc. • This is not for dummies. 1/7/2014 19
  20. 20. CP for dummies Is modeling what matters? 1. Model your problem with • Decision variables (integer or continuous) • Constraints • Some objective if you really insist 2. Run It runs forever ! 1/7/2014 20
  21. 21. CP for dummies Modeling can be tricky • Your model is not right • Use that fancy global constraint • Yes, I know it is logically equivalent to the constraints you already stated • Why didn’t you wrote a specialized propagator for you problem? • Why didn’t you write a specialized CP language? • You should use a dual model and channeling constraints • Which dual model? • Try any you can think of! • These advices assume the user understands what constraint propagation can do and what it can’t do 1/7/2014 21
  22. 22. CP for dummies Modeling can be tricky, the rest too! • You’re not using the software as documented! • You need to write a search code • Non deterministic • Recursive • Side effect free • Exactly the opposite of what you’re used to code • Deterministic • Iterative • With side effects • This advice assumes the user is a clever computer scientist 1/7/2014 22
  23. 23. CP for dummies Modeling can be tricky, the rest too! • Your problem has symmetries! • State generators of the symmetry group then call GAP-XXX symmetry breaking constraint technique • State lex constraints • Beware, they must use a compatible ordering • Your objective function does not propagate! • Replace sum by max • It does not fit your business needs? Change your business! • Change the search strategy so that good solutions are generated first • I can’t tell you how to 1/7/2014 23
  24. 24. CP for dummies Modeling can be tricky, the rest too! • Use dominance constraints (or conditional symmetry breaking) • Use a hybrid approach with one of the following: • LP solver • Local search method • Both • Try • Russian doll search, • LDS (ouch, this is patented) • Large Neighborhood Search • … 1/7/2014 24
  25. 25. CP vs MP for dummies • In order to be able to use CP, one must master modeling • Same for MP. • There are many more possibilities with CP • Too many of them • One must also master • Search • Constraint propagation • MP is useable even if you do not understand the internal algorithms 1/7/2014 25
  26. 26. CP for dummies Oxymoron • CP is designed for clever users • Academics • Authors of CP systems • Clever users that master all the complexity can achieve very good results • Our consultants are great • Academics are great • Beginners cannot • However, they can achieve something with MP (CPLEX). 1/7/2014 26
  27. 27. MP at work • Modeling is what matters • Modeling can be done independently from solvers • Several modeling languages: AMPL, GAMS, OPL, MOSEL, MPL, AIMMS • A standard file format: MPS • This is good because business users not tied to a particular vendor • Common set of benchmarks 1/7/2014 27
  28. 28. MP research • Oriented towards algorithms • Input : an MPS file • Output : a solution + duality information (gap, reduced cost for LP) • Improvements do not require new modeling features • CPLEX speedup is 1,000,000 in 10 years • 1,000 comes from hardware • 1,000 comes form software 1/7/2014 28
  29. 29. CP research • CP is oriented towards toolkits • One has to combine various pieces when trying to solve a problem • See the famous CP for dummies series! • CP improvements are packaged into new modeling or search features • Global constraints • Search abstractions • Symmetry breaking techniques 1/7/2014 29
  30. 30. Example: symmetry breaking Different approaches for similar issue • In MP (Margot) • Use graph automorphism software (NAUTY) to automatically compute the symmetries of the problem • In SAT (Aloul et al) • Use graph automorphism software (SAUCY) to automatically compute the symmetries of the problem •In CP •Symmetries are assumed to be given as input •(Mc Donald 03)(Kelsey et al 03) : Use new modeling constructs to express symmetries ! 1/7/2014 30
  31. 31. CP academic research is wrong From an industry stand point • The more successful CP research, the richer CP becomes • Selecting the right set of CP constructs for a given problem is becoming harder an harder • This makes the life of engineers worse and worse! • Granted, it also expands the set of problems solvable with CP. This is not relevant for engineers. • The more successful CP academic research is, the less usable CP is ! 1/7/2014 31
  32. 32. What can we do? • Fire academics? • No, see later why! • Let’s not bother with engineers? • No, because industrial successes motivates funding agencies • Learn from MP community • Yes! • Note that we can learn from SAT community as well 1/7/2014 32
  33. 33. Learn from MP Modeling is what matters most • Standard for expressing CP models • Standard file format • Existing CP books are about • CP algorithms • Propagation • Search • CP language design • They are useful for CP system design • Not for using a CP system to solve a given problem • No book on modeling per se • MP has some books [Williams] 1/7/2014 33
  34. 34. Learn from MP Think algorithms • Create executables • Input is a problem, output is a solution • Running time is what matters! • Not node count, nor number of constraints checks • Set up challenges at CP conferences • Entries are executables that takes as input problem instances, and try to solve them • Similar challenges exits in combinatorial optimization (DIMACS), data mining (KDD), model checking, etc. 1/7/2014 34
  35. 35. Learn from MP Think about optimization • CP is not geared towards optimization • Almost no cost aware global constraints • Search goals do not use the objective function • I am not sure preferences and soft constraints are the right answer • CP conference is never co located with an OR conference… • CPAIOR conference is a better place for optimization • Add optimization problems to CSPLIB 1/7/2014 35
  36. 36. Learn from MP Search code should come for free • Improve “out of the box” performance • Move away from DFS • CPLEX is DFS most of the time, but not always • Randomization • Random restarts • Randomize variable and value selection 1/7/2014 36
  37. 37. Learn from MP Search code should come for free • Learn during search • No goods, symmetry breaking • Learn which decisions have an impact on search tree size [Refalo 04 ] • Develop generic combination of local search and propagation • [Perron 04] • It does not matter if these techniques are not as good as ad hoc CP codes! 1/7/2014 37
  38. 38. Learn from MP Reformulate before search • Called “presolve” in MP • For instance • From X ≠ Y, Y ≠ Z, Z ≠ X add all_different(X,Y,Z) • The point is that CP improvements should not require model reformulation by users • We can’ say that CP is 1,000,000 faster than 10 years ago • Although this is probably true • The speedup obtained with reformulation should not be offset by the time needed by presolve! • Running time is what matters! 1/7/2014 38
  39. 39. Learn from MP Explanations • CPLEX provides for sensitivity analysis and explanations • Explanations are important when the problem is over constrained 1/7/2014 39
  40. 40. Conclusion • CP can solve complex problems, with good performance • BUT, CP is difficult to learn use and maintain for engineers • Not because they are dumb • CP academic research is making this worse every year • MP provides good out of the box performance • SAT too 1/7/2014 40
  41. 41. What academics could do Some of this is already happening • CP academic research should look at new topics • Standard file formats / modeling languages • Search • Explanations • Optimization • Modeling practice, Books • Presolve • Challenges • Running time is what matters • Not node count 1/7/2014 41
  42. 42. If we (CP community) don’t do this… • CP will stay … • … as an academic research topic • … embedded in industry packages • Generic CP systems will disappear • Not ILOG • Funding will disappear • Academics will disappear 1/7/2014 42

×