SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Learn from MP

Explanations
• CPLEX provides for sensitivity analysis and
explanations
• Explanations are important when the
problem is over constrained

1/7/2014

39
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
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
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

Mais conteúdo relacionado

Mais procurados

Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...
Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...
Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...Philippe Laborie
 
An introduction to CP Optimizer
An introduction to CP OptimizerAn introduction to CP Optimizer
An introduction to CP OptimizerPhilippe Laborie
 
TenYearsCPOptimizer
TenYearsCPOptimizerTenYearsCPOptimizer
TenYearsCPOptimizerPaulShawIBM
 
Planning/Scheduling with CP Optimizer
Planning/Scheduling with CP OptimizerPlanning/Scheduling with CP Optimizer
Planning/Scheduling with CP OptimizerPhilippe Laborie
 
Conditional interval variables: A powerful concept for modeling and solving c...
Conditional interval variables: A powerful concept for modeling and solving c...Conditional interval variables: A powerful concept for modeling and solving c...
Conditional interval variables: A powerful concept for modeling and solving c...Philippe Laborie
 
New Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling ProblemNew Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling ProblemPhilippe Laborie
 
A (Not So Short) Introduction to CP Optimizer for Scheduling
A (Not So Short) Introduction to CP Optimizer for SchedulingA (Not So Short) Introduction to CP Optimizer for Scheduling
A (Not So Short) Introduction to CP Optimizer for SchedulingPhilippe Laborie
 
Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...
Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...
Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...Philippe Laborie
 
CP Optimizer pour la planification et l'ordonnancement
CP Optimizer pour la planification et l'ordonnancementCP Optimizer pour la planification et l'ordonnancement
CP Optimizer pour la planification et l'ordonnancementPhilippe Laborie
 
An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...
An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...
An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...Philippe Laborie
 
Accelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer ModelsAccelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer ModelsPhilippe Laborie
 
Objective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingObjective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingPhilippe Laborie
 
IBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three Problems
IBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three ProblemsIBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three Problems
IBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three ProblemsPhilippe Laborie
 
CP Optimizer: a generic optimization engine at the crossroad of AI and OR fo...
CP Optimizer: a generic optimization engine at the crossroad of AI and OR  fo...CP Optimizer: a generic optimization engine at the crossroad of AI and OR  fo...
CP Optimizer: a generic optimization engine at the crossroad of AI and OR fo...Philippe Laborie
 
IBM - Decision Optimization
IBM - Decision OptimizationIBM - Decision Optimization
IBM - Decision OptimizationGerhard Wenzel
 
Developing Optimization Applications Quickly and Effectively with Algebraic M...
Developing Optimization Applications Quickly and Effectively with Algebraic M...Developing Optimization Applications Quickly and Effectively with Algebraic M...
Developing Optimization Applications Quickly and Effectively with Algebraic M...Bob Fourer
 
Business Optimizer Introduction
Business Optimizer IntroductionBusiness Optimizer Introduction
Business Optimizer IntroductionDonato Marrazzo
 
Model-Based Optimization for Effective and Reliable Decision-Making
Model-Based Optimization for Effective and Reliable Decision-MakingModel-Based Optimization for Effective and Reliable Decision-Making
Model-Based Optimization for Effective and Reliable Decision-MakingBob Fourer
 
Model-Based Optimization / CP 2018
Model-Based Optimization / CP 2018Model-Based Optimization / CP 2018
Model-Based Optimization / CP 2018Bob Fourer
 

Mais procurados (20)

Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...
Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...
Modeling and Solving Resource-Constrained Project Scheduling Problems with IB...
 
An introduction to CP Optimizer
An introduction to CP OptimizerAn introduction to CP Optimizer
An introduction to CP Optimizer
 
TenYearsCPOptimizer
TenYearsCPOptimizerTenYearsCPOptimizer
TenYearsCPOptimizer
 
Planning/Scheduling with CP Optimizer
Planning/Scheduling with CP OptimizerPlanning/Scheduling with CP Optimizer
Planning/Scheduling with CP Optimizer
 
Conditional interval variables: A powerful concept for modeling and solving c...
Conditional interval variables: A powerful concept for modeling and solving c...Conditional interval variables: A powerful concept for modeling and solving c...
Conditional interval variables: A powerful concept for modeling and solving c...
 
New Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling ProblemNew Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling Problem
 
