iactai13 variable objective large neighborhood search: a practical approach to solve...
DESCRIPTION
Presentation given at ICTAI 13 (http://cecs.wright.edu/atrc/ictai13) by Pierre Schaus: Variable Objective Large Neighborhood Search: A practical approach to solve over-constrained problems (Pierre Schaus)TRANSCRIPT
Variable Objective Large Neighborhood Search: A practical approach to solve over-constrained problems
Pierre Schaus UCL, ICTEAM, Belgium
Over-Constrained Problems
Demand
Tue Wed
>2=2
>1>2
>3>1
Mon
Usually render the problem
over-constrained
gcc1 gcc2 gcc3
Relaxation = Violation Variables in Constraints (Petit & Régin)
soft-gcc(...,
o1)
soft-gcc(...,
o2)
soft-gcc(...,
o3)
Demand
Tue Wed
>2=2
>1>2
>3>1
Mon
Aggregation of violations
• Many possibilities
• Most intuitive one:
o1+o2+o3+...
Minimize sum of violation variables o1+o2+o3+...
Desired Properties :
A: o1+o2+o3+... should be small
not easy to reached with CP
B: o1+o2+o3+... should be balanced
A: o1+o2+o3+... should be small
Major Weakness of CP =
Weak filtering of sum (bound-consistency)
large BnB search tree
small fraction of it is explored with DFS
bad solutions
Solution = Large Neighborhood Search
LNS = LS using CP for neighborhood exploration
LNS (Shaw 98)
1 3 5 6 2 9 1 8 3 1 0 4.. .. .. .. .. .. .. .. .. .. .. ..
Find Initial Solution with CP
Bound = 100
Decision Variables
LNS (Shaw 98)
1 3 5 6 2 9 1 8 3 1 0 4
Relax* (randomly) this solution
.. .. .. .. ..Bound = 100
*aka fragment selection
LNS (Shaw 98)
1 3 5 6 2 9 1 8 3 1 0 4
Optimize this partial solution with CP
.. .. .. .. ..7 8 1 4 3Bound = 96
LNS (Shaw 98)
1 3 7 6 2 8 1 8 1 4 0 3
relax randomly
Bound = 96 .. .. .. .. ..
LNS (Shaw 98)
1 3 5 6 2 9 1 8 3 1 0 4
re-optimize
.. .. .. .. ..7 8 1 4 3Bound = 85 .. .. .. .. ..3 2 10 3 1
LNS (Shaw 98)
1 3 5 6 2 9 1 8 3 1 0 4
.. .. .. .. ..
7 8 1 4 3
.. .. .. .. ..
3 2 10 3 1
.. .. .. .. .. .. .. .. .. .. .. ..
initialrelaxoptimize
relaxoptimize
...
From a CP Model to a LNS Model
CP Model
Relaxation Procedure+ = LNS Model
Which decision Variables should be relaxed for next restart
Minimize sum of violation variables o1+o2+o3+...
Desired Properties :
A: o1+o2+o3+... should be small
B: o1+o2+o3+... should be balancedB: o1+o2+o3+... should be balanced
12 2 2
1 1 1
4
o1 o2 o3 o4 o1 o2 o3 o4
o1+o2+o3+o4 = 7
unbalancedbalanced
How to avoid this ?
Dynamically Change the Objective (at each LNS restart)
Focus on worse objective at each LNS restart
!
o1 o2 o3 o4
!
o1 o2 o3 o4
Focus on worse objective at each LNS restart
!
o1 o2 o3 o4
Focus on worse objective at each LNS restart
!
o1 o2 o3 o4
Focus on worse objective at each LNS restart
In practice …
• Objective configuration changed at each LNS restarts.
• Each objective can be configured differently
Strong = must decrease Weak = cannot increase No = unrestricted
filtering
3 Filtering modes Weak, Strong, No - Filtering
!
o1 o2 o3 o4StrongStrongWeak No
!
Strong: must decrease Weak: cannot increase No: unrestricted
Good idea: o1+o2+o3+o4 in Strong
o1 o2 o3 o4StrongStrongWeak No
o1+o2+o3+o4Strong
Ensures at least same filtering as original one
o1 Strong o2 Weak o3 No
objective value
timerestart i
o1 Weak o2 No o3 Strong
restart i+1
New solution found during BnB DFS
From a LNS-CP Model to a Variable-Objective LNS Model
= LNS ModelCP Model
Relaxation Procedure+ VO-LNS
Modelobjective
configuration+set objectives into
Strong/Weak/No filtering mode
Experimental Result
• Artificial over-constrained problems
• Over-Constraint timetabling application
Artificial Over-Constrained Problem
Random Domain: 5 values on [1..15]
every values 1..15 should appear exactly once
on each column
oj
every values 1..15 should appear exactly
once on each rowoi
violation = sum of excess &
shortage of each value
LNS Relaxations
most violated line*
oi
10% of variables (randomly) = 10% of variables (randomly) + most violated line/column
*tabu mechanism for diversification
R1 R2
o1 , o2 , ... , o30 : No
otot : Strong
Standard minimization of sum, does not try to balance violations
Objective Configurations
o1 , o2 , ... , o15 , o16 , ... , o30 , otot
o1 , o2 , ... , o30 : Weak
otot : Strong, oi: Strong
oi
The most violated row/column in current
solutions
C1 C2
Experiments LNS
400 Restarts, 50 Failure Limit
!
• Setting A: R1 & C1
• random relax, standard minimization
• Setting B: R2 & C1
• structured relaxation, standard minimization
• Setting C: R2 & C2
• structured relaxation, variable objective (VO-LNS)
LNS
VO-LNS Decrease faster
& better sum of violations
Balancing Property
Better total violation
Better total balancing
VO-LNS
Real Life - Timetabling Hospitality Management School
Gro
ups
Weeks
Real Life - Timetabling Hospitality Management School
Gro
ups
Weeks
Groups of 20 students must be scheduled over semester
Real Life - Timetabling Hospitality Management School
Gro
ups
Weeks
Two activities/ Week to decide Morning & Afternoon
AM PM
Real Life - Timetabling Hospitality Management School
Gro
ups
Weeks
For each group: cardinality requirement on activity types
> 2x A1 = 1x A2
…
Real Life - Timetabling Hospitality Management School
Gro
ups
Weeks
Restriction on activity patterns
A1 is scheduled only 4 consecutive times, …
Real Life - Timetabling Hospitality Management School
Gro
ups
Weeks
Demand over activities specific for each weak
A1 scheduled between 2 and 3 times A2 scheduled between 1 and 2 times
…
soft-gcc
Real Life - Timetabling Hospitality Management School
Violations of cardinality requirements
LNS Relaxations
Gro
ups
Weeksmost violated
weeks
some groups
some random slots
Results: 1000 LNS Restarts
same LNS relaxation
VO-LNS is faster
number of exhausted searchWhy ?
!
Because most of the LNS searches complete before the failure limit
Balance 10 runs x 5 instances
OscaRSCALA IN OPERATIONAL RESEARCH
Open-Source Implementation
https://bitbucket.org/oscarlib/oscar
Take away messages
• Minimizing sum objective (in over-constrained problems) with CP is hard
• LNS is powerful to diversify search space
• Changing dynamically the objective can
• Fasten and improve LNS
• Better balance violations
variable objective LNS
Future Work
• Automatic objective configuration
• Population of solutions (different configurations)
• More problems (just in time scheduling)
Variable Objective Large Neighborhood Search: A practical approach to solve over-constrained problems
Pierre Schaus UCL, ICTEAM, Belgium