A Case Study in Network Design JeanCharles Regin - PowerPoint PPT Presentation

About This Presentation
Title:

A Case Study in Network Design JeanCharles Regin

Description:

The ROCOCO Project (1) France Telecom R&D ISE. Problem and benchmark definition ... The ROCOCO Project (2) Two cycles. Solution to the ' basic ' problem ... – PowerPoint PPT presentation

Number of Views:89
Avg rating:3.0/5.0
Slides: 111
Provided by: bly3
Learn more at: http://cse.unl.edu
Category:

less

Transcript and Presenter's Notes

Title: A Case Study in Network Design JeanCharles Regin


1
A Case Study in Network DesignJean-Charles Regin
2
Plan
  • Real world Problems
  • Modeling principles
  • Network Design application the ROCOCO project
  • Presentation
  • Methods
  • Integration
  • Conclusion
  • Lessons

3
Real world problems
  • Almost all are over-constrained
  • Not pure
  • Decomposable
  • Small or Large number of variables (10,000) and
    constraints (100,000)
  • Scalable but not solvable for n/10 or n/100
  • ad-hoc efficient heuristic
  • everything is possible
  • need flexibility
  • Want optimized not optimal

4
Real world problems
  • Flexibility causes no problem add new
    constraints to the solver
  • Be careful with objective functions relaxation
    is not good for CP (the constraints are weak and
    no pruning occurs)

5
Plan
  • Real world Problems
  • Modeling principles
  • Network Design application the ROCOCO project
  • Presentation
  • Methods
  • Integration
  • Conclusion
  • Lessons

6
Modeling principles
  • What a good model is?
  • Symmetries
  • Implicit constraints
  • Global constraints
  • Relevant and redundant constraints
  • Back propagation
  • Dominance rules

7
Good Model?
  • A good model is a model that leads to an
    efficient resolution of a given problem

8
Good Model?
  • A good model is a model that leads to an
    efficient resolution of a given problem
  • Deals with several notions

Symmetries Catalyzing constraints Global
constraints Relevant and redundant
constraints Back propagation Dominance rules
9
Symmetries
  • Tutorial on this topic at CP04
  • The complexity of a problem can often be reduced
    by detecting intrinsic symmetries
  • When two or more variables have identical
    characteristics, it is pointless to differentiate
    them artificially
  • The initial domains of these variables are
    identical
  • These variables are subject to the same
    constraints
  • The variables can be permuted without changing
    the statement of the problem
  • Usually symmetries are removed by introducing an
    order between variables

10
Catalyzing constraints
  • An catalyzing constraint makes explicit a
    property that satisfies any solution implicitly.
  • D(x1)D(x2)D(x3)D(x4)a,b,c,d
  • Constraints b,c and d have to be taken at least 1

11
Catalyzing constraints
  • An catalyzing constraint makes explicit a
    property that satisfies any solution implicitly.
  • D(x1)D(x2)D(x3)D(x4)a,b,c,d
  • Constraints b,c and d have to be taken at least
    1
  • Filtering algorithm if b is not assigned and if
    there is only one variable x that contains b in
    its domain then xb

12
Catalyzing constraints
  • A catalyzing constraint makes explicit a property
    that satisfies any solution implicitly.
  • D(x1)D(x2)D(x3)D(x4)a,b,c,d
  • Constraints b,c and d have to be taken at least
    1
  • Filtering algorithm if b is not assigned and if
    there is only one variable x that contains b in
    its domain then xb
  • Problem if x1a and x2a then nothing is deduced

13
Catalyzing constraints
  • A catalyzing constraint makes explicit a property
    that satisfies any solution implicitly.
  • D(x1)D(x2)D(x3)D(x4)a,b,c,d
  • Constraints b,c and d have to be taken at least
    1
  • Filtering algorithm if b is not assigned and if
    there is only one variable x that contains b in
    its domain then xb
  • Problem if x1a and x2a then nothing is deduced
  • Implicit constraints a can be taken at most
    1b,c,d can be taken at most 2
  • From the simultaneous presence of some
    constraints implicit constraints can be deduced

