Variable Objective Large Neighborhood Search:

A practical approach to solve over-constrained problems
Pierre Schaus	

UCL, ICTEAM, Belgium
Over-Constrained Problems
Mon

Tue

Wed

Usually render the
problem 	

over-constrained	


Demand

>2
=2

gcc1

>1
>2

gcc2

>3
>1

gcc3
Relaxation = 	

Violation Variables in Constraints (Petit & Régin)
Mon

Demand

>2
=2

Tue

>1
>2

Wed

>3
>1

o1) (...,o2) (...,o3)
(..., gcc
-gcc oft-gcc
oft
oft
s
s
s
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
B: o1+o2+o3+... should be balanced

not easy to reached with CP
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
Decision Variables

LNS (Shaw 98)

.. .. .. .. .. .. .. .. .. .. .. ..
Bound = 100 1 3 5 6 2 9 1 8 3 1 0 4

Find Initial Solution with CP
LNS (Shaw 98)
..
..
.. ..
..
Bound = 100 1 3 5 6 2 9 1 8 3 1 0 4

Relax* (randomly) this solution

*aka fragment selection
LNS (Shaw 98)
7
..
8
..
1 4
.. ..
3
..
Bound = 96 1 3 5 6 2 9 1 8 3 1 0 4

Optimize this partial solution with CP
LNS (Shaw 98)
..
..
..
.. ..
Bound = 96 1 3 7 6 2 8 1 8 1 4 0 3

relax randomly
LNS (Shaw 98)
.. 7 2
.. ..
8
9
..
1 4 1 3
.. 3 .. ..
..
Bound = 85 1 3 5 6 2 10 1 8 3 1 0 4

re-optimize
LNS (Shaw 98)
..

initial
relax
optimize
relax
optimize
...

..

..

..

..

..

..

..

..

..

..

..

1

3

5

6

2

9

1

8

3

1

0

4

..

..

..

..

..

7

8

1

4

3

..

..

..

..

..

3

2

10

3

1
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 balanced
o1+o2+o3+o4 = 7
4
1

2

2

2

1

1

1

o1 o2 o3 o4

o1 o2 o3 o4

balanced

unbalanced

How to avoid
this ?
Dynamically Change the Objective	

(at each LNS restart)
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

!

o1

o2

o3

o4
Focus on worse objective at each LNS restart

!

o1

o2

o3

o4
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

o4

Weak Strong No Strong

Strong: must decrease	

Weak: cannot increase	

No: unrestricted
Good idea: o1+o2+o3+o4 in Strong
Ensures at least
same filtering
as original one

o1

o2

o3

o4 o1+o2+o3+o4

Weak Strong No Strong Strong
objective value

New solution found during
BnB DFS

restart i
o1 Strong	

o2 Weak	

o3 No

restart i+1
o1 Weak	

o2 No	

o3 Strong

time
From a LNS-CP Model
to a Variable-Objective LNS Model

CP
Model

objective
Relaxation
configuration
Procedure

++

=

VO-LNS
LNS Model
Model

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]

oj
every values 1..15
should appear exactly
once	

on each row

oi
violation = sum
of excess &
shortage of each
value

every values 1..15 should
appear exactly once	

on each column
LNS Relaxations
R1

R2

10% of variables (randomly)

= 10% of variables (randomly)
+ most violated line/column

oi

most violated line*
*tabu mechanism for diversification
Objective Configurations
o1 , o2 , ... , o15 , o16 , ... , o30 , otot
C1

C2

o1 , o2 , ... , o30 : No 	

otot : Strong

o1 , o2 , ... , o30 : Weak 	


Standard minimization
of sum, does not try
to balance violations

otot : Strong, oi: Strong
The most violated
row/column in current
solutions

oi
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

Groups

Weeks
Real Life - Timetabling	

Hospitality Management School

Groups

Weeks

Groups of 20 students must be scheduled over semester
Real Life - Timetabling	

Hospitality Management School
PM

Weeks

Groups

AM

Two activities/ Week to decide 	

Morning & Afternoon
Real Life - Timetabling	

Hospitality Management School
Weeks

Groups

> 2x A1	

= 1x A2	

…

For each group: cardinality requirement on activity types
Real Life - Timetabling	

Hospitality Management School
Weeks

Groups

A1 is scheduled only 4
consecutive times, …

Restriction on activity patterns
Real Life - Timetabling	

Hospitality Management School
Weeks

Groups

A1 scheduled between 2 and 3 times	

A2 scheduled between 1 and 2 times	

…

soft-gcc

Demand over activities specific for each weak
Real Life - Timetabling	

Hospitality Management School

Violations of cardinality
requirements
LNS Relaxations

Weeks

some random
slots

Groups

most violated
weeks

some groups
Results: 1000 LNS Restarts

same LNS relaxation
VO-LNS is faster

Why ?	


number of
exhausted search

!

Because most of the LNS searches
complete before the failure limit
Balance	

10 runs x 5 instances
Open-Source Implementation

OscaR

SCALA IN OPERATIONAL RESEARCH

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

IACTAI13 Variable Objective Large Neighborhood Search: A practical approach to solve over-constrained problems (Pierre Schaus)