Upgrade to Pro — share decks privately, control downloads, hide ads and more …

routing-apiにレコメンド機能を追加する

 routing-apiにレコメンド機能を追加する

More Decks by NearMeの技術発表資料です

Other Decks in Research

Transcript

  1. 0
    routing-apiにレコメンド機能を追加する
    2023-04-21 第41回NearMe技術勉強会
    Yuki Nonaka

    View Slide

  2. 1
    目次
    1. レコメンド機能とは
    2. レコメンドの流れ
    3. routing-apiの変更すべき点
    1

    View Slide

  3. 2
    お客さんの希望地点から乗車しようとすると、相乗りできない、または相乗りの効
    率が悪くなるが、少し離れた地点まで移動してもらうと、効率よく相乗りができるよ
    うになるというシナリオが想定される。
    そこで、routing-apiに上記のシナリオにおいて乗車地点のレコメンドをする機能を
    加える。
    レコメンド機能とは
    2
    タクシー経路
    レコメンド乗車地点
    確定した乗客
    不確定の乗客

    View Slide

  4. 3
    routing-apiにおけるクラスの基礎知識
    3
    solo_ride
    solo_ride
    ride
    routing_model
    最大迂回係数
    高速道路の使用の有無
    .etc

    View Slide

  5. 4
    レコメンドの流れ
    4
    レコメンドする乗車地
    点をあらかじめ、いく
    つか決定する
    レコメンド地点から目
    的地までのダミーの
    solo_rideを生成す
    る。
    ダミーsolo_rideを
    add_solo_ride関数
    を使って追加する
    既存のrideにレコメン
    ド地点がくっつく

    View Slide

  6. 5
    レコメンドの流れ
    5




    どのrideにも追加されていない
    1つ以上のrideに追加されている
    レコメンド地点の再検討 or
    新しく配車
    1つのrideに1つのレコメンド
    地点が追加されている
    1つのrideに複数のレコメン
    ド地点が追加されている
    この結果が欲しい

    View Slide

  7. 6
    レコメンド地点を最大でも1つしか選択しないために、容量に制約がつく問題
    (CVRP)として解を求める。capacity,demandを2次元にすることで、この容量制
    約を加える。
    変更すべき点
    6
    capacity:[9,1]
    demand:[1,0]
    demand:[1,0]
    demand:[1,1]
    demand:[1,1]
    demand:[1,1] demand:[1,1]

    View Slide

  8. 7
    ● add_solo_ride関数の引数を複数のsolo_rideにし、まとめて処理する。
    ○ addする順番によって結果が変わらないようになる。
    ● capacityやdemand変数を2次元に変更する。
    ○ レコメンド地点の情報を詰める。
    ● 需要のコールバックと容量の制約を加える。
    ○ レコメンド地点を最大でも1つしか回らないようになる。
    ● ペナルティを与え、レコメンド地点を全て回らなくてもエラーが起きないようにす
    る。
    変更すべき点
    7

    View Slide

  9. 8
    Thank you

    View Slide