14
Global constraints
  • A global constraint is a conjunction of
    constraints. This conjunction often takes into
    account implicit constraint deduced from the
    simultaneous presence of the other constraints
  • This is the case for the previous example with
    the global cardinality constraint
  • Use the strongest filtering algorithm as you can
    at the beginning
  • It is rare to be able to solve a problem with
    weak FA and not to be able to solve it with
    strong FA

15
Global constraint Alldiff results
  • Color the graph with cliquesc0 0, 1, 2, 3,
    4 c1 0, 5, 6, 7, 8c2 1, 5, 9, 10,
    11c3 2, 6, 9, 12, 13 c4 3, 7, 10, 12,
    14 c5 4, 8, 11, 13, 14
  • clique size27 Global fails 0 cpu time
    1.212 s Local fails 1 cpu time 0.171
    sclique size31 Global fails 4 cpu time
    2.263 s Local fails 65 cpu time 0.37
    sclique size51 Global fails 501 cpu
    time 25.947 s Local fails 24512 cpu
    time 66.485 sclique size61 Global fails
    5 cpu time 58.223 s Local ?????????????

16
Relevant Constraints
  • At first glance it seems that adding a constraint
    which removes some symmetries, or which is an
    implicit or a global constraint improves the
    current model. This is FALSE
  • Because
  • The new filtering algorithm can delete no value,
    because everything is already deduced by the
    combination of constraints
  • The new filtering algorithm can remove some
    values and impacts the variable-value strategy
    (more backtracks can be needed to reach the first
    solution)

17
Relevant constraints
  • A constraint is relevant w.r.t. a model if the
    introduction of this constraint
  • Is needed by the definition of the problem
  • Or if it permits to remove some symmetries, or it
    is an implied or a global constraint, and the
    introduction of this constraint improves the
    search for the solution in term of performance
  • A constraint is redundant w.r.t. a model if the
    constraint is not relevant w.r.t. the model.

18
Back propagation
  • Consider an optimization problem with an
    objective variable obj.
  • The back propagation is the consequences of the
    modifications of the variable obj
  • Example?x obj. Back propagation
    modification of the x variable when obj is
    modified

19
Back propagation
  • Try to improve the back propagation, because when
    a solution with a cost c is found the constraint
    obj lt c is added and a new solution is sought.
  • It is important to use constraints involving cost
    variable. For instance gcc with cost

20
Dominance rules
  • A dominance rule is a rule that eliminates some
    solutions that are not optimal, or some optimal
    solutions but not all
  • This is a kind of symmetry breaking in regards to
    the optimality
  • An example is given in the resolution of the next
    problem

21
A bad model?
  • Golomb ruler (see CSP lib)A Golomb ruler may
    be defined as a set of n integers 0x1 lt x2 lt lt
    xn s.t. the n(n-1)/2 differences (xj - xi) are
    distinct. Goal minimize xn.
  • with CP difficult for n gt 13.
  • x1,,xn variables (xi-xj) variables. Alldiff
    involving all the variables.

22
Alldiff
1 2 3 4 5 6 7
x1-x2 x1-x3 x2-x3 x1 x2 x3
Not a good solution Bad incorporationof
constraintxi xj in alldiff
23
Plan
  • Real world Problems
  • Modeling principles
  • Network Design application the ROCOCO project
  • Presentation
  • Methods
  • Integration
  • Conclusion
  • Lessons

24
A Case Study in Network Design
  • Very good example and benchmark
  • To illustrate the advantages and drawbacks of
    different optimization techniques
  • To illustrate the improvements that can be
    thought of when things do not work well
  • To test new ideas
  • To think about what we do introspection

25
The ROCOCO Project (1)
  • France Telecom RD ISE
  • Problem and benchmark definition
  • Algorithm validation
  • Research laboratories INRIA Numopt, LRI Orsay,
    PRiSM Versailles, Evry,
  • Lower bounds Lagrangean relaxation, column
    generation, cuts
  • Optimization techniques genetic algorithms
  • ILOG
  • Optimization techniques constraint programming,
    mixed integer programming, column generation

26
The ROCOCO Project (2)
  • Two cycles
  • Solution to the  basic  problem
  • Improvements and study of the influence of
    additional constraints

