(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024074137
(43)【公開日】2024-05-30
(54)【発明の名称】配送計画生成プログラム、配送計画生成方法および情報処理装置
(51)【国際特許分類】
G06Q 10/083 20240101AFI20240523BHJP
G06Q 10/08 20240101ALI20240523BHJP
【FI】
G06Q10/083
G06Q50/28
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022185233
(22)【出願日】2022-11-18
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】池田 弘
【テーマコード(参考)】
5L010
5L049
【Fターム(参考)】
5L010AA16
5L049AA16
5L049CC51
(57)【要約】
【課題】定期的な配送計画を効率的に生成する。
【解決手段】情報処理装置10は、日付と荷物の属性と荷物量とを対応付けた荷物データ13に基づいて、属性毎に、複数の日付種類それぞれの荷物量の統計値を示す第1のベクトルを生成する。情報処理装置10は、複数の日付種類のうちの1以上の日付種類を示す日付パターンであって、異なる日付パターン15a,15b,15cに対応する複数の第2のベクトルそれぞれと、第1のベクトルとの間の類似度に基づいて、属性それぞれを少なくとも1つの日付パターンに割り当てる。情報処理装置10は、日付パターン15a,15b,15cのうちの1以上の日付パターンそれぞれについて、割り当てられた属性に該当する荷物を配送する配送便を示す計画データを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
日付と荷物の属性と荷物量とを対応付けた荷物データに基づいて、前記属性毎に、複数の日付種類それぞれの前記荷物量の統計値を示す第1のベクトルを生成し、
前記複数の日付種類のうちの1以上の日付種類を示す日付パターンであって、異なる複数の日付パターンに対応する複数の第2のベクトルそれぞれと、前記第1のベクトルとの間の類似度に基づいて、前記属性それぞれを、前記複数の日付パターンのうちの少なくとも1つの日付パターンに割り当て、
前記複数の日付パターンのうちの1以上の日付パターンそれぞれについて、割り当てられた前記属性に該当する前記荷物を配送する配送便を示す計画データを生成する、
処理をコンピュータに実行させる配送計画生成プログラム。
【請求項2】
前記複数の第2のベクトルそれぞれは、前記複数の日付種類のうち、選択された日付種類に対応する非ゼロ要素と選択されなかった日付種類に対応するゼロ要素とを含む、
請求項1記載の配送計画生成プログラム。
【請求項3】
前記割り当ては、前記類似度に基づいて、前記属性を第1の日付パターンに割り当て、前記第1の日付パターンが、前記第1のベクトルの中の非ゼロの統計値に対応する日付種類を含まない場合、前記属性を、前記対応する日付種類を含む第2の日付パターンに追加的に割り当てる処理を含む、
請求項1記載の配送計画生成プログラム。
【請求項4】
前記複数の日付パターンそれぞれについて、割り当てられた前記属性に対応する前記第1のベクトルを用いて前記荷物量の合計値を算出し、前記合計値に基づいて前記1以上の日付パターンを選択する処理を、前記コンピュータに更に実行させる、
請求項1記載の配送計画生成プログラム。
【請求項5】
前記複数の日付パターンのうち前記1以上の日付パターンに含まれない第1の日付パターンに割り当てられた前記属性を、前記複数の第2のベクトルの間の類似度に基づいて、前記1以上の日付パターンに含まれる第2の日付パターンに割り当て直す処理を、前記コンピュータに更に実行させる、
請求項1記載の配送計画生成プログラム。
【請求項6】
前記計画データの生成は、前記1以上の日付パターンそれぞれについて、割り当てられた前記属性に対応する前記第1のベクトルを用いて前記荷物量の代表値を算出し、前記属性と前記代表値との対応関係に基づいて前記配送便を決定する処理を含む、
請求項1記載の配送計画生成プログラム。
【請求項7】
前記複数の日付種類それぞれについて、前記1以上の日付パターンのうち当該日付種類を含む日付パターンに対して生成された前記計画データを用いて、当該日付種類に該当する日付に運行する前記配送便を決定する処理を、前記コンピュータに更に実行させる、
請求項1記載の配送計画生成プログラム。
【請求項8】
前記計画データに基づいて、前記配送便のコストを示す評価値を算出し、前記評価値に基づいて、前記第1のベクトルの生成に用いる第1のパラメータ値と前記1以上の日付パターンの選択に用いる第2のパラメータ値との少なくとも一方を変更する処理を、前記コンピュータに更に実行させる、
請求項1記載の配送計画生成プログラム。
【請求項9】
前記属性は、出発場所、出発時刻、到着場所および到着時刻を含む、
請求項1記載の配送計画生成プログラム。
【請求項10】
日付と荷物の属性と荷物量とを対応付けた荷物データに基づいて、前記属性毎に、複数の日付種類それぞれの前記荷物量の統計値を示す第1のベクトルを生成し、
前記複数の日付種類のうちの1以上の日付種類を示す日付パターンであって、異なる複数の日付パターンに対応する複数の第2のベクトルそれぞれと、前記第1のベクトルとの間の類似度に基づいて、前記属性それぞれを、前記複数の日付パターンのうちの少なくとも1つの日付パターンに割り当て、
前記複数の日付パターンのうちの1以上の日付パターンそれぞれについて、割り当てられた前記属性に該当する前記荷物を配送する配送便を示す計画データを生成する、
処理をコンピュータが実行する配送計画生成方法。
【請求項11】
日付と荷物の属性と荷物量とを対応付けた荷物データを記憶する記憶部と、
前記荷物データに基づいて、前記属性毎に、複数の日付種類それぞれの前記荷物量の統計値を示す第1のベクトルを生成し、前記複数の日付種類のうちの1以上の日付種類を示す日付パターンであって、異なる複数の日付パターンに対応する複数の第2のベクトルそれぞれと、前記第1のベクトルとの間の類似度に基づいて、前記属性それぞれを、前記複数の日付パターンのうちの少なくとも1つの日付パターンに割り当て、前記複数の日付パターンのうちの1以上の日付パターンそれぞれについて、割り当てられた前記属性に該当する前記荷物を配送する配送便を示す計画データを生成する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は配送計画生成プログラム、配送計画生成方法および情報処理装置に関する。
【背景技術】
【0002】
コンピュータは、業務の効率化のため、数理計画ソルバを用いて業務スケジュールの最適解を探索することがある。業務最適化の一例として、コンピュータは、所与の荷物配送需要をカバーするような配送便の配送計画を生成することがある。例えば、コンピュータは、過去の荷物配送需要に基づいて制約条件を規定し、配送便のコストを示す目的関数を規定し、制約条件を満たす範囲で目的関数の値が最小になる配送計画の解を探索する。荷物量の傾向は、平日や休日などの日付種類によって異なることがある。このため、日付種類毎に定期的な配送計画が生成されることがある。
【0003】
なお、制約条件を満たす複数の配送パターンを作成し、これら複数の配送パターンをアニーリングマシンに入力することで、全体の配送コストが小さくなるように一定数の配送パターンに絞り込む配送計画作成装置が提案されている。また、平日または休日の指定を含むパラメータをユーザから受け付け、過去実績データの中からパラメータに該当する配送記録に含まれる配送先地点を抽出し、抽出した配送先地点を巡回する定期的な配送計画を作成する配送計画システムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2021-111276号公報
【特許文献2】特開2021-135787号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
定期的な配送計画を日付種類毎に独立に生成すると、異なる日付種類の間(例えば、平日と休日の間)で共通に運行される配送便が少なくなる。その場合、経路や時刻が異なる配送便の種類が多くなり、配送便を管理する管理コストが増大するおそれがある。これに対して、荷物量の違いを考慮しつつ、異なる日付種類の間でも共通の配送便が多くなるように試行錯誤的に配送計画を生成することは、作業担当者の負担が大きい。そこで、1つの側面では、本発明は、定期的な配送計画を効率的に生成することを目的とする。
【課題を解決するための手段】
【0006】
1つの態様では、以下の処理をコンピュータに実行させる配送計画生成プログラムが提供される。日付と荷物の属性と荷物量とを対応付けた荷物データに基づいて、属性毎に、複数の日付種類それぞれの荷物量の統計値を示す第1のベクトルを生成する。複数の日付種類のうちの1以上の日付種類を示す日付パターンであって、異なる複数の日付パターンに対応する複数の第2のベクトルそれぞれと、第1のベクトルとの間の類似度に基づいて、属性それぞれを、複数の日付パターンのうちの少なくとも1つの日付パターンに割り当てる。複数の日付パターンのうちの1以上の日付パターンそれぞれについて、割り当てられた属性に該当する荷物を配送する配送便を示す計画データを生成する。
【0007】
また、1つの態様では、コンピュータが実行する配送計画生成方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0008】
1つの側面では、定期的な配送計画を効率的に生成できる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図8】荷物ID毎の荷物ベクトルの生成例を示す図である。
【
図9】パターンベクトルテーブルの例を示す図である。
【
図10】荷物ベクトルの分割および分類の例を示す図である。
【
図11】日付パターン毎の合計重量の算出例を示す図である。
【
図12】定期便を計画する日付パターンの決定例を示す図である。
【
図14】荷物ベクトルの分割と分類と再分類の例を示す図である。
【
図15】情報処理装置の機能例を示すブロック図である。
【
図16】拠点テーブルおよび定期便テーブルの例を示す図である。
【
図17】定期便最適化の手順例を示すフローチャートである。
【
図18】定期便最適化の手順例を示すフローチャート(続き)である。
【発明を実施するための形態】
【0010】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0011】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、荷物を配送する配送計画を生成する。配送便は、荷物を積んで移動することができる移動体であればよく、例えば、車両、船または飛行機である。生成された配送計画は、例えば、物流業者の業務に利用される。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、配送計画生成装置または最適化装置と呼ばれてもよい。
【0012】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0013】
記憶部11は、荷物配送需要を示す荷物データ13を記憶する。荷物配送需要は、過去の実績値でもよいし将来の予定値でもよい。荷物データ13は、日付と荷物の属性と荷物量とを対応付ける。日付は、カレンダーに基づいて複数の日付種類に分類される。日付種類が、日の種類と呼ばれてもよい。日付種類は、例えば、平日および休日を含む。日付種類は、更に土曜日および特定日を含んでもよい。特定日は、休日と土曜日とを除く日のうち荷物量の傾向が他と異なる日であり、例えば、休日の翌日や月末などである。
【0014】
荷物の属性は、合わせて配送便に積み込むことができる荷物の分類を示すものであり、例えば、出発場所、出発時間、到着場所および到着時間の組み合わせである。その場合、出発場所、出発時間、到着場所および到着時間の少なくとも1つが異なる荷物は、属性が異なる荷物とみなされる。属性は、常温配送と冷蔵配送の違いを含んでもよく、サイズ区分を含んでもよい。荷物量は、例えば、重量、体積または箱数である。荷物データ13では、日付および属性が同じ荷物の荷物量は合算される。
【0015】
処理部12は、荷物データ13に基づいて、荷物の属性毎に、複数の日付種類それぞれの荷物量の統計値を示す第1のベクトルを生成する。例えば、処理部12は、場所Aから場所Bへ配送される荷物についてベクトル14aを生成し、場所Cから場所Dへ配送される荷物についてベクトル14bを生成する。ベクトル14a,14bは、複数の日付種類に対応する複数の次元を含む。例えば、ベクトル14a,14bは、平日の荷物量の統計値と休日の荷物量の統計値とを含む。統計値は、荷物量の平均値、中央値または最大値であってもよく、標準偏差を用いて修正されてもよい。
【0016】
処理部12は、荷物の属性毎に、1以上の日付種類の組み合わせを示す複数の日付パターンに対応する複数の第2のベクトルそれぞれと、上記の第1のベクトルとの間の類似度を算出する。日付パターンが、日付種類の組み合わせ、日の種類の組み合わせ、または、曜日パターンと呼ばれてもよい。例えば、処理部12は、場所Aから場所Bへ配送される荷物について、ベクトル14aと、日付パターン15a,15b,15cに対応するベクトル16a,16b,16cそれぞれとの間の類似度を算出する。
【0017】
日付パターン15a,15b,15cは、例えば、日付種類のべき集合のうち空集合を除くものである。例えば、日付パターン15aは、平日を含み休日を含まない。日付パターン15bは、休日を含み平日を含まない。日付パターン15cは、平日および休日を含む。ベクトル16a,16b,16cは、複数の日付種類それぞれの選択の有無を示す。例えば、ベクトル16a,16b,16cでは、選択された日付種類に対応する次元が非ゼロ(例えば、1)であり、選択されなかった日付種類に対応する次元がゼロである。類似度は、例えば、コサイン類似度である。
【0018】
処理部12は、算出された類似度に基づいて、荷物の属性それぞれを少なくとも1つの日付パターンに割り当てる。例えば、処理部12は、荷物の属性それぞれを類似度が最大の日付パターンに割り当てる。例えば、ベクトル14aとの類似度が最大である第2のベクトルがベクトル16bである場合、処理部12は、場所Aから場所Bへ配送される荷物の情報を日付パターン15bに割り当てる。また、ベクトル14bとの類似度が最大である第2のベクトルがベクトル16cである場合、処理部12は、場所Cから場所Dへ配送される荷物の情報を日付パターン15cに割り当てる。
【0019】
処理部12は、複数の日付パターンのうちの1以上の日付パターンそれぞれについて、割り当てられた属性に該当する荷物を配送する配送便を示す計画データを生成する。例えば、処理部12は、時間枠付き配送計画問題(VRPTW:Vehicle Routing Problem with Time Window)ソルバを用いて、コストが最小の配送計画を探索する。このとき、処理部12は、日付パターン毎に独立に最適化を行ってもよい。計画データは、例えば、1以上の配送便の経路および時刻を示す。処理部12は、計画データを生成する日付パターンを、割り当てられた属性に該当する荷物の合計荷物量に基づいて絞り込んでもよい。
【0020】
日付パターン単位の計画データに基づいて、複数の日付種類それぞれで運行される定期的な配送便を決定することが可能である。例えば、処理部12は、日付パターン15a,15cの最適化結果を合わせることで、平日に運行する配送便を決定し、日付パターン15b,15cの最適化結果を合わせることで、休日に運行する配送便を決定する。なお、処理部12は、上記の定期便によって配送されない荷物をカバーするため、定期便よりも積載容量の小さい臨時便を計画するようにしてもよい。
【0021】
以上説明したように、第1の実施の形態の情報処理装置10は、荷物データ13に基づいて、荷物の属性毎に、日付種類に応じた荷物量の統計値を示す第1のベクトルを生成する。情報処理装置10は、日付種類の組み合わせを示す複数の日付パターンに対応する複数の第2のベクトルそれぞれと第1のベクトルとの類似度に基づいて、荷物の属性を日付パターンに割り当てる。情報処理装置10は、1以上の日付パターンそれぞれについて、割り当てられた属性に該当する荷物を配送する配送便の計画データを生成する。
【0022】
これにより、2以上の日付種類に共通して発生頻度が高い荷物が存在する場合、それら2以上の日付種類に共通の配送便が計画されると期待される。よって、日付種類毎に独立に配送便を計画する場合と比べて、経路や時刻が異なる配送便の種類が減少し、配送便を管理する管理コストが減少する。また、ベクトル間の類似度に基づいて、荷物の属性と日付パターンとの対応関係が決定される。よって、人手で試行錯誤的に対応関係を調整する場合と比べて、作業担当者の負担が軽減される。また、運用コストの低い配送計画が生成される。以上から、定期的な配送計画の生成が効率化される。
【0023】
なお、第2のベクトルは、選択された日付種類に対応する非ゼロ要素と選択されなかった日付種類に対応するゼロ要素とを含むものであってもよい。これにより、日付種類に応じた荷物量の分布から、適切な日付パターンが高精度に判定される。
【0024】
また、情報処理装置10は、ある属性を第1の日付パターンに割り当て、第1の日付パターンが第1のベクトルの中の非ゼロの統計値に対応する日付種類を含まない場合、その属性を、当該日付種類を含む第2の日付パターンに追加的に割り当ててもよい。これにより、定期便によってカバーされない荷物が削減される。また、情報処理装置10は、複数の日付パターンそれぞれについて、第1のベクトルを用いて合計荷物量を算出し、計画データを生成する日付パターンを合計荷物量に基づいて選択してもよい。これにより、運送する荷物が少ない定期便が抑制され、定期便のコストが減少する。
【0025】
また、情報処理装置10は、計画データを生成しない日付パターンに割り当てられた荷物の属性を、第2のベクトルの間の類似度に基づいて、計画データを生成する何れかの日付パターンに割り当て直してもよい。これにより、定期便によってカバーされない荷物が削減されると共に、日付パターン単位での最適化の精度が向上する。
【0026】
また、情報処理装置10は、日付パターン毎に、第1のベクトルを用いて各属性の代表荷物量を算出し、荷物の属性と代表荷物量との対応関係に基づいて配送便を決定してもよい。これにより、情報処理装置10は、VRPTWソルバなどの数理計画ソルバを用いて、配送便を効率的に最適化することができる。また、情報処理装置10は、日付種類毎に、その日付種類を含む日付パターンに対して生成された計画データを用いて、その日付種類に該当する日に運行する配送便を決定してもよい。これにより、日付種類毎に定期的な配送便が明示され、配送便の運用が効率化される。
【0027】
また、情報処理装置10は、生成された計画データに基づいて配送便のコストを示す評価値を算出してもよく、配送便の計画に用いるパラメータ値を評価値に基づいて最適化してもよい。パラメータ値は、第1のベクトルの生成の際に使用されるものであってもよく、計画データを生成する日付パターンを選択する際に使用されるものであってもよい。これにより、よりコストの低い配送計画が生成される。また、荷物の属性は、出発場所、出発時刻、到着場所および到着時刻を含んでもよい。これにより、荷物が適切な粒度で分類され、配送便の最適化の精度が向上する。
【0028】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、物流業務の配送計画を、コストが低減するように最適化する。配送計画は、複数の配送便それぞれについて、配送便が移動する経路と、経路上にある拠点の発着時刻とを含む。第2の実施の形態では、配送便として主にトラックを想定する。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータ、配送計画生成装置または最適化装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
【0029】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0030】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
【0031】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0032】
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0033】
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行し得る。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
【0034】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0035】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0036】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0037】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0038】
次に、日付種類毎に同じスケジュールで運行する定期便について説明する。
図3は、拠点間の配送便の運行例を示す図である。
物流業者は、複数の拠点を巡回する複数の配送便を運行する。各拠点は、荷物の積み下ろしが可能な物流施設である。1つの配送便は、決められた時間帯に決められた始発拠点を出発し、それぞれ決められた時間帯に1以上の中間拠点を経由し、決められた時間帯に決められた終着拠点に到着する。第2の実施の形態では、始発拠点と終着拠点とが同一であり、各配送便は同じ日のうちに同じ拠点に戻ってくることを想定する。
【0039】
各荷物には、出発拠点、出発時間帯、到着拠点および到着時間帯が指定される。荷物は、指定された出発拠点を指定された出発時間帯に通る配送便に積み込むことができ、指定された到着拠点を指定された到着時間帯に通る配送便から下ろすことができる。拠点間の隣接関係は、重み付き無向グラフとして表現され得る。このグラフは、複数の拠点に対応する複数のノードと、ノード間を接続する複数のエッジとを含む。エッジは、移動距離および移動時間の少なくとも一方を示す重みをもつ。
【0040】
例えば、複数の拠点は、拠点31,32,33,34,35,36,37,38,39(拠点A,B,C,D,E,F,G,H,I)を含む。配送便41は、拠点31,33,34,37,39を順に経由する。配送便42は、拠点32,34,36を順に経由する。配送便43は、拠点35,37,38を順に経由する。配送便41は、拠点33から拠点37への荷物や、拠点34から拠点39への荷物などを配送することができる。ただし、何れかの拠点で、異なる配送便の間で荷物が積み替えられてもよい。
【0041】
荷物量の傾向は、平日や休日などの日付種類が同じ日付の間では同じことが多い一方、日付種類が異なる日付の間では異なることが多い。そこで、物流業者は、日付種類毎に決められたスケジュールで運行する定期便を計画する。定期便によって配送されない荷物が発生した場合には、物流業者は、定期便から漏れた荷物を配送する臨時便を運行する。臨時便は、例えば、定期便よりも積載容量の小さい配送便である。
【0042】
図4は、カレンダーと日付種類の例を示す図である。
カレンダー131は、2022年5月1日から2022年5月31日までの日付を示す。第2の実施の形態では、日付は、平日、土曜日、特定日および休日の4種類に分類される。日付種類は、日の種類または曜日種類と呼ばれてもよい。「休日」は、日曜日または祝日である。「土曜日」は、休日に該当しない土曜日である。「特定日」は、休日および土曜日の何れにも該当しない日のうち、特定の条件を満たす一部の日である。第2の実施の形態では、特定の条件は休日の翌日である。よって、月曜日は特定日に該当し得る。「平日」は、休日、土曜日および特定日の何れにも該当しない日である。
【0043】
図5は、荷物テーブルの例を示す図である。
情報処理装置100は、過去の荷物量を分析して、コストが最小になるように定期便の運行スケジュールを最適化する。荷物テーブル132は、過去の荷物配送実績を示す。荷物テーブル132は、情報処理装置100に記憶される。
【0044】
荷物テーブル132は、日付、出発時間帯、出発拠点、到着時間帯、到着拠点、重量および荷物IDを含む複数のレコードを記憶する。日付は、荷物が配送された日を示す。出発拠点は、荷物が発送された拠点を識別する拠点名である。出発時間帯は、荷物が出発拠点を出発した時間帯である。到着拠点は、荷物が到着した拠点を識別する拠点名である。到着時間帯は、荷物が到着拠点に到着した時間帯である。出発時間帯および到着時間帯は、例えば、1時間の時間幅で規定される。
【0045】
重量は、荷物量の指標である。第2の実施の形態では、出発時間帯、出発拠点、到着時間帯および到着拠点の全てが同一である荷物の集合が、同じ「荷物」とみなされる。荷物の「重量」は、出発時間帯、出発拠点、到着時間帯および到着拠点の全てが同一である荷物の重量の合計である。荷物IDは、「荷物」を識別する。よって、荷物テーブル132に含まれるレコードのうち、出発時間帯、出発拠点、到着時間帯および到着拠点の全てが同一であるレコードには、日付に関係なく、同一の荷物IDが付与される。なお、「荷物」が、サイズや形状などに応じて更に細かく分類されてもよい。
【0046】
ここで、荷物の中には、土曜日と休日に多く発生する荷物や、日付種類に関係なく経常的に発生する荷物など、2以上の日付種類に跨がって同じ荷物量の傾向をもつ荷物も存在する。これに対して、荷物テーブル132のレコードを日付種類毎に分類して、日付種類毎に独立に定期便を最適化すると、異なる日付種類の間で同じスケジュールで運行する定期便がほとんど存在しなくなるおそれがある。この場合、定期便の種類が増加し、運行経路の安全確保などの管理コストが増大するおそれがある。そこで、情報処理装置100は、荷物IDを複数の日付パターンに分類し、日付パターン単位で定期便を最適化する。
【0047】
図6は、パターンテーブルの例を示す図である。
パターンテーブル133は、4つの日付種類の中から1つ以上を選択する選択方法を示す日付パターンを規定する。パターンテーブル133は、情報処理装置100に記憶される。日付パターンが、日の種類の組み合わせ、日付種類の組み合わせ、日付種類パターン、曜日パターンなどと呼ばれてもよい。日付パターンは、日付種類のべき集合のうち、1つの日付種類も含まない空集合を除いたものである。よって、4つの日付種類から、15通りの日付パターンが規定される。
【0048】
日付パターン#1は、平日のみを含む。日付パターン#2は、土曜日のみを含む。日付パターン#3は、特定日のみを含む。日付パターン#4は、休日のみを含む。日付パターン#5は、平日および土曜日のみを含む。日付パターン#6は、平日および特定日のみを含む。日付パターン#7は、土曜日および特定日のみを含む。日付パターン#8は、平日および休日のみを含む。日付パターン#9は、土曜日および休日のみを含む。日付パターン#10は、特定日および休日のみを含む。日付パターン#11は、平日、土曜日および特定日のみを含む。日付パターン#12は、平日、土曜日および休日のみを含む。日付パターン#13は、平日、特定日および休日のみを含む。日付パターン#14は、土曜日、特定日および休日のみを含む。日付パターン#15は、全ての日付種類を含む。
【0049】
情報処理装置100は、各荷物IDを少なくとも1つの日付パターンに割り当てる。情報処理装置100は、15通りの日付パターンのうち少なくとも一部の日付パターンそれぞれについて、割り当てられた荷物IDの荷物を配送するための定期便を計画する。情報処理装置100は、日付パターン毎に最適化された定期便のスケジュールを合成して、日付種類毎の定期便のスケジュールを生成する。これにより、複数の日付種類の間で、できる限り共通の定期便が多くなるように、定期便のスケジュールが生成される。
【0050】
平日に運行される定期便は、日付パターン#1,#5,#6,#8,#11,#12,#13,#15で決定された定期便の和集合である。土曜日に運行される定期便は、日付パターン#2,#5,#7,#9,#11,#12,#14,#15で決定された定期便の和集合である。特定日に運行される定期便は、日付パターン#3,#6,#7,#10,#11,#13,#14,#15で決定された定期便の和集合である。休日に運行される定期便は、日付パターン#4,#8,#9,#10,#12,#13,#14,#15で決定された定期便の和集合である。
【0051】
図7は、定期便学習テーブルの例を示す図である。
定期便学習テーブル134は、日付パターン単位で最適な定期便を探索するための学習データを記憶する。定期便学習テーブル134は、情報処理装置100に記憶される。定期便学習テーブル134は、パターン番号、荷物ID、発着制約および代表重量を対応付ける。パターン番号は、日付パターンを識別する。荷物IDは、パターン番号が示す日付パターンに割り当てられた荷物IDである。発着制約は、荷物IDに対応する出発拠点、出発時間帯、到着拠点および到着時間帯の組み合わせである。
【0052】
代表重量は、荷物IDが示す荷物の重量の代表値であり、荷物テーブル132に基づいて算出される。代表重量は、重量の平均値または中央値であってもよい。また、代表重量は、平均値+α×標準偏差で算出されてもよい。αは、事前に決められた正の係数である。係数αを適切に設定することで、定期便によってカバーされない荷物が減少する。
【0053】
情報処理装置100は、定期便学習テーブル134に基づいて、VRPTWソルバを用いて、日付パターン単位で最適な定期便を決定する。情報処理装置100は、多数の配送便候補を生成し、その中から定期便として運行する配送便および臨時便として運行する配送便を選択する。臨時便は、定期便によってカバーされない荷物IDの荷物を配送する。情報処理装置100は、割り当てられた荷物IDの荷物を全て配送できることを条件に、運行コストが最小になるように定期便を選択する。
【0054】
例えば、情報処理装置100は、目的関数をf=Σ(ci+di)xiと規定する。ciは、配送便候補iの種類(定期便または臨時便)に応じた固定コストを示す。diは、移動時間、移動距離、積み込む荷物の重量などに応じた変動コストを示す。xiは、配送便候補iを運行するか否かを示す変数である。xi=1は、配送便候補iを運行することを示し、xi=0は、配送便候補iを運行しないことを示す。情報処理装置100は、以下の制約条件を満たす範囲で、目的関数fの値が最小になるxiを探索する。定期便の最適化は、運行する定期便の台数を最小化することを含む。
【0055】
制約条件は、各荷物が、出発拠点から到着拠点まで何れか1つの配送便で運ばれることを含む。また、制約条件は、各配送便が配送する荷物の合計重量は、その配送便の積載容量を超えないことを含む。また、制約条件は、各配送便が、ある拠点から出発して同じ拠点に戻る経路をとることを含む。また、制約条件は、各荷物が、出発時間帯に出発拠点にいる配送便にのみ積み込むことができることを含む。また、制約条件は、各荷物が、到着時間帯に到着拠点にいる配送便からのみ下ろすことができることを含む。また、制約条件は、各配送便の1日の移動時間および移動距離が、一定の上限値を超えないことを含む。
【0056】
情報処理装置100は、最適化された定期便の効率性を、以下のように評価値を算出することで評価する。情報処理装置100は、管理コストを、単位管理コストh×定期便の種類の数によって算出する。定期便の種類の数は、15通りの日付パターンで決定された定期便の数の合計である。日付種類が異なっても、経路や発着時刻が同じ定期便は同じ種類の定期便である。単位管理コストhは、1種類の定期便を管理するための間接コストであり、安全な移動経路を確保するためのコストなどを含む。
【0057】
また、情報処理装置100は、評価用の過去N日分の荷物データを取得する。情報処理装置100は、取得した荷物データを用いて、N日それぞれの運行コストを、Σ(固定運行コストf+変動運行コストr)によって算出する。この運行コストには、定期便の運行コストと、定期便によって配送されない荷物を配送するための臨時便の運行コストとが含まれる。固定運行コストfは、トラック保守コストなどを含む。変動運行コストrは、移動時間や移動距離に比例し、燃料費やドライバーの人件費などを含む。
【0058】
そして、情報処理装置100は、評価値を、1/N×Σ各日の運行コスト+重みW×管理コストによって算出する。よって、評価値は、1日平均の運行コストと管理コストの重み付き和である。重みWは、事前に決められる係数である。情報処理装置100は、定期便の最適化結果と併せて、評価値を出力する。ユーザは、例えば、この評価値を現在の定期便の評価値と比較し、定期便の効率が改善しているか確認する。また、ユーザは、例えば、この評価値を参照して、最適化結果を業務に採用するか否か判断する。
【0059】
次に、荷物IDの日付パターンへの割り当てについて説明する。
1つの方法として、経験豊富な作業担当者が、荷物テーブル132を参照しつつ、荷物IDと日付パターンとの間の適切な対応付けを試行錯誤的に決定することも考えられる。しかし、この方法では、作業担当者の負担が大きくなるおそれがある。また、新規拠点の追加、既存拠点の統廃合、荷物量の傾向の大きな変化などがあると、過去の経験を活用できず、適切な対応付けが困難になる可能性もある。そこで、第2の実施の形態では、情報処理装置100は、荷物IDと日付パターンの適切な対応付けを自動的に決定する。
【0060】
図8は、荷物ID毎の荷物ベクトルの生成例を示す図である。
情報処理装置100は、テーブル141に示すように、荷物ID毎に荷物ベクトルを生成する。情報処理装置100は、荷物テーブル132から、同じ荷物IDを含む複数のレコードを抽出する。情報処理装置100は、カレンダー131を参照して、各レコードの日付から日付種類を判定し、複数のレコードを4つの日付種類に分類する。
【0061】
情報処理装置100は、日付種類毎に重量の代表値を算出し、平日の代表値、土曜日の代表値、特定日の代表値および休日の代表値を順に並べた4次元の荷物ベクトルを生成する。このとき、情報処理装置100は、荷物の発生頻度が閾値p1未満の日付種類については、代表値をゼロに設定する。荷物の発生頻度は、荷物テーブル132に出現する日付のうち、荷物IDが示す荷物の重量がゼロでない日付の割合である。閾値p1は、後述する方法によって値が調整されるパラメータである。
【0062】
情報処理装置100は、発生頻度が閾値p1以上の日付種類については、分類されたレコードに基づいて、平均値+係数p2×標準偏差を代表値として算出する。係数p2は、後述する方法によって値が調整されるパラメータである。ただし、代表値は、平均値、中央値または四分位数であってもよい。
【0063】
図9は、パターンベクトルテーブルの例を示す図である。
情報処理装置100は、パターンテーブル133に対応するパターンベクトルテーブル135を記憶する。パターンベクトルテーブル135は、15通りの日付パターンに対応するパターンベクトルを規定する。パターンベクトルが、日の種類の組み合わせのベクトル、日付種類の組み合わせのベクトルなどと呼ばれてもよい。
【0064】
パターンベクトルは、平日、土曜日、特定日および休日に対応する4つの次元をもつ。パターンベクトルは、日付パターンに含まれる日付種類を1で表現し、日付パターンに含まれない日付種類を0で表現する。よって、例えば、平日および特定日を含み、土曜日および休日を含まない日付パターン#6に対応するパターンベクトルは、(1,0,1,0)である。また、例えば、平日、土曜日および特定日を含み、休日を含まない日付パターン#11に対応するパターンベクトルは、(1,1,1,0)である。
【0065】
情報処理装置100は、荷物ID毎に、荷物ベクトルと15個のパターンベクトルそれぞれとを比較し、コサイン類似度を算出する。コサイン類似度は、2つのベクトルの類似度を示す指標であり、-1以上1以下の値をとる。コサイン類似度が高いほど、2つのベクトルが類似していることを表す。2つのベクトルをa,bとすると、コサイン類似度は、(a・b)÷(|a||b|)によって算出される。(a・b)はベクトルa,bの内積、|a|はベクトルaの大きさ、|b|はベクトルbの大きさを表す。
【0066】
情報処理装置100は、荷物IDを、コサイン類似度が最大のパターンベクトルに対応する日付パターンに割り当てる。ただし、コサイン類似度が最大の日付パターンが、荷物ベクトルで代表値が非ゼロである日付種類の全てをカバーしているとは限らない。そこで、以下に説明するように、情報処理装置100は、荷物ベクトルを分割し、荷物IDを2以上の日付パターンに分けて割り当てることがある。
【0067】
図10は、荷物ベクトルの分割および分類の例を示す図である。
情報処理装置100は、ある荷物IDについて荷物ベクトル51を生成する。荷物ベクトル51の4つの要素は、全て非ゼロである。情報処理装置100は、荷物ベクトル51と15個のパターンベクトルそれぞれとを比較し、日付パターン#6に対応するパターンベクトル55とのコサイン類似度が0.95で最大であると判定する。
【0068】
すると、情報処理装置100は、荷物ベクトル51から、パターンベクトル55で値が1の次元の要素を抽出し、その他の次元の要素をゼロに設定した荷物ベクトル53を生成する。情報処理装置100は、荷物ベクトル51から分割された荷物ベクトル53を、日付パターン#6に割り当てる。このとき、情報処理装置100は、元の荷物IDと、荷物ベクトル53を識別する新たな荷物IDとを、荷物ベクトル53に付与してもよい。
【0069】
次に、情報処理装置100は、荷物ベクトル51から荷物ベクトル53を引いた荷物ベクトル52を、残余荷物ベクトルとして算出する。情報処理装置100は、荷物ベクトル52に非ゼロ要素があるか判定する。非ゼロ要素がある場合、情報処理装置100は、荷物ベクトル52に対して上記と同様の処理を繰り返す。
【0070】
情報処理装置100は、荷物ベクトル52と15個のパターンベクトルそれぞれとを比較し、日付パターン#9に対応するパターンベクトル56とのコサイン類似度が0.99で最大であると判定する。すると、情報処理装置100は、荷物ベクトル52から、パターンベクトル56で値が1の次元の要素を抽出し、その他の次元の要素をゼロに設定した荷物ベクトル54を生成する。情報処理装置100は、荷物ベクトル51から分割された荷物ベクトル54を、日付パターン#9に割り当てる。これにより、残余荷物ベクトルがゼロベクトルになるため、荷物IDの第一次の割り当ては終了する。
【0071】
図11は、日付パターン毎の合計重量の算出例を示す図である。
情報処理装置100は、テーブル142に示すように、日付パターン毎に合計重量を算出する。まず、情報処理装置100は、ある日付パターンについて、その日付パターンに割り当てられた複数の荷物IDそれぞれの代表重量を算出する。
【0072】
代表重量は、荷物ベクトルに含まれる重量のうち、日付パターンに含まれる日付種類に対応する重量の平均値である。日付パターンに含まれる日付種類に対応する重量は、荷物ベクトルに含まれる要素のうち、パターンベクトルにおいて値が1である次元の要素である。ただし、代表重量は、荷物ベクトルに含まれる重量のうち、日付パターンに含まれる日付種類に対応する重量の最大値であってもよい。ここで使用される荷物ベクトルは、
図10の方法で分割された後の荷物ベクトルである。情報処理装置100は、複数の荷物IDの代表重量を合計して、その日付パターンの合計重量を算出する。
【0073】
図12は、定期便を計画する日付パターンの決定例を示す図である。
情報処理装置100は、15通りの日付パターンそれぞれの合計重量を算出する。情報処理装置100は、テーブル143に示すように、15通りの日付パターンを合計重量の降順にソートする。情報処理装置100は、15通りの日付パターンのうち、合計重量が閾値p3以上である日付パターンを、定期便を作成する日付パターンとして選択する。合計重量が閾値p3未満である日付パターンについては、原則として定期便が作成されない。閾値p3は、後述する方法によって値が調整されるパラメータである。
【0074】
ただし、情報処理装置100は、合計重量が閾値p3以上である日付パターンを選択する代わりに、合計重量の累積比率が閾値以下である日付パターンを選択してもよい。各日付パターンの累積比率は、その日付パターンの合計重量およびそれより上位の日付パターンの合計重量の和を、15通りの日付パターンの合計重量の総和で割った比率である。
図12の例では、合計重量の閾値が72kgであるか、または、累積比率の閾値が80%であり、日付パターン#15,#12,#14,#9が選択されている。
【0075】
また、情報処理装置100は、合計重量または累積比率が閾値未満であっても、一定の例外条件を満たす日付パターンを、定期便を作成する日付パターンとして追加的に選択する。例外条件は、選択済みである何れの日付パターンのパターンベクトルとも、コサイン類似度がゼロであるパターンベクトルをもつ日付パターンである。例外条件に該当するか否かの判定は、合計重量の大きい日付パターンから優先的に行われる。
【0076】
例えば、日付パターン#4が選択されておらず、日付パターン#3,#5,#6,#7,#11が選択済みである場合を考える。この場合、日付パターン#4のパターンベクトルと、日付パターン#3,#5,#6,#7,#11の何れのパターンベクトルとの間でも、コサイン類似度がゼロである。すなわち、選択済みの日付パターン#3,#5,#6,#7,#11は、何れも休日を含まない。この場合、情報処理装置100は、日付パターン#4を、定期便を作成する日付パターンとして追加的に選択する。
【0077】
図13は、荷物ベクトルの再分類例を示す図である。
情報処理装置100は、定期便を作成しない日付パターンに割り当てられた荷物IDが存在する場合、その荷物IDを、定期便を作成する何れかの日付パターンに再分類する。再分類先の日付パターンは、定期便を作成する日付パターンのうち、定期便を作成しない日付パターンのパターンベクトルとのコサイン類似度が最大の日付パターンである。再分類によって、同一の荷物IDから分割された荷物ベクトルが同一の日付パターンに集約されることとなる場合、情報処理装置100は、分割された荷物ベクトルを合成する。
【0078】
例えば、パターンベクトル61,62は、選択されなかった日付パターン#2,#6に対応する。パターンベクトル63,64,65,66,67は、選択された日付パターン#3,#5,#7,#8,#11に対応する。パターンベクトル63,64,65,66,67のうち、パターンベクトル67が、パターンベクトル62とのコサイン類似度が0.82で最大となる。その場合、情報処理装置100は、日付パターン#6に分類された荷物ベクトル72を、日付パターン#11に再分類する。
【0079】
また、情報処理装置100は、日付パターン#2に分類された荷物ベクトル71を、日付パターン#11に再分類する。荷物ベクトル71,72は、元は同一の荷物IDから分割されたものである。荷物ベクトル71は、平日および特定日に対応する非ゼロ要素を含み、荷物ベクトル72は、土曜日に対応する非ゼロ要素を含む。この場合、情報処理装置100は、荷物ベクトル71,72を合成して荷物ベクトル73を生成する。荷物ベクトル73は、平日、土曜日および特定日に対応する非ゼロ要素を含む。
【0080】
このようにして、15通りの日付パターンのうち、合計重量に基づいて選択された日付パターンに、荷物IDが割り当てられる。情報処理装置100は、割り当てられた荷物IDに対応する荷物ベクトルに基づいて、定期便学習テーブル134で使用される代表重量を算出する。この荷物IDは分割後の荷物IDであることがあり、この荷物ベクトルは分割後の荷物ベクトルであることがある。代表重量は、荷物ベクトルに含まれる重量のうち、日付パターンに含まれる日付種類に対応する重量の平均値である。ただし、代表重量は、日付パターンに含まれる日付種類に対応する重量の最大値であってもよい。
【0081】
図14は、荷物ベクトルの分割と分類と再分類の例を示す図である。
ここでは、荷物ベクトルの他の数値例を説明する。荷物ベクトル81は、ある荷物IDの荷物ベクトルである。荷物ベクトル82は、別の荷物IDの荷物ベクトルである。
【0082】
情報処理装置100は、荷物ベクトル81を荷物ベクトル83,84に分割する。情報処理装置100は、荷物ベクトル83を日付パターン#6に割り当て、荷物ベクトル84を日付パターン#9に割り当てる。また、情報処理装置100は、荷物ベクトル82を荷物ベクトル85,86,87に分割する。情報処理装置100は、荷物ベクトル85を日付パターン#1に割り当て、荷物ベクトル86を日付パターン#3に割り当て、荷物ベクトル87を日付パターン#9に割り当てる。
【0083】
情報処理装置100は、定期便を作成する日付パターンとして日付パターン#1,#6,#14を選択し、日付パターン#3,#9を選択しない。すると、情報処理装置100は、荷物ベクトル84を日付パターン#14に割り当て直す。また、情報処理装置100は、荷物ベクトル86,87を日付パターン#14に割り当て直す。荷物ベクトル86,87は荷物ベクトル82から分割されたものであるため、情報処理装置100は、荷物ベクトル86,87を荷物ベクトル88に合成する。
【0084】
ところで、上記の定期便最適化では、荷物ベクトルの生成にパラメータp1,p2が使用され、定期便を作成する日付パターンの選択にパラメータp3が使用される。パラメータp1,p2,p3の値は、最適化結果に影響を与える。そこで、情報処理装置100は、パラメータp1,p2,p3の値を変更しながら配送計画の生成および評価値の算出を繰り返し、最良の評価値が得られるようにパラメータp1,p2,p3の値を最適化してもよい。最適化アルゴリズムとしては、例えば、最急降下法が用いられる。
【0085】
定期的な配送計画が決定されると、物流業者は、日付種類毎に決められたスケジュールで定期便を運行する。また、物流業者は、荷物の発生状況を監視し、定期便によって配送されない荷物がある場合には臨時便を運行する。臨時便の計画には、情報処理装置100が使用されてもよい。例えば、情報処理装置100は、配送予定の荷物を示す荷物データを受け付け、定期便に載らない荷物を抽出し、VRPTWソルバを用いて最適な臨時便を決定する。臨時便の最適化は、運行する臨時便の台数を最小化することを含む。
【0086】
次に、情報処理装置100の機能および処理手順について説明する。
図15は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、拠点データ記憶部121、荷物データ記憶部122、定期便データ記憶部123、荷物分類部124、VRPTWソルバ125および定期便評価部126を有する。拠点データ記憶部121、荷物データ記憶部122および定期便データ記憶部123は、例えば、RAM102またはHDD103を用いて実装される。荷物分類部124、VRPTWソルバ125および定期便評価部126は、例えば、CPU101およびプログラムを用いて実装される。
【0087】
拠点データ記憶部121は、拠点間の隣接関係を示す拠点データを記憶する。前述のように、拠点データは、重み付き無向グラフとして表現され得る。拠点データは、複数の拠点の間の移動距離および移動時間を示す。
【0088】
荷物データ記憶部122は、過去に配送された荷物を示す荷物データを記憶する。前述の荷物テーブル132は、荷物データ記憶部122に記憶される。また、荷物データ記憶部122は、複数の日それぞれの曜日および祝日を示すカレンダーを記憶する。前述のカレンダー131は、荷物データ記憶部122に記憶される。また、荷物データ記憶部122は、パターンベクトルテーブル135を記憶する。
【0089】
定期便データ記憶部123は、日付種類毎の定期便を示す定期便データを記憶する。定期便データは、VRPTWソルバ125を用いて生成される。定期便データは、複数の定期便それぞれについて、経由する複数の拠点および各拠点の発着時刻を示す。
【0090】
荷物分類部124は、前述の方法によって、荷物IDを15通りの日付パターンに分類し、定期便学習テーブル134を生成する。荷物分類部124は、日付パターン毎に、定期便学習テーブル134に基づいて目的関数および制約条件を規定し、VRPTWソルバ125を呼び出し、定期便のスケジュールをVRPTWソルバ125から受け取る。荷物分類部124は、日付パターン毎の定期便のスケジュールを整理して、日付種類毎の定期便のスケジュールを決定し、定期便データを定期便データ記憶部123に保存する。
【0091】
VRPTWソルバ125は、時間枠付き配送計画問題(VRPTW)を解く数理計画ソルバである。VRPTWソルバ125は、目的関数および制約条件を受け付ける。VRPTWソルバ125は、制約条件を満たす範囲で、目的関数の値が最小化または最大化される最適解を探索し、発見された最適解を出力する。
【0092】
定期便評価部126は、荷物データ記憶部122に記憶された荷物データを用いて、定期便データ記憶部123に記憶された定期便データに対して評価値を算出する。評価値は、定期便の種類の数に比例する管理コストと、運行される配送便の台数や移動距離に比例する運行コストとを含む総コストを示す。
【0093】
図16は、拠点テーブルおよび定期便テーブルの例を示す図である。
拠点テーブル136は、拠点データ記憶部121に記憶される。拠点テーブル136は、拠点1、拠点2、移動距離および移動時間を対応付ける。拠点1は、2つの拠点の一方を示す拠点名である。拠点2は、2つの拠点の他方を示す拠点名である。移動距離は、2つの拠点の間を配送便が移動する際に通る経路の距離である。時間は、2つの拠点の間を配送便が移動する際に要する時間である。
【0094】
定期便テーブル137は、定期便データ記憶部123に記憶される。定期便テーブル137は、日付種類、定期便IDおよびスケジュールを対応付ける。日付種類は、平日、土曜日、特定日または休日である。定期便IDは、定期便の種類を識別する識別子である。異なる日付種類の日に同じ定期便IDの定期便が運行されることがある。スケジュールは、定期便が経由する複数の拠点および各拠点の発着予定時刻を示す。
【0095】
図17は、定期便最適化の手順例を示すフローチャートである。
(S10)荷物分類部124は、カレンダーに基づいて、荷物データに記載された日付を、平日、土曜日、特定日および休日の4つの日付種類に分類する。
【0096】
(S11)荷物分類部124は、荷物データに含まれるレコードを荷物ID毎かつ日付種類毎に分類し、レコードに含まれる重量を集計する。荷物分類部124は、荷物ID毎に、平日、土曜日、特定日および休日の重量の代表値を並べた荷物ベクトルを生成する。
【0097】
(S12)荷物分類部124は、1つの荷物IDの荷物ベクトルを選択する。
(S13)荷物分類部124は、15通りの日付パターンに対応する15個のパターンベクトルそれぞれと、荷物ベクトルとの間のコサイン類似度を算出する。荷物分類部124は、コサイン類似度が最大のパターンベクトルを特定する。
【0098】
(S14)荷物分類部124は、ステップS13で使用した荷物ベクトルの中から、特定したパターンベクトルにおいて値が1である次元の要素を抽出し、他の次元をゼロに設定した分割荷物ベクトルを生成する。荷物分類部124は、生成された分割荷物ベクトルを、特定したパターンベクトルに対応する日付パターンに分類する。
【0099】
(S15)荷物分類部124は、ステップS13で使用された荷物ベクトルからステップS14の分割荷物ベクトルを引いた残余荷物ベクトルを算出する。
(S16)荷物分類部124は、残余荷物ベクトルは、全ての次元がゼロであるゼロベクトルであるか判断する。残余荷物ベクトルがゼロベクトルである場合、ステップS17に処理が進む。残余荷物ベクトルがゼロベクトルでない場合、ステップS13に処理が戻り、残余荷物ベクトルに対して上記のステップS13~S15が実行される。
【0100】
(S17)荷物分類部124は、全ての荷物IDの荷物ベクトルを日付パターンに分類したか判断する。全ての荷物IDの荷物ベクトルを分類した場合はステップS18に処理が進み、未分類の荷物ベクトルがある場合はステップS12に処理が戻る。
【0101】
(S18)荷物分類部124は、15通りの日付パターンそれぞれについて、分類された荷物ベクトルに基づいて合計重量を算出する。荷物分類部124は、15通りの日付パターンを、合計重量の降順にソートする。
【0102】
(S19)荷物分類部124は、合計重量に基づいて、15通りの日付パターンの中から定期便を作成する日付パターンを決定する。例えば、荷物分類部124は、合計重量が閾値以上の日付パターンを選択する。また、荷物分類部124は、選択済みの何れの日付パターンにも含まれない日付種類がある場合、合計重量が閾値未満の日付パターンの中から、一部の日付パターンを例外的に選択する。
【0103】
図18は、定期便最適化の手順例を示すフローチャート(続き)である。
(S20)荷物分類部124は、定期便作成の対象外となった日付パターンに分類された荷物ベクトルを1つ選択する。
【0104】
(S21)荷物分類部124は、定期便作成の対象として選択された日付パターンそれぞれのパターンベクトルと、ステップS20で選択された荷物ベクトルとの間のコサイン類似度を算出する。荷物分類部124は、選択された荷物ベクトルを、コサイン類似度が最大である対象の日付パターンに再分類する。
【0105】
(S22)荷物分類部124は、再分類先の日付パターンに、同じ荷物IDから分割された他の荷物ベクトルが存在するか判断する。当該他の荷物ベクトルがある場合はステップS23に処理が進み、ない場合はステップS24に処理が進む。
【0106】
(S23)荷物分類部124は、再分類した荷物ベクトルと上記の他の荷物ベクトルとを合成する。具体的には、荷物分類部124は、2つの荷物ベクトルを足し合わせる。
(S24)荷物分類部124は、対象外の日付パターンに分類された全ての荷物ベクトルを再分類したか判断する。全ての荷物ベクトルを再分類した場合はステップS25に処理が進み、再分類されていない荷物ベクトルがある場合はステップS20に処理が戻る。
【0107】
(S25)荷物分類部124は、日付パターン毎かつ荷物ID毎に、荷物ベクトルに基づいて代表重量を算出する。荷物分類部124は、日付パターンと、荷物IDが示す荷物の発着制約と、算出された代表重量とを対応付けた学習用データを生成する。
【0108】
(S26)VRPTWソルバ125は、対象の日付パターンそれぞれについて、学習用データに基づいて時間枠付き配送計画問題を解き、定期便計画を生成する。
(S27)荷物分類部124は、ステップS26で生成された日付パターン毎の定期便計画に基づいて、日付種類毎の定期便計画を生成する。
【0109】
(S28)定期便評価部126は、日付種類毎の定期便計画の評価値を算出する。
(S29)情報処理装置100は、ステップS11で使用するパラメータp1,p2の値と、ステップS19で使用するパラメータp3の値を変更しながら、評価値が収束条件を満たすまで上記のステップS11~S28を繰り返す。これにより、評価値が最小化されるようにパラメータp1,p2,p3の値が最適化される。
【0110】
(S30)情報処理装置100は、最適な定期便計画とその評価値を出力する。情報処理装置100は、定期便計画および評価値を、不揮発性ストレージに保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0111】
以上説明したように、第2の実施の形態の情報処理装置100は、VRPTWソルバを用いて、コストが小さくなるように定期便の運行スケジュールを最適化する。これにより、物流業務が効率化される。また、情報処理装置100は、荷物IDを、複数の日付種類の組み合わせを示す日付パターンに分類し、日付パターン単位で最適化を行う。これにより、日付種類単位で最適化を行う場合と比べて、異なる日付種類の間でも共通のスケジュールで運行する定期便が多くなり、間接的な管理コストが減少する。
【0112】
また、情報処理装置100は、荷物ID毎に、複数の日付種類の間の荷物量の分布を示す荷物ベクトルを生成し、日付パターンを示すパターンベクトルとの類似度に基づいて、荷物IDと日付パターンとの対応付けを決定する。これにより、人手で試行錯誤的に対応付けを行う場合と比べて、作業担当者の負担が軽減される。また、新規拠点の追加や既存拠点の統廃合により、作業担当者の過去の経験や知識を生かすことが難しい場合であっても、荷物IDと日付パターンとが精度よく対応付けられる。
【0113】
また、情報処理装置100は、元の荷物ベクトルを分割して2以上の日付パターンに分類することがある。これにより、定期便によってカバーされる荷物の割合が増加し、コストの高い臨時便が減少する。また、情報処理装置100は、分類された荷物の合計荷物量に基づいて、定期便を作成する日付パターンを絞り込む。これにより、配送する荷物が少ない非効率な定期便が抑制される。また、情報処理装置100は、対象外の日付パターンに分類された荷物を、何れかの対象の日付パターンに再分類する。これにより、定期便によってカバーされる荷物の割合が増加し、コストの高い臨時便が減少する。
【0114】
また、情報処理装置100は、上記の処理の中で使用するパラメータの値を、定期便の評価値に基づいて最適化する。これにより、パラメータの値を人手で試行錯誤的に調整する負担が軽減されると共に、より効率性の高い定期便の運行スケジュールが生成される。
【符号の説明】
【0115】
10 情報処理装置
11 記憶部
12 処理部
13 荷物データ
14a,14b,16a,16b,16c ベクトル
15a,15b,15c 日付パターン