SlideShare a Scribd company logo
1 of 41
Download to read offline
Sept. 23, 2015
© 2015 IBM Corporation34ème journėe JFRO
Solving Industrial Scheduling Problems
with Constraint Programming
Philippe Laborie
IBM Analytics, Decision Optimization
© 2015 IBM Corporation2 34ème journėe JFRO - Sept. 23, 2015
Outline
 Scheduling problems: from theory to practice
 CP extensions for scheduling
 Simplifying model design & problem resolution
© 2015 IBM Corporation3 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Theory: e.g. RCPSP (Resource Constrained Project Scheduling)
– Problem definition:
• A set of n tasks A1,...,An with specified duration Di for task Ai
• A set of precedence constraints between tasks (precedence graph)
• A set of m resources R1,...,Rm with specified capacity Cj for resource Rj
• Each task Ai requires some resources in a given quantity
• Objective is to minimize project makespan
– Classical benchmark: PSPLib = 30-120 tasks
a1
a3
a2
a6
a5
a4
a7
a8
R1
R2
© 2015 IBM Corporation4 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Theory: e.g. RCPSP (Resource Constrained Project Scheduling)
– From an academical point of view, this is a very generic problem that
subsumes many other classical scheduling problems
RCPSP
Job-shop
Flow-shop
Open-shop
Hybrid Flow-shop
© 2015 IBM Corporation5 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Some real scheduling applications
– Aerospace: Project scheduling, Aircraft assembly, Assembly line
configuration, Satellite communication & observation, Rover activities …
– Energy & Utilities: Nuclear plant outage scheduling, Maintenance,
Production planning …
– Mining: Open pit mining ...
– Logistics, Supply Chain: Vehicle routing, Bikes and car sharing …
– Manufacturing: Production scheduling, Assembly lines, Factory
configuration, Test scheduling …
– Media & Communications: Advertizing & program scheduling, Event &
personnel scheduling …
– Travel & transportation: Airport scheduling (gates, landing, parking, …),
Port scheduling (quay cranes ...), Train scheduling …
– Health: Employee, Patient scheduling, Pharmaceutical products tests …
– Agriculture: Crop scheduling (harvesting ...)
– General audience: Personal schedule organizer, Theme park planner ...
© 2015 IBM Corporation6 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Practice: the problem looks like ...
this ... or this ...
© 2015 IBM Corporation7 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Practice: the problem is large
– Typical problems are larger than 1000 activities
– E.g. we solved a 1.000.000 tasks RCPSP-like problem for an aircraft
manufacturer
© 2015 IBM Corporation8 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Practice: the problem is complex
– Heterogeneous types of decisions: start/end dates, resource
allocation, mode selection, activity non-execution, activity durations,
activity interruptions, resource quantities, producer/consumer
matching, batch configuration, resource overconsumption, resource
configuration, …
– Complex resources: inventories, setup times and costs,
calendars/shifts, moving resources, spatial constraints,
synchronization constraints (e.g. conveyer belt), batch constraints
– Complex activities: optional, interruptible, setups, maintenance,
work breakdown structure
– Complex objective function: earliness/tardiness, temporal
preferences, resource related costs (many types!), most of the
problems are multi-objectives
© 2015 IBM Corporation9 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Practice: the problem is not well defined
– Implicit constraints / objectives
– Some aspects of the problem are critical, others can be:
• Approximated
• Relaxed
• Over-constrained
• Considered in a post-processing step
• …
 Practice: the data is:
– Hard to get (different data sources, confidentiality, …)
– Uncertain / Imprecise / Incomplete / Incorrect
 Customers are expecting good solutions to their problem, they
usually do not care about how the problem is modeled/solved
© 2015 IBM Corporation10 34ème journėe JFRO - Sept. 23, 2015
Scheduling problems: from theory to practice
 Practice: mind the real gap
Real world
Modeling
Execution solution X
Solve
Model & Data
minimize f(X)
subject to C(X)
gapS
© 2015 IBM Corporation11 34ème journėe JFRO - Sept. 23, 2015
gapM
Scheduling problems: from theory to practice
 Practice: mind the real gap
– “Essentially, all models are wrong, but some are useful” – G. Box
– The real gap you must care about is gapM  gapS
Real world
Modeling
Execution solution X
Solve
Model & Data
minimize f(X)
subject to C(X)
gapS
© 2015 IBM Corporation12 34ème journėe JFRO - Sept. 23, 2015
gapM
Scheduling problems: from theory to practice
 Practice: mind the real gap
– “Essentially, all models are wrong, but some are useful” – G. Box
– The real gap you must care about is gapM  gapS
Real world
Modeling
Execution solution X
Solve
Model & Data
minimize f(X)
subject to C(X)
gapS
Expressive modeling language Robust & efficient
optimization
algorithm
Tools for simplifying model
design and resolution
© 2015 IBM Corporation13 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
 Extension of classical CSP with a new type of decision variable:
optional interval variable :
Domain(x) { } { [s,e) | s,e , s≤e }
 Introduction of mathematical notions such as sequences and
functions to capture temporal dimension of scheduling problems
Absent interval Interval of integers
© 2015 IBM Corporation14 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
 In scheduling models, interval variables usually represent an
interval of time during which some property hold (e.g. an activity
executes) and whose end-points (start/end) are decision variables
of the problem.
 Examples:
– A sub-project in a project, a task in a sub-project (Work Breakdown
Structure)
– A batch of operations
– The setup of a tool on a machine
– The moving of an item by a transportation device
– The utilization interval of a resource
 Idea of the model (and search) is to avoid the enumeration of
start/end values (continuous time)
© 2015 IBM Corporation15 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
 An interval variable can be optional meaning that it is a decision
to have it present or absent in a solution.
 Examples:
– Unperformed tasks and optional sub-projects
– Alternative resources, modes or recipes for processing an order, each
mode specifying a particular combination of operational resources
– Operations that can be processed in different temporal modes (e.g.
series or parallel)
– Activities that can be performed in an alternative set of batches or
shifts
© 2015 IBM Corporation16 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
 Example: RCPSP
© 2015 IBM Corporation17 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
 Example: Job-shop scheduling problem
© 2015 IBM Corporation18 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
 Satellite Control Network scheduling problem [1]
 n communication tasks for Earth orbiting satellites must be
scheduled on a total of 32 antennas spread across 13 ground-
based tracking stations
 In the instances, n ranges from to 400 to 1300
 Objective: maximize the number of scheduled tasks