27
The Problem (1)
  • Routing of Communications
  • Mono-routing each demand from a point p to a
    point q must follow a unique path
  • Dimensioning of Links
  • The capacity of each link must exceed the sums of
    the demands going through the link
  • Additional Constraints
  • Depend on the customer for whom the network is
    designed

28
The Problem (2)
  • Data
  • Customer traffic demands
  • Possible links, capacities and costs

27Kb/s
S2
S1
S4
115Kb/s
S3
  • Result
  • Minimal cost network able to simultaneously
    respond to all the demands
  • Route for each demand

S2
S1
S4
Rented capacity 256Kb/s
S3
29
The Problem (3)
  • Cost minimization principle
  • Traffic demands share link capacities

S2
S1
512Kb/s
128Kb/s
S3
30
The Problem (4)
  • Demands share links
  • ? demandsi?j ? capacityi?j
  • Technological constraints

31
The Problem (5)
64Kb/s
64Kb/s
64Kb/s
64Kb/s
  • Side constraints
  • Quality of service
  • Reuse of existing equipment (limit on the number
    of ports, maximal traffic at a node)
  • Commercial and legal constraints
  • Possible future network evolution
  • Network management (e.g., traffic concentration)

32
Benchmark Elaboration (1)
33
Optional Constraints
  • Security some commodities to be secured cannot
    go through unsecured nodes and links
  • No line multiplication at most one line per arc.
  • Symmetric routing demands from node p to node q
    and demands from node q to node p are routed on
    symmetric paths.
  • Number of bounds (hops) the number of arcs of
    the path used to route a given demand is limited.
  • Number of ports the number of links entering
    into or leaving from a node is limited.
  • Maximal traffic the total traffic managed by a
    given node is limited.

64Kb/s
64Kb/s
64Kb/s
64Kb/s
34
Numerical Characteristics (1)
35
Particular Cases
  • Loop network (C10)
  • Unidirectional lines (C11)
  • Extension of an existing network (C16)
  • Several commodities (with different  security 
    and  number of hops  constraints) between
    different sites and a central site (C20)

36
Comparison / Other Benchmarks
37
Mathematical Model
  • Develop model on the board?
  • Anticipate difficulties?

38
Mixed Integer Programming (1)
  • Explicit problem definition
  • Linear constraints
  • Real (floating point) and integer variables
  • One optimization criterion
  • Separation between problem definition and problem
    solving
  • The continuous relaxation (when fractional values
    are allowed for integer variables) is solvable in
    polynomial time
  • Bound on optimization criterion
  • Guidance for solving the MIP problem by
    branch-and-bound (rounding, cuts, )

39
Mixed Integer Programming (2)
  • Routing variables xijd (DM 0-1 variables)
  • Dimensioning variables capacity levels yijk
    (MK 0-1 variables)
  • Main constraints
  • Sj xijd 1 if i is the origin of d
  • Si xijd 1 if j is the destination of d
  • Si xijd Sk xjkd if j is neither the origin nor
    the destination of d
  • Sk yijk 1
  • Sd Demd xijd Sk Capaijk yijk

40
Mixed Integer Programming (3)
41
Constraint Programming (1)
  • Explicit problem definition
  • Separation between problem definition and problem
    solving
  • Systematic deduction of the consequences of made
    decisions (constraint propagation)
  • Partial constraint propagation è development of
    heuristic search algorithms to generate and
    optimize solutions
  • Incremental constraint propagation (with global
    fix point semantics)
  • Localized definition of the constraint
    propagation process (each constraint propagates
    independently of other constraints) è many
    different types of constraints viewed as as many
    sub-problems

42
Constraint Programming (5)
  • Routing variables paths (D set variables)
  • A set of arcs joining the origin to the
    destination of the demand
  • Basic functions impose or forbid an arc (or a
    node)
  • Dimensioning variables chosen capacity levels (M
    enumerated variables)
  • Specific constraints and constraint propagation
    algorithms

43
Constraint Programming (6)
44
Path representation in CP
  • Classical modelGraph represented by the
    nodesOne variable per nodeValue possible
    neighboor
  • Path from s to t alldiff on nodes.

