pattern based diving heuristics for a two dimensional
play

Pattern based diving heuristics for a two-dimensional guillotine - PowerPoint PPT Presentation

Pattern based diving heuristics for a two-dimensional guillotine cutting stock problem with leftovers Franois Clautiaux 2 , 1 Ruslan Sadykov 1 , 2 Franois Vanderbeck 2 , 1 Quentin Viaud 1 , 2 1 2 Inria Bordeaux, Universit Bordeaux,


  1. Pattern based diving heuristics for a two-dimensional guillotine cutting stock problem with leftovers François Clautiaux 2 , 1 Ruslan Sadykov 1 , 2 François Vanderbeck 2 , 1 Quentin Viaud 1 , 2 1 2 Inria Bordeaux, Université Bordeaux, France France Matheuristics 2018, Tours, France, June 19 1 / 33

  2. Contents Introduction Column generation and standard diving heuristic “Non-proper” diving heuristic Solving the pricing problem Partial enumeration technique Computational results 2 / 33

  3. Context: production of windows 1.Initial storage 2.Cutting table → → 3.Intermediate storage 4. Assembly of windows → 3 / 33

  4. Specific industrial constraints ◮ 4-stage guillotine-cut process ◮ Restricted cuts (size of the cut part coincides with the width or height of a piece) ◮ Daily production is decomposed into independent batches (fitting to the intermediate storage) ◮ The order of batches is fixed because of the due dates of the customer orders ◮ The leftover of only the last bin of a batch can be reused for the next batch due to the organisational costs B 1 B 1 B 1 B 2 B 2 B 2 B 2 4 / 33

  5. One-batch problem : 2D guillotine cutting stock with leftovers ◮ Unlimited set of identical rectangular bins of size W × H ◮ Additional leftover bin of size ¯ W × H , ¯ W < W . ◮ Set I of items with fixed demand d i (number of pieces to cut) and size w i × h i , i ∈ I ◮ Each item copy can be rotated by 90 ◦ ◮ Each item copy should be cut in at most 4 stages ◮ Each cut is restricted and guillotine (from one side to the opposite side) ◮ The objective function is to minimize the total width of used bins and the width of the used part of the last bin. B B B B 5 / 33

  6. Example of a feasible cutting pattern 7 6 5 2 3 4 1 6 / 33

  7. Example of a feasible cutting pattern 7 6 5 2 3 4 1 6 / 33

  8. Example of a feasible cutting pattern 7 6 5 2 3 4 1 6 / 33

  9. Example of a feasible cutting pattern 7 6 5 2 3 4 1 6 / 33

  10. Example of a feasible cutting pattern 7 6 5 2 3 4 1 6 / 33

  11. Example of a valid solution 7 5 9 6 5 2 2 2 3 5 10 4 3 1 w W — waste — leftover Solution value = W + w 7 / 33

  12. 2D guillotine cutting stock : literature review ◮ Column generation + rounding (3 stages) [Vanderbeck, 2001] ◮ Branch and price (3 stages) [Puchinger and Raidl, 2007] ◮ Column generation + heuristics for the residual problem after the rounding [Cintra et al., 2008] ◮ Arc-flow MIP formulation (3 stages) [Silva et al., 2010] ◮ Column generation + diving (2 stages) [Furini et al., 2012] ◮ Dynamic MIP formulation [Furini et al., 2016] ◮ With leftovers (2 and 3 stages) [Puchinger et al., 2004] [Dusberger and Raidl, 2014] [Dusberger and Raidl, 2015] [Andrade et al., 2016] Remarks ◮ Small instances ( W , H ) = ( 300 , 300 ) ⇒ Exact methods ◮ Large instances ( W , H ) = ( 1000 , 1000 ) ⇒ Heuristics ◮ Our one-batch instances ( W , H ) = ( 6000 , 3000 ) , up to 150 items and ≈ 400 pieces to cut 8 / 33

  13. Contents Introduction Column generation and standard diving heuristic “Non-proper” diving heuristic Solving the pricing problem Partial enumeration technique Computational results 9 / 33

  14. Extended (pattern-based) formulation ◮ 3 bin types : leftover bin ( W ′ × H ), normal bin ( W × H ), last bin ( W × H ) ◮ P t — set of valid cutting patterns for a bin of type t = 1 , 2 , 3 ◮ a p i — number of pieces of item i cut in pattern p ◮ w p — width of pattern p � � � min W ′ λ p + w p λ p W λ p + p ∈P 1 p ∈P 2 p ∈P 3 a p � i λ p = d i , ∀ i ∈ I , p ∈P 1 ∪P 2 ∪P 3 � λ p = 1 , ∀ t ∈ { 1 , 3 } , p ∈P t λ p ∈ Z + , ∀ p ∈ P 2 , λ p ∈ { 0 , 1 } , ∀ p ∈ P t , t ∈ { 1 , 3 } . 10 / 33

  15. Pricing problem ◮ π ∈ R |I| — dual values for the demand constraints ◮ µ = ( µ 1 , µ 3 ) ∈ R 2 — dual values for the bin number constraints ◮ Reduced cost of a pattern p : W ′ − µ 1 ,  p ∈ P 1 ,  a p � c p = − ¯ i π i + W , p ∈ P 2 , w p − µ 3 , p ∈ P 3 .  i ∈I ◮ The pricing problem decomposes into three 2D guillotine integer knapsack problems, one for each bin type ◮ Can be solved by ◮ a branch-and-bound [Puchinger and Raidl, 2007] ◮ a MIP [Furini et al., 2012] ◮ a dynamic program with bounds [Dolatabadi et al., 2012] ◮ a labelling algorithm [Clautiaux et al., 2018] 11 / 33

  16. Standard diving heuristic [Furini et al., 2012] [Sadykov et al., 2018] ◮ use Depth-First Search ◮ at each node of the tree ◮ solve the master LP by column generation ◮ select a pattern p ∈ P with its value ¯ λ p closest to a non-zero integer ⌈ ¯ λ p ⌋ ◮ add ⌈ ¯ λ p ⌋ to the partial solution ◮ update the master LP: ◮ update demands d of the items ◮ remove “non-proper” patterns p ( ∃ i ∈ I : a p i > d i ) ◮ repeat until a complete solution is obtained The heuristic assumes that the pricing generates proper patterns ( a p i ≤ d i , ∀ i ∈ I )! 12 / 33

  17. Diving with LDS [Sadykov et al., 2018] Idea: add some diversification through limited backtracking (Limited Discrepancy Search by [Harvey and Ginsberg, 1995] ) MaxDiscrepancy = 2 , MaxDepth = 3 At each node, we have a tabu list of columns forbidden to be added to the partial solution. 13 / 33

  18. Contents Introduction Column generation and standard diving heuristic “Non-proper” diving heuristic Solving the pricing problem Partial enumeration technique Computational results 14 / 33

  19. “Proper” vs. “non-proper” pricing Proper case (item bounds are imposed in the pricing) + Standard diving heuristic can be applied − Exact pricing is expensive − Heuristic pricing makes diving less efficient Non-proper case (unbounded pricing) + Exact pricing by dynamic programming is relatively efficient + Column generation dual bound is almost as tight [Cintra et al., 2008] − One needs to adapt the diving heuristic 15 / 33

  20. Diving heuristic adaptations for the “non-proper” case ◮ If there are not enough proper columns in the master solution, then choose ones with the smallest reduced cost ◮ among all proper column in the restricted master ◮ and proper columns generated with a heuristic pricing ◮ Never fix patterns of type 3 (for the last bin) ◮ When all remaining pieces fit into one bin, heuristically generate a cutting pattern minimizing its width ◮ Every time a partial solution is augmented, complete it heuristically (hybridization with the evolutionary heuristic) 16 / 33

  21. “Non-proper” diving heuristic for our problem yes A proper pattern of type 1 Start or 2 in the master solution? non Solve the restricted master Solve the proper pricing heuristically and com- plete the master solution Solve the pricing problem Add a proper column of type 1 or 2 to the partial solution Convergence ? and update the master no yes Complete the partial All remaining pieces solution heuristically no fit into one plate yes Fractional columns in Solve the bounded 2D knap- yes the master solution? sack of type 3 heuristically Stop no 17 / 33

  22. Contents Introduction Column generation and standard diving heuristic “Non-proper” diving heuristic Solving the pricing problem Partial enumeration technique Computational results 18 / 33

  23. Unbounded 2D guillotine knapsack: dynamic program ◮ Application of [Beasley, 1985] and [Russo et al., 2014] ◮ W ( w , h ) , H ( w , h ) — set of all possible widths and heights ◮ U ( w , h , s ) ( U ( w , h , s ) ) — max. value of a pattern of size w × h cut at stage s (next cut should cut a piece) � �� U ( w ′ , h , 2 ) + U ( w − w ′ , h , 1 ) U ( w , h , 1 ) = max 0 , max � w ′ ∈W ( w , h ) � �� U ( w , h ′ , 3 ) + U ( w , h − h ′ , 2 ) U ( w , h , 2 ) = max 0 , max � h ′ ∈H ( w , h ) � �� U ( w ′ , h , 4 ) + U ( w − w ′ , h , 3 ) U ( w , h , 3 ) = max 0 , max � w ′ ∈W ( w , h ) U ( w , h , 2 ) = i ∈I : w i = w , h i ≤ h { π i + U ( w , h − h i , 2 ) } max U ( w , h , 3 ) = i ∈I : h i = h , w i ≤ w { π i + U ( w − w i , h , 3 ) } max � �� U ( w , h , 4 ) = max 0 , max � π i + U ( w , h − h i , 4 ) i ∈I : w i = w , h i ≤ h 19 / 33

  24. Dynamic program: example U ( w , h , 1 ) = max { 0 , w ′ ∈W ( w , h ) { U ( w ′ , h , 2 ) + U ( w − w ′ , h , 1 ) }} max ( 6 , 4 , 1 ) Bin ( W , H ) = ( 6 , 4 ) and an item a = ( 4 , 3 ) 20 / 33

  25. Dynamic program: example U ( w , h , 1 ) = max { 0 , w ′ ∈W ( w , h ) { U ( w ′ , h , 2 ) + U ( w − w ′ , h , 1 ) }} max ( 2 , 4 , 1 ) ( 4 , 4 , 2 ) Bin ( W , H ) = ( 6 , 4 ) and an item a = ( 4 , 3 ) 20 / 33

  26. Dynamic program: example U ( w , h , 2 ) = i ∈I : w i = w , h i ≤ h { π i + U ( w , h − h i , 2 ) } max ( 2 , 4 , 1 ) ( 4 , 4 , 2 ) Bin ( W , H ) = ( 6 , 4 ) and an item a = ( 4 , 3 ) 20 / 33

  27. Dynamic program: example U ( w , h , 2 ) = i ∈I : w i = w , h i ≤ h { π i + U ( w , h − h i , 2 ) } max ( 4 , 1 , 2 ) ( 2 , 4 , 1 ) a Bin ( W , H ) = ( 6 , 4 ) and an item a = ( 4 , 3 ) 20 / 33

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend