Share
Embed
NAVITIME API チャレンジ 2019】NAVITIME_meet Dec. 18, 2019 • 0 likes • 9 views
【NAVITIME API チャレンジ 2019】最優秀賞作品「NAVITIME_meet」のご紹介です。
NAVITIME JAPAN PRO
December 18, 2019
Transcript
20 slides
-
NAVITIME meet -待ち合わせ場所提案アプリ- NAVITIME APIチャレンジ 最終審査 @株式会社ナビタイムジャパン 2019年12月10日 慶應義塾大学大学院 【Tanaka
lab】 *丹野一輝,氏原凜汰郎,小貝洸希, 小杉咲貴恵, 濱田賢吾 -
サービス概要 NAVITIME meet ➢ 移動時間や集合する「目的」などを,総合的に判断した結果が手軽に得られる ➢ 得られた待ち合わせ駅の特徴を容易に把握することができる • 集まりやすさ •
目的に関連する店の豊富さ 提案するサービスには,単純な「待ち合わせ」以外にも複数の使い道(応用)がある 目的に応じた最適な待ち合わせ駅と 全員の移動経路がひと目でわかる! 周辺地図でお店もチェック! 全員の出発駅 待ち合わせ日時 待ち合わせ目的 数理最適化 Point Input Output 2 -
背景 ➢ 待ち合わせ場所を決定する状況は多く存在 → 「複数の地点からアクセスするのに最適な地点を決定する問題」として抽象化 ➢ 待ち合わせ場所の決定には多くのことを考える必要がある • 目的に応じた待ち合わせ駅の候補を考える ショッピングに行くなら店は多い方がいい
• 候補の中から全員が集まりやすい駅を考える みんなの移動時間は短い?1人だけ極端に遠いことはない? 飲み会、デートの 待ち合わせ 会社説明会 の開催場所 家探し 一般的な「待ち合わせ」 その他の応用 アプリ化することで待ち合わせ場所決定の手間を削減 4 -
サービス概要 NAVITIME meet ➢ 移動時間や集合する「目的」などを,総合的に判断した結果が手軽に得られる ➢ 得られた待ち合わせ駅の特徴を容易に把握することができる • 集まりやすさ •
目的に関連する店の豊富さ 提案するサービスには,単純な「待ち合わせ」以外にも複数の使い道(応用)がある 目的に応じた最適な待ち合わせ駅と 全員の移動経路がひと目でわかる! 周辺地図でお店もチェック! 全員の出発駅 待ち合わせ日時 待ち合わせ目的 数理最適化 Point Input Output 5 -
数理最適化問題としての定式化 「数理最適化」とは,制約条件のもとで目的となる指標が最も良くなる解を見つける問題 今回は数理最適化ソルバーCbc*により求解 数式で表現 現実の問題 数理最適化モデル 以下の観点から全体として最適な 駅を見つける ➢ 移動時間
➢ 運賃 ➢ 乗り換え回数 ➢ 駅周辺に店が多いか ※その他の設定も可能 集まるのに最適な待ち合わせ駅 はどこだろう? 𝑃𝑖𝑗 :駅 𝑖 と駅 𝑗 間の運賃 𝑇𝑖𝑗 :駅 𝑖 と駅 𝑗 間の乗り換え回数 𝑉 𝑗 :駅 𝑗 周辺のスポット数 *Coin-or branch and cut (オープンソースの最適化ソルバ) 6 -
数理最適化問題としての定式化 「数理最適化」とは,制約条件のもとで目的となる指標が最も良くなる解を見つける問題 今回は数理最適化ソルバーCbc*により求解 数式で表現 現実の問題 数理最適化モデル 以下の観点から全体として最適な 駅を見つける ➢ 移動時間
➢ 運賃 ➢ 乗り換え回数 ➢ 駅周辺に店が多いか ※その他の設定も可能 集まるのに最適な待ち合わせ駅 はどこだろう? 𝑃𝑖𝑗 :駅 𝑖 と駅 𝑗 間の運賃 𝑇𝑖𝑗 :駅 𝑖 と駅 𝑗 間の乗り換え回数 𝑉 𝑗 :駅 𝑗 周辺のスポット数 左の目的を表現する関数 問題を解く上での制約 *Coin-or branch and cut (オープンソースの最適化ソルバ) 6 -
使用例 -帰宅途中での集合を想定- 帰宅途中の待ち合わせ場所決定問題 ➢結局考えたいのは,矢印の長さを出来るだけ短くするような問題 ➢これまで考えてきたものと全く同じ構造の問題!! ➢会社等から帰宅する途中で,複数人で 待ち合わせをする ➢このとき,できるだけ本来の経路 (家に直行した時の経路,例えば上の )
から外れないことが望ましい 問題設定 待ち合わせ場所を 経由して帰宅する 会社 自宅 待ち合わせ場所 7 -
使用例 -説明会開催場所決定問題- ➢複数の「待ち合わせ場所」を決定する問題(1つの待ち合わせ場所にアクセス できれば十分)として捉えることができる ➢数理最適化問題として定式化したことで,このような複雑な状況にも 対応することができる 大学 会場 就職活動における説明会開催場所決定問題 問題設定
➢複数のターゲット大学からアクセス しやすい複数の開催場所を決定したい ➢説明会の内容は同一であるため, 大学は1か所の会場に近ければ十分である 9 -
カスタマイズ例 数理最適化モデルを少し変更することで様々なカスタマイズが容易に可能 ➢ 「移動時間が最も長くなる人の移動時間」が短くなるようにしたい 一番可哀想な人を少しでも楽にしてあげたい (実装済み) ➢ 「全員が集合してから誰か1人の終電がくるまでの時間 (=全員が一緒にいられる時間)」を最大にしたい 終電までがっつり飲みたい!というときに
➢ 5人のうち最低3人が集まればよいとき,移動時間が短くなるような 3人のメンバーと待ち合わせ駅を選びたい 何かの買い出しの時にメンバーと場所を同時に決定可能 11 -
まとめ ➢ アピールポイント • 社会への貢献度:日常的かつ面倒な作業を技術の力でサポートすることができる • インパクト:ナビタイムの現サービスと非常に親和性が高く,実装されれば 「乗り換え検索の一つ手前」までアプローチすることができ,UX向上に繋がる • 先進性:「待ち合わせ」に対して数理最適化を適用したサービスを提案した
• 完成度:「あったらいいのに」という様々な機能を,使いやすいUIで実装した (帰宅途中に集まるケース,結果の比較機能 など) ➢ 今後の課題 • 友達リスト作成機能を追加し,よく会う友達の情報をすぐに反映できるようにする • さらに,前回行った場所の情報を加味して,レコメンドまで繋げられれば 非常に独自性の高いサービスになるだろう 複数人の出発駅と待ち合わせの目的を入力すると, 最適な待ち合わせ駅とそこまでの乗り換え案内が出力されるアプリケーションを作成した 12 -
使用例 -ホテル探し問題- 待ち合せ場所を決める一般的な状況 ホテル探し問題 ➢どちらも複数の地点とアクセスが良い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