45
Path representation in CP
s
a
d
e
b
f
c
t
D(s)a,b, D(a)s,b,c,d, D(b)s,a,c,
D(c)a,b D(d)a,e,f, D(e)d,t, D(f)d,t,
D(t)s
46
Path representation in CP
s
a
d
e
b
f
c
t
D(s)a,b, D(a)s,b,c,d, D(b)s,a,c,
D(c)a,b D(d)a,e,f, D(e)d,t, D(f)d,t,
D(t)s
47
Path representation in CP
s
a
d
e
b
f
c
t
Problem if some variables do not belong to the
pathWhat is the value assigned to these
variables?
48
Path representation in CP
s
a
d
e
b
f
c
t
A dummy value is added to each domain BAD IDEA
D(s)a, D(a)c, D(c)b, D(b)dummyb, D(d)
e, D(e)t, D(f)dummyf, D(t)s
49
Path representation in CP
s
a
d
e
b
f
c
t
Loops are allowed (var links to itself) GOOD IDEA
D(s)a, D(a)c, D(c)b, D(b)b, not
possible b has been already taken by c
50
Path representation in CP
  • Classical model- One var per node- Alldiff
    constraint cost for the matching O(m) per
    modification

51
New model
  • General point of view we search for a subgraph.
    Two entities- Digraph class - DigraphVar class
  • A DigraphVar is a subgraph of a digraph w.r.t.
    properties, for instance path.It is defined
    from a Digraph

52
New model
  • General point of view we search for a subgraph.
    Two entities- Digraph class - DigraphVar class
  • A DigraphVar is a subgraph of a digraph w.r.t.
    properties, for instance path.It is defined
    from a Digraph
  • API similar to setvar API

53
Digraph
  • class IlcDigraph IlcDigraph(IlcInt
    nbNodes,IlcIntArray from,IlcIntArray to)IlcInt
    getNbNodes()constIlcInt getNbArcs()constIlcInt
    getNbOutgoingArcs(const IlcInt node)
    constIlcInt getNbIncomingArcs(const IlcInt
    node) constIlcInt getEmanatingNode(const IlcInt
    arc)constIlcInt getTerminatingNode(const IlcInt
    arc)constIlcInt getFirstOutgoingArc(const
    IlcInt node)constIlcInt getNextOutgoingArc(const
    IlcInt node, const IlcInt arc)constIlcInt
    getFirstIncomingArc(const IlcInt
    node)constIlcInt getNextIncomingArc(const
    IlcInt node, const IlcInt arc)const

54
Digraph Variable
  • Class DigraphVarIlcDigraphVar(IlcManager m,
    IlcDigraph g)IlcIntSetVar getNodesVar()const
    IlcIntSetVar getArcsVar()constIlcIntSetVar
    getSourcesVar()const IlcIntSetVar
    getSinksVar()constIlcBool isBound()constIlcBoo
    l isAPath()const // accessors IlcBool
    isArcRequired(IlcInt arc)const IlcBool
    isArcPossible(IlcInt arc)const IlcBool
    isNodeRequired(IlcInt node)const IlcBool
    isNodePossible(IlcInt node)const IlcBool
    isSourceRequired(IlcInt node)const IlcBool
    isSourcePossible(IlcInt node)const IlcBool
    isSinkRequired(IlcInt node)const IlcBool
    isSinkPossible(IlcInt node)const

55
Digraph Variable
  • Class DigraphVar // modificators void
    removeAllOutgoingArcs(IlcInt node)constvoid
    removeAllIncomingArcs(IlcInt node)constvoid
    removeAllOutgoingArcsButArc(IlcInt node, IlcInt
    arc)constvoid removeAllIncomingArcsButArc(IlcInt
    node, IlcInt arc)constvoid removeArcPossible(Il
    cInt arc)const void addArcRequired(IlcInt
    arc)constvoid removeNodePossible(IlcInt
    node)constvoid addNodeRequired(IlcInt
    node)const void removeSinkPossible(IlcInt
    node)const void addSinkRequired(IlcInt
    node)constvoid removeSourcePossible(IlcInt
    node)constvoid addSourceRequired(IlcInt
    node)const

56
Digraph Variable
  • Class DigrapVar// for iterationsIlcInt
    getFirstOutgoingArc(IlcInt node)constIlcInt
    getNextOutgoingArc(IlcInt node, IlcInt
    arc)constIlcInt getFirstIncomingArc(IlcInt
    node)constIlcInt getNextIncomingArc(IlcInt
    node, IlcInt arc)const IlcDigraph
    getDigraph()constIlcInt getNbIncomingArcs(IlcInt
    node)constIlcInt getNbOutgoingArcs(IlcInt
    node)const