[1] Kramer & al.: Understanding Performance Trade-offs in Algorithms for Solving Oversubscribed Scheduling.
© 2015 IBM Corporation19 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
Station1Station2Station3
Taski
Oppi,1
Oppi,2 Oppi,3
Alternative assignments
to stations  time windows
(opportunities)
Oppi,4
OR
© 2015 IBM Corporation20 34ème journėe JFRO - Sept. 23, 2015
CP extensions for scheduling
© 2015 IBM Corporation21 34ème journėe JFRO - Sept. 23, 2015
Automatic Search
 Search algorithm is Complete
 Core CP techniques used as a building block:
– Tree search (Depth First)
– Constraint propagation
 But also:
– Deterministic multicore parallelism
– Model presolve
– Algorithms portfolios
– Machine learning
– Restarting techniques
– Large Neighborhood Search
– No-good learning
– Impact-based branching
– Opportunistic probing
– Dominance rules
– LP-assisted heuristics
– Randomization
– Evolutionary algorithms
© 2015 IBM Corporation22 34ème journėe JFRO - Sept. 23, 2015
Automatic Search
 Very good performance results on academical problems
– CP-AI-OR 2015:
– Winner of the CP-2015 Industrial Modelling Challenge with a very
simple model: csplib.org/Problems/prob073/models/model.mod.html
 More important: very good performance on industrial problems
© 2015 IBM Corporation23 34ème journėe JFRO - Sept. 23, 2015
Simplifying model design & problem resolution
Warnings
Warm start
User model
Internal model
Model analysis Model presolve
OPL,C++,Java,.NET
Conflict
Model
Solution
CPO file
Search log
Automatic Solve Conflict refiner
© 2015 IBM Corporation24 34ème journėe JFRO - Sept. 23, 2015
Tools: I/O format
 Objective:
– Make it easier to understand the content of a model
– Communicate a model to IBM support team regardless of the API
used to build it (OPL, C++, Java, .NET)
 Structure of a .cpo file
– Human readable
– Flat (no cycle, forall statements)
– No user defined data types
– Internal information such as CPO version or platform used
– Includes search parameter values
 Facilities
– Export model before/instead of solve
– Export model during solve (with current domains)
– Import model instead of normal modeling
© 2015 IBM Corporation25 34ème journėe JFRO - Sept. 23, 2015
Tools: I/O format
// Interval-related variables:
"task(1)" = intervalVar(optional);
"task(1A)" = intervalVar(optional);
…
"opp({1,1,62})" = intervalVar(optional, start=62..intervalmax, end=0..99, size=25);
"opp({1A,1,32})" = intervalVar(optional, start=32..intervalmax, end=0..69, size=33);
…
// Objective:
maximize(sum([presenceOf("task(1)"), presenceOf("task(1A)"), …]));
…
// Constraints:
alternative("task(1)", ["opp({1,1,62})"], 1);
…
pulse("opp({3,1,58})", 1) + pulse("opp({1,1,62})", 1) + … <= 4;
…
parameters {
LogVerbosity = Quiet;
}
© 2015 IBM Corporation26 34ème journėe JFRO - Sept. 23, 2015
Tools: model warnings
 Like a compiler, CP Optimizer can analyze the model and print
some warnings
– When there is something suspicious in the model
– Regardless how the model was created (C++, OPL, …)
– Including guilty part of the model in the cpo file format
– Including source code line numbers (if known)
– 3 levels of warnings, more than 50 types of warnings
satellite.cpo:2995:1: Warning: Constraint 'alternative': there is only one alternative
interval variable.
alternative("task(1)", ["opp({1,1,62})"], 1)
satellite.cpo:2996:1: Warning: Constraint 'alternative': there is only one alternative
interval variable.
alternative("task(1A)", ["opp({1A,1,32})"], 1)
© 2015 IBM Corporation27 34ème journėe JFRO - Sept. 23, 2015
Tools: model presolve
 Objective: automatically reformulate the model in order to
speed-up its resolution
 Works on an internal representation of the model
 Different types of presolve:
– Aggregation of basic constraints into global constraints
– Constraint strengthening
– Simplifications and factorizations
© 2015 IBM Corporation28 34ème journėe JFRO - Sept. 23, 2015
Tools: model presolve
 Examples of presolve rules
– Common sub-expression elimination
– Aggregation of x!=y cliques as allDifferent([x,y,...])
– Precedence strengthening
• If a and b cannot overlap and startsBeforeStart(a,b)
• Then endsBeforeStart(a,b)
– Precedence recognition
• If endOf(a,-)  startOf(b,+)
• Then endsBeforeStart(a,b)
• Precedences are aggregated into a “time net” (STN) for faster and
stronger propagation
– 2-SAT clauses recognition
• presenceOf(a)  presenceOf(b)
• Such clauses are aggregated into a “logical net” for stronger propagation
© 2015 IBM Corporation29 34ème journėe JFRO - Sept. 23, 2015
Tools: search log
 Objective: understand what happens during the automatic search
! -----------------------------------------------------------------------
! Maximization problem - 2980 variables, 853 constraints
! Workers = 2
! TimeLimit = 30
! Initial process time : 0.01s (0.00s extraction + 0.01s propagation)
! . Log search space : 4627.3 (before), 4627.3 (after)
! . Memory usage : 16.9 MB (before), 19.7 MB (after)
! Using parallel search with 2 workers.
! -----------------------------------------------------------------------
! Best Branches Non-fixed W Branch decision
* 746 3945 0.79s 1 -
746 4000 2924 1 on task("8")
746 4000 2908 2 on opp({"186",2,66})
…
! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB
! Best Branches Non-fixed W Branch decision
818 12000 2920 1 on task("184")
…
! -----------------------------------------------------------------------
! Search terminated by limit, 6 solutions found.
! Best objective : 826
! Number of branches : 709092
! Number of fails : 179648
! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert)
! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction)
! Search speed (br. / s) : 23625.4
! -----------------------------------------------------------------------
Problem
characteristics
© 2015 IBM Corporation30 34ème journėe JFRO - Sept. 23, 2015
Tools: search log
 Objective: understand what happens during the automatic search
! -----------------------------------------------------------------------
! Maximization problem - 2980 variables, 853 constraints
! Workers = 2
! TimeLimit = 30
! Initial process time : 0.01s (0.00s extraction + 0.01s propagation)
! . Log search space : 4627.3 (before), 4627.3 (after)
! . Memory usage : 16.9 MB (before), 19.7 MB (after)
! Using parallel search with 2 workers.
! -----------------------------------------------------------------------
! Best Branches Non-fixed W Branch decision
* 746 3945 0.79s 1 -
746 4000 2924 1 on task("8")
746 4000 2908 2 on opp({"186",2,66})
…
! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB
! Best Branches Non-fixed W Branch decision
818 12000 2920 1 on task("184")
…
! -----------------------------------------------------------------------
! Search terminated by limit, 6 solutions found.
! Best objective : 826
! Number of branches : 709092
! Number of fails : 179648
! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert)
! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction)
! Search speed (br. / s) : 23625.4
! -----------------------------------------------------------------------
Modified
parameter values
© 2015 IBM Corporation31 34ème journėe JFRO - Sept. 23, 2015
Tools: search log
 Objective: understand what happens during the automatic search
