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 API チャレンジ 2019】NAVITIME_meet Dec. 18, ...
Search
NAVITIME JAPAN
PRO
December 18, 2019
Business
0
65
NAVITIME API チャレンジ 2019】NAVITIME_meet Dec. 18, 2019 • 0 likes • 9 views
【NAVITIME API チャレンジ 2019】最優秀賞作品「NAVITIME_meet」のご紹介です。
NAVITIME JAPAN
PRO
December 18, 2019
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
22
15k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
370
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
120
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
2.4k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.3k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
240
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.3k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.3k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
7
5.3k
Other Decks in Business
See All in Business
サステナビリティレポート2023
hamayacorp
0
130
世界記録を目指せ!マシュマロチャレンジ
chibanba1982
PRO
0
990
ABCash会社紹介資料「Culture Deck2025」
abcash_recruit
0
9.7k
ゲーム型ビジネスマナー研修「マナーストーリーカード版」
chibanba1982
PRO
0
110
EGセキュアソリューションズ_会社紹介資料
ytsuruda
0
310
死の疑似体験ワーク 対面版
chibanba1982
PRO
0
190
図形伝達ゲーム「グラコミ」
chibanba1982
PRO
0
460
情報整理ゲーム「野球のポジション当てゲーム オンライン版」
chibanba1982
PRO
0
240
メドピアグループ紹介資料
medpeer_recruit
10
120k
イークラウド会社紹介 ~ひとりひとりの想いをつなぎ、挑戦に力を~
ecrowd
1
2.4k
BionicM 会社紹介/採用説明
bionicm
0
440
会社紹介資料 | booost technologies株式会社
booost
0
5.2k
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Optimizing for Happiness
mojombo
376
70k
How to train your dragon (web standard)
notwaldorf
88
5.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
850
YesSQL, Process and Tooling at Scale
rocio
170
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
490
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Scaling GitHub
holman
459
140k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
940
Transcript
NAVITIME meet -待ち合わせ場所提案アプリ- NAVITIME APIチャレンジ 最終審査 @株式会社ナビタイムジャパン 2019年12月10日 慶應義塾大学大学院 【Tanaka
lab】 *丹野一輝,氏原凜汰郎,小貝洸希, 小杉咲貴恵, 濱田賢吾
サービス概要 NAVITIME meet ➢ 移動時間や集合する「目的」などを,総合的に判断した結果が手軽に得られる ➢ 得られた待ち合わせ駅の特徴を容易に把握することができる • 集まりやすさ •
目的に関連する店の豊富さ 提案するサービスには,単純な「待ち合わせ」以外にも複数の使い道(応用)がある 目的に応じた最適な待ち合わせ駅と 全員の移動経路がひと目でわかる! 周辺地図でお店もチェック! 全員の出発駅 待ち合わせ日時 待ち合わせ目的 数理最適化 Point Input Output 2
Demo 3 銀座 渋谷 新宿 秋葉原 表参道 大井町 デモ動画 -1-
背景 ➢ 待ち合わせ場所を決定する状況は多く存在 → 「複数の地点からアクセスするのに最適な地点を決定する問題」として抽象化 ➢ 待ち合わせ場所の決定には多くのことを考える必要がある • 目的に応じた待ち合わせ駅の候補を考える ショッピングに行くなら店は多い方がいい
• 候補の中から全員が集まりやすい駅を考える みんなの移動時間は短い?1人だけ極端に遠いことはない? 飲み会、デートの 待ち合わせ 会社説明会 の開催場所 家探し 一般的な「待ち合わせ」 その他の応用 アプリ化することで待ち合わせ場所決定の手間を削減 4
サービス概要 NAVITIME meet ➢ 移動時間や集合する「目的」などを,総合的に判断した結果が手軽に得られる ➢ 得られた待ち合わせ駅の特徴を容易に把握することができる • 集まりやすさ •
目的に関連する店の豊富さ 提案するサービスには,単純な「待ち合わせ」以外にも複数の使い道(応用)がある 目的に応じた最適な待ち合わせ駅と 全員の移動経路がひと目でわかる! 周辺地図でお店もチェック! 全員の出発駅 待ち合わせ日時 待ち合わせ目的 数理最適化 Point Input Output 5
数理最適化問題としての定式化 「数理最適化」とは,制約条件のもとで目的となる指標が最も良くなる解を見つける問題 今回は数理最適化ソルバーCbc*により求解 数式で表現 現実の問題 数理最適化モデル 以下の観点から全体として最適な 駅を見つける ➢ 移動時間
➢ 運賃 ➢ 乗り換え回数 ➢ 駅周辺に店が多いか ※その他の設定も可能 集まるのに最適な待ち合わせ駅 はどこだろう? 𝑃𝑖𝑗 :駅 𝑖 と駅 𝑗 間の運賃 𝑇𝑖𝑗 :駅 𝑖 と駅 𝑗 間の乗り換え回数 𝑉 𝑗 :駅 𝑗 周辺のスポット数 *Coin-or branch and cut (オープンソースの最適化ソルバ) 6
数理最適化問題としての定式化 「数理最適化」とは,制約条件のもとで目的となる指標が最も良くなる解を見つける問題 今回は数理最適化ソルバーCbc*により求解 数式で表現 現実の問題 数理最適化モデル 以下の観点から全体として最適な 駅を見つける ➢ 移動時間
➢ 運賃 ➢ 乗り換え回数 ➢ 駅周辺に店が多いか ※その他の設定も可能 集まるのに最適な待ち合わせ駅 はどこだろう? 𝑃𝑖𝑗 :駅 𝑖 と駅 𝑗 間の運賃 𝑇𝑖𝑗 :駅 𝑖 と駅 𝑗 間の乗り換え回数 𝑉 𝑗 :駅 𝑗 周辺のスポット数 左の目的を表現する関数 問題を解く上での制約 *Coin-or branch and cut (オープンソースの最適化ソルバ) 6
使用例 -帰宅途中での集合を想定- 帰宅途中の待ち合わせ場所決定問題 ➢結局考えたいのは,矢印の長さを出来るだけ短くするような問題 ➢これまで考えてきたものと全く同じ構造の問題!! ➢会社等から帰宅する途中で,複数人で 待ち合わせをする ➢このとき,できるだけ本来の経路 (家に直行した時の経路,例えば上の )
から外れないことが望ましい 問題設定 待ち合わせ場所を 経由して帰宅する 会社 自宅 待ち合わせ場所 7
待ち合わせ場所 一般的な待ち合わせ問題 同一の構造 使用例 -帰宅途中での集合を想定- 帰宅途中の待ち合わせ場所決定問題 ➢結局考えたいのは,矢印の長さを出来るだけ短くするような問題 ➢これまで考えてきたものと全く同じ構造の問題!! 待ち合わせ場所を 経由して帰宅する
会社 自宅 待ち合わせ場所 7
使用例 -帰宅途中での集合を想定- 8 帰宅途中の待ち合わせ場所決定問題 待ち合わせ場所を 経由して帰宅する 会社 自宅 待ち合わせ場所 デモ動画
-2-
使用例 -説明会開催場所決定問題- ➢複数の「待ち合わせ場所」を決定する問題(1つの待ち合わせ場所にアクセス できれば十分)として捉えることができる ➢数理最適化問題として定式化したことで,このような複雑な状況にも 対応することができる 大学 会場 就職活動における説明会開催場所決定問題 問題設定
➢複数のターゲット大学からアクセス しやすい複数の開催場所を決定したい ➢説明会の内容は同一であるため, 大学は1か所の会場に近ければ十分である 9
使用例 -説明会開催場所決定問題- 10 大学 会場 就職活動における説明会開催場所決定問題 武蔵小杉 高田馬場 四ツ谷 本郷三丁目
大岡山 日吉 デモ動画 -3-
カスタマイズ例 数理最適化モデルを少し変更することで様々なカスタマイズが容易に可能 ➢ 「移動時間が最も長くなる人の移動時間」が短くなるようにしたい 一番可哀想な人を少しでも楽にしてあげたい (実装済み) ➢ 「全員が集合してから誰か1人の終電がくるまでの時間 (=全員が一緒にいられる時間)」を最大にしたい 終電までがっつり飲みたい!というときに
➢ 5人のうち最低3人が集まればよいとき,移動時間が短くなるような 3人のメンバーと待ち合わせ駅を選びたい 何かの買い出しの時にメンバーと場所を同時に決定可能 11
まとめ ➢ アピールポイント • 社会への貢献度:日常的かつ面倒な作業を技術の力でサポートすることができる • インパクト:ナビタイムの現サービスと非常に親和性が高く,実装されれば 「乗り換え検索の一つ手前」までアプローチすることができ,UX向上に繋がる • 先進性:「待ち合わせ」に対して数理最適化を適用したサービスを提案した
• 完成度:「あったらいいのに」という様々な機能を,使いやすいUIで実装した (帰宅途中に集まるケース,結果の比較機能 など) ➢ 今後の課題 • 友達リスト作成機能を追加し,よく会う友達の情報をすぐに反映できるようにする • さらに,前回行った場所の情報を加味して,レコメンドまで繋げられれば 非常に独自性の高いサービスになるだろう 複数人の出発駅と待ち合わせの目的を入力すると, 最適な待ち合わせ駅とそこまでの乗り換え案内が出力されるアプリケーションを作成した 12
Appendix
使用例 -ホテル探し問題- 待ち合せ場所を決める一般的な状況 ホテル探し問題 ➢どちらも複数の地点とアクセスが良い1点を探す問題と捉えられる ➢矢印の向きが違うだけで,全く同じ構造の問題である 1日目の 目的地 2日目の 目的地
3日目の 目的地 4日目の 目的地 ※人数等に応じて重みづけする (ここに近いほど嬉しいとする)ことも可能 待ち合わせ場所 ホテル ユーザ 14
システム概要 バックエンド Flask API 出発駅ノード 検索 所要時間行列 の計算 駅・バス停検索 ルート探索
スポット検索 数理最適化実行 検索 NAVITIME meet 目的に応じた最適な待ち合わせ駅と 全員の移動経路がひと目でわかる! 周辺地図でお店もチェック! 全員の出発駅 待ち合わせ日時 待ち合わせ目的 数理最適化 実行結果 ルート情報 タイル地図 スクリプト取得 Vue.js 15
機能の振り返り -基本機能- Input Basicを選択 ユーザ・出発駅 を入力 日時・目的 を入力 検索条件を 選択して検索
最適な待ち合わせ駅 他の候補とそれぞれの 特徴を容易に比較可能 Output 詳細な情報を表示 (ex. 出発時間, 所要時間,周辺地図) 16
機能の振り返り -帰宅途中での集合を想定- Input Advanced・ 途中で立ち寄る を選択 ユーザ・出発駅・ 帰宅駅を入力 日時・目的・ 検索条件を入力
して検索 最適な待ち合わせ駅と 他の候補の特徴 Output 詳細な情報を表示 新橋で19時に集合し, 帰宅するまでの経路を すべて表示 17
機能の振り返り -説明会開催場所決定問題- Input Advanced・複数 の待ち合わせ駅を 選択 ユーザ・出発駅・ 帰宅駅を入力 日時・目的・ 検索条件を入力
して検索 最適な待ち合わせ駅 (ここでは2つ)と 他の候補の特徴 Output 詳細な情報を表示 誰が,どの駅に割当てら れているかを表示 18