57
Digraph Variable
  • Class DigraphVar
  • // graph functions
  • IlcInt getFirstArcPossibleOnShortestPath(IlcIntDis
    tanceFunctionI d, const IlcInt source,
    const IlcInt sink, IlcInt
    dem1)const
  • IlcInt computeShortestPathDistance(IlcIntDistanceF
    unctionI dist, const IlcInt source,
    const IlcInt sink, IlcInt
    dem1)const
  • IlcIntArray computeShortestPath(IlcIntDistanceFunc
    tionI dist, const IlcInt source,
    const IlcInt sink, IlcInt dem1)const

58
Distance Function
  • class IlcIntDistanceFunctionI IlcIntDistanceFunc
    tionI(IlcDigraph g,IlcInt maxCost) virtual
    IlcInt getCost(IlcDigraphVar var,
    IlcInt arc, IlcInt dem)0

59
Path Constraints
  • IlcConstraint IlcSimplePath(IlcDigraphVar g,
    IlcInt source, IlcInt sink)
  • IlcConstraint IlcShortestPath(IlcDigraphVar g,
  • IlcInt source, IlcInt sink,
    IlcIntVar obj, IlcIntDistanceFunctionI
    dist)

60
Element constraint
  • enum IlcGraphProperty IlcNodeRequired0L,
    IlcSourceRequired1,
    IlcSinkRequired2, IlcEmanatingRequired
    3, IlcTerminatingRequired4,
    IlcTraversedRequired5,
    IlcArcRequired20
  • IlcConstraint IlcGraphElement(IlcInt item,
    IlcDigraphVarArray gvs,
    IlcIntSetVar var,
    IlcGraphProperty pte)

61
Selectors
  • class IlcDigraphSelectDigraphVarI
    IlcDigraphSelectDigraphVarI() virtual
    IlcInt select(IlcDigraphVarArray vars)0
  • class IlcDigraphSelectArcI IlcDigraphSelectArcI
    () virtual IlcInt select(IlcDigraphVarArray
    vars, IlcInt index)0

62
Selectors (contd)
  • class IlcDigraphSelectShortestPathArcI
    IlcDigraphSelectArcI IlcDigraphSelectShortestPa
    thArcI(IlcIntDistanceFunctionI fn) virtual
    IlcInt select(IlcDigraphVarArray vars, IlcInt
    index) virtual IlcInt getSource(IlcDigraphVarArr
    ay vars, IlcInt index)0 virtual
    IlcInt getSink(IlcDigraphVarArray vars, IlcInt
    index)0 virtual IlcInt getDemand(IlcDigraphVarA
    rray vars, IlcInt index)0

63
Goals
  • IlcGoal IlcDigraphRequireArc(IlcManager m,
    IlcDigraphVar digraph,
    IlcInt arcIndex)
  • IlcGoal IlcDigraphRemoveArc(IlcManager m,
    IlcDigraphVar digraph,
    IlcInt arcIndex)
  • IlcGoal IlcDigraphAddArc(IlcManager m,
    IlcDigraphVarArray vars, IlcInt index,
    IlcDigraphSelectArcI selectArc)

64
Goals (contd)
  • IlcGoal IlcDigraphInstantiate(IlcManager m,
    IlcDigraphVarArray vars, IlcInt index,
    IlcDigraphSelectArcI selectArc)
  • IlcGoal IlcDigraphGenerate(IlcManager m,
    IlcDigraphVarArray vars,
    IlcDigraphSelectDigraphVarI selectD,
    IlcDigraphSelectArcI selectArc)

65
Why not PathVar?
  • Path is a property of a graph. We prefer to
    express properties by constraint
  • In any cases, we need to be able to test if an
    object is a path/tree/cycle

66
Rococo in CP
  • Advantages of digraph variables
  • Simple
  • Open to many additional constraints
  • Much more efficient than basic constraint
    programming (combines constraint programming with
    optimization algorithms on graphs)

