Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
(1) Efficiently Solving the Practical Vehicle Routing Problem: A Novel Joint Learning Approach, KDD2020 (2) Neural Large Neighborhood Search for the Capacitated Vehicle Routing Problem, ECAI2020 @cocomoff
Slide 2
Slide 2 text
以前紹介した論⽂ ICLR2019 様々なRouting Problem を解くためのAttention 機構付きNN 強化学習の枠組みで良い経路を選択できるように学習 これに関連した2020 年の論⽂2 本を紹介
Slide 3
Slide 3 text
RL ベースの⼿法は学習が遅いという⽋点があり,RL ベースの⼿法+ 教師 有り学習によって効率的に学習する 訪問点の座標 ( ) に加えて,2 点間の距離を埋め込んで利⽤する ⼈⼯データと実データに対して,OR-Tools よりも良い結果を⽰した x, y
Slide 4
Slide 4 text
背景 VRP (TSP + 複数⾞両 + depot (0)) 8 6 2 5 7 1 4 3 9 10 16 14 12 11 15 13 0 1/10
Slide 5
Slide 5 text
概要 いろんな⼿法の⽐較 ([21] がICLR2019) 2/10
Slide 6
Slide 6 text
埋め込む特徴 特徴として座標 の埋め込みだけではなく,距離⾏列を利⽤する 理由: の相対位置だけでは移動距離が道路によって異なるため 3/10 (x, y) x, y
Slide 7
Slide 7 text
ネットワーク構造 Encoder 側は論⽂で1p ぐらい詳細に証明 ( 既存⼿法の組合せ) Decoder 側は2 つに分ける 1 つは次に訪問すべき地点をPointer する 1 つはPointer 側で作成した解を予測できるようなMLP 辺 が解 に含まれるかどうかを予測する 4/10 e π
Slide 8
Slide 8 text
ネットワーク構造と学習 全体のロスは2 つのロスの重み付き和 Pointer 側のロスは,ICLR2019 などと同じくREINFORCE ロス MLP 側のロスは,Pointer が作成した とのcross entropy なぜこの学習をやっている? 過去の論⽂で学習のために最適な経路 (optimal solution) を使った ⼤規模データだと教師データが作れない RL とくっつけたこの形のJoint Learning を提案した 5/10 π
Slide 9
Slide 9 text
実験結果 ⼈⼯データ (VRP-num) ,実データ (VRP-R) 概ね他の⼿法より良かったし,相対位置を⼊れたほうが良かった 6/10
Slide 10
Slide 10 text
組合せ最適化におけるメタヒューリスティクスである Large Neighborhood Search をニューラルネットワークで実⾏する LNS を構成する実⾏可能解の destroy/repair 演算にNN を利⽤する CVRP ( 容量制約つきVRP) と Split Delivery VRP ( 分割VRP) の評価⽤イン スタンスについて,既知のヒューリスティクスと⽐較可能な結果を⽰した 概要を紹介
Slide 11
Slide 11 text
概要 局所探索 (Local Search): 組合せ最適化のメタヒューリスティクスの1 つ 実⾏可能解 から少し異なる解の集合 として以下を繰り返す を初期化 以下を満⾜するまで繰り返す を選択 もし が より良ければ ⼀般に のサイズは 有限個 or パラメータの多項式サイズぐらい (Local search; LS) それ以上 (Large neighborhood search; LNS) それ以上 (Very large neighborhood search; VLNS) 7/10 x N(x) x x ∈ ′ N(x) f(x ) ′ f(x) x ← x′ N(x)
Slide 12
Slide 12 text
LNS の特徴つけ: Destroy/Repair オペレータ 近傍の解を探索する操作を2 つの操作で考える Destory: 実⾏可能解を壊す ( ランダムとかで良いらしい) Repair: 実⾏可能解に直す ( 難しいらしい ← ここをPointer Network) 8/10
Slide 13
Slide 13 text
ネットワーク構造 どこを直すのかを指し⽰すPointer Network 学習⽅法はREINFORCE ロスと同じ (ICLR2019 やKDD2020 のロスと似た アプローチ) 9/10
Slide 14
Slide 14 text
実験結果 既存のNN ベース⼿法と⽐較して,性能は良いが遅い SDVRP インスタンスでも既存のヒューリスティクと… 10/10