ODIN 配送計画に新機能ができました!
配送計画をドライバーの数で均等に割り振る、という機能なのですが、わかりにくいと思うので説明します。
多くの会社さんで多い配送計画のパターンが
・A社、B社、C社、D社… Z社 までの26個の配送先があって、荷物を届けなければいけない。
・ドライバーさんは3人(車の数は、3台あってここでは条件として検討しない)
みたいな感じです。
弊社の配送計画は、これまで26個の配送先を、3台以下の車両で、なるべく最短で回るという配送計画を算出していました。
しかし、配送関係のお仕事の皆様は、
「最短よりも3台で配送時間が同じぐらいになるようにしたい」
とおっしゃられるんですよ。
・ドライバーさん同士の不公平をなくしたい
・遊んでしまうドライバーさんが出るのを避けたい
という思惑があるそうです。
なるほど…。
そこで、〇箇所の配送先があり、〇人のドライバーさんがいらっしゃるときに、〇人のドライバーさんで同じぐらいの配送時間になるという機能を作成しました!
サンプルとして、配送先を
藤沢
金沢八景
秦野
本厚木店
小田原
横須賀
大森
世田谷
新宿
大森
とします。出発地点は、横浜駅近くの弊社で、最後は弊社に戻ってきます。
従来の配送計画では、次のように割り振りがされていました。
1台が8時間39分を使ってルートを回るようになっています。(有料道路は使わない設定になっています。)
ドライバー数を3人にして、同じぐらいの時間になるように割り振ってみます。
すると、きれいに割り振ることができました!(๑>◡<๑)
一人が3時間19分、一人が4時間39分、一人が2時間46分ですね。割り振りしながらも、なるべく最短になるように、という結果です。
今回は、なんと!不肖このワタクシ目が配送計画を作る部分を開発しました!٩( ‘ω’ )و
UIについては、弊社のスーパールーキーK君に手伝ってもらいました。
苦節2か月…。 うち1か月近くは配送計画を作るプログラムの開発環境を作るのに時間がかかってました。(>_<)
このプログラムはScalaという言語で作られていまして。
Scalaはこの配送計画プログラムを作った当時はイケてる言語ともてはやされてたんですが、今すたれた感ありますね…。
そして、すたれた言語はメンテが大変。情報もあまりない(>_<)
言語のチョイスとは難しいものだとつくづく感じました。。。
ODIN 配送計画は今すぐ、無料で2週間お試しできます。
無料のお登録に関しては、こちらから!