Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NAVITIMEの経路はこうして作られる
Search
NAVITIME JAPAN
PRO
February 28, 2018
Technology
0
220
NAVITIMEの経路はこうして作られる
2018/02/28に開催された「ITS Tech Study #01」で発表した資料です。
NAVITIME JAPAN
PRO
February 28, 2018
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
22
13k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
170
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
48
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
2.1k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.2k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
170
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.2k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.2k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
7
5k
Other Decks in Technology
See All in Technology
Webセキュリティのあるきかた
akiym
31
9.8k
Semantic Kernel の Agent 機能試してみた!
okazuki
1
150
見えづらい活動の成果の伝え方は日頃からめちゃくちゃ悩んでるけど、実際こんな取り組みをしな がら温度感を合わせにいってるよ / Conveying Hard-to-See Results
kakehashi
4
1.7k
Binary Hacks Rebooted 私選ハック集
nullpo_head
1
170
ドキュメントとの付き合い方を考える
leveragestech
1
130
ADRを運用して3年経った僕らの現在地
onk
PRO
12
5k
【完全版】Dify - LINE Bot連携 考え方と実用テクニック
uezo
1
210
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
2
1.7k
業務ヒアリングと知識の呪い
tamai_63
0
280
それでもやっぱり ExpressRoute が好き!
skmkzyk
0
270
Oracle Database 23ai 新機能#4 Real Application Clusters
oracle4engineer
PRO
0
150
入社半年(合計1年)でGoogle Cloud 認定を全冠した秘訣🤫
risatube
0
150
Featured
See All Featured
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.7k
Designing for humans not robots
tammielis
249
25k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
1
280
The Power of CSS Pseudo Elements
geoffreycrofte
71
5.3k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
How to name files
jennybc
77
99k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
110
6.9k
Into the Great Unknown - MozCon
thekraken
31
1.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
660
Transcript
NAVITIMEの経路はこうして作られる ~4100万人の移動を導く経路探索の流儀~ 株式会社ナビタイムジャパン ルートグループ 福士 達央 2018/2/28
アジェンダ 2 自己紹介・会社紹介 経路探索エンジン紹介 種類 要素
コストモデル 経路探索開発のポイント 経路品質 性能 評価方法 今後
自己紹介 3
自己紹介 4 福士 達央(ふくし たつおう) 経歴 2008
ナビタイムジャパン新卒1期生として入社、現在10年目 2008-11 海外地図データ開発 2011-17 道路系経路探索開発 2015-17 横断PJ PM 地図リプレイス/台湾トータルナビ対応 2017- 道路系経路探索 PM スキル C/C++ 地図データ アルゴリズム リバースエンジニアリング プロジェクトマネジメント 野球部 港区2017秋大会優勝
ナビタイムジャパン紹介 5
ナビタイムジャパン紹介 6 基本情報 社員数: 400名 (2018年2月時点) 平均年齢:
31.2歳 (2017年9月時点) エンジニア:80% (2017年9月時点) 事業内容 コンシューマ系(公式・協業) ユーザ数 延べ月間UU数:4100万人 (2017年12月末時点) 有料会員数:480万人 (2017年12月末時点) 法人系
ナビタイムジャパン紹介 7 会社の成り立ち 社長・副社長が経路探索エンジンの研究者 1998年に世界初のトータルナビゲーションが完成 2000/03/01
ナビタイムジャパン設立 経営理念 「経路探索エンジンの技術で世界の産業に奉仕する」 ナビタイムにとっての経路探索 経路探索の技術を軸に事業を展開 コア技術である経路探索には強いこだわり 本日はその経路探索の開発の裏側を こっそりお教えします
経路探索エンジン紹介 8
経路探索エンジン紹介 ~種類~ 9 公共交通 道路
経路探索エンジン紹介 ~種類~ 10 公共交通 道路 本日は こちら
経路探索エンジン紹介 ~要素~ 11 経路探索 アルゴリズム NWデータから 最適経路を 高速に算出する技術 コスト 計算
どの道路を 通るのが良いか 価値を決める技術 道路 NWデータ 様々な属性を含む リンク・ノードで モデル化した地図 ・理論的 ・情報工学 ・グラフ理論 ・経験的 ・交通工学 ・心理学 リンク/ノード単位で コスト取得 どのような道路か 属性を取得 リンク・ノードの 接続関係を取得 ・地図データコンバート ・交通情報生成
経路探索エンジン紹介 ~一般化費用コストモデル~ 12 時間優先探索 距離優先探索 時間 金銭 煩雑さ コスト 時間
距離 金銭 煩雑さ コスト 多様なコスト要因に対して重みづけが可能 時間 金銭 煩雑さ ・ ・ 時間係数 金銭係数 煩雑さ係数 ・ ・ =コスト コスト係数 (主にポリシー) ベクトル 内積 コスト要因 (主に事実)
経路探索開発のポイント ~経路品質~ 13
14 多様なユーザに満足してもらうために
15 多様なユーザに満足してもらうために 1. 1経路の最適性向上 1経路でできるだけ多くのユーザを満足させる 2. 多様な別経路の提案 満足できないユーザに対して、異なる性質の経路を提供
最適な1経路 別経路 別経路 ユーザが満足できていない部分を両方のアプローチで埋めていく
16 改善サイクル ルートに不満 ルート指摘 送信 調査 分類・集計 改善対応 ナビ反映 不満解消
17 改善サイクルのポイント 1. ルート指摘 ルート専用の指摘の口が ある 直近のルートのリクエス トも合わせて送信
詳細な調査が可能に!
18 改善サイクルのポイント 2. ルート改善専用のチームが存在 調査・分類・集計を集中して実施 中央分離帯データ 投入後 指摘が0件に! 例)中央分離帯未考慮による指摘の集計
19 改善サイクルの今後 3. ユーザとのコミュニケーションの活性化 さらなるユーザ満足度向上へ ルートに不満 ルート指摘 送信 調査 ナビ反映
不満解消 分類・集計 改善対応 ユーザとの やり取り コミュニティ 改善の通知
20 所要時間精度 経路品質の指標 所要時間精度: 30分の経路に対して誤差±5分以内の経路が90% 所要時間=標準速度と交通情報による速度 から算出
順調時はさほど難しくない 混雑・渋滞時に速度を正しく捉える・予測できることが重要 交通情報データ情報源・種類と対応状況 VICSとプローブを組み合わせて利用 リアルタイム 短期予測 長期予測 VICS / プローブ ◦ ◦ ◦
21 所要時間精度 Re:dashを使って日々の精度を集計 集計結果を分析し、改善に活用
22 経路品質改善の直近の取り組み
23 経路品質改善の直近の取り組み NT-FILTER
24 経路品質改善の直近の取り組み NT-FILTER
25 経路品質改善の直近の取り組み NT-FILTER
26 経路品質改善の直近の取り組み NT-FILTER 課題 ノイズが多い 運用コスト高い
改善 AIを利用したノイズ除去実施
27 機能追加の直近の取り組み 事故リスク地点回避(阪神高速様と共同) 時間・距離・料金だけでなく、安心・安全のニーズが高まる 各道路の事故リスクを算出し、リスクの大きさに応じてコスト を付与して回避
事故リスク算出方法 過去の事故実績のある道路を状況に応じて分類 事故リスク算出用のモデル式を推定
28 機能追加の直近の取り組み 事故リスク地点回避(阪神高速様と共同) 経路に反映
29 機能追加の直近の取り組み 事故リスク地点回避(阪神高速様と共同) 難しいポイント 遠回りになりすぎない範囲での経路チューニング 基本、一般道と比べて高速は事故が少ない
単純に適用すると高速使いまくる 外部データ利用 事故リスクの推定(外部)とナビタイムの経路探索とで、扱う NWデータが異なる » 形状や属性のマッピング作業が必要 推奨 リスク考慮 25.00% 30.00% 35.00% 40.00% 45.00% 有料 一般幹線 一般 推奨 チューニング 単純 バランスは維持 経路割合
経路探索開発のポイント ~性能~ 30
31 オリンピックを見て実感
32 正確さと速さの両立は難しい
33 理論上最適経路を導くアルゴリズムは古くから存在 日本の道路NW 数百万~数千万単位のノード・リンクで構成 日時規制やリアルタイム交通情報などのリアルタイム性を適用
サービスの要求に耐えられない 経路品質とパフォーマンスはトレードオフ
34 経路品質を極力落とさずパフォーマンス向上を実現 アルゴリズム ダイクストラ・A*・階層化 など 開発言語:C++
データ形式:独自バイナリ形式 技術トレンド的にはやや古め 性能面の制御がしやすい 近年のクラウド化や並列処理技術の進歩 現状の経路品質とパフォーマンスのバランスに変化 経路品質向上にも寄与 経路品質とパフォーマンスはトレードオフ
35 事前処理による経路探索の高速化 経路探索処理の並列化 性能改善の取り組み
経路探索開発のポイント ~評価方法~ 36
37 一般的な単体テスト プロダクト品質を担保 経路探索エンジン プロダクト品質に加えて 経路品質
パフォーマンス の評価も同時に実施する必要がある コードの単体テストのみでは不足
38 チューニングや機能追加するたびに、全国車を走らせて フィールドテスト! ができればいいのだが... 評価作業 大変! コストかかる 時間かかる! 改善サイクルまわらない
39 実際のユーザの経路探索リクエストを利用 ランダムに十分な量をサンプリング 実際のユーザの分布と同様のテストケース 改修前後のデータ・エンジンで、それぞれ経路探索を実行
結果比較 評価作業 都心部:多 地方部:少
40 経路品質 経路探索エラー発生有無 経路サマリー数値比較・統計的評価 時間
距離 など ビューワで経路を引いてみて目視確認 求められる品質に応じて、確認する件数を決定 評価作業 前 後 差分
41 パフォーマンス 実行時間の比較・統計的評価 差分の平均・最大 割合だけでなく絶対値も
優劣の程度から判断 評価作業工数 小規模な改善ならば 経路チューニングと合わせて数日~1週間程度で実現 自動化など改善の余地がまだある 評価作業
今後 42
今後 43 経路探索ログや移動ログを活用した経路探索 交通コンサルの分析結果を経路にも反映 渋滞予測強化