0routing-apiにレコメンド機能を追加する2023-04-21 第41回NearMe技術勉強会Yuki Nonaka
View Slide
1目次1. レコメンド機能とは2. レコメンドの流れ3. routing-apiの変更すべき点1
2お客さんの希望地点から乗車しようとすると、相乗りできない、または相乗りの効率が悪くなるが、少し離れた地点まで移動してもらうと、効率よく相乗りができるようになるというシナリオが想定される。そこで、routing-apiに上記のシナリオにおいて乗車地点のレコメンドをする機能を加える。レコメンド機能とは2タクシー経路レコメンド乗車地点確定した乗客不確定の乗客
3routing-apiにおけるクラスの基礎知識3solo_ridesolo_rideriderouting_model最大迂回係数高速道路の使用の有無.etc
4レコメンドの流れ4レコメンドする乗車地点をあらかじめ、いくつか決定するレコメンド地点から目的地までのダミーのsolo_rideを生成する。ダミーsolo_rideをadd_solo_ride関数を使って追加する既存のrideにレコメンド地点がくっつく
5レコメンドの流れ5計算結果どのrideにも追加されていない1つ以上のrideに追加されているレコメンド地点の再検討 or新しく配車1つのrideに1つのレコメンド地点が追加されている1つのrideに複数のレコメンド地点が追加されているこの結果が欲しい
6レコメンド地点を最大でも1つしか選択しないために、容量に制約がつく問題(CVRP)として解を求める。capacity,demandを2次元にすることで、この容量制約を加える。変更すべき点6capacity:[9,1]demand:[1,0]demand:[1,0]demand:[1,1]demand:[1,1]demand:[1,1] demand:[1,1]
7● add_solo_ride関数の引数を複数のsolo_rideにし、まとめて処理する。○ addする順番によって結果が変わらないようになる。● capacityやdemand変数を2次元に変更する。○ レコメンド地点の情報を詰める。● 需要のコールバックと容量の制約を加える。○ レコメンド地点を最大でも1つしか回らないようになる。● ペナルティを与え、レコメンド地点を全て回らなくてもエラーが起きないようにする。変更すべき点7
8Thank you