Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OR-Toolsの中⾝ -VRPの解法について-

OR-Toolsの中⾝ -VRPの解法について-

More Decks by NearMeの技術発表資料です

Other Decks in Programming

Transcript

  1. 3 OR-ToolsのRouting Options ‧First solution strategy (heuristics) → 初期解をすばやく⽣成するための⽅法 (ex.)

    PATH_CHEAPEST_ARC, PARALLEL_CHEAPEST_INSERTION, ... ‧Local search options (metaheuristics) → 解の「近傍」を探索して、より良い解を⾒つける⽅法 (ex.) GUIDED_LOCAL_SEARCH, SIMULATED_ANNEALING, ...
  2. 15 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 1 → 2 →

    3 → 4 → 5 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  3. 16 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 1 → 2 →

    3 → 4 → 5 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  4. 17 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 1 → 2 →

    3 → 4 → 5 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 → 2 → 4 → 5 → 3 → 1 → 0 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  5. 18 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 1 → 2 →

    3 → 4 → 5 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 → 2 → 4 → 5 → 3 → 1 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  6. 19 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 2 → 4 →

    5 → 3 → 1 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  7. 20 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 2 → 4 →

    5 → 3 → 1 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  8. 21 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 2 → 4 →

    5 → 3 → 1 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 → 2 → 4 → 3 → 5 → 1 → 0 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  9. 22 「近傍」について ‧TSPやVRPの場合、”local”とは何を指しているのか? (ex.) 0 → 2 → 4 →

    5 → 3 → 1 → 0 総コスト : 1 + 1 + 1 + 1 + 1 + 1 = 6 0 → 2 → 4 → 3 → 5 → 1 → 0 総コスト : 1 + 1 + 1 + 1 + 10000 + 1 = 10005 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1 0 1 5 2 3 4 1 1 1 1 1 1 10000 1 1 1 1 1
  10. 32 2-optについて 0 3 2 1 4 0 3 2

    1 4 0 3 2 1 4 0 3 2 1 4 0 3 2 1 4 0 3 2 1 4 (ex.)
  11. 33 OR-ToolsのRouting Options (再掲) ‧First solution strategy (heuristics) → 初期解をすばやく⽣成するための⽅法

    (ex.) PATH_CHEAPEST_ARC, PARALLEL_CHEAPEST_INSERTION, ... ‧Local search options (metaheuristics) → 解の「近傍」を探索して、より良い解を⾒つける⽅法 (ex.) GUIDED_LOCAL_SEARCH, SIMULATED_ANNEALING, ...
  12. 34 OR-ToolsのRouting Options (再掲) ‧First solution strategy (heuristics) → 初期解をすばやく⽣成するための⽅法

    (ex.) PATH_CHEAPEST_ARC, PARALLEL_CHEAPEST_INSERTION, ... ‧Local search options (metaheuristics) → 解の「近傍」を探索して、より良い解を⾒つける⽅法 (ex.) GUIDED_LOCAL_SEARCH, SIMULATED_ANNEALING, ...
  13. 44 PATH_CHEAPEST_ARCの挙動 ‧公式の説明: 0 1 2 3 4 5 6

    未使⽤かつ最も近いnodeを追加 することを繰り返すとこうなる (総移動距離) = 32 (※マンハッタン距離で計算)
  14. 46 実例で⾒る2-opt 0 1 2 3 4 5 6 0

    1 2 3 4 5 6 違いは?
  15. 47 実例で⾒る2-opt 0 1 2 3 4 5 6 0

    1 2 3 4 5 6 違いは?
  16. 48 実例で⾒る2-opt 0 1 2 3 4 5 6 0

    1 2 3 4 5 6 違いは?
  17. 49 実例で⾒る2-opt 0 1 2 3 4 5 6 0

    1 2 3 4 5 6 違いは? 2-opt
  18. 54 GUIDED_LOCAL_SEARCHについて ‧公式の説明 誘導局所探索法(GLS; Guided Local Search) ‧「メタヒューリスティクス」の⼀種 → TSPやVRP以外の様々な問題にも適⽤可能な汎⽤解法

    ‧元々の⽬的関数に「ペナルティ項」を導⼊することにより、 局所解を脱出しやすくなるようにお膳⽴てする
  19. 66 GLSの全体像 1. 初期解を⾒つける (by first solution strategy) 2. 近傍を探索

    (local search) 3. utility function をもとにペナルティを課す 4. 近傍を探索 (local search) 5. 改善していたら解を更新 6. 最後に、全てのペナルティを0にして local search を⾏い、結果を出⼒ 何らかの停⽌条件を 満たすまで反復
  20. 68 References 1 ‧OR-Tools 公式サイト : https://developers.google.com/optimization/routing/vrp ‧GLS wiki :

    https://en.wikipedia.org/wiki/Guided_local_search ‧qiita1 : https://qiita.com/hari64/items/e66fd2a281ab76a58af3 ‧qiita2 : https://qiita.com/r_nsd/items/19dcb30f5478384f90d3
  21. 69 References 2 ‧ [Kilby, Prosser and Shaw (1997)] :

    P. Kilby, P. Prosser and P. Shaw: Guided Local Search for the Vehicle Routing Problem. 2nd International Conference on Metaheuristics, (1997) ‧[Mester and Bräysy (2007)] : D. Mester and O. Bräysy: Active-guided evolution strategies for large-scale capacitated vehicle routing problems. Computers & Operations Research, 34(2007), pp. 2964‒2975 ‧https://frame-illust.com/?p=9677