67
Constraint Programming (10)
  • Search strategy select the most important demand
    and the path for which the additional (marginal)
    cost for routing this demand is minimal
  • Shortest path problem with constraints
  • Successive constraints impose the last arc, then
    the previous arc, ..., and finally the first arc
    of the shortest path
  • Each of these added constraints leads to creating
    a choice point upon backtracking, the imposed
    arc is forbidden and a new shortest path, taking
    this interdiction into account, computed

68
Constraint Programming (11)
  • New solution obtained when all the paths are
    fully instantiated
  • Search continues with an additional constraint
    forcing the cost of new solutions to be strictly
    smaller than the cost of the current solution

69
Constraint Programming (12)
  • Slice-Based Search
  • Search for the first solution given by the
    heuristic
  • Search for solutions obtained by obeying the
    heuristic always except once
  • Search for solutions obtained by obeying the
    heuristic always except twice

70
Constraint Programming (13)
  • Variants of slice-based search
  • Incrementing little by little the number of
    authorized discrepancies
  • SBS 1 0 discrepancy, then 1, then 2, then 3,
  • SBS 2 0 discrepancy, then 2, then 4, then 6,
  • SBS 3 0 discrepancy, then 3, then 6, then 9,
  • SBS N1 makes less redundant search than SBS N,
    but at the beginning SBS N is more focused on
    solutions close to the heuristic chosen as a basis

71
Constraint Programming (14)
  • Test results (23 instances, 2 minutes)
  • Equivalent results 13 instances
  • SBS2 with the best CPU times
  • SBS1 ( 28 / SBS2)
  • SBS3 ( 74 / SBS2)
  • SBS1 SBS2 better than SBS3 3 instances
  • SBS1 SBS3 better than SBS2 2 instances
  • SBS1 better than SBS2 better than SBS3 2
    instances
  • SBS1 better than SBS3 better than SBS2 1
    instance
  • SBS2 better than SBS1 better than SBS3 1
    instance
  • SBS3 better than SBS1 better than SBS2 1
    instance (the most difficult)

72
Constraint Programming (15)
  • Test results (23 instances, 10 minutes)
  • Equivalent results 16 instances
  • SBS2 with the best CPU times
  • SBS1 ( 16 / SBS2)
  • SBS3 ( 55 / SBS2)
  • SBS1 SBS2 better than SBS3 2 instances
  • SBS2 better than SBS1 better than SBS3 4
    instances
  • SBS3 better than SBS1 better than SBS2 1
    instance (the most difficult) 
  • Summary SBS1 is never the worst, SBS2 is the
    best for 10 minutes of CPU time, SBS3 is the best
    only on the most difficult instance

73
Column Generation (1)
  • Principle
  • Generate candidate solution components
  • Find the optimal combination of these components
  • Infer characteristics of  good  solution
    components to add
  • Iterate
  • Examples
  • Train scheduling
  • Crew scheduling
  • Routing

74
Column Generation (2)
  • Column Generation
  • Routing variables paths xpd (a 0-1 variable per
    possible path)
  • Total number lt D e (N!)
  • Start with all paths with at most 2 arcs
  • Dimensioning variables capacity levels yijk
    (MK 0-1 variables)
  • Possibility to start with few capacity levels

75
Column Generation (3)
  • Master Problem
  • With integer variables to obtain feasible
    solutions
  • With floating point variables to obtain lower
    bounds and dual values
  • Sub-Problem
  • To integrate new routing variables

76
Column Generation (4)
  • Optional constraints in column generation
  • Maximal number of arcs in the shortest path
    sub-problem
  • Maximal number of ports and traffic per node in
    the master problem
  • Security constraints in both the master and the
    sub-problem

77
Column Generation (5)
  • Repeat
  • Once every 5 iterations, search for an integer
    solution (MIP)
  • Search for the optimal solution of the continuous
    relaxation
  • Get dual values
  • Add columns
  • Paths the best path for each demand if this path
    has a reduced cost smaller than the current gap
  • Links
  • If some paths have been added the best capacity
    level for each arc if its reduced cost is
    negative
  • Otherwise the best capacity level for each arc
    if its reduced cost is smaller than the current
    gap
  • Final optimization with integer variables (MIP)

