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
14k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
260
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
88
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
2.3k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.3k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
220
不確実性に打ち勝つ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
5.2k
Other Decks in Technology
See All in Technology
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
190
日経電子版のStoreKit2フルリニューアル
shimastripe
1
130
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
0
180
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
180
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Terraform Stacks入門 #HashiTalks
msato
0
360
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
GraphQLとの向き合い方2022年版
quramy
43
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Why Our Code Smells
bkeepers
PRO
334
57k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Site-Speed That Sticks
csswizardry
0
27
What's new in Ruby 2.0
geeforr
343
31k
GitHub's CSS Performance
jonrohan
1030
460k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
97
How to Ace a Technical Interview
jacobian
276
23k
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 経路探索ログや移動ログを活用した経路探索 交通コンサルの分析結果を経路にも反映 渋滞予測強化