A (Not So Short) Introduction to CP Optimizer for Scheduling
A (Not So Short) Introduction to CP Optimizer for SchedulingA (Not So Short) Introduction to CP Optimizer for Scheduling
A (Not So Short) Introduction to CP Optimizer for Scheduling
 
Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...
Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...
Self-Adapting Large Neighborhood Search: Application to single-mode schedulin...
 
CP Optimizer pour la planification et l'ordonnancement
CP Optimizer pour la planification et l'ordonnancementCP Optimizer pour la planification et l'ordonnancement
CP Optimizer pour la planification et l'ordonnancement
 
An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...
An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...
An Update on the Comparison of MIP, CP and Hybrid Approaches for Mixed Resour...
 
Accelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer ModelsAccelerating the Development of Efficient CP Optimizer Models
Accelerating the Development of Efficient CP Optimizer Models
 
Objective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingObjective Landscapes for Constraint Programming
Objective Landscapes for Constraint Programming
 
IBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three Problems
IBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three ProblemsIBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three Problems
IBM ILOG CP Optimizer for Detailed Scheduling Illustrated on Three Problems
 
CP Optimizer: a generic optimization engine at the crossroad of AI and OR fo...
CP Optimizer: a generic optimization engine at the crossroad of AI and OR  fo...CP Optimizer: a generic optimization engine at the crossroad of AI and OR  fo...
CP Optimizer: a generic optimization engine at the crossroad of AI and OR fo...
 
IBM - Decision Optimization
IBM - Decision OptimizationIBM - Decision Optimization
IBM - Decision Optimization
 
Developing Optimization Applications Quickly and Effectively with Algebraic M...
Developing Optimization Applications Quickly and Effectively with Algebraic M...Developing Optimization Applications Quickly and Effectively with Algebraic M...
Developing Optimization Applications Quickly and Effectively with Algebraic M...
 
Business Optimizer Introduction
Business Optimizer IntroductionBusiness Optimizer Introduction
Business Optimizer Introduction
 
Model-Based Optimization for Effective and Reliable Decision-Making
Model-Based Optimization for Effective and Reliable Decision-MakingModel-Based Optimization for Effective and Reliable Decision-Making
Model-Based Optimization for Effective and Reliable Decision-Making
 
Ch1
Ch1Ch1
Ch1
 
Model-Based Optimization / CP 2018
Model-Based Optimization / CP 2018Model-Based Optimization / CP 2018
Model-Based Optimization / CP 2018
 

Semelhante a Cp04invitedslide

Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
Strata 2016 -  Lessons Learned from building real-life Machine Learning SystemsStrata 2016 -  Lessons Learned from building real-life Machine Learning Systems
Strata 2016 - Lessons Learned from building real-life Machine Learning SystemsXavier Amatriain
 
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Lviv Startup Club
 
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f..."Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...Edge AI and Vision Alliance
 
Introduction to conjoint analysis 2021
Introduction to conjoint analysis 2021Introduction to conjoint analysis 2021
Introduction to conjoint analysis 2021Ray Poynter
 
[DSC Europe 22] Starting deep learning projects without sufficient amount of ...
[DSC Europe 22] Starting deep learning projects without sufficient amount of ...[DSC Europe 22] Starting deep learning projects without sufficient amount of ...
[DSC Europe 22] Starting deep learning projects without sufficient amount of ...DataScienceConferenc1
 
ODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systemsODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systemsAnuj Gupta
 
Kaggle Days Paris - Alberto Danese - ML Interpretability
Kaggle Days Paris - Alberto Danese - ML InterpretabilityKaggle Days Paris - Alberto Danese - ML Interpretability
Kaggle Days Paris - Alberto Danese - ML InterpretabilityAlberto Danese
 
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Xavier Amatriain
 
Addressing Uncertainty How to Model and Solve Energy Optimization Problems
Addressing Uncertainty How to Model and Solve Energy Optimization ProblemsAddressing Uncertainty How to Model and Solve Energy Optimization Problems
Addressing Uncertainty How to Model and Solve Energy Optimization Problemsoptimizatiodirectdirect
 
CPSeis &amp; GeoCraft
CPSeis &amp; GeoCraftCPSeis &amp; GeoCraft
CPSeis &amp; GeoCraftbillmenger
 
Continuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakesContinuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakesAnuj Gupta
 
BIG2016- Lessons Learned from building real-life user-focused Big Data systems
BIG2016- Lessons Learned from building real-life user-focused Big Data systemsBIG2016- Lessons Learned from building real-life user-focused Big Data systems
BIG2016- Lessons Learned from building real-life user-focused Big Data systemsXavier Amatriain
 
Machine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationMachine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationSynerzip
 
What a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysisWhat a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysisAndrey Karpov
 
Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012jonathw
 
QA CHAPTER II.pptx
QA CHAPTER II.pptxQA CHAPTER II.pptx
QA CHAPTER II.pptxTeshome48
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to itPetter Holmström
 
SDL Trados Studio 2014 Masterclass
SDL Trados Studio 2014 MasterclassSDL Trados Studio 2014 Masterclass
SDL Trados Studio 2014 MasterclassSDL Trados
 

Semelhante a Cp04invitedslide (20)

FDS Unit I_PPT.pptx
FDS Unit I_PPT.pptxFDS Unit I_PPT.pptx
FDS Unit I_PPT.pptx
 
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
Strata 2016 -  Lessons Learned from building real-life Machine Learning SystemsStrata 2016 -  Lessons Learned from building real-life Machine Learning Systems
Strata 2016 - Lessons Learned from building real-life Machine Learning Systems
 
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
 
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f..."Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
"Solving Vision Tasks Using Deep Learning: An Introduction," a Presentation f...
 
Introduction to conjoint analysis 2021
Introduction to conjoint analysis 2021Introduction to conjoint analysis 2021
Introduction to conjoint analysis 2021
 
[DSC Europe 22] Starting deep learning projects without sufficient amount of ...
[DSC Europe 22] Starting deep learning projects without sufficient amount of ...[DSC Europe 22] Starting deep learning projects without sufficient amount of ...
[DSC Europe 22] Starting deep learning projects without sufficient amount of ...
 
ODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systemsODSC East 2020 : Continuous_learning_systems
ODSC East 2020 : Continuous_learning_systems
 
Kaggle Days Paris - Alberto Danese - ML Interpretability
Kaggle Days Paris - Alberto Danese - ML InterpretabilityKaggle Days Paris - Alberto Danese - ML Interpretability
Kaggle Days Paris - Alberto Danese - ML Interpretability
 
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
Recsys 2016 tutorial: Lessons learned from building real-life recommender sys...
 
Addressing Uncertainty How to Model and Solve Energy Optimization Problems
Addressing Uncertainty How to Model and Solve Energy Optimization ProblemsAddressing Uncertainty How to Model and Solve Energy Optimization Problems
Addressing Uncertainty How to Model and Solve Energy Optimization Problems
 
CPSeis &amp; GeoCraft
CPSeis &amp; GeoCraftCPSeis &amp; GeoCraft
CPSeis &amp; GeoCraft
 
Continuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakesContinuous Learning Systems: Building ML systems that learn from their mistakes
Continuous Learning Systems: Building ML systems that learn from their mistakes
 
BIG2016- Lessons Learned from building real-life user-focused Big Data systems
BIG2016- Lessons Learned from building real-life user-focused Big Data systemsBIG2016- Lessons Learned from building real-life user-focused Big Data systems
BIG2016- Lessons Learned from building real-life user-focused Big Data systems
 
Machine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationMachine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example Implementation
 
What a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysisWhat a DevOps specialist has to know about static code analysis
What a DevOps specialist has to know about static code analysis
 
Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012Whittle Modeling Wizards 2012
Whittle Modeling Wizards 2012
 
QA CHAPTER II.pptx
QA CHAPTER II.pptxQA CHAPTER II.pptx
QA CHAPTER II.pptx
 
Unit no_1.pptx
Unit no_1.pptxUnit no_1.pptx
Unit no_1.pptx
 
Picking the right architecture and sticking to it
Picking the right architecture and sticking to itPicking the right architecture and sticking to it
Picking the right architecture and sticking to it
 
SDL Trados Studio 2014 Masterclass
SDL Trados Studio 2014 MasterclassSDL Trados Studio 2014 Masterclass
SDL Trados Studio 2014 Masterclass
 

Último

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

Cp04invitedslide

  • 1. CP Next Challenge: Simplicity of Use Jean-François Puget ILOG 1
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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