! -----------------------------------------------------------------------
! Maximization problem - 2980 variables, 853 constraints
! Workers = 2
! TimeLimit = 30
! Initial process time : 0.01s (0.00s extraction + 0.01s propagation)
! . Log search space : 4627.3 (before), 4627.3 (after)
! . Memory usage : 16.9 MB (before), 19.7 MB (after)
! Using parallel search with 2 workers.
! -----------------------------------------------------------------------
! Best Branches Non-fixed W Branch decision
* 746 3945 0.79s 1 -
746 4000 2924 1 on task("8")
746 4000 2908 2 on opp({"186",2,66})
…
! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB
! Best Branches Non-fixed W Branch decision
818 12000 2920 1 on task("184")
…
! -----------------------------------------------------------------------
! Search terminated by limit, 6 solutions found.
! Best objective : 826
! Number of branches : 709092
! Number of fails : 179648
! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert)
! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction)
! Search speed (br. / s) : 23625.4
! -----------------------------------------------------------------------
Root node
information
© 2015 IBM Corporation32 34ème journėe JFRO - Sept. 23, 2015
Tools: search log
 Objective: understand what happens during the automatic search
! -----------------------------------------------------------------------
! Maximization problem - 2980 variables, 853 constraints
! Workers = 2
! TimeLimit = 30
! Initial process time : 0.01s (0.00s extraction + 0.01s propagation)
! . Log search space : 4627.3 (before), 4627.3 (after)
! . Memory usage : 16.9 MB (before), 19.7 MB (after)
! Using parallel search with 2 workers.
! -----------------------------------------------------------------------
! Best Branches Non-fixed W Branch decision
* 746 3945 0.79s 1 -
746 4000 2924 1 on task("8")
746 4000 2908 2 on opp({"186",2,66})
…
! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB
! Best Branches Non-fixed W Branch decision
818 12000 2920 1 on task("184")
…
! -----------------------------------------------------------------------
! Search terminated by limit, 6 solutions found.
! Best objective : 826
! Number of branches : 709092
! Number of fails : 179648
! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert)
! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction)
! Search speed (br. / s) : 23625.4
! -----------------------------------------------------------------------
New incumbent
solutions (time, worker)
© 2015 IBM Corporation33 34ème journėe JFRO - Sept. 23, 2015
Tools: search log
 Objective: understand what happens during the automatic search
! -----------------------------------------------------------------------
! Maximization problem - 2980 variables, 853 constraints
! Workers = 2
! TimeLimit = 30
! Initial process time : 0.01s (0.00s extraction + 0.01s propagation)
! . Log search space : 4627.3 (before), 4627.3 (after)
! . Memory usage : 16.9 MB (before), 19.7 MB (after)
! Using parallel search with 2 workers.
! -----------------------------------------------------------------------
! Best Branches Non-fixed W Branch decision
* 746 3945 0.79s 1 -
746 4000 2924 1 on task("8")
746 4000 2908 2 on opp({"186",2,66})
…
! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB
! Best Branches Non-fixed W Branch decision
818 12000 2920 1 on task("184")
…
! -----------------------------------------------------------------------
! Search terminated by limit, 6 solutions found.
! Best objective : 826
! Number of branches : 709092
! Number of fails : 179648
! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert)
! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction)
! Search speed (br. / s) : 23625.4
! -----------------------------------------------------------------------
Periodical log
with fail information,
number of unfixed
variables, current decision
© 2015 IBM Corporation34 34ème journėe JFRO - Sept. 23, 2015
Tools: search log
 Objective: understand what happens during the automatic search
! -----------------------------------------------------------------------
! Maximization problem - 2980 variables, 853 constraints
! Workers = 2
! TimeLimit = 30
! Initial process time : 0.01s (0.00s extraction + 0.01s propagation)
! . Log search space : 4627.3 (before), 4627.3 (after)
! . Memory usage : 16.9 MB (before), 19.7 MB (after)
! Using parallel search with 2 workers.
! -----------------------------------------------------------------------
! Best Branches Non-fixed W Branch decision
* 746 3945 0.79s 1 -
746 4000 2924 1 on task("8")
746 4000 2908 2 on opp({"186",2,66})
…
! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB
! Best Branches Non-fixed W Branch decision
818 12000 2920 1 on task("184")
…
! -----------------------------------------------------------------------
! Search terminated by limit, 6 solutions found.
! Best objective : 826
! Number of branches : 709092
! Number of fails : 179648
! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert)
! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction)
! Search speed (br. / s) : 23625.4
! -----------------------------------------------------------------------
Final information
with solution status
and search statistics
© 2015 IBM Corporation35 34ème journėe JFRO - Sept. 23, 2015
Tools: warm start
 Objective: Start search from a known (possibly incomplete)
solution given by the user (warm start) in order to further
improve it or to help to guide the engine towards a first feasible
solution
 API: IloCP::setStartingPoint(IloSolution warmstart)
 Use cases:
– Restart an interrupted search with the current incumbent
– Start from an initial solution found by an available heuristic
– Goal programming for multi-objective problems
– When finding an initial solution is hard, solve an initial problem that
maximizes constraint satisfaction and start from its solution
– Successively solving similar problems (e.g. dynamic scheduling)
– Hierarchical problem solving (e.g. planning scheduling)→
© 2015 IBM Corporation36 34ème journėe JFRO - Sept. 23, 2015
Tools: conflict refiner
 Objective: identify a reason for an inconsistency by providing a
minimal infeasible subset of constraints for an infeasible model
 Use cases:
– Model debugging (errors in model)
– Data debugging (inconsistent data)
– The model and data are correct, but the associated data represents a
real-world conflict in the system being modeled
– You create an infeasible model to test properties of (or extract
information about) a similar model
© 2015 IBM Corporation37 34ème journėe JFRO - Sept. 23, 2015
Tools: conflict refiner
© 2015 IBM Corporation38 34ème journėe JFRO - Sept. 23, 2015
Tools: conflict refiner
!----------------------------------------------------------------------------
! Satisfiability problem - 2,980 variables, 851 constraints
! Problem found infeasible at the root node
! ----------------------------------------------------------------------------
...
! ----------------------------------------------------------------------------
! Conflict refining - 851 constraints
! ----------------------------------------------------------------------------
! Iteration Number of constraints
* 1 851
* 2 426
...
* 58 5
* 59 5
! Conflict refining terminated
! ----------------------------------------------------------------------------
! Conflict status : Terminated normally, conflict found
! Conflict size : 5 constraints
! Number of iterations : 59
! Total memory usage : 13.3 MB
! Conflict computation time : 0.51s
! ----------------------------------------------------------------------------
© 2015 IBM Corporation39 34ème journėe JFRO - Sept. 23, 2015
Tools: conflict refiner
 Conflict:
 There is not enough antennas to accommodate all 4 tasks on their
time-window on ground station “LION” (3 antennas):
– <134A,6,1232,19,1266>
– <144, 6,1238,31,1272>
– <146, 6,1228,22,1260>
– <146A,6,1230,22,1262>
1232 1266
134A
12721238
144
1228 1260
146
1230 1262
146A
© 2015 IBM Corporation40 34ème journėe JFRO - Sept. 23, 2015
Simplifying model design & problem resolution
Warnings
Warm start
User model
Internal model
Model analysis Model presolve
OPL,C++,Java,.NET
Conflict
Model
Solution
CPO file
Search log
Automatic Solve Conflict refiner
© 2015 IBM Corporation41 34ème journėe JFRO - Sept. 23, 2015
From mathematical tools to real applications
Project
environment
Problem
definition
Data
Problem
decomposition
Optimization
technologies
Visualization
Interactivity
Development
tools

More Related Content

What's hot

A project portfolio management capability framework
A project portfolio management capability frameworkA project portfolio management capability framework
A project portfolio management capability frameworkRobert Greca, PMP, SA
 
ERP Implementation cycle
ERP Implementation cycleERP Implementation cycle
ERP Implementation cycleMantavya Gajjar
 
Project portfolio management - webinar
Project portfolio management - webinarProject portfolio management - webinar
Project portfolio management - webinarAli Zeeshan
 
2. traditional project management -ch2
2. traditional project management -ch22. traditional project management -ch2
2. traditional project management -ch2Mazhar Poohlah
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumArrielle Mali
 
PMO Performance Measurement and Metrics - Kendrick
PMO Performance Measurement and Metrics - KendrickPMO Performance Measurement and Metrics - Kendrick
PMO Performance Measurement and Metrics - KendrickJim Kendrick
 
Having a PMO with agile flavor
Having a PMO with agile flavorHaving a PMO with agile flavor
Having a PMO with agile flavorImad Alsadeq
 
Information Technology Project Management
Information Technology Project ManagementInformation Technology Project Management
Information Technology Project ManagementGoutama Bachtiar
 
Project Management Foundations Course 101 - Project Management Concepts
Project Management Foundations Course 101 - Project Management ConceptsProject Management Foundations Course 101 - Project Management Concepts
Project Management Foundations Course 101 - Project Management ConceptsThink For A Change
 
Microsoft Project and Portfolio Management
Microsoft Project and Portfolio ManagementMicrosoft Project and Portfolio Management
Microsoft Project and Portfolio ManagementDavid J Rosenthal
 
SDLC Models and Their Implementation
SDLC Models and Their ImplementationSDLC Models and Their Implementation
SDLC Models and Their ImplementationSonal Tiwari
 

What's hot (20)

PMP Exam Preparation - 200 Questions
PMP Exam Preparation - 200 QuestionsPMP Exam Preparation - 200 Questions
PMP Exam Preparation - 200 Questions
 
The Next Generation PMO
The Next Generation PMOThe Next Generation PMO
The Next Generation PMO
 
A project portfolio management capability framework
A project portfolio management capability frameworkA project portfolio management capability framework
A project portfolio management capability framework
 
Enterprise Demand Management Framework
Enterprise Demand Management FrameworkEnterprise Demand Management Framework
Enterprise Demand Management Framework
 
ERP Implementation cycle
ERP Implementation cycleERP Implementation cycle
ERP Implementation cycle
 
PERT
PERTPERT
PERT
 
Project portfolio management
Project portfolio managementProject portfolio management
Project portfolio management
 
Project portfolio management - webinar
Project portfolio management - webinarProject portfolio management - webinar
Project portfolio management - webinar
 
2. traditional project management -ch2
2. traditional project management -ch22. traditional project management -ch2
2. traditional project management -ch2
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
 
AgilePM® - Agile Project Management - Foundation
AgilePM® - Agile Project Management - FoundationAgilePM® - Agile Project Management - Foundation
AgilePM® - Agile Project Management - Foundation
 
PMO Performance Measurement and Metrics - Kendrick
PMO Performance Measurement and Metrics - KendrickPMO Performance Measurement and Metrics - Kendrick
PMO Performance Measurement and Metrics - Kendrick
 
Scrum 101
Scrum 101 Scrum 101
Scrum 101
 
Having a PMO with agile flavor
Having a PMO with agile flavorHaving a PMO with agile flavor
Having a PMO with agile flavor
 
Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
Information Technology Project Management
Information Technology Project ManagementInformation Technology Project Management
Information Technology Project Management
 
Project Management Foundations Course 101 - Project Management Concepts
Project Management Foundations Course 101 - Project Management ConceptsProject Management Foundations Course 101 - Project Management Concepts
Project Management Foundations Course 101 - Project Management Concepts
 
Microsoft Project and Portfolio Management
Microsoft Project and Portfolio ManagementMicrosoft Project and Portfolio Management
Microsoft Project and Portfolio Management
 
SDLC Models and Their Implementation
SDLC Models and Their ImplementationSDLC Models and Their Implementation
SDLC Models and Their Implementation
 
Agile Metrics
Agile MetricsAgile Metrics
Agile Metrics
 

Similar to Solving Industrial Scheduling Problems with Constraint Programming

An introduction to CP Optimizer
An introduction to CP OptimizerAn introduction to CP Optimizer
An introduction to CP OptimizerPhilippe Laborie
 
Optimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applicationsOptimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applicationsPhilippe Laborie
 
Fdp session rtu session 1
Fdp session rtu session 1Fdp session rtu session 1
Fdp session rtu session 1sprsingh1
 
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
 
TenYearsCPOptimizer
TenYearsCPOptimizerTenYearsCPOptimizer
TenYearsCPOptimizerPaulShawIBM
 
Mtm Turkey Handout
Mtm Turkey HandoutMtm Turkey Handout
Mtm Turkey HandoutTmtm Tmtm
 
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
 
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
 
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
 
