Title: On the use of Metaheuristics in the Telecom Industry
1On the use of Metaheuristics in the Telecom
Industry
- iOpt Toolkit Optimise with pleasure
Dr Raphaël Dorne British Telecom
Dr C. Voudouris, Dr A. Liret, A. Conway, Dr M.
Kern, C. Ladde, Dr D. Lesaint
2Outline
- Introduction
- Combinatorial Optimisation
- Main Solving Techniques
- Drawbacks with Metaheuristics
- Metaheuristics in (Telecom) Industry?
- iOpt Intelligent Optimisation Toolkit
- Case Study (Vehicle Routing Problem)
- Demos
- Conclusion
3 4Introduction to Combinatorial Optimisation
- X, set of n (discrete) variables
- S, solutions space (si complete assignment
x1xn) - F, objective function
- (C, set of forbidden assignments (constraints))
- Find s
- (where s satisfies C)
- Complexity Theory P and NP(-Hard) Classes
5Introduction to Combinatorial Optimisation
- Large number of potential solutions (search
space) - Satisfy a set of constraints ? (feasible search
space) - Capability to evaluate the quality of any
solution (cost function) - Goal Find the best or one of the best solutions
- Example Workforce Scheduling Problem
- Set of technicians, set of tasks to serve
- Allocate jobs (schedule routes, match skills, )
- Evaluate quality of any scheduling
- Unallocated jobs (quality of service)
- Travel Time cost
- Number of technicians used to serve the workload
6Introduction to Combinatorial Optimisation
- Complexity of scheduling
- problem size f(scheduling horizon D, number of
jobs to allocate J, number of technicians T) - worst-case time complexity is exponential
O((TJ)J) - Example
- T10, J20, D large enough for a tech to be
allocated 20 jobs - 109 schedules generated per second
- 52 years of cpu time!!!
- Scheduling is NP-hard
7Search Space
8Feasible/Infeasible Search Space
- Disconnected feasible parts
Search Space
9Main Solving Approaches
- Problem Class Specific
- P-class problems (Complexity Theory
Deterministic Polynomial time alg.) - Linear Programming (Simplex)
- Integer Programming (LP adapted to
integer/discrete variables) - Exhaustive/Enumerative aspect
- gt efficient but difficult to apply (time
consuming) - ! Adapt your problem to your solving technique
- Evaluate Partially Constructed Solution (partial
assignment) - Exhaustive/Enumerative search
- Backtracking, Branch-and-bound, A
- Constraint Programming
- Divide-and-conquer
- gt completeness (optimisation optimal solution,
satisfaction no solution)
10Main Solving Approaches (partially Constructed)
Value ordering
- Tree size DxDYDZ33
- General case DN
- Each new value doubles the size of the search
space thus processing time (worst case) - Cut branches
- Stop at first solution, limits number of
backtracks - By nature exponential
1
2
0
X 0,1,2
Variable ordering
Y 0,1,2
0
1
2
...
Y 0,1,2
...
000
001
002
222
...
- gt Sensitive to variable and value ordering
- gt Might not be able to use any of the results
- gt inadequate for medium/large scale optimisation
problems
11Main Solving Techniques
- Evaluate Complete Solution (complete assignment)
- Metaheuristics gt good ratio quality/time
- Heuristic Search (No complete toolkit available
so far) - Single Solution-based Local Search such as SA,
TS, GLS, VNS, - Population-based GAs, Ants, Memetic Algorithm,
- Hybrid Algorithm Genetic AlgorithmsLocalSearch
12Local Search Paradigm Hill-climber, SA, TS, etc.
Exploration
Iterative process Generate s0 While (stopping
condition) Generate Neighbours N(si) Evaluate
N(si) Si1 SelectNext N(si) Return s
Exploitation
s0
s
13Population-based Paradigm GAs, Scatter Search,
Exploration
Iterative process Generate p0 While (stopping
condition) pm Mutate(pi) pc
Crossover(pm) Pi1 Select(pc) Return s
X
X
Exploitation
X
I2,i
14Complete Assignment Techniques (metaheuristics)
- Stop it at any time
- A solution you can try (feasible search space)
- Find their strength in their ability to explore
and exploit the search space - More appropriate for medium/large scale
non-linear combinatorial optimisation - Fast evaluation is critical (analogy with human
being looking around for the lowest location)
15- Drawbacks
- with metaheuristics
16Problem 1 Model Representation?
- No clear problem modelling representation
- Constraint-based?
- Programming language based?
- Mathematical formula
- Current solution
- Full re-computation of cost function
- Tedious hard coding to incrementally update cost
function/check feasibility - add a new constraint type?
- add a new objective term?
17Problem 2 Very large number of variants
- How many meta-heuristic techniques?
- TS, VNS, SA, FLS, GLS, GAs, ANTs, Scatter Search,
Hybrid Algorithms - How many heuristic techniques available in the
literature? - Neighbourhood Search best neighbour, first
improvement, best improvement - Neighbourhood assign value to decision variable,
swap values, insert object, swap objects, - How many customisation of heuristic techniques to
a given problem? - TS for FAP, SA for scheduling
- How many combinations can be generated from
them!! - And what about tuning
18Problem 3 Stochastic Techniques
- Heuristic search techniques stochastic
techniques - Impossible to know in advance which technique
will work best - Each run is likely to give a different result
- Lucky runs
- Designing a heuristic is a bit like cuisine!
but the benefits can be huge - Heuristic search comparison?
- Problem models dependent, data structures,
- Machine, OS, random number generators
- Others implementations unavailable, missing
(important) details - Algorithm/problem exchange between users?
- Stopping conditions? Time, max.
evaluated/performed moved?
19Current solution for Problem 2 3 ?
- Hard-code some meta-heuristics along with some
heuristics with some options And customise them
to our problem - Re-code from almost scratch for any new problem
- Compare our solution to similar type of
techniques (GAs vs GAs) from different
implementations (different data structures,
machines, OS, ) - We all believe our technique is the bestcan we
prove it? - (the answer is No! NFL theorem)
- Share our results via papers/conferences
- 10 improvement from A1 (Y2000) and A2 (Y2005)
because of new operator
20Problem 4 Code/work reuse/exchange?
- We all agree on Heuristic Searches share common
points but - We keep re-coding from scratch any new solution
because it is difficult to reuse the code/work
previously produced - We cannot reuse or exchange our work between
members of a group - gt Need for a complete framework dedicated to
heuristic search
21- Metaheuristics in Telecom Industry
22Why Metaheuristics in Telecom Industry?
- Large organisation (90000 employees)
- many large scale optimisation problems (people,
network, ) - Operational/Execution level
- 4 productivity increase in scheduling BT field
force (24000 eng.) ? - Region of 200 engineers with 1000 tasks a day (?
1000! search space) - 20M/year saving for BT
- Network planning Optimise design for a
particular area - Tactical level
- Resource planning BT Engineers, Where to deploy
them, When, With what skill? - Strategic level
- Network design
- What best technology for BT 21C Network?
- Does network capacity will meet demand growth in
200x?
23Real World vs. Academics
- Customer
- Do not understand metaheuristics
- the solution generated is not optimal, every
run gives you a different result !!!... - Customer focus vs. Technique focused
- Timescale wants a solution for yesterday
- a solution sooner is often better than the best
solution to validate investments - Problem is likely to be difficult to model
- Ill-defined, many different types of
requirements, conflicting multi-objectives - Customisation of operators is very likely
- Not always possible to model them using
mathematical model (simulation, programming
language, ) - Sustainability
- Robustness pre/post processes cleaning
- A new requirement may come at any time now and
in the future - Consider the entire problem
- Improving existing solution is already great!
- Likely to require a mix of techniques
(deterministic/stochastic, multi-phases solution) - Practicability (bear in mind the context)
- Time constraint, data access, concurrent engine
runs, population of solutions, etc.
24- iOpt Intelligent Optimisation Toolkit
25What we did
- iOpt The Intelligent Optimisation Toolkit a
unique complete development platform based on
heuristic search algorithms - Problem modelling capability
- light weight constraint/invariant-based
- user-specific (programming language paradigm)
- Solving capability
- library of components to model metaheuristics
- Advanced visualisation tools
- Monitoring tools
- Design Tools for algorithms (Heuristic Search
Builder) - XML file exchange facility
- Basis for application-specific extensions
- Resource Scheduling (iSchedule)
- Networking Optimisation (iNetwork)
- Resource Planning (iPlan)
26iOpt Toolkit for Heuristic Search Methods
Application-Specific Frameworks
iOpt
Toolkit
Heuristic Search Framework
Algorithm Visualisation
Problem Modelling Framework
Problem Visualisation
Invariant Library
Invariant Visualisation
- iOpt Main Features
- Java-based system
- Uses one-way constraints for problem modelling
- Incorporates general specialised frameworks
for building problem models - Allows the user to build a HS method using a
library of algorithmic parts - Independence between problem modelling and
problem solving - Visualisation components available for problem
models/algorithms
27iOpts Approach
Modelling
Real Application
Solving
Scheduling Framework
Vehicle Routing Problem
Frequency Assignment
Job Shop Problem
Exact\Constructive Search Framework
Graph Colouring
Problem Modelling Framework
Car Sequencing
Heuristic Search Framework
Workforce Profiling
ARMS Problem
Supply Chain
E-business Problem
Invariant Library
28- iOpt
- Problem Modelling Capability
29Invariant Library (IL) Michel98
- Declarative programming paradigm with the Java
OO language - Invariants are one-way functional constraints
- u F(p0,p1,,pn)
- F, a function (Type(pi))n1 ? Type(u)
- A predicate is a Boolean function.
- x ? y z, a ? min(b, c)
- Specialised mark/sweep algorithm
- Very useful to quickly test and undo variable
assignments - Design patterns compliance (Memento, Observer,
Composite, Builder, Listener)
input1
input0
inputn
...
Invariant F
output
u
Michel98 Localizer, Michel Van Hentenryck 98.
30Constraint Satisfaction Algorithm
Mark Stage
- Two phase constraint satisfaction algorithm
- mark
- evaluate
- During the mark phase all influenced invariants
are marked for evaluation - During the evaluation phase all/some marked
invariants are evaluated - Lazy/eager evaluation modes
- Smart rules for deciding if an invariant requires
re-evaluation - Incremental updates for aggregate invariants
(e.g. sum, prod) - User-defined invariant priorities
- Ability to interrupt the evaluate phase based on
user-defined conditions (e.g. constraint
violations).
Influenced (i.e. out of date)
Modified
Evaluate Stage
Influenced
Modified
Evaluated
Unnecessarily Evaluated
Affected
31Constraint Programming vs. Invariants
0
1
2
X2
True/false Undefined
True/false Undefined
?
0
?
X1
?
?
1
2
X1
X2
X3
Constraint Propagation Tree search, reduction of
domains, enforcement of constraints, addition
of constraints, Node-consistency, Arc-consistency,
0
1
2
0
1
2
0
1
2
X3
Node consistency Value propagation
0
1
2
32Problem Modelling Framework (PMF)
- Foundation framework for modelling Combinatorial
Optimisation Problems - User specifies a COP (X,D,C,F)
- X Decision variables with/without domains
- D value domains
- C Constraints over X
- F Objectives
- PMF concepts
- Variable source invariant with backup facility
- Domain support structure for modifying a set of
values - Constraint Boolean invariant
- Objective Real invariant expression of X and C
- Problem handler for the model
Problem Model
Solutions
D. Variables
Constraints
Objective
User
Invariant Network
Basis for domain frameworks (e.g. Scheduling) or
specific problem models
33Problem Model Example
Complexity O(DG) Instead of O(N)
v1
Decision variables
v2
v3
v4
v5
v6
v7
v8
-
Sub-objectives
Constraints
Fitness/Objective value
Feasibility status
34Example Frequency Assignment
cell
antenna
?
?
interference
?
?
?
- Assign one frequency to each antenna
- Limited spectrum of frequencies -gt reuse of
frequencies - Interference constraints
35CSP formal definition
- Given f frequencies and a graph G(V,E)
representing the interference constraint graph,
find a complete frequency allocation generating
no interference. - X set of V integer variables coding the
frequency assigned to each antenna - D values' domain equals to 0..f-1 available
for each decision variable (antenna) - C for each edge (vi,vj), the (interference)
constraint xi ? xj is added to the model - F corresponds to the number of unsatisfied
constraints of C - F(X) 0 ? complete allocation
interference-free
36Code example Problem model for Frequency
Assignment
- IntegerDomainVar X new IntegerDomainVarnbAnte
nnas - BooleanExp C new BooleanExpnbConstraints
nbEdges - beginModelChanges()
- // create decision variables with value domain
0..f - for(int i0iltnbAntennasi)
- addDecisionVar(Xi new IntegerDomainVar("0-gt''
f"")) - // create constraints
- for(int i0ilt nbEdgesi)
- addConstraint(Ci Inv.neq(Xedges0i,Xedge
s1i)) - // add objective
- addObjective(Inv.toReal(Inv.minus(nbConstraints,In
v.sum(C)))) - endModelChanges()
37- iOpt
- Problem Solving Capability
38Heuristic Search (exploration method)
Search Space
I0
I2
- Local Search
- Initial generation
- Local exploration
- Population-based methods
- Population generation
- Selection
- Crossover (large exploration)
- Mutation
I2
I3x2
X
I3
I0
I2x3
I1
I1
39Heuristic Search Framework
- Functionality of common HS algorithms is broken
down into Parts (i.e. Search Components) - Part Categories are represented by Java
Interfaces while specific Parts are defined as
Java Classes implementing these interfaces - A HS algorithm is assembled from parts which form
a tree. Valid trees can be executed on a problem
model - The framework can model single solution/population
methods as well as hybrids of the two. - Challenge find a good characterisation of
concepts found within Meta-Heuristic Search
methods
40Solution Representation
- Vector Representation
- Change value
- Position in representation
- Set of sequences\list of lists
- Change value
- Position in representation
X1
X2
XN
XN-1
3
2
4
0
2
4
1
1
2
X1
X3
X5
L1
3
2
2
X2
X5
X7
L2
0
4
1
X4
X6
2
L3
4
1
41Class HierarchySearch Component for Local Search
Methods
SearchComponent
SingleSolutionMethod
Neighborhood
NeighborhoodSearch
Selector
CompositeNeighborhoodSearch
CompositeSingleSolutionMethod
CompositeNeighborhood
DecisionVariableSelector
SingleNeighborhoodSearch
GenerationSingleSolutionMethod
ValueSelector
SwapMoveNeighborhood
BestImprovement
LocalSearch
PositionSelector
AssignMoveNeighborhood
BestMove
SearchRestart
InsertMoveNeighborhood
DecisionVariableValueSelector
CircularFirstImprovement
PerturbationSolutionMethod
DecisionVariablePositionSelector
FirstImprovement
Options Random_order Index_order Sorted_Order
FirstLegalMove
RestartFirstImprovement
ThresholdNeighborhoodSearch
InvariantSimulatedAnnealing
42Search Component Local Search (Framework
oriented Java Swing-like)
- A formal definition of
- Role
- Modifies a single solution to generate a new one
by performing moves selected by a neighbourhood
search component - Input
- One Heuristic Solution
- Output
- New Heuristic Solution
- Requirements
- Neighbourhood Search component
43Search Component Neighbourhood Search
- Role
- Selects a move in the neighbourhood
- Input
- One Heuristic Solution
- Output
- New Heuristic Solution
- Requirements
- Neighbourhood component
44Algorithm Hill climbing
Heuristic Problem (HP)
Optimised Heuristic Solution
Single Solution Heuristic Search
Composite Single Solution Method
Vector Solution Random Generation
Local Search
(HP HS)
(Initial) Heuristic Solution (HS)
Best Move Neighbourhood Search
move
Assign Move Neighbourhood
DecisionVariableSelector
ValueSelector
Option random_order
Option random_order
45Architecture Overview
PMF Feasibility status Objective value
Invariant Network
Problem Model
Solutions
D. Variables
Constraints
Objective
PMF Propagate changes
HSF Modify value and/or representation
46Code example hill climbing 1/2
- // right branch initial generation
- GenerationSingleSolutionMethod myRSSG new
VectorSolutionRandomGeneration() - // left branch local search
- // neighborhood
- AssignMoveNeighborhood myNeighborhood new
AssignMoveNeighborhood() - DecisionVariableIndexSelector decisionVariableSele
ctor new DecisionVariableIndexSelector() - decisionVariableSelector.setMovesVersion(Selector.
RANDOM_ORDER) - ValueIndexSelector valueIndexSelector new
ValueIndexSelector() - valueIndexSelector.setMovesVersion(Selector.RANDOM
_ORDER) - myNeighborhood.add(decisionVariableSelector)
- myNeighborhood.add(valueIndexSelector)
- // neighborhood search
- BestMoveNeighborhoodSearch myRMNS new
BestMoveNeighborhoodSearch() - myRMNS.setNeighborhood(myNeighborhood)
47Code example hill climbing 2/2
- // local search
- LocalSearch myLS new LocalSearch()
- myLS.setNeighborhoodSearch(myRMNS)
- myLS.setThreshold(0.0)
- // connect the two branches
- CompositeSingleSolutionMethod myCSSM1 new
CompositeSingleSolutionMethod() - myCSSM1.setMaxIterations(1)
- myCSSM1.addMethod(myRSSG)
- myCSSM1.addMethod(myLS)
- // root of the algorithm
- SingleSolutionHeuristicSearch mySSHS new
SingleSolutionHeuristicSearch() - mySSHS.setSingleSolutionMethod(myCSSM1)
- mySSHS.setSearchTitle("Hill Climber")
- mySSHS.setMinimisation(true)
- mySSHS.setInfeasibilityAllowed(true)
- mySSHS.setPrintLevel(Global.HS_LEVEL3Global.HS_LE
VEL4)
48Algorithm Simulated Annealing
Heuristic Problem (HP)
Optimised Heuristic Solution
Single Solution Heuristic Search
Composite Single Solution Method
Vector Solution Random Generation
Local Search
(HP HS)
(Initial) Heuristic Solution (HS)
Best Move Neighbourhood Search
Simulated Annealing Neighbourhood Search
move
Assign Move Neighbourhood
DecisionVariableSelector
ValueSelector
Option random_order Maximum selection 1
Option random_order Maximum selection 1
49Event Notification in HSF
- Parts of an algorithm can listen for events from
other parts - Events generated include
- Move evaluated
- Move performed
- Local minimum found
- Various meta-strategies are implemented based on
this mechanism - Tabu Restrictions (assignment value, matrix of
positions) - Aspiration Criterion
- Guided Local Search
50Algorithm Tabu Search
Heuristic Problem (HP)
Optimised Heuristic Solution
Single Solution Heuristic Search
Composite Single Solution Method
Vector Solution Random Generation
Local Search
(HP HS)
(Initial) Heuristic Solution (HS)
Best Move Neighbourhood Search
move
Listening to
moveWillBeEvaluated moveHasBeenPerformed
Assign Move Neighbourhood
Domain Assignment Tabu
DecisionVariableSelector
ValueSelector
Option random_order
Option random_order
51Search Components for Population-based Methods
SearchComponent
Crossover
Mutation
PopulationMethod
Selection
Bipoint
SingleNeighborhoodSearchMutation
CompositePopulationMethod
RandomSelection
IUS
SingleSolutionMethodMutation
CrossoverPopulationMethod
SUSSelection
Monopoint
GenerationPopulationMethod
Uniform
MutationPopulationMethod
SearchRestartPopulationMethod
SelectionPopulationMethod
52Generic Tree for Genetic Algorithms
PopulationHeuristicSearch
CompositePopulationMethod
CompositePopulationMethod
GenerationPopulationMethod
MutationPopulationMethod
CrossoverPopulation Method
VectorSolutionRandomGeneration
SelectionPopulationMethod
RandomMutation
UniformCrossover
SUSSelection
53Generic Hybrid GATS for Frequency Assignment
PopulationHeuristicSearch
CompositePopulationMethod
CompositePopulationMethod
GenerationPopulationMethod
MutationPopulationMethod
CrossoverPopulation Method
FAPConstructiveGeneration
SelectionPopulationMethod
SingleSolutionMethodMutation
FAPCrossover
SUSSelection
LocalSearch
Tabu Search Subtree
BestMoveNeighbourhoodSearch
FAPNeighbourhood
DomainAssignmentTabu
54Other features of HSF
- Objective Function
- Support dynamic modification of the objective
function (GLS) - Fast Local Search, Variable Neighborhood Search
- Several objective functions in a same algorithm
(MinimiseConflictsLocalSearch) - Move filters, Single/Composite/Combine
Neighborhood - Single/Composite NeighborhoodSearch/LocalSearch/He
uristicSearch - Support Evaluator evaluation by simulation
- Delta matrix facility
- Flexibility
- Several algorithms linked together
- Minimisation/Maximisation
- Feasible/Infeasible search space
- Stopping conditions at search component level
- Integration of specific processing within an
algorithm
55Benchmarking iOpt Graph Coloring instances
instance nodes, edges best known (time sec.)1 Localizer (time sec.)2 iOpt (time sec.)
dsjc125.1.col 125, 1472 5 (lt1) 6.52 (22) 5 (10.78)
dsjc125.5.col 125, 7782 17 (14) 19.08 (78) 17 (1278)
dsjc125.9.col 125, 13922 44 (5) 45.89 (16) 44 (54)
dsjc250.1.col 250, 6436 8 (32) 9.76 (109) 8 (68)
dsjc250.5.col 250, 31336 28 (591) 33.42 (82) 29 (5700)
dsjc250.9.col 250, 55794 72 (591) 79.41 (49) 72 (8429)
1 Dorne Hao 98, Galinier Hao 98, Morgenstern
96. 2 Localizer, Michel Van Hentenryck 98.
56 57Tools Suite Problem Model Visualiser
58Tools Suite Heuristic search Visualiser\Builder
59Tools Suite Execution Visualiser
60iOpt Communities
Heuristic Search Expert/Developer
Users
Algorithmic Parts Database (Java)
Algorithms Database (XML files)
Problem Modelling Expert/Developer
Problems Database (XML files)
- search algorithms/parts databases
- problems databases
- exchange of java code/XML files via email, web
server,
61Success story in BT
BT
Ext. Customers
Transportation
21C Network Design
Network Design
Energy Supplier
Field force Scheduling
NGDS
FOS Field Schedule
Field force Management
ARMS/DP
FOS Field Plan
iSchedule
iNetwork
iPlan
iOpt
62Summary on iOpt
- 100 Pure Java robust, easy to
deploy/integrate, portable - iOpt is a unique Heuristic Search-based
Development Suite of Tools - Easy access to/update from latest work from
research community - High performance of iOpt compared to hard-coded
solutions on VRP - Reduced development time for a new solution
- Generic, flexible, code reuse, easy to
extend/specialize - Enable sharing of algorithms/search
component/problem models - Easy to use (inc. Tools such as Heuristic Search
Builder)
63- Case Study
- iSchedule Vehicle Routing Problem
64iSchedule Modelling Capability
- Very Flexible and extendable High level framework
- Vehicle Routing, Job Shop Scheduling, Project
Management, etc. - Scheduling entities
- Resource (start/end locations, availabilities/brea
ks, timeline, ) - Task (time windows, constraints, time unit cost,
) - Schedule (cost/service profiles per task/resource
groups) - Predefined service/set-up models (task x
resource) - Compatibility, Duration, Fixed\Flexible costs
(task x resource) - Predefined cost models
- Operational costs (travel cost, service cost,
resource cost, etc.) - QoS costs (unallocated tasks, task lateness,
resource usage, etc.) - User-defined service/set-up/cost models available
through iOpt
65Timelines
State Timeline
Warm Oven
Hot Oven
- Activity interactions with the timelines
- adds/removes/requires capabilities
- requires/produces state
- requires capacity (pos. or neg.)
- Resource constraints on the timelines
- essential/possible capabilities
- minimum/maximum capacity
- possible states
Heat Oven
Bake Pastries A
Bake Pastries B
Capability Timeline
Skill A
Essential Skills
Possible Skills
Skill B
Skill C
Skill D
Pick up Tool
Return tool
Task which requires tool
66Task Constraints
- Task Time Windows
- ends/starts at
- ends/starts between
- ends/starts between with a target time
- Task Precedence Relations
- Task A ends/starts after end/start Task B
- Task A ends/starts after end/start Task B with
delay - Parallel Tasks
- Task A and B start together/within a time limit
- Task Resource Relations
- same/different resource
cost
lst
est
tst
Task
Task A
Task B
t
Task A
Task B
Task A
Task B
67Predefined Objectives
- unallocated tasks (QoS)
- task delays (QoS)
- overtime (Cost)
- fixed cost for using resource (Cost)
- fixed cost for using specific resource for
- specific activity (QoS/Cost)
- specific travel (QoS/Cost)
- travel/setup time based costs (Cost)
- service time based costs (Cost)
68iSchedule Solving capability
- Very powerful scheduling engines
- Tests up to 100,000 combinations per second
- Includes most efficient techniques to improve
schedules - Inserting/swapping tasks, Relocating all or part
of a route/swapping all or part of a route,
Reversing a route (2-opt, 2-opt, OR-opt,
CB-neighborhood, cross-exchange, ) - Set of built-in (customizable) scheduling
algorithms - Easily customizable/Cost saving
- Extension of algorithmic parts based on iOpt
- Reduced development
- Enrichment of the toolkit each time new problem
solved - Customer specific algorithmic parts if required
- Extensive toolbox for solving scheduling problems
- Provides good schedules in a matter of minutes
- Scalable, flexible, adaptable engines
69- Using iSchedule for Solving VRP
70iSchedule Architecture for VRP
Modelling
Solving
Customer solution
Extensions for Customer A
Specific parts for Customer A
VRP solution
Extensions for VRP Modelling
Specific parts for VRP Algorithms
iSchedule
Schedule Modelling Framework
Scheduling Algorithms
Heuristic Search Framework
Problem Modelling Framework
iOpt
Invariant Library
71Modelling VRP using iOpt/iSchedule
Capacity Timeline
max
- Predefined Costs
- unallocated tasks (QoS)
- fixed cost for using resource (Cost)
- travel/setup time based costs (Cost)
- service time based costs (Cost)
min
Task A
Task B
- Task Time Windows
- Starts and ends between within a time window
72Solving VRP using iOpt/iSchedule 1/3
- Solution representation
- Set of sequences
- Meta-heuristics and other components from iOpt
- Simulated Annealing, GAs, tabu search,
- Best move, First/Best improvement
- Generic neighbourhoods (insert, swap objects
(tasks)) - Generic Starting point, etc.
- Other components
- Specific to iSchedule\VRP (cf. next slides)
- Going through VRP bibliography
- Identify specificities
- Create components
73Solving VRP using iOpt/iSchedule 2/3
Component Reference Applicability Applicability Applicability Applicability
Starting point generator Starting point generator Scheduling VRP JSSP WSP
LongestJobFirst Yes Yes Yes Yes
HardestJobFirstClosestEngineer Gen. of Tsang Voudouris 1995 Yes Yes
HardestJobFirst Gen. of Tsang Voudouris 1995 Yes Yes
Seed Fill Generalisation of Solomon 1987 Yes Yes
Re-optimize after Route Generation FLS seed fill Or-opt Yes Yes
Moves\neighbourhoods Moves\neighbourhoods
Relocate Insert task Yes Yes Yes Yes
Exchange Swap 2 tasks Yes Yes Yes Yes
2-opt Potvin Rousseau 1995 Yes
2-opt Lin 1965 Yes
Or-opt Or 1976 Yes
Cross-exchange Taillard et al. 1997 Yes
74Reverse a consecutive group of tasks
75Relocate groups of tasks
Same engineer
Two different engineer
76Exchange a group of tasks between two different
engineers
77Solving VRP using iOpt/iSchedule 3/3
Component Reference Applicability Applicability Applicability Applicability
Guided Local Search Guided Local Search Scheduling VRP JSSP WSP
Route Edge Classic edge penalty Yes Yes Yes Yes
Route Removal Mills 2005 Yes
Unallocated Tasks Classic unallocated tasks pen. Yes Yes Yes Yes
Tabu Tabu
ResourceAllocationListMemory Gen. Taillard et al. 1997 Yes
Position Tabu Classic position-based tabu Yes Yes Yes Yes
Adjacent Tasks Tabu Classic adjacent objects tabu Yes Yes Yes Yes
Move Filtering Move Filtering
VRP move filtering Discard meaningless moves Yes
Crossovers Crossovers
UniformResource Cross resources of 2 schedules Yes Yes Yes Yes
UniformTaskCrossover Cross tasks of 2 schedules Yes Yes Yes Yes
RouteCrossover Cross routes of 2 schedules Yes Yes
78Neighbourhoods Comparison
R105 R105 rc206 rc206 r202 r202 c204 c204
Neighbourhood Vehicles Distance Vehicles Distance Vehicles Distance Vehicles Distance
Relocate 18.6 1616.0 5.3 1400.3 5.2 1295.8 4.0 946.3
Exchange 20.0 1672.3 5.3 1580.1 5.3 1402.8 4.0 1098.8
2-opt 20.0 1841.7 5.3 1685.5 5.3 1465.3 4.0 1213.4
2-opt 20.0 1580.7 5.3 1466.4 5.3 1308.4 4.0 1070.8
OR-opt 17.7 1590.4 5.2 1245.0 5.3 1236.6 4.0 792.8
RelocateExchange (RE) 18.3 1547.1 5.3 1403.8 5.2 1266.9 4.0 953.5
RE2-opt 17.8 1528.3 5.3 1349.2 5.2 1281.3 4.0 902.6
RE2-opt 17.7 1475.3 5.2 1193.9 5.3 1161.7 4.0 738.5
REOR-opt 17.9 1531.5 5.2 1248.8 5.2 1251.8 4.0 765.7
10 runs with First Improvement from a random
starting point until 1st local optimum
79Benchmarking iOpt Vehicle Routing Problem
Instance best known1 iOpt/iSchedule2 iOpt/iSchedule2
Solomon Vehicles Travel Vehicles Travel Time
C1 10.00 827.30 10.00 828.84 3695
C2 3.00 589.90 3.00 591.31 3112
R1 11.92 1220.00 12.08 1242.68 3770
R2 2.73 961.30 2.90 968.63 2847
RC1 11.50 1389.60 11.87 1403.98 2993
RC2 3.25 1128.90 3.37 1144.99 4444
1 Metaheuristic Approaches for the Vehicle
Routing Problem with Time windows A survey, M.
Gendreau and O. Bräysy, Mic2003, Kyoto, Japan 2
Fast Local SearchGuided Local Search (max. time
10800 sec. (3 hours)), Survey performed by
Patrick Mills (12th out of 21 papers)
80- Demo
- Vehicle Routing Problem
81(No Transcript)