Feasibility Pump Heuristics for Column Generation Approaches Ruslan Sadykov 2 Pierre Pesneau 1 , 2 Francois Vanderbeck 1 , 2 1 University Bordeaux I 2 INRIA Bordeaux — Sud-Ouest SEA 2012 Bordeaux, France, June 9, 2012 1 / 29
Outline Generic Primal Heuristics Generic Primal Heuristics for Branch-and-Price Column Generation based Feasibility Pump heuristic Numerical tests Conclusion 2 / 29
Generic Primal Heuristics for MIPs “good” feasible solutions using the tools of exact optimization 3 / 29
Generic Primal Heuristics for MIPs “good” feasible solutions using the tools of exact optimization ◮ Truncating an exact method ◮ Building from the relaxation used for the exact approach ◮ Defining a target based on the relaxation ◮ Using dual information to price choices in greedy heuristics ◮ Exact approach used to explore a neighborhood 4 / 29
Generic Primal Heuristics for MIPs “good” feasible solutions using the tools of exact optimization ◮ Truncating an exact method ◮ Building from the relaxation used for the exact approach ◮ Defining a target based on the relaxation ◮ Using dual information to price choices in greedy heuristics ◮ Exact approach used to explore a neighborhood Examples: [Berthold’06] 1. Large Scale Neighborhood Search [Ahuja al’02] 2. Relaxation Induced Neighborhood Search [Dana al’05] 3. Local Branching [Fischetti al’03] 4. Feasibility Pump [Fischetti al’05] 5 / 29
Generic LP based heuristics min { � j c j x j : � j a ij x j ≥ b i ∀ i , l j ≤ x j ≤ u j ∀ j } 6 / 29
Generic LP based heuristics min { � j c j x j : � j a ij x j ≥ b i ∀ i , l j ≤ x j ≤ u j ∀ j } ◮ Rounding: Iteratively select a var x j and bound /fix it ◮ least fractional: argmin j { min { x j − ⌊ x j ⌋ , ⌈ x j ⌉ − x j }} ◮ guided search: argmin j {| x j − x inc |} j 7 / 29
Generic LP based heuristics min { � j c j x j : � j a ij x j ≥ b i ∀ i , l j ≤ x j ≤ u j ∀ j } ◮ Rounding: Iteratively select a var x j and bound /fix it ◮ least fractional: argmin j { min { x j − ⌊ x j ⌋ , ⌈ x j ⌉ − x j }} ◮ guided search: argmin j {| x j − x inc |} j ◮ Diving: rounding + LP resolve + reiterate heuristic depth search in branch-and-bound tree branching rule � = that of exact branch-and-bound 8 / 29
Generic LP based heuristics min { � j c j x j : � j a ij x j ≥ b i ∀ i , l j ≤ x j ≤ u j ∀ j } ◮ Rounding: Iteratively select a var x j and bound /fix it ◮ least fractional: argmin j { min { x j − ⌊ x j ⌋ , ⌈ x j ⌉ − x j }} ◮ guided search: argmin j {| x j − x inc |} j ◮ Diving: rounding + LP resolve + reiterate heuristic depth search in branch-and-bound tree branching rule � = that of exact branch-and-bound ◮ sub-MIPing: rounding/diving + MIP sol of the residual prob. 9 / 29
Heuristic search in branch-and-bound tree Diving sub-MIPing 10 / 29
Feasibility Pump heuristic x is obtained by rounding LP solution x LP to the Target solution ˜ closest integer solution. If ˜ x is not feasible, the problem is modified: ◮ 0 − 1 integer program � � � � : A x ≥ a , x ∈ [ 0 , 1 ] n � � min c x + ǫ x j + ( 1 − x j ) j : ˜ x j = 0 j : ˜ x j = 1 ◮ general integer program ( l j ≤ x j ≤ u j ) � � � � � � min c x + ǫ ( x j − l j ) + ( u j − x j ) + d j : A x ≥ a , j :˜ x j = l j j :˜ x j = u j j : l j < ˜ x j < u j x j ∀ j , x ∈ R n � d j − ˜ x j ≤ x j ≤ d j + ˜ 11 / 29
The Branch-and-Price Approach c 2 x 2 c K x K c 1 x 1 min + + . . . + D x 1 D x 2 D x K + + . . . + ≥ d B x 1 ≥ b B x 2 ≥ b . ... . ≥ . B x K ≥ b x 1 ∈ N n , x 2 ∈ N n , x K ∈ N n . . . . 12 / 29
The Branch-and-Price Approach c 2 x 2 c K x K c 1 x 1 min + + . . . + D x 1 D x 2 D x K + + . . . + ≥ d B x 1 ≥ b B x 2 ≥ b . ... . ≥ . B x K ≥ b x 1 ∈ N n , x 2 ∈ N n , x K ∈ N n . . . . Relax Dx ≥ d = ≻ decomposition: subproblem { B x ≥ b , x ∈ N n } and a reformulation solved by Branch-and-Price : g ∈ G cx g λ g min � g ∈ G Dx g λ g � Solve Master LP ≥ d Pricing Problem � g ∈ G λ g = K N | G | λ ∈ Solve Master LP Solve Master LP Pricing Problem Pricing Problem 13 / 29
The Branch-and-Price Approach c 2 x 2 c K x K c 1 x 1 min + + . . . + D x 1 D x 2 D x K + + . . . + ≥ d B x 1 ≥ b B x 2 ≥ b . ... . ≥ . B x K ≥ b x 1 ∈ N n , x 2 ∈ N n , x K ∈ N n . . . . Relax Dx ≥ d = ≻ decomposition: subproblem { B x ≥ b , x ∈ N n } and a reformulation solved by Branch-and-Price : g ∈ G cx g λ g min � g ∈ G Dx g λ g � Solve Master LP ≥ d Pricing Problem � g ∈ G λ g = K N | G | λ ∈ x k = x g λ g � � y := Solve Master LP Solve Master LP Pricing Problem Pricing Problem k g ∈ G 14 / 29
Difficulties in a B-a-P context for generic heuristics Heuristic paradigm in original space or the reformulation? 15 / 29
Difficulties in a B-a-P context for generic heuristics Heuristic paradigm in original space or the reformulation? On master variables: λ (aggregated decisions) ◮ Cannot fix bounds (as in rounding) ◮ Cannot modify costs (as in feasibility pump) 16 / 29
Difficulties in a B-a-P context for generic heuristics Heuristic paradigm in original space or the reformulation? On master variables: λ (aggregated decisions) ◮ Cannot fix bounds (as in rounding) ◮ Cannot modify costs (as in feasibility pump) On original variables: x (disaggregated decisions) ◮ Cannot grasp individual SP var. after aggregation in the common case of identical SPs ◮ Cannot modify the SP structure required by the oracle 17 / 29
Difficulties in a B-a-P context for generic heuristics Heuristic paradigm in original space or the reformulation? On master variables: λ (aggregated decisions) ◮ Cannot fix bounds (as in rounding) ◮ Cannot modify costs (as in feasibility pump) On original variables: x (disaggregated decisions) ◮ Cannot grasp individual SP var. after aggregation in the common case of identical SPs ◮ Cannot modify the SP structure required by the oracle Differences ◮ Acting on master λ variables results in a more macroscopic decision . ◮ Faster progress to an integer solution, but you can quickly “paint yourself in a corner” 18 / 29
Generic modifications of the master ◮ Setting a lower bound of a column: λ g ≥ l g ◮ Decreasing cost c g of a column λ g 19 / 29
Generic modifications of the master ◮ Setting a lower bound of a column: λ g ≥ l g ◮ Decreasing cost c g of a column λ g In both cases, pricing oracle overestimates the reduced cost of column λ g already included in the master. 20 / 29
Generic modifications of the master ◮ Setting a lower bound of a column: λ g ≥ l g ◮ Decreasing cost c g of a column λ g In both cases, pricing oracle overestimates the reduced cost of column λ g already included in the master. Preprocessing ◮ Lower bound setting is done by fixing a partial (“rounded-down”) solution ◮ After that, the residual master problem is defined by preprocessing: ◮ updating RHS of the master; ◮ updating bounds for subproblem variables. 21 / 29
Pure Diving Heuristic Depth-First Search ◮ select least fractional col: λ s ← ⌈ ¯ λ s ⌋ ◮ update master and SP ◮ apply preprocessing 22 / 29
Generic Feasibility Pump algorithm I ◮ Solution ˜ λ is defined by rounding the LP solution λ LP . ◮ If ˜ λ is feasible, stop. Otherwise, we use ˜ λ as a target point. ◮ We decrease the cost of rounded-up columns and increase the cost of rounded-down ones (but not beyond the original cost). 23 / 29
Generic Feasibility Pump algorithm I ◮ Solution ˜ λ is defined by rounding the LP solution λ LP . ◮ If ˜ λ is feasible, stop. Otherwise, we use ˜ λ as a target point. ◮ We decrease the cost of rounded-up columns and increase the cost of rounded-down ones (but not beyond the original cost). Cost modification factor functions f 1 ( λ, α ) f 2 ( λ, α ) 0 . 1 0 . 1 1 1 1 λ λ α α − 0 . 1 − 0 . 1 λ ( 1 − λ � 0 . 1 if λ ≤ α � 0 . 1 α ) if λ ≤ α α f 1 ( λ, α ) = f 2 ( λ, α ) = ( 1 − λ ) ( λ − α ) − 0 . 1 − 0 . 1 if λ > α if λ > α ( 1 − α ) ( 1 − α ) 24 / 29
Embedding Feasibility Pump in a Diving heuristic ◮ At iteration t , the modified master becomes � � c t � ( Ax g ) λ g ≥ a t ; � λ g = K t ; λ g ∈ N min g λ g : ∀ g ∈ G g ∈ G t g ∈ G t g ∈ G t ◮ Before defining target solution ˜ λ t , the “rounded-down” integer part of λ t LP is fixed and removed: λ t g ← λ t g − ⌊ λ t g ⌋ (this way the residual master is close to a 0 − 1 problem). ◮ Cycling can occur if no columns are rounded up in ˜ λ t . In this case, we decrease fractionality threshold parameter α (initially α ← 0 . 5). 25 / 29
Cutting Stock Problem n = 50 , 100 d i ∈ [ 1 , 50 ] W = 10000 w i ∈ [ 500 , 2500 ] 50 instances for each n n function found opt gap time 50 Pure Div. 50/50 43/50 0.07 1.17 f 1 50 50/50 45/50 0.05 6.14 f 2 50 50/50 41/50 0.09 4.82 100 Pure Div. 50/50 35/50 0.08 4.08 f 1 100 50/50 43/50 0.04 23.93 f 2 100 50/50 40/50 0.05 17.98 26 / 29
Recommend
More recommend