Business Analytics and Optimization Introduction (part 2)
Business Analytics and Optimization Introduction (part 2)Business Analytics and Optimization Introduction (part 2)
Business Analytics and Optimization Introduction (part 2)Raul Chong
 
Modeling and Solving Scheduling Problems with CP Optimizer
Modeling and Solving Scheduling Problems with CP OptimizerModeling and Solving Scheduling Problems with CP Optimizer
Modeling and Solving Scheduling Problems with CP OptimizerPhilippe Laborie
 
Recent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP OptimizerRecent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP OptimizerPhilippe Laborie
 
A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...ramuaa124
 
A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...yearstart1
 
Om0013 advanced production and operations management
Om0013 advanced production and operations managementOm0013 advanced production and operations management
Om0013 advanced production and operations managementStudy Stuff
 
ICAPS-2020 Industry Session
ICAPS-2020 Industry SessionICAPS-2020 Industry Session
ICAPS-2020 Industry SessionPhilippe Laborie
 

Similar to Solving Industrial Scheduling Problems with Constraint Programming (20)

An introduction to CP Optimizer
An introduction to CP OptimizerAn introduction to CP Optimizer
An introduction to CP Optimizer
 
Optimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applicationsOptimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applications
 
Fdp session rtu session 1
Fdp session rtu session 1Fdp session rtu session 1
Fdp session rtu session 1
 
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...
 
An approach to production scheduling optimization, A Case of an Oil Lubricati...
An approach to production scheduling optimization, A Case of an Oil Lubricati...An approach to production scheduling optimization, A Case of an Oil Lubricati...
An approach to production scheduling optimization, A Case of an Oil Lubricati...
 
Industrial Algorithms
Industrial AlgorithmsIndustrial Algorithms
Industrial Algorithms
 
TenYearsCPOptimizer
TenYearsCPOptimizerTenYearsCPOptimizer
TenYearsCPOptimizer
 
Mtm Turkey Handout
Mtm Turkey HandoutMtm Turkey Handout
Mtm Turkey Handout
 
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
 
Lessonslearnedeuro
LessonslearnedeuroLessonslearnedeuro
Lessonslearnedeuro
 
ABB Scheduling.pdf
ABB Scheduling.pdfABB Scheduling.pdf
ABB Scheduling.pdf
 
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
 
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
 
Business Analytics and Optimization Introduction (part 2)
Business Analytics and Optimization Introduction (part 2)Business Analytics and Optimization Introduction (part 2)
Business Analytics and Optimization Introduction (part 2)
 
Modeling and Solving Scheduling Problems with CP Optimizer
Modeling and Solving Scheduling Problems with CP OptimizerModeling and Solving Scheduling Problems with CP Optimizer
Modeling and Solving Scheduling Problems with CP Optimizer
 
Recent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP OptimizerRecent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP Optimizer
 
A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...
 
A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...A company is planning for its financing needs and uses the basic fixed order-...
A company is planning for its financing needs and uses the basic fixed order-...
 
Om0013 advanced production and operations management
Om0013 advanced production and operations managementOm0013 advanced production and operations management
Om0013 advanced production and operations management
 
ICAPS-2020 Industry Session
ICAPS-2020 Industry SessionICAPS-2020 Industry Session
ICAPS-2020 Industry Session
 

More from Philippe 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
 
Industrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingIndustrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingPhilippe Laborie
 
Planning/Scheduling with CP Optimizer
Planning/Scheduling with CP OptimizerPlanning/Scheduling with CP Optimizer
Planning/Scheduling with CP OptimizerPhilippe Laborie
 
Objective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingObjective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingPhilippe 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
 
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
 
Model Presolve, Warmstart and Conflict Refining in CP Optimizer
Model Presolve, Warmstart and Conflict Refining in CP OptimizerModel Presolve, Warmstart and Conflict Refining in CP Optimizer
Model Presolve, Warmstart and Conflict Refining in CP OptimizerPhilippe Laborie
 
Reasoning with Conditional Time-intervals
Reasoning with Conditional Time-intervalsReasoning with Conditional Time-intervals
Reasoning with Conditional Time-intervalsPhilippe Laborie
 
An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...
An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...
An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...Philippe Laborie
 
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
 
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
 

More from Philippe Laborie (11)

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...
 
Industrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingIndustrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint Programming
 
Planning/Scheduling with CP Optimizer
Planning/Scheduling with CP OptimizerPlanning/Scheduling with CP Optimizer
Planning/Scheduling with CP Optimizer
 
Objective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingObjective Landscapes for Constraint Programming
Objective Landscapes for Constraint Programming
 
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...
 
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
 
Model Presolve, Warmstart and Conflict Refining in CP Optimizer
Model Presolve, Warmstart and Conflict Refining in CP OptimizerModel Presolve, Warmstart and Conflict Refining in CP Optimizer
Model Presolve, Warmstart and Conflict Refining in CP Optimizer
 
Reasoning with Conditional Time-intervals
Reasoning with Conditional Time-intervalsReasoning with Conditional Time-intervals
Reasoning with Conditional Time-intervals
 
An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...
An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...
An Optimal Iterative Algorithm for Extracting MUCs in a Black-box Constraint ...
 
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...
 
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
 