78
Column Generation (6)
  • Variant Use the previous algorithm with a
    systematic limit on the number of arcs of a path
  • Start with paths with at most 4 arcs
  • When the problem is solved with a given limit,
    increment the allowed number of arcs and iterate

79
Pros and Cons of Different Techniques (1)
  • Constraint Programming
  • Global constraints on paths
  • The overall cost is a sum of many step functions
    (almost no propagation)
  • Mixed Integer Programming
  • Sum objective handled with a global view
  • No good model for mono-routing (in the
    relaxation, the LP solver provides a flow)
  • Bad continuous relaxation of the step functions
  • Column Generation
  • Sum objective handled with a global view
  • A column is a path
  • Bad continuous relaxation of the step functions

80
Pros and Cons of Different Techniques (2)
  • Security
  • CP Easy to model with logical constraints but no
    global propagation
  • MIP, CG Leads to lots of fractional values in
    the relaxation (e.g., routing a demand on two
    paths, each made of half-secure and
    half-unsecured links)
  • No line multiplication
  • CP, MIP, CG Smaller problem
  • MIP, CG Impact on the continuous relaxation of
    the step functions
  • Symmetric routing
  • CP, MIP, CG Smaller problem

81
Pros and Cons of Different Techniques (3)
  • Number of bounds (arcs)
  • CG Much less potential paths and paths much
    easier to generate (especially when the number of
    bounds is really small)
  • CP More propagation but with more complex
    algorithm
  • MIP Easy to model (sum of 0-1 variables
    representing the presence of each arc in a path)
    but more fractional values in the relaxation
  • Number of ports
  • CP Easy to model with logical constraints but no
    global propagation
  • MIP, CG Requires additional integer variables
    (with fractional values in the relaxation)
  • Maximal traffic
  • MIP, CG Linear constraints
  • CP Linear constraints with no global propagation

82
Improvements of MIP (1)
  • Adding cuts
  • For each demand and each node, at most one arc
    entering (or leaving) the node can be used.
  • For each node, the sum of the capacities of the
    arcs entering (or leaving) the node must be
    greater than or equal to the sum of the demands
    arriving at (or starting from) the node plus the
    sum of the demands traversing the node.
  • For each demand and each arc, the routing of the
    demand through the arc excludes, for this arc,
    the multiplied capacity levels strictly inferior
    to the demand.
  • Impact mostly on the lower bound.

83
Improvements of MIP (2)
  • Cumulative formulation
  • Rather than using a 0-1 variable yk for each
    capacity level k, use a 0-1 variable dk to
    represent the decision to go from a capacity
    level to the next, i.e., dk yk1 yk.
  • Impact mostly on the lower bound
  • Specialized search strategy
  • More solutions found in 10 minutes or less but of
    poorer quality
  • Fixing heuristic
  • Fix all variables with integer values in the
    current relaxation
  • Solve a sub-MIP on the other variables
  • Large neighborhood search

84
Improvements of CG (1)
  • Varying the time allocated to the generation of
    integer solutions
  • More solutions found in 10 minutes or less but of
    poorer quality
  • Use Branch-and-Price
  • Branching on capacity levels
  • Branching on paths
  • Keep a pool of  promising  columns
  • Keep regular calls to a MIP solver to generate
    integer solutions, but keep the number of nodes
    explored  small 

85
Improvements of CG (2)
  • Use Branch-and-Price-and-Cut
  • Set cuts lower bound on the total capacity of
    the links that cross the frontier of some given
    set of nodes.
  • BigDemand cuts lower bound on the number of
    links opened with a given minimal capacity that
    cross the frontier of some given set of nodes.
  • Connexity cuts lower bound on the number of open
    links that have at least one extremity in a given
    set of nodes.
  • Link cuts constrain the capacity of an arc to be
    greater than or equal to the demand for a path
    going through this arc (only these have an impact
    on path pricing).
  • On small instances, about 70 of the gap is
    closed.

