16
最最最最最最最最最 LMS(Levelwise Mesh Sparsifica tion) 最最 最最 最最最最最最最最最 () 最最 最 最最 最最最最最 一()

最短路問題のための LMS(Levelwise Mesh Sparsification)

Embed Size (px)

DESCRIPTION

最短路問題のための LMS(Levelwise Mesh Sparsification). 宇野 毅明(国立情報学研究所) 宮本 裕一郎(上智大学). 前提条件,背景など. 組合せ最適化問題としての最短路問題が対象 キーワード:離散アルゴリズム,グラフアルゴリズム,ネットワーク理論 (主に)始点と終点が与えられた場合が対象 カーナビゲーションや Web での最短路サービスへの適用を主眼に置いている 特徴 1 :ネットワークのデータは所与(既知) 特徴 2 :始点と終点が指定されたら高速に最短路を答える 特徴 3 :近似解ではなく最適解を返す. 前提条件を加味した考察. - PowerPoint PPT Presentation

Citation preview

Page 1: 最短路問題のための LMS(Levelwise Mesh Sparsification)

最短路問題のためのLMS(Levelwise Mesh Sparsification)

宇野 毅明(国立情報学研究所)宮本 裕一郎(上智大学)

Page 2: 最短路問題のための LMS(Levelwise Mesh Sparsification)

前提条件,背景など• 組合せ最適化問題としての最短路問題が対象

– キーワード:離散アルゴリズム,グラフアルゴリズム,ネットワーク理論

• (主に)始点と終点が与えられた場合が対象• カーナビゲーションや Web での最短路サービス

への適用を主眼に置いている– 特徴 1 :ネットワークのデータは所与(既知)– 特徴 2 :始点と終点が指定されたら高速に最短路を

答える– 特徴 3 :近似解ではなく最適解を返す

Page 3: 最短路問題のための LMS(Levelwise Mesh Sparsification)

前提条件を加味した考察• 全点間最短路をあらかじめ計算し記憶しておけば,メモ

リにアクセスする時間で最短路を返せる• しかし,ネットワークが大きい場合,全点対を覚えるこ

とすら不可能– 例: U.S.A. の道路ネットワークの点数は約 2000 万→全点対数

は 2000 万 ×2000 万= 400×1012

• 全点間最短路そのものではなく,全点間最短路の中間データのようなものを生成し,始点と終点の問い合わせが来たら中間データから最短路を生成する

• 生データから最短路を計算するよりも高速に応答できる反面,あらかじめ中間データを生成しておく必要がある– 前処理にかける時間が必要– 記憶領域も余分に必要(であることが多い)

Page 4: 最短路問題のための LMS(Levelwise Mesh Sparsification)

始点と終点が指定された最短路問に関する考察

• 遠いところ同士を結ぶ最短路は決まった道を通ることが多い

• 最短路の計算には基本的に Dijkstra法が使われることが多く, Dijkstra法の計算時間はほぼ枝数に比例する

• よく使われる道(例えば高速道路のようなもの)をあらかじめ抽出し,少ない枝数のネットワークで最短路を計算すればはやい

Page 5: 最短路問題のための LMS(Levelwise Mesh Sparsification)

LMS の概要• 組合せ最適化問題としての最短路問題に対応• ネットワークデータが与えられた後,数時間かけて中間データを生成,中間データの大きさは元のネットワークデータの数倍程度【中間データの持ち方が新しい,汎用性もあり】

• 中間データを記憶した状態で始点と終点が与えられたら,高速(市販のパソコンで数msec)に最短路を返答【既存の手法と同等以上のスピード】

• 市販のパソコンで計算できる手軽さ(メモリ使用量など)

Page 6: 最短路問題のための LMS(Levelwise Mesh Sparsification)

基本的な考え方 1

オレンジ枠の外側に始点および終点がある最短路をすべて求める(黒線)赤枠の内側で最短路に使われている道をすべて覚える(黒太線)直感的解釈:覚えた道は赤枠から遠いところ同士を結ぶ最短路で使われる道

Page 7: 最短路問題のための LMS(Levelwise Mesh Sparsification)

基本的な考え方 1

オレンジ枠の外側に始点および終点がある最短路を再び求める場合には赤枠の内側では覚えた線(黒太線)のみを使っても最短路が求まる→ 最短路計算で使われるデータが少なくなる

Page 8: 最短路問題のための LMS(Levelwise Mesh Sparsification)

基本的な考え方 2

位置をずらした枠で同様に,遠いところ同士の最短路に使われる道を覚えておけば最短路計算で使われるデータがさらに少なくなる

Page 9: 最短路問題のための LMS(Levelwise Mesh Sparsification)

基本的な考え方 2

たくさんの枠で同様に,遠いところ同士の最短路に使われる道を覚えておけば最短路計算で使われるデータがさらに少なくなる

Page 10: 最短路問題のための LMS(Levelwise Mesh Sparsification)

基本的な考え方 3

枠の大きさは大きくても小さくてもよい大きい枠→覚える道は少い,始点や終点の近くでは使えない小さい枠→覚える道は多い,始点や終点の近くでも使える

Page 11: 最短路問題のための LMS(Levelwise Mesh Sparsification)

基本的な考え方(まとめ)

いろいろな大きさの枠で,遠いところ同士の最短路で使われる道を覚え,始点と終点が指定されたら,なるべく道数の少ないネットワークを構成し(大きい枠を優先的に使う),最短路を計算する

Page 12: 最短路問題のための LMS(Levelwise Mesh Sparsification)

West Virginia への適用例

300146ノード, 657716アークDijkstra法+ binary heapで約 1秒かかる( Dijkstra法の計算時間はアーク数にほぼ比例する)

Page 13: 最短路問題のための LMS(Levelwise Mesh Sparsification)

LMS で用意するネットワーク(の一部)

Page 14: 最短路問題のための LMS(Levelwise Mesh Sparsification)

始点と終点が指定された場合(1)

ピンクの線が最短路アークの数は約 10000 (元のグラフの約1/60 )計算時間は約 15 ミリ秒→約 60 倍の高速化

Page 15: 最短路問題のための LMS(Levelwise Mesh Sparsification)

始点と終点が指定された場合(2)

指定される始点と終点が異なれば,計算に使われるネットワークも異なる

Page 16: 最短路問題のための LMS(Levelwise Mesh Sparsification)

今後• 以上は基本アイディアを説明しただけであり,

細かい工夫はさらにいくつか入っている,特に前処理(中間データとしてのネットワークを作る処理)に関しては説明を省いた

• 計算実験結果に関して,まだパラメータチューニングをしておらず,すでに考えてある細かいアイディアも入れてないので,計算速度はさらに数倍速くなる可能性がある