Recently uploaded

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Solving Industrial Scheduling Problems with Constraint Programming

  • 1. Sept. 23, 2015 © 2015 IBM Corporation34ème journėe JFRO Solving Industrial Scheduling Problems with Constraint Programming Philippe Laborie IBM Analytics, Decision Optimization
  • 2. © 2015 IBM Corporation2 34ème journėe JFRO - Sept. 23, 2015 Outline  Scheduling problems: from theory to practice  CP extensions for scheduling  Simplifying model design & problem resolution
  • 3. © 2015 IBM Corporation3 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Theory: e.g. RCPSP (Resource Constrained Project Scheduling) – Problem definition: • A set of n tasks A1,...,An with specified duration Di for task Ai • A set of precedence constraints between tasks (precedence graph) • A set of m resources R1,...,Rm with specified capacity Cj for resource Rj • Each task Ai requires some resources in a given quantity • Objective is to minimize project makespan – Classical benchmark: PSPLib = 30-120 tasks a1 a3 a2 a6 a5 a4 a7 a8 R1 R2
  • 4. © 2015 IBM Corporation4 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Theory: e.g. RCPSP (Resource Constrained Project Scheduling) – From an academical point of view, this is a very generic problem that subsumes many other classical scheduling problems RCPSP Job-shop Flow-shop Open-shop Hybrid Flow-shop
  • 5. © 2015 IBM Corporation5 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Some real scheduling applications – Aerospace: Project scheduling, Aircraft assembly, Assembly line configuration, Satellite communication & observation, Rover activities … – Energy & Utilities: Nuclear plant outage scheduling, Maintenance, Production planning … – Mining: Open pit mining ... – Logistics, Supply Chain: Vehicle routing, Bikes and car sharing … – Manufacturing: Production scheduling, Assembly lines, Factory configuration, Test scheduling … – Media & Communications: Advertizing & program scheduling, Event & personnel scheduling … – Travel & transportation: Airport scheduling (gates, landing, parking, …), Port scheduling (quay cranes ...), Train scheduling … – Health: Employee, Patient scheduling, Pharmaceutical products tests … – Agriculture: Crop scheduling (harvesting ...) – General audience: Personal schedule organizer, Theme park planner ...
  • 6. © 2015 IBM Corporation6 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Practice: the problem looks like ... this ... or this ...
  • 7. © 2015 IBM Corporation7 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Practice: the problem is large – Typical problems are larger than 1000 activities – E.g. we solved a 1.000.000 tasks RCPSP-like problem for an aircraft manufacturer
  • 8. © 2015 IBM Corporation8 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Practice: the problem is complex – Heterogeneous types of decisions: start/end dates, resource allocation, mode selection, activity non-execution, activity durations, activity interruptions, resource quantities, producer/consumer matching, batch configuration, resource overconsumption, resource configuration, … – Complex resources: inventories, setup times and costs, calendars/shifts, moving resources, spatial constraints, synchronization constraints (e.g. conveyer belt), batch constraints – Complex activities: optional, interruptible, setups, maintenance, work breakdown structure – Complex objective function: earliness/tardiness, temporal preferences, resource related costs (many types!), most of the problems are multi-objectives
  • 9. © 2015 IBM Corporation9 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Practice: the problem is not well defined – Implicit constraints / objectives – Some aspects of the problem are critical, others can be: • Approximated • Relaxed • Over-constrained • Considered in a post-processing step • …  Practice: the data is: – Hard to get (different data sources, confidentiality, …) – Uncertain / Imprecise / Incomplete / Incorrect  Customers are expecting good solutions to their problem, they usually do not care about how the problem is modeled/solved
  • 10. © 2015 IBM Corporation10 34ème journėe JFRO - Sept. 23, 2015 Scheduling problems: from theory to practice  Practice: mind the real gap Real world Modeling Execution solution X Solve Model & Data minimize f(X) subject to C(X) gapS
  • 11. © 2015 IBM Corporation11 34ème journėe JFRO - Sept. 23, 2015 gapM Scheduling problems: from theory to practice  Practice: mind the real gap – “Essentially, all models are wrong, but some are useful” – G. Box – The real gap you must care about is gapM  gapS Real world Modeling Execution solution X Solve Model & Data minimize f(X) subject to C(X) gapS
  • 12. © 2015 IBM Corporation12 34ème journėe JFRO - Sept. 23, 2015 gapM Scheduling problems: from theory to practice  Practice: mind the real gap – “Essentially, all models are wrong, but some are useful” – G. Box – The real gap you must care about is gapM  gapS Real world Modeling Execution solution X Solve Model & Data minimize f(X) subject to C(X) gapS Expressive modeling language Robust & efficient optimization algorithm Tools for simplifying model design and resolution
  • 13. © 2015 IBM Corporation13 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling  Extension of classical CSP with a new type of decision variable: optional interval variable : Domain(x) { } { [s,e) | s,e , s≤e }  Introduction of mathematical notions such as sequences and functions to capture temporal dimension of scheduling problems Absent interval Interval of integers
  • 14. © 2015 IBM Corporation14 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling  In scheduling models, interval variables usually represent an interval of time during which some property hold (e.g. an activity executes) and whose end-points (start/end) are decision variables of the problem.  Examples: – A sub-project in a project, a task in a sub-project (Work Breakdown Structure) – A batch of operations – The setup of a tool on a machine – The moving of an item by a transportation device – The utilization interval of a resource  Idea of the model (and search) is to avoid the enumeration of start/end values (continuous time)
  • 15. © 2015 IBM Corporation15 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling  An interval variable can be optional meaning that it is a decision to have it present or absent in a solution.  Examples: – Unperformed tasks and optional sub-projects – Alternative resources, modes or recipes for processing an order, each mode specifying a particular combination of operational resources – Operations that can be processed in different temporal modes (e.g. series or parallel) – Activities that can be performed in an alternative set of batches or shifts
  • 16. © 2015 IBM Corporation16 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling  Example: RCPSP
  • 17. © 2015 IBM Corporation17 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling  Example: Job-shop scheduling problem
  • 18. © 2015 IBM Corporation18 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling  Satellite Control Network scheduling problem [1]  n communication tasks for Earth orbiting satellites must be scheduled on a total of 32 antennas spread across 13 ground- based tracking stations  In the instances, n ranges from to 400 to 1300  Objective: maximize the number of scheduled tasks [1] Kramer & al.: Understanding Performance Trade-offs in Algorithms for Solving Oversubscribed Scheduling.
  • 19. © 2015 IBM Corporation19 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling Station1Station2Station3 Taski Oppi,1 Oppi,2 Oppi,3 Alternative assignments to stations  time windows (opportunities) Oppi,4 OR
  • 20. © 2015 IBM Corporation20 34ème journėe JFRO - Sept. 23, 2015 CP extensions for scheduling
  • 21. © 2015 IBM Corporation21 34ème journėe JFRO - Sept. 23, 2015 Automatic Search  Search algorithm is Complete  Core CP techniques used as a building block: – Tree search (Depth First) – Constraint propagation  But also: – Deterministic multicore parallelism – Model presolve – Algorithms portfolios – Machine learning – Restarting techniques – Large Neighborhood Search – No-good learning – Impact-based branching – Opportunistic probing – Dominance rules – LP-assisted heuristics – Randomization – Evolutionary algorithms
  • 22. © 2015 IBM Corporation22 34ème journėe JFRO - Sept. 23, 2015 Automatic Search  Very good performance results on academical problems – CP-AI-OR 2015: – Winner of the CP-2015 Industrial Modelling Challenge with a very simple model: csplib.org/Problems/prob073/models/model.mod.html  More important: very good performance on industrial problems
  • 23. © 2015 IBM Corporation23 34ème journėe JFRO - Sept. 23, 2015 Simplifying model design & problem resolution Warnings Warm start User model Internal model Model analysis Model presolve OPL,C++,Java,.NET Conflict Model Solution CPO file Search log Automatic Solve Conflict refiner
  • 24. © 2015 IBM Corporation24 34ème journėe JFRO - Sept. 23, 2015 Tools: I/O format  Objective: – Make it easier to understand the content of a model – Communicate a model to IBM support team regardless of the API used to build it (OPL, C++, Java, .NET)  Structure of a .cpo file – Human readable – Flat (no cycle, forall statements) – No user defined data types – Internal information such as CPO version or platform used – Includes search parameter values  Facilities – Export model before/instead of solve – Export model during solve (with current domains) – Import model instead of normal modeling
  • 25. © 2015 IBM Corporation25 34ème journėe JFRO - Sept. 23, 2015 Tools: I/O format // Interval-related variables: "task(1)" = intervalVar(optional); "task(1A)" = intervalVar(optional); … "opp({1,1,62})" = intervalVar(optional, start=62..intervalmax, end=0..99, size=25); "opp({1A,1,32})" = intervalVar(optional, start=32..intervalmax, end=0..69, size=33); … // Objective: maximize(sum([presenceOf("task(1)"), presenceOf("task(1A)"), …])); … // Constraints: alternative("task(1)", ["opp({1,1,62})"], 1); … pulse("opp({3,1,58})", 1) + pulse("opp({1,1,62})", 1) + … <= 4; … parameters { LogVerbosity = Quiet; }
  • 26. © 2015 IBM Corporation26 34ème journėe JFRO - Sept. 23, 2015 Tools: model warnings  Like a compiler, CP Optimizer can analyze the model and print some warnings – When there is something suspicious in the model – Regardless how the model was created (C++, OPL, …) – Including guilty part of the model in the cpo file format – Including source code line numbers (if known) – 3 levels of warnings, more than 50 types of warnings satellite.cpo:2995:1: Warning: Constraint 'alternative': there is only one alternative interval variable. alternative("task(1)", ["opp({1,1,62})"], 1) satellite.cpo:2996:1: Warning: Constraint 'alternative': there is only one alternative interval variable. alternative("task(1A)", ["opp({1A,1,32})"], 1)
  • 27. © 2015 IBM Corporation27 34ème journėe JFRO - Sept. 23, 2015 Tools: model presolve  Objective: automatically reformulate the model in order to speed-up its resolution  Works on an internal representation of the model  Different types of presolve: – Aggregation of basic constraints into global constraints – Constraint strengthening – Simplifications and factorizations
  • 28. © 2015 IBM Corporation28 34ème journėe JFRO - Sept. 23, 2015 Tools: model presolve  Examples of presolve rules – Common sub-expression elimination – Aggregation of x!=y cliques as allDifferent([x,y,...]) – Precedence strengthening • If a and b cannot overlap and startsBeforeStart(a,b) • Then endsBeforeStart(a,b) – Precedence recognition • If endOf(a,-)  startOf(b,+) • Then endsBeforeStart(a,b) • Precedences are aggregated into a “time net” (STN) for faster and stronger propagation – 2-SAT clauses recognition • presenceOf(a)  presenceOf(b) • Such clauses are aggregated into a “logical net” for stronger propagation
  • 29. © 2015 IBM Corporation29 34ème journėe JFRO - Sept. 23, 2015 Tools: search log  Objective: understand what happens during the automatic search ! ----------------------------------------------------------------------- ! Maximization problem - 2980 variables, 853 constraints ! Workers = 2 ! TimeLimit = 30 ! Initial process time : 0.01s (0.00s extraction + 0.01s propagation) ! . Log search space : 4627.3 (before), 4627.3 (after) ! . Memory usage : 16.9 MB (before), 19.7 MB (after) ! Using parallel search with 2 workers. ! ----------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision * 746 3945 0.79s 1 - 746 4000 2924 1 on task("8") 746 4000 2908 2 on opp({"186",2,66}) … ! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB ! Best Branches Non-fixed W Branch decision 818 12000 2920 1 on task("184") … ! ----------------------------------------------------------------------- ! Search terminated by limit, 6 solutions found. ! Best objective : 826 ! Number of branches : 709092 ! Number of fails : 179648 ! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert) ! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction) ! Search speed (br. / s) : 23625.4 ! ----------------------------------------------------------------------- Problem characteristics
  • 30. © 2015 IBM Corporation30 34ème journėe JFRO - Sept. 23, 2015 Tools: search log  Objective: understand what happens during the automatic search ! ----------------------------------------------------------------------- ! Maximization problem - 2980 variables, 853 constraints ! Workers = 2 ! TimeLimit = 30 ! Initial process time : 0.01s (0.00s extraction + 0.01s propagation) ! . Log search space : 4627.3 (before), 4627.3 (after) ! . Memory usage : 16.9 MB (before), 19.7 MB (after) ! Using parallel search with 2 workers. ! ----------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision * 746 3945 0.79s 1 - 746 4000 2924 1 on task("8") 746 4000 2908 2 on opp({"186",2,66}) … ! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB ! Best Branches Non-fixed W Branch decision 818 12000 2920 1 on task("184") … ! ----------------------------------------------------------------------- ! Search terminated by limit, 6 solutions found. ! Best objective : 826 ! Number of branches : 709092 ! Number of fails : 179648 ! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert) ! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction) ! Search speed (br. / s) : 23625.4 ! ----------------------------------------------------------------------- Modified parameter values
  • 31. © 2015 IBM Corporation31 34ème journėe JFRO - Sept. 23, 2015 Tools: search log  Objective: understand what happens during the automatic search ! ----------------------------------------------------------------------- ! Maximization problem - 2980 variables, 853 constraints ! Workers = 2 ! TimeLimit = 30 ! Initial process time : 0.01s (0.00s extraction + 0.01s propagation) ! . Log search space : 4627.3 (before), 4627.3 (after) ! . Memory usage : 16.9 MB (before), 19.7 MB (after) ! Using parallel search with 2 workers. ! ----------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision * 746 3945 0.79s 1 - 746 4000 2924 1 on task("8") 746 4000 2908 2 on opp({"186",2,66}) … ! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB ! Best Branches Non-fixed W Branch decision 818 12000 2920 1 on task("184") … ! ----------------------------------------------------------------------- ! Search terminated by limit, 6 solutions found. ! Best objective : 826 ! Number of branches : 709092 ! Number of fails : 179648 ! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert) ! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction) ! Search speed (br. / s) : 23625.4 ! ----------------------------------------------------------------------- Root node information
  • 32. © 2015 IBM Corporation32 34ème journėe JFRO - Sept. 23, 2015 Tools: search log  Objective: understand what happens during the automatic search ! ----------------------------------------------------------------------- ! Maximization problem - 2980 variables, 853 constraints ! Workers = 2 ! TimeLimit = 30 ! Initial process time : 0.01s (0.00s extraction + 0.01s propagation) ! . Log search space : 4627.3 (before), 4627.3 (after) ! . Memory usage : 16.9 MB (before), 19.7 MB (after) ! Using parallel search with 2 workers. ! ----------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision * 746 3945 0.79s 1 - 746 4000 2924 1 on task("8") 746 4000 2908 2 on opp({"186",2,66}) … ! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB ! Best Branches Non-fixed W Branch decision 818 12000 2920 1 on task("184") … ! ----------------------------------------------------------------------- ! Search terminated by limit, 6 solutions found. ! Best objective : 826 ! Number of branches : 709092 ! Number of fails : 179648 ! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert) ! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction) ! Search speed (br. / s) : 23625.4 ! ----------------------------------------------------------------------- New incumbent solutions (time, worker)
  • 33. © 2015 IBM Corporation33 34ème journėe JFRO - Sept. 23, 2015 Tools: search log  Objective: understand what happens during the automatic search ! ----------------------------------------------------------------------- ! Maximization problem - 2980 variables, 853 constraints ! Workers = 2 ! TimeLimit = 30 ! Initial process time : 0.01s (0.00s extraction + 0.01s propagation) ! . Log search space : 4627.3 (before), 4627.3 (after) ! . Memory usage : 16.9 MB (before), 19.7 MB (after) ! Using parallel search with 2 workers. ! ----------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision * 746 3945 0.79s 1 - 746 4000 2924 1 on task("8") 746 4000 2908 2 on opp({"186",2,66}) … ! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB ! Best Branches Non-fixed W Branch decision 818 12000 2920 1 on task("184") … ! ----------------------------------------------------------------------- ! Search terminated by limit, 6 solutions found. ! Best objective : 826 ! Number of branches : 709092 ! Number of fails : 179648 ! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert) ! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction) ! Search speed (br. / s) : 23625.4 ! ----------------------------------------------------------------------- Periodical log with fail information, number of unfixed variables, current decision
  • 34. © 2015 IBM Corporation34 34ème journėe JFRO - Sept. 23, 2015 Tools: search log  Objective: understand what happens during the automatic search ! ----------------------------------------------------------------------- ! Maximization problem - 2980 variables, 853 constraints ! Workers = 2 ! TimeLimit = 30 ! Initial process time : 0.01s (0.00s extraction + 0.01s propagation) ! . Log search space : 4627.3 (before), 4627.3 (after) ! . Memory usage : 16.9 MB (before), 19.7 MB (after) ! Using parallel search with 2 workers. ! ----------------------------------------------------------------------- ! Best Branches Non-fixed W Branch decision * 746 3945 0.79s 1 - 746 4000 2924 1 on task("8") 746 4000 2908 2 on opp({"186",2,66}) … ! Time = 1.37s, Explored branches = 35832, Memory usage = 55.5 MB ! Best Branches Non-fixed W Branch decision 818 12000 2920 1 on task("184") … ! ----------------------------------------------------------------------- ! Search terminated by limit, 6 solutions found. ! Best objective : 826 ! Number of branches : 709092 ! Number of fails : 179648 ! Total memory usage : 54.5 MB (52.9 MB CP Optimizer + 1.6 MB Concert) ! Time spent in solve : 30.03s (30.01s engine + 0.01s extraction) ! Search speed (br. / s) : 23625.4 ! ----------------------------------------------------------------------- Final information with solution status and search statistics
  • 35. © 2015 IBM Corporation35 34ème journėe JFRO - Sept. 23, 2015 Tools: warm start  Objective: Start search from a known (possibly incomplete) solution given by the user (warm start) in order to further improve it or to help to guide the engine towards a first feasible solution  API: IloCP::setStartingPoint(IloSolution warmstart)  Use cases: – Restart an interrupted search with the current incumbent – Start from an initial solution found by an available heuristic – Goal programming for multi-objective problems – When finding an initial solution is hard, solve an initial problem that maximizes constraint satisfaction and start from its solution – Successively solving similar problems (e.g. dynamic scheduling) – Hierarchical problem solving (e.g. planning scheduling)→
  • 36. © 2015 IBM Corporation36 34ème journėe JFRO - Sept. 23, 2015 Tools: conflict refiner  Objective: identify a reason for an inconsistency by providing a minimal infeasible subset of constraints for an infeasible model  Use cases: – Model debugging (errors in model) – Data debugging (inconsistent data) – The model and data are correct, but the associated data represents a real-world conflict in the system being modeled – You create an infeasible model to test properties of (or extract information about) a similar model
  • 37. © 2015 IBM Corporation37 34ème journėe JFRO - Sept. 23, 2015 Tools: conflict refiner
  • 38. © 2015 IBM Corporation38 34ème journėe JFRO - Sept. 23, 2015 Tools: conflict refiner !---------------------------------------------------------------------------- ! Satisfiability problem - 2,980 variables, 851 constraints ! Problem found infeasible at the root node ! ---------------------------------------------------------------------------- ... ! ---------------------------------------------------------------------------- ! Conflict refining - 851 constraints ! ---------------------------------------------------------------------------- ! Iteration Number of constraints * 1 851 * 2 426 ... * 58 5 * 59 5 ! Conflict refining terminated ! ---------------------------------------------------------------------------- ! Conflict status : Terminated normally, conflict found ! Conflict size : 5 constraints ! Number of iterations : 59 ! Total memory usage : 13.3 MB ! Conflict computation time : 0.51s ! ----------------------------------------------------------------------------
  • 39. © 2015 IBM Corporation39 34ème journėe JFRO - Sept. 23, 2015 Tools: conflict refiner  Conflict:  There is not enough antennas to accommodate all 4 tasks on their time-window on ground station “LION” (3 antennas): – <134A,6,1232,19,1266> – <144, 6,1238,31,1272> – <146, 6,1228,22,1260> – <146A,6,1230,22,1262> 1232 1266 134A 12721238 144 1228 1260 146 1230 1262 146A
  • 40. © 2015 IBM Corporation40 34ème journėe JFRO - Sept. 23, 2015 Simplifying model design & problem resolution Warnings Warm start User model Internal model Model analysis Model presolve OPL,C++,Java,.NET Conflict Model Solution CPO file Search log Automatic Solve Conflict refiner
  • 41. © 2015 IBM Corporation41 34ème journėe JFRO - Sept. 23, 2015 From mathematical tools to real applications Project environment Problem definition Data Problem decomposition Optimization technologies Visualization Interactivity Development tools