86
Improvements of CP (1)
  • Changing the order in which demands are routed
  • Weight 2 demand 1 reverse-demand
  • Example
  • D01 1800, D10 950, D23 1000, D32 1000,
    D45 1900, D54 50
  • Symmetric routing D01 and D10, then D23 and D32,
    then D45 and D54
  • Non-symmetric routing D45, D01, D23, D32, D10,
    D54
  • After the modification
  • Symmetric routing D01 and D10, then D45 and D54,
    then D23 and D32
  • Non-symmetric routing D01, D45, D10, D23, D32,
    D54
  • Gain on B10 3 on average
  • Loss on the C series 1 on average

87
Improvements of CP (2)
  • Specific (path-oriented) constraint propagation
    and heuristic
  • Is there a path from p to q, with b arcs or less,
  • that goes through n?
  • that does not go through n?
  • Heuristic find such a path with the smallest
    marginal cost
  • Costly constraint propagation algorithm O(n4) in
    the worst case
  • Gain on B12 3.5 on average over the 32 variants
    with limits on the number of bounds
  • Loss on C12 0.4

88
Improvements of CP (3)
  • Direct constraint between variables representing
    the paths and variables representing the traffic
    through each node
  • Use of Parallel Solver
  • A few lines of code
  • Modification of the tree-search traversal
    strategy
  • Branch more close to the root of the tree

89
Improvements of CP (4)
  • Greedy local search
  • Try to remove arcs from a solution without adding
    any new arc (allowing some increase in existing
    arc capacities)
  • Large neighborhood search
  • Randomization in the choice of the paths to
    re-instantiate
  • Structured neighborhood randomly pick two arcs
    and re-instantiate all paths going through any of
    these arcs
  • Randomization in the instantiation order
  • Portfolio of heuristics to penalize paths (with
    weights assigned to each heuristic and adjusted
    during search)
  • Parallel multi-point large neighborhood search
    different workers work in parallel on different
    fragments

90
Current Results (1)
91
Current Results (2)
92
Current Results (3)
93
Integration (1)
94
Integration (2)
  • Select optimization algorithm

95
Integration (3)
  • Submit data file

96
Integration (4)
  • Display results

97
Integration (5)
  • Partially done

bench.txt
98
Conclusion (1)
  • Good results obtained by combining constraint
    programming (on graphs) and local optimization
  • In the absence of optional constraints solutions
    comparable to those provided by current tools
  • Capacity to take optional constraints into
    account
  • Branch-and-Price-and-Cut also provides good
    results
  • The benchmark remains challenge
  • Optimum in general unknown
  • Instances very different one from the other

99
Conclusion (2)
  • Integration of optional constraints
  • CP 5 to 20 lines of code added in a
    non-intrusive manner for each of the six optional
    constraint (thanks to the graph library)
  • MIP 10 to 40 lines
  • CG 10 to 40 lines, in multiple places in the
    code
  • Other constraints could be harder to add
  • Adjustments necessary in all cases to improve
    efficiency

100
Plan
  • Real world Problems
  • Modeling principles
  • Network Design application the ROCOCO project
  • Presentation
  • Methods
  • Integration
  • Conclusion
  • Lessons

101
Lessons
  • What do we learn?
  • Surprising things!
  • Do not forget the essential

102
The key idea path variable!
103
Assume P ? NP
  • Ok, we cannot avoid an exponential behavior
  • For some instances, an NP Complete Problem will
    required an exponential time to be solved
  • So, our only hope is to shift the exponential
    such that the problem is solvable for a size and
    a time that are acceptable

104
Shifting the exponential
105
Shifting the exponential
106
The key idea path variable!
107
We worked a lot!
108
General considerations
  • When solving a problem in CP
  • Potential performance gain
  • data structure optimization (code) x 10
  • search strategies x 1 000
  • model x 1 000 000
  • Repartition of effort for ROCOCO
  • data structure optimization (code) 65
  • search strategies 25
  • model 10

109
Conclusion
  • CP is a general technique can encapsulate a lot
    of work
  • CP is an efficient method for solving some
    combinatorial problems small or large
  • Filtering algorithms are quite important for non
    binary constraints
  • CP allows the use of sophisticated strategies
  • If you want to use CP think CP (avoid Boolean
    (0-1) variables). CP allows the use of symbolic
    representation

110
More information
  • Go to www.ilog.com
  • Go to my webpagewww.constraint-programming.com/p
    eople/reginor google my name Jean Charles Regin
Write a Comment
User Comments (0)
About PowerShow.com