平井 伸幸
株式会社 日立コンサルティング マネージャー
みなさんこんにちは、日立コンサルティングの平井です。
前回のコラムではシフト計画を例に、意思決定デザインと意思決定デザインフレームワーク(FW)で可視化したイシューを数理モデルに変換する方法について解説しました。
今回はラストワンマイル配送計画を例に、現実のイシューを数理モデルに変換する方法について解説したいと思います。
近年(2024年執筆当時)は「物流2024年問題」として話題になることも多いですが、EC市場の成長に伴い物流の需要は増加している一方、少子高齢化等複数の原因によるトラックドライバー数の減少や、物流労働環境の改善をめざした規制強化により、その供給量はひっ迫しています。また、物流は大量のエネルギーを消費する産業でもあり、GHG(温室効果ガス)排出削減のような環境負荷低減も同時に求められています。そのような環境の下、少ないリソースでより効率的な物流を行うことが国家的規模の課題となっています。
ここでは物流の中でもラストワンマイルと呼ばれる、事業所からそれぞれの配送先に荷物を届けるときの順番を決める計画を基に解説したいと思います。ラストワンマイル配送計画のイシューについては図6-1をご参照ください。
あなたは宅配便の配送センターで働く配車計画担当者だ。最近はEC需要の高まりで荷物が増え、配送時間指定も厳しくなっている。さらに地球環境への配慮やドライバーの負荷軽減も求められているため、少しでも配送効率を高めたい。そこでトラック1台1台に効率的な配送ルートを提案ができないかと考えたあなた、どうすれば最短距離・時間で配送できるルートを作ることができるだろうか?
ラストワンマイル配送計画に関する要件を意思決定デザインFWで整理した結果は図6-2のようになります。今回はトラックを1台に絞り、ラストワンマイル配送計画の基本的な要件に絞って記載しています。
アクション(決定変数):
「Where:どこから」「Where:どこへ」「When:どの順番で」回るか
価値(目的関数):
事業所を出てから戻ってくるまでの
など
ルール・前提条件(制約):
など
参照情報・データ(インプットデータ):
また、イシューのアクションに注目したモデルのイメージは図6-3のようになります。ラストワンマイル配送計画は「Where:どこから」「Where:どこへ」「When:どの順番で」回るかの3軸のアクションなので、立体回転パズルの形のモデルイメージになります。
こうした箱や枠をスロットと呼びますが、本コラムでは特に順番方向のスロットをスロットとして表記しています。今回は1台のトラックで1つの事業所から10カ所の配送先に配送することにしていますが、10カ所だけでも配送パターンの数は360万にのぼります。現実の配送計画は複数のトラック、事業所、配送先が存在し、その数に応じてパターンの数が指数関数的に増大するため、人間の手で最適な答えを導くのは不可能であることがわかります。
次からはこのモデルイメージを基に、ラストワンマイル配送計画をモデル化していきたいと思います。
今回のイシューにおける参照情報は、大きく3つの形に分けることができます。1つ目は事業所と配送先のIDリスト、2つ目は配送先によって定義される値、3つ目は出発/到着地点(From/To)の組み合わせによって定義される値です。
まず1つ目のIDリストは、図6-4のようになります。
2つ目の配送先によって定義される値は、各配送先の配送指定時間や配送にかかる時間がそれにあたります。図6-5は、配送指定時間のデータのイメージとなります。同じ形で配送にかかる時間を表現することができますが、今回は配送リードタイムに含めて考えることとします。
3つ目の出発/到着地点(From/To)の組み合わせによって定義される値は、2地点間の距離や所要時間(配送リードタイム)がそれにあたります。データは図6-6のようにFrom/Toの総当たり表のようなイメージとなります。配送リードタイムの場合、渋滞等で同じFrom/Toのルートでも時間帯によって大きく異なることもありますが、その場合は時間帯ごとに総当たり表を作成する必要があります。
今回はこれらのデータを基に、ルールと価値の定式化について解説しようと思います。
ルール1:最初は事業所から出発する
このルールは、最初のスロットに配置するルートを出発地点(From)が事業所になっているものの中から選ぶことで成立させることができます。
このルールの定式のイメージは図6-7aのようになります。
ルール2:最後に事業所に戻ってくる
このルールはルール1と同様の考え方で定式化可能です。最後のスロットに配置するルートを到着地点(To)が事業所になっているものの中から選ぶことで成立させることができます。
このルールの定式のイメージは図6-7bのようになります。
ルール3:すべての地点に必ず立ち寄る ルール4:それぞれの地点には1回のみ立ち寄る
これらルールは2つの定式が必要です。例えば配送先@に対し、「Fromが配送先@になっているルートの中から1つのルートを選ぶ」「Toが配送先@になっているルートの中から1つのルートを選ぶ」という2つの定式を用意します。2つの定式は配送先ごとに全スロットを見渡したときにそれらのルートが1回ずつ登場することを表わしています。また2つの定式をすべての配送先に個別に設定することで、ルール3と4を満たすことができるのです。
このルールの定式のイメージは図6-8のようになります。
ルール5:各配送先の配送指定時間を守る
このルールを定式化する前に、このイシューにおける時間の考え方について説明したいと思います。
モデルイメージのスロットはあくまで順番を表現しているだけなので、それ自体に時間の概念はありません。
そこで、はじめに事業所を出発する時刻を設定し、そこから各スロットで選ばれたルートの配送リードタイムを積み上げることで、それぞれのスロットにおける到着時刻を計算することができます(図6-9a参照)。
各スロットの到着時刻がわかったら、到着した配送先の配送指定時間と比較します。例えば3カ所目の配送先(3スロット目)でルール5が満たされるためには、図6-9bのような2つの定式を同時に満たす必要があります。
図の左右は3スロット目の配送指定時間の下限と上限を、中央は到着時刻を計算する式になります。2つの定式のイメージは図6-9cのようになり、9:00に出発したトラックは合計65minかけて3カ所目の配送先に到着していますが、その配送先の配送指定時間は10:00~11:00のため、図6-9bの定式が成立し、ルール5が守られていることが分かります。
ここからは人間が無意識的に考慮している暗黙のルールについて説明したいと思います。人間にとって当たり前のルールも定式として表現しなければなりません。
ルール6:それぞれのスロットで選べるルートは1つのみ
トラックは普通分身できないので、同時に複数の場所に向かえないようなルールを設けます。
以前解説したシフト計画では「1日に配置できる人数はXX人まで」というルールがありました。このルールはそれを1人までとした形と同じになります。
このルールの定式のイメージは図6-10のようになります。
ルール7:前のルートの到着地点=次のルートの出発地点
このルールではトラックのテレポーテーションを禁止します。例えば2番目と3番目のスロットで考えるとしたら、2スロット目に入るルートのToと3スロット目に入るルートのFromを一致させるような定式を用意します。
このルールの定式のイメージは図6-11a,bのようになります。出発・到着地点のIDは決定変数と掛け合わせることで呼び出し、右辺と左辺のIDが同じになるよう等号で結ぶことでルールを定式化しています。
走行距離と走行時間、燃料消費量、CO2排出量は相関が強く、渋滞などの影響はあるものの、走行距離が短いほどそれ以外の指標も改善されます。またそれぞれの価値を表現する定式も、呼び出す値が異なるだけで同じ形で表現することができます。図6-12では、走行距離の定式のイメージを表わしています。
配送遅れ時間は先に挙げた配送指定時間を必ず守るルールを設けないときに有効になります。実務では常に配送指定時間を守ることが難しいこともあるため、ルールを価値(目的関数)として定義しなるべくルールを守ることをめざします。
配送時間の遅れを定式化しようとすると、図6-9で見たように各スロットの到着時刻と配送指定時間を比較することになります。遅れを最小化しようとする場合は各スロットの到着時刻と配送指定時間の上限の差を合計し、その値を最小化します。ただこれだけだといくらでも値を小さくでき、到着が極端に早くなることも考えられます。そこで、到着時刻と配送指定時間の下限の差を合計し、その値を最大化します。今回は全体の値を最小化したいので最大化したい値にマイナスを掛け、その値を最小化することで最大化をめざします。
ただ、それぞれの式を2つの式の和をとると互いに到着時刻を打ち消し合ってしまい、意味のない目的関数になってしまいます(図6-13a参照)。
これを解決する方法はいくつかあるのですが、今回はシンプルに優先順位を付ける方法を採りたいと思います。図6-13bでは配送時間遅れ最小化の項に2を掛けています。これによって、到着時刻を残し配送時間の遅れと早期到着を同時に抑制することができます。配送時間遅れの方に重みを掛けた理由は、早く到着するよりも遅れないことの方を優先すべきと考えられるためです(早く着いた場合は待機して時間を調整することも可能ですが、遅れを取り戻すことは容易ではないので)。
今回はラストワンマイル配送計画を例に、意思決定デザインFWを使ったビジネスイシューの可視化から数理モデルに変換する方法について解説しました。
配送計画のモデルは「巡回セールスマン問題(TSPと略される)」と呼ばれ、数理最適化の典型的な問題の1つです。今回のモデルは視覚的なわかりやすさを優先し本来のTSPモデルとは異なるモデルの形にしているので、本コラムを読んで最適化モデリングに興味を持った方には本来のモデルについても学習を深めていただければと思います。
次回はまた別のイシューを題材にイシューの可視化、数理モデルへ変換する方法について解説したいと思います。
ここまでお読みいただきありがとうございました、またお会いしましょう。