以下、本発明の実施の形態を図面に基づいて説明する。これまで物流分野では、物流コスト削減の取り組みが行われてきたが、環境配慮の観点からCO2排出量の削減が求められるようになっている。「エネルギーの使用の合理化等に関する法律」(以下、省エネ法という)では、トラックに適用される改良トンキロ法は、移動距離、輸送量、最大積載量、積載率からCO2排出量を算出する仕組みになっている。そのため、物流業者は、移動距離の短縮や積載率の向上を求められている。
先ず、改良トンキロ法について概説する。図1は、改良トンキロ法におけるCO2排出量の算出例を示す図である。図1において、トラック2台で、物流センター1cを出発し、荷を拠点d1〜d8へ配送し、物流センター1cに戻る場合において、異なる経路バターンA及びBのC02排出量の違いを示している。
図1(A)に示す経路パターンAでは、1台目のトラックは、物流センター1cから、拠点d1、d2、d3、d6、d7、d8の順に廻り、物流センター1cへ戻り、2台目のトラックは、物流センター1cから、拠点d1、d2、d4、d5、d7、d8の順に廻り、物流センター1cへ戻る経路を示している。拠点d1〜d8の拠点間の距離を数値で示している。単位をkmとする。
この場合の2台のトラックの総移動距離は、78km×2で表され156kmを得る。また、各拠点d1〜d8に1.5トンずつ配送した場合のC02排出量は、0.127t・CO2である。
図1(B)に示す経路パターンBでは、1台目のトラックは、物流センター1cから、拠点d1、d2、d3、d5、d7、d8の順に廻り、物流センター1cへ戻り、2台目のトラックは、物流センター1cから、拠点d1、d2、d4、d6、d7、d8の順に廻り、物流センター1cへ戻る経路を示している。拠点d1〜d8の各間の距離は、図1(A)と同様である。
この場合の2台のトラックの総移動距離は、78km+70km=148kmで表され156kmを得る。また、各拠点d1〜d8に1.5トンずつ配送した場合のC02排出量は、0.121t・CO2である。この例から分かるように、総移動距離が短いほどCO2排出量は少なくできる。
ここで、先ず、既存技術を用いた配送計画の作成処理について考察する。一例として、複数日に亘る荷量を平準化する技術(特許文献1)と、一日の中での配送計画を最適化する技術とにより配送計画を作成する場合で考える。
図2は、既存技術による配送計画作成処理の概要を示す図である。図2では、荷量を平準化する荷量平準化処理をステップAで表し、日単位で配送計画を最適化する配送計画処理をステップBで表す。また、荷量平準化の所定期間を5日間とする。便宜上、この5日間を10/1、10/2、10/3、10/4、及び10/5(10月1日から10月5日)とする。以下の説明においても同様である。
ステップAにおける荷量平準化処理では、過去の同様の期間における荷量から、10/1から10/5までの荷量を予測し、予測精度を用いて、10/1から10/5までの荷量を平準化する。
日毎の荷量が定まると、ステップBにより、配送計画処理が行われる。配送計画処理は、具体的には、10/1に配送する荷量に対して、トラック台数及び総移動距離を最適化する。以降の10/2から10/5まで、各日毎に同様に最適化を行う。
所定期間について日々の処理結果から、ピークトラック台数及び総移動距離を算出する。また、総移動距離の最小値を更新して、前回との差分が閾値以下となるまで、上述したステップAとステップBとを交互に繰り返し行う。
図2に示す配送計画作成処理では、ステップAの荷量平準化処理では、日単位の荷の総量が決定されるが、距離は考慮されていない。荷の総量の決定では、当日に配送する荷が特定されることであり、したって、配送先の拠点が決定される。その結果が、ステップBの配送計画処理で参照される。
所定期間で予め荷量を平準化した後、各日の配送計画を行うことで、計算時間の増大を抑制することができる。CO2排出量については、図1で説明したように、トラックの総移動距離を最短にすることが最も効果的である。
したがって、ステップBの配送計画処理では、日毎に定められた荷の総量を、どのトラックでどの拠点の順に配送するれば、CO2排出量の削減に最も効果的であるかを探索する処理である。その一方で、定められた荷と配送先の制限により、配送計画処理の中では、配送経路上の拠点を増減することができない。
このようなことから、ステップBでは、CO2排出量の削減は1日の中で考慮されるに留まるため、所定期間でCO2排出量を考えた場合に、必ずしも最小のCO2排出量となり得る配送計画を作成することができない。
配送経路上の拠点を増やすことが、CO2排出量の増加になるとは限らない。配送計画における2拠点の経路間に拠点を増やした場合には、CO2排出量にはそれほどの変化が無いと考えられる。
一方、3拠点が連続する経路において、中間の拠点により遠回りとなる場合には、CO2排出量の増加を招くと考えられる。発明者等は、このような遠回りの経路となる拠点を減らせれば、更に、CO2排出量を削減できると考えた。
本実施例では、複数日に亘り総移動距離を最適化することで、更なるCO2排出量の削減を可能とする。前述したように、CO2排出量の削減には、総移動距離の最短化が効果的である。
発明者等は、先ず、それぞれの荷に対して、複数の配送候補日の中から、荷量平準化を考慮しながら総移動距離が最小となる荷の割り当てを行うことを考察した。この手法では、複数日を同時に考えるための探索空間が膨大になり、計算時間が現実的でない、即ち、考慮する日数に対し、指数倍の計算時間が掛る場合が考えられる問題に対して、発明者等により、以下のような手法が提案されている。
(手法1)
訪問回数を削減する配送先を選出する。
経路図上で最も外側にある拠点の中で、最も外側にある隣接する2拠点に対して、2拠点を結ぶ直線より外側にある拠点を選出する。
(手法2)
選出した拠点に対して集約される配送日(集約日)を選択する。
配送する拠点に、(手法1)で選出した拠点をより多く含む日(以下、「集約日」という)を選択する。集約日は、他の配送日における(手法1)で選出した拠点へ配送する荷も併せて(集約して)配送させる日である。他の配送日では、拠点が減るため総移動距離を減らすことができる。
(手法3)
選出した拠点への荷を各日から集約日へ移動し、相殺する荷量を見積もるため流入した荷量を算出する。
(手法4)
集約日から移動する移動する元の日へ代わりの荷を移動(逆移動)する。
(手法3)で算出した荷量と釣り合う荷量となるように、元の日へ移動する荷を選択する。集約日に集約された荷量相当を他の拠点に配送する荷量で相殺する。
上記(手法1)の概要について説明する。図3は、配送先の削減方法を説明するための図である。図3で説明する配送先の削減は、上述したステップAの収束後に、配送日の調整において、特定の配送先への訪問回数を減らすことで移動距離を短縮する。配送先の拠点をd1、d2、d3、d4等のノードで示す。
配送先の拠点への訪問回数を削減するために、配送する経路図上で最も外側にある各拠点を対象とし、最も外側にある隣接する2拠点に対して、2拠点を結ぶ直線により外側に位置する拠点を選出する。
図3において、経路図上の最も外側にある拠点は、d1、d2、d3、d4、d5等である。これらの拠点において、配送直前の拠点と配送直後の拠点を隣接拠点として直線で結び、対象拠点が結ばれが直線により外側に位置する場合に、選出する拠点とする。
この例では、拠点d3を対象とした場合に、隣接拠点は、d2及びd4である。拠点d2と拠点d4とを直線で結ぶと、拠点d3は経路図上の外側に位置する。したがって、拠点への訪問回数の削減のために拠点d3が選出される。
上記(手法2)により、このようにして選出された拠点を配送先として多く含む配送日を集約日とする。ここでは、より多くの拠点が配送先となる集約日は、10/3であったとする。また、10/5には、(手法2)で選出された拠点のいずれかへ荷の配送があるとする。このような例で、上記(手法3)における同一拠点への荷の集約及び(手法4)における荷量の相殺のための集約日から配送日への荷量の逆移動について説明する。
図4は、集約と逆移動について説明するための図である。図4(A)では、経路図を用いて、集約と逆移動の概要を示している。同一拠点d3において、荷9aを配送日「10/5」から集約日「10/3」へと集約する。
配送日「10/5」と集約日「10/3」とに共通する拠点のうち、荷を集約する拠点とは異なる拠点で、集約された荷9aの荷量相当の荷9bを、配送日「10/5」へと移すことで、集約日「10/3」における荷量の一部を逆移動する。
図4(B)では、1日で配送する全体の荷量で、集約と逆移動の概要を示している。配送日「10/5」の全体の荷量から荷9aを集約日「10/3」へ集約すると、集約日「10/3」の全体の荷量が増加する。集約日「10/3」で配送する種々の荷のうち、略同一の荷量となる荷9bを配送日「10/5」に割り当てて、荷量を相殺する。
上述したステップAによる荷量平準化処理による結果を用いて、複数日に亘る同一拠点への荷の配送を特定の日に集約させ、集約日の荷量の一部を配送日に逆移動した後、上述したステップBによる配送計画処理を行うことで、配送に掛る総移動距離を更に短くし、CO2排出量を削減する。総移動距離を短くするための集約日に荷を集約する拠点の選定方法については後述する。
図5は、本実施例の全体処理の概要を示す図である。図5において、図2との違いは、ステップAの荷量標準化処理の後に本実施例に係る集約処理が行われる点である。本実施例に係る集約処理の結果に基づいて、ステップBの配送計画処理が行われる。
図5における本実施例に係る集約処理では、集約対象の拠点(以下、集約拠点という)を選出し(手法1)、集約日を選択し(手法2)、集約(手法3)及び逆移動(手法4)を行うことを簡潔に示している。他は、図2で説明した通りであるためその説明を省略する。
本実施例に係る集約処理を含む配送計画作成処理は、例えば、図6に示すようなハードウェア構成を有する配送計画作成装置100によって行われる。図6は、配送計画作成装置のハードウェア構成を示す図である。
図6において、配送計画作成装置100は、コンピュータによって制御される情報処理装置であって、CPU(Central Processing Unit)11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、通信I/F(インターフェース)17と、ドライブ装置18とを有し、バスBに接続される。
CPU11は、主記憶装置12に格納されたプログラムに従って配送計画作成装置100を制御するプロセッサに相当する。主記憶装置12には、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を記憶又は一時保存する。
補助記憶装置13には、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置13に格納されているプログラムの一部が主記憶装置12にロードされ、CPU11に実行されることによって、各種処理が実現される。主記憶装置12及び補助記憶装置13は、記憶部130に相当する。
入力装置14は、マウス、キーボード等を有し、ユーザが配送計画作成装置100による処理に必要な各種情報を入力するために用いられる。表示装置15は、CPU11の制御のもとに必要な各種情報を表示する。入力装置14と表示装置15とは、一体化したタッチパネル等によるユーザインタフェースであってもよい。通信I/F17は、有線又は無線などのネットワークを通じて通信を行う。通信I/F17による通信は無線又は有線に限定されるものではない。
配送計画作成装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって配送計画作成装置100に提供される。
ドライブ装置18は、ドライブ装置18にセットされた記憶媒体19(例えば、CD−ROM等)と配送計画作成装置100とのインターフェースを行う。
また、記憶媒体19に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体19に格納されたプログラムは、ドライブ装置18を介して配送計画作成装置100にインストールされる。インストールされたプログラムは、配送計画作成装置100により実行可能となる。
尚、プログラムを格納する記憶媒体19はCD−ROMに限定されず、コンピュータが読み取り可能な、データとしての構造(structure)を有する1つ以上の非一時的(non-transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVD(Digital Versatile Disk)ディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
配送計画作成装置100をサーバ装置とし、ネットワークを介して複数の端末と接続可能としたシステムを構成してもよい。
図7は、配送計画作成装置の機能構成例を示す図である。図7において、配送計画作成装置100は、主に、配送管理部40を有する。配送管理部40は、CPU11が対応するプログラムを実行することで行われる処理により実現され、配送管理部40による配送管理処理は、メインプログラムに相当する。
配送管理部40は、配送計画作成処理を実行するために必要な処理部を制御する。記憶部130は、受注情報DB31、拠点情報DB32、距離情報DB33、荷量平準化結果DB34、集約拠点DB35、集約結果DB36、配送計画DB37等を記憶する。
配送管理部40の制御の下で動作する処理部は、主に、荷量平準化部41と、集約拠点選出部42と、集約日選択部43と、配送計画部46であり、主に、この順で各処理部を呼び出してそれぞれの処理を行わせる。荷量平準化部41と、集約拠点選出部42と、集約日選択部43と、配送計画部46は、CPU11が対応するプログラムを実行することで行われる処理により実現される。
荷量平準化部41は、受注情報DB31を参照して、荷の配送日を変更することで、所定期間内の荷量を平準化する荷量平準化処理を行う。所定期間において、日単位の荷の総量が決定される。日ごとに、配送する荷とその荷の配送先の拠点とが特定される。荷量平準化処理の結果は、荷量平準化結果DB34に格納される。
集約拠点選出部42は、拠点情報DB32を用いて、経路図において最も外側にある拠点の中で、遠回りとなる拠点を選出する集約拠点選出処理を行う。集約拠点選出処理によって得られた拠点を集約拠点として集約拠点DB35に記憶する。
集約日選択部43は、荷量平準化結果DB34と集約拠点DB35とに基づいて、所定期間内の複数日に亘る集約拠点への荷の配送を集約可能な集約日を選択する集約日選択処理を行う。また、集約日選択部43は、集約実行部44に選択した集約日に集約拠点へ荷を集約させる集約実行処理を行わせる。集約日選択部43と集約実行部44とは、集約部に相当する。
集約実行部44は、集約日選択部43からの集約日の通知を受け、集約日以外の他の日(元の日)の集約拠点への荷を集約日に移動させ、相殺する荷量を算出する集約実行処理を行う。更に、集約実行部44は、荷量調整部45に元の日へ、集約日に移動した荷量相当の荷を移動させる荷量調整処理を行わせる。
荷量調整部45は、集約実行部44からの集約日と相殺する荷量の通知を受け、集約日の集約拠点以外の拠点へ配送する荷の中から、集約日から相殺する荷量相当の荷を元の日へ移動する(逆移動させる)荷量調整処理を行う。
集約実行部44と荷量調整部45とによる結果に基づいて、集約日選択部43は、集約結果を集約結果DB36に記憶する。
配送計画部46は、拠点情報DB32、距離情報DB33、及び集約結果DB36とを参照して、日単位で配送経路を最適化する配送計画処理を行う。配送計画処理によって得られた配送計画の情報を配送計画DB37に記憶する。
集約拠点選出部42と、集約日選択部43と、集約実行部44と、荷量調整部45とにより、図5の集約処理が行われる。
次に、種々のデータベースのデータ構成例について図8〜図14で説明する。図8は、受注情報DBのデータ構成例を示す図である。図8において、受注情報DB31は、荷毎の配送受注の情報を記録し管理するためのデータベースであり、配送予定日、配送先拠点ID、荷量、受注日、配送可能日、納期等の項目を有する。
配送予定日は、荷の配送受注時に指定された納期に対して、拠点へ配送する予定日を示す。配送先拠点IDは、配送先となる拠点を特定する識別情報であり、拠点情報DB32に登録された拠点IDが示される。
荷量は、配送受注した荷の重さを示し、例えば、単位はグラムで示される。受注日は、配送の依頼を受けた日付を示す。配送可能日は、指定された納期前までに拠点に配送可能な日付を示している。納期は、荷の配送を依頼した依頼者によって指定された依頼者が荷を受け取る配達日を示している。
このデータ例では、配送予定日「10/3」について、拠点d1への受注は3件ある。荷量「753」、受注日「10/1」、発送可能日「10/3,10/4」、及び納期「10/4」の荷と、荷量「446」、受注日「10/1」、発送可能日「10/3,10/4」、及び納期「10/4」の荷と、荷量「120」、受注日「10/1」、発送可能日「10/3,10/4,10/5」、及び納期「10/4」の荷である。
配送予定日「10/3」について、拠点d2への受注は少なくとも3件ある。荷量「390」、受注日「10/1」、発送可能日「10/3,10/4」、及び納期「10/4」の荷と、荷量「588」、受注日「10/1」、発送可能日「10/3,10/4」、及び納期「10/4」の荷と、荷量「419」、受注日「10/1」、発送可能日「10/3,10/4,10/5」、及び納期「10/4」の荷である。他の拠点、また、他の配送予定日についても、受注情報が記憶されている。
図9は、拠点情報DBのデータ構成例を示す図である。図9において、拠点情報DB32は、配送先となる拠点ごとの位置情報を記憶し管理するためのテーブルであり、拠点ID、緯度、経度等の項目を有する。
拠点IDは、拠点を特定する識別情報である。緯度及び経度は、拠点の位置を特定する情報である。このデータ例では、拠点ID「d0」で特定される拠点の位置は、経度「139.81」及び緯度「35.48」であることを示している。他の各拠点についても同様である。
図10は、距離情報DBのデータ構成例を示す図である。図10において、距離情報DB33は、縦横に拠点IDを示し、経路図上で隣り合う拠点間の距離を示したマトリクスである。単位は、一例としてkmである。
このデータ例では、拠点d0と拠点d1との距離は「7.88」kmであり、拠点d0と拠点d10の距離は「4.03」kmである。また、拠点d1と拠点d2の距離は「5.84」kmであり、拠点d1と拠点d3の距離は「5.36」kmであり、拠点d1と拠点d3の距離は「8.64」kmである。他拠点間の距離についても同様に示される。
図11は、荷量平準化結果DBのデータ構成例を示す図である。図11において、荷量平準化結果DB34は、所定期間で荷量を平準化した結果を保存するデータベースであり、配送予定日、配送先拠点ID、荷量、配送可能日等の項目を有する。
配送予定日は、受注情報DB31で管理されている受注時の配送予定日、又は、荷量平準化処理によって調整された配送予定日を示す。配送先拠点IDは、荷を配送する拠点を特定する識別情報を示し、受注情報DB31から得られる配送先拠点IDを示す。
荷量は、受注情報DB31から得られる荷量を示す。配送可能日は、受注情報DB31から得られる配送可能日を示す。
このデータ例では、配送予定日「10/3」の配送拠点ID「d1」及び「d2」については、受注情報DB31から得られる情報と略同様の結果を得たことを示しているため、その説明を省略する。他の配送予定日についても荷量平準化後の結果が示される。
図12は、集約拠点DBのデータ構成例を示す図である。図12において、集約拠点DB35は、集約拠点選出部42によって選出された拠点の識別情報を記憶し、集約拠点ID等の項目を有する。
このデータ例では、集約拠点として、拠点ID「2」、「4」、「8」、及び「9」の拠点が選出されたことを示している。このような集約拠点DB35に基づき、所定期間において、複数日に亘る拠点ID「2」、「4」、「8」、及び「9」の拠点への荷の集配を集約日にまとめて行うように、荷の割り当てが調整される。
図13は、集約結果DBのデータ構成例を示す図である。図13において、集約結果DB36は、荷の集約後の配送予定日への荷の割り当てを示すデータベースであり、配送予定日、配送先拠点ID、荷量、配送可能日等の項目を有する。
配送予定日は、荷の集約により調整された配送予定日を示す。配送先拠点IDは、荷を配送する拠点を特定する識別情報を示し、荷量平準化結果DB34から得られる配送先拠点IDを示す。荷量は、荷量平準化結果DB34から得られる配送可能日を示す。
このデータ例では、本実施例に係る集約処理による結果例を示し、配送予定日「10/3」の荷には、集約した荷36pが含まれている。集約した荷36pは、少なくとも、配送先拠点ID「2」と「4」の拠点に、他の配送予定日から集約された荷の情報を示している。配送先拠点ID「2」と「4」は、集約拠点DB35に含まれている拠点IDである。
一方、配送予定日「10/5」では、配送予定の荷のうち、逆移動した荷36rは、集約日(元の日)から荷量の相殺により移動された荷の情報を示している。逆移動した荷36rの配送先拠点IDは、「1」、「3」、「6」、及び「7」であり、全て集約拠点DB35には含まれない拠点IDである。
図14は、配送計画DBのデータ構成例を示す図である。図14において、配送計画DB37は、配送計画部46によって作成された日別、トラック別の配送順序を記憶したデータベースであり、配送日、トラック名、移動先拠点ID(配送順)等の項目を有する。
配送日は、集約結果DB36の配送予定日に基づく日付が設定される。トラック名は、同日の荷の配送に割り当てられるトラックを識別する情報を示す。移動先拠点ID(配送順)は、各トラックの配送順に拠点IDを示す。
このデータ例では、配送日「10/3」には、トラック「A」と「B」とが割り当てられ、トラック「A」に対しては、拠点d0−>拠点d2−>拠点d4−>拠点d5−>拠点d7−>拠点d0の順に荷を配送する計画が作成されている。トラック「B」に対しては、拠点d0−>拠点d10−>拠点d9−>拠点d8−>拠点d7−>拠点d3−>拠点d1−>拠点d0の順に荷を配送する計画が作成されている。拠点ID「d0」が物流センター等に相当する場合には、一日の配送の開始拠点及び終了拠点となる。他の配送日についても同様にトラックごとに配送順が示される。
次に、上述したデータベースを用いて行われる集約処理の一例について説明する。先ず、簡単な例で、経路図の最も外側の拠点について説明する。図15は、経路図における最も外側の拠点を説明するための図である。
図15に例示する経路図の外周5に沿った拠点a、拠点c、及び拠点eが最も外側の拠点である。外周5は、始点及び終点となる物流センター1c等の拠点d0を含まない。したがって、拠点d0は最も外側の拠点には含まれない。また、外周5に沿った拠点a、拠点c、及び拠点e以外の拠点b及び拠点dは内側の拠点である。
次に、拠点情報DB32及び距離情報DB33に基づく経路図で説明する。図16は、経路図の例を示す図である。
図16に例示する経路図K1では、拠点d1〜d10の10拠点を配送先とし、物流センター1cから出発し、経路図K1上の経路を通って各拠点を回り荷を配送して、物流センターへ再び戻る。拠点間を結ぶ線が示されていないところは、山、湖等の障害物により車両が通ることができないことを示す。
経路図K1に示される拠点d1〜d10は、拠点情報DB32に基づいて配置されている。また、距離情報DB33において距離が設定されている場合に拠点間の結線を示している。結線が存在する場合には、距離情報DB33を参照することにより拠点間の距離を取得できる。
拠点情報DB32に基づいて拠点d1〜d10を配置し、距離情報DB33に基づいて拠点d1〜d10の拠点間で経路となり得る場合に結線で結ぶことで描画される経路図K1から外周5を特定できる。
以下、図16に例示する経路図K1に基づいて、集約処理例を説明する。先ず、上記(手法1)による訪問回数を削減する配送先の選出について説明する。この(手法1)は、集約拠点選出部42によって行われる。集約拠点選出部42による集約拠点選出処理例を図17から図19で説明する。
図17は、集約拠点選出処理例を説明するための図である。図17において、集約拠点選出部42は、配送先となり得る拠点d1〜d10から除外ことでトラックの配送に掛る総移動距離が短くなる拠点を選出する。
拠点に到達する経路は複数存在し、最終的な総移動距離は配送先の組合せが決まらないと求められない。ここでは、予め、組み合された場合には遠回りになる可能性の高い拠点を決定する。
集約拠点選出部42は、経路図K1の外周5に沿って、順に拠点を選択し、選択した拠点の前後で隣接する2拠点を特定し、特定した2拠点間を直線で結ぶ。集約拠点選出部42は、結んだ直線が経路として存在する場合に、集約拠点であると判定する。
この経路図K1では、物流センター1cを表わす拠点d0から出発して拠点d1へと向かい、拠点d10から物流センター1cに戻るものとし、拠点d1から拠点d10へと順に拠点を選択する場合で説明する。
先ず、外周5に沿って存在する1番目の拠点d1は、前後で2拠点が存在しないため、集約拠点ではないと判断する。次に、拠点d2を選択する。外周5に沿って拠点d2に隣接する拠点(以下、隣接拠点という)として拠点d1と拠点d4とが存在する。拠点d1と拠点d4とを通る直線に対して経路が存在する場合に、拠点d2は集約拠点であると判定する。この例では、拠点d2は集約拠点である。
このように外周5に沿って順次拠点を選択し、選択した拠点に対して2つの隣接拠点を直接結ぶ経路の有無により集約拠点であるか否かが判定される。
図18は、外周に沿って存在する拠点が集約拠点でない場合を説明するための図である。図18では、拠点d2に次いで、拠点d4、そして拠点d3について集約拠点であるか否かを判定する場合で説明する。
外周5に沿って、選択された拠点d3の隣接拠点は、拠点d4及び拠点d5である。拠点d4と拠点d5を通る直線に対して経路が存在しない。したがって、拠点d3は集約拠点ではないと判断する。
図19は、選出された集約拠点の例を示す図である。図19では、上述した集約拠点6の選出方法により、拠点d2以外に、拠点d4、拠点d8、及び拠点d9が選出された状態を例示している。集約拠点6の選出には例外処理があるため、拠点d5は集約拠点6として選出されていない。詳細は、図32で説明する。
図17及び図19より、経路図K1における集約拠点6は、拠点d2、拠点d4、拠点d8、及び拠点d9であることが分かる。このような結果が、集約拠点DB35に格納される(図12)。以下の説明では、本実施例における集約処理に関するデータのみを示し、他を省略する。
次に、上記(手法2)による集約拠点6に対して集約させる配送日(集約日)の選択について説明する。この(手法2)は、集約日選択部43によって行われる。集約日選択部43による集約日選択処理について説明する。
図20は、集約日選択処理例を説明するための図である。図20において、集約日選択部43は、集約拠点DB35を用いて、荷量平準化結果DB34から、集約拠点6を最も多く含む配送予定日を選択する。
この例では、配送予定日「10/3」が、配送先拠点IDに集約拠点DB35で示される集約拠点6となる拠点d2、d4、d8、及びd9の全てを含んでいる。したがって、少なくとも配送予定日「10/3」が集約日として選択される。選択した集約日に集約拠点6の荷を集めて配送することで、他の日における集約拠点6への配送が無いようにすることで、所定期間での総移動距離を削減できる。
次に、上記(手法3)による、選出した拠点への荷を各日から集約日へ移動し、相殺する荷量を見積もるための集約日へ流入した荷量を算出する。この(手法3)は、集約実行部44によって行われる。集約実行部44による集約実行処理について説明する。
図21は、集約実行処理を説明するための図である。図21において、集約実行部44は、荷量平準化結果DB34を日毎に参照し、集約拠点DB35を用いて1以上の集約拠点6を含む配送予定日を特定する。
元の日荷リスト7aは、荷量平準化結果DB34の日毎のレコードのうち、1以上の集約拠点6への荷の配送情報を含む同一配送予定日の全レコードに相当する。この例では、配送予定日「10/5」のレコードを元の日荷リスト7aで示し、集約拠点6となる拠点d2と拠点d4の荷の配送情報を含んでいる。
集約実行部44は、元の日荷リスト7aから、集約拠点6である、拠点d2の2つの荷の配送情報のレコード7a−1と、拠点d4の3つの荷の配送情報のレコード7a−2とを集約日荷リスト8aに加えて(移動して)、集約日荷リスト8aを変更する。即ち、配送情報のレコード7a−1と7a−2の配送予定日「10/5」を「10/3」に変更すればよい。
集約日荷リスト8aに加えた、荷の配送情報で示される荷量をカウントし合計荷量を算出する。合計荷量「1982kg」(=240+483+500+424+335)が、移動荷量7bで示される。
集約日荷リスト8aは、荷量平準化結果DB34の日毎のレコードのうち、集約拠点DB35の集約拠点6を配送先として最も多く含む同一配送予定日の全レコードに相当する。この例では、集約日荷リスト8aによって、配送予定日「10/3」の配送情報が示されている。配送予定日「10/3」の配送情報には、集約拠点DB35で指定される4つの集約拠点6の全てを含んでいる。
次に、移動荷量7bを相殺する方法について説明する。上記(手法4)により、集約日から元の日へと逆移動する荷を決定する。この(手法4)は、荷量調整部45によって行われる。荷量調整部45による荷量調整処理について説明する。
図22は、荷量調整処理を説明するための図である。図22において、荷量調整部45は、集約日へ移動した荷量と釣り合う荷の量を集約日へ荷を移動した元の日に対して、荷の配送情報のレコードを逆移動する。
荷量調整部45は、集約日荷リスト8aから1レコードずつ順に処理し、集約拠点6以外の拠点への荷が、集約実行部44が配送日を変更した元の日へ、変更荷量7bと釣り合うまで荷の配送情報のレコードを逆移動する。
図22では、配送予定日「10/5」に係る元の日荷リスト7aには、荷の配送情報のレコード7a−1及び7a−2は集約日「10/3」へ配送日を変更したため存在しない。荷量調整処理により、この例では、集約日「10/3」の荷の配送情報のレコード8a−1、8a−2、及び8a−3が、元の日荷リスト7aに逆移動される。配送情報のレコード8a−1から8a−3の配送予定日「10/3」を「10/5」に変更すればよい。
3件のレコード8a−1は拠点d1への配送分であり、2件のレコード8a−2は拠点d2への配送分であり、4件のレコード8a−3は拠点d6及び拠点d7への配送分であある。これらの拠点は、集約拠点DB35には含まれていない。
また、逆移動する配送情報が示す荷量の合計は「1911kg」(=120+302+304+306+315+304+259)である。この合計荷量は、逆移送荷量8bに示されている。変更荷量7bに相当する逆移送荷量8bで、配送予定日が「10/3」から「10/5」へと変更することで、集約日荷リスト8aによって示される総荷量は、集約実行処理前と略同量にする。同様に、元の日荷リスト7aによって示される総荷量は、集約実行処理前と略同量にする。
上述した荷量調整部45による荷量調整処理によって得られた結果は、集約実行部44を経て、呼び出し元の集約日選択部43に通知され、集約日選択部43によって、荷量平準化結果DB34における荷量を調整した結果として、集約結果DB36が記憶部130に出力される。
図23は、荷量調整後の集約結果DBのデータ例を示す図である。図23において、荷の集約及び逆移動後の集約結果DB36では、集約日「10/3」では、拠点d2に関して、レコード7a−1の元の日「10/5」からの移動により荷が2個増え、拠点d4に関して、レコード7a−2の元の日「10/5」からの移動により荷が3個増えている。
一方、集約日「10/3」から元の日「10/5」への逆移動により、元の日「10/5」では、レコード8a−1が追加され拠点d1の荷が1個増え、レコード8a−2が追加され拠点d3の荷が2個増え、レコード8a−3が追加され拠点d6への荷が1個追加され、また、拠点d7への荷が3個追加されている。
拠点d6及び拠点d7は、荷量平準化DB34では、配送予定日「10/5」には存在せず、逆移動により追加された可能性があるが、本実施例では、外周5に沿った拠点以外の拠点の追加は、総移動距離に影響しないと考えられ、逆移動時には内側の拠点の追加を許容する。
図24は、集約日と元の日との総荷量の推移を示す図である。図24(A)では、配送予定日「10/3」と「10/5」の総荷量を示している。集約日「10/3」の総荷量は「19345kg」であり、元の日「10/5」の総荷量は「18487kg」である。
図24(B)では、集約実行部44により、元の日「10/5」から集約日「10/3」へと、集約拠点6への荷の配送情報が集約された結果の総荷量を示している。図24(B)に示すように、集約日「10/3」の総荷量は「21327kg」となり、元の日「10/5」の総荷量は「16505kg」となる。
図24(C)では、荷量調整部45による、集約日「10/3」から元の日「10/5」へと、集約拠点6以外の拠点の荷の配送情報が逆移動後の総荷量を示している。逆移動することにより、集約日「10/3」の総荷量は「19416kg」となり、元の日「10/5」の総荷量は「18416kg」となっている。
図24(D)では、図24(A)、図24(B)、及び図24(C)における総荷量の変化を配送予定日ごとに示している。集約日「10/3」では、集約後において、総荷量が増加し、逆移動により総荷量が平準化後と略同量まで減少している。また、元の日「10/5」では、集約後において、総荷量が減少し、逆移動により総荷量が平準化後の総荷量と略同量まで増加している。
このような調整により、荷量平準化処理による結果を損なうことなく、トラックの総移動距離を短縮できる可能性がある。
次に、配送計画部46による配送計画処理の結果について、本実施例の適用無しの場合と、本実施例を用いた場合とのCO2排出量の違いについて図25及び図26で説明する。
図25は、本実施例の適用有無による拠点毎の荷量合計例を示した図である。図25(A)では、本実施例の適用の無い場合(図2)と、本実施例の適用の有る場合(図5)との配送予定の差を示すテーブルである。
図25(A)を参照すると、配送予定日「10/3」では、本実施例の適用の有無により、拠点d1、d2、d3、d4、d6、及びd7に配送する荷量合計に差が見られる。しかし、配送予定日「10/3」における配送先の拠点に増減はない。
配送予定日「10/5」では、本実施例の適用の有無により、拠点d1、d2、d3、d4、d6、及びd7に配送する荷量合計に差が見られる。特に、拠点d2及びd4には、配送する荷が存在しない。本実施例の適用無しでは荷が存在する拠点が、本実施例の適用有りでは存在しない拠点がある。
このような差について、図25(B)より、経路図K1において、トラック2台に荷を振り分けて、当日の総移動距離が短くなるように配送順序を決定した場合について、図26で説明する。最短の総移動距離を解く問題は、一般的には、CVRP(Capacitated Vehicle Routing Problem)の問題として扱われる。
図26は、本実施例の適用有無による配送計画に基づくCO2排出量の例を示した図である。図26(A)では、本実施例の適用有無別の配送日「10/3」と「10/5」のそれぞれの配送計画93a及び93bを示している。図26(A)において、配送計画93a及び93bは、配送日、トラック、配送順等の項目を有する。2台のトラックをA及びBで表し、2台の総移動距離が最短となる配送順が拠点IDで示されている。物流センター1cに相当する拠点d0から開始し、拠点d0に戻るものとする。
配送計画93aから配送先の拠点が変更(配送する荷の集約及び逆移動)されたことにより、配送計画93bでは配送順が異なっている。
それぞれの配送計画93a及び93bに対して、総移動距離を算出し、CO2排出量を算出した結果が図26(B)に示されている。図26(B)を参照すると、本実施例の適用無しの算出結果95aでは、配送日「10/3」と「10/5」のトラックA及びBの総移動距離は「172.56」であり、CO2排出量は「0.141」であることを示している。
本実施例の適用有りの算出結果95bでは、配送日「10/3」と「10/5」のトラックA及びBの総移動距離は「169.03」であり、CO2排出量は「0.137」であることを示している。
これらから、本実施例の適用有りの場合、総移動距離を短縮し、CO2排出量を削減する効果があることが分かる。
次に、配送管理部40による種々の処理についてフローチャートで説明する。図27は、配送管理部による配送管理処理の概要を説明するためのフローチャート図である。図27において、配送管理部40は、受注情報DB31、拠点情報DB32、及び距離情報DBを更新して、各処理部を手順に従い順に呼び出す(ステップS10)。
配送管理部40は、最初に、荷量平準化部41により荷量を平準化する荷量平準化処理を行わせる(ステップS11)。そして、配送管理部40は、集約拠点選出部42により集約拠点6を選出する集約拠点選出処理を行わせる(ステップS12)。
次に、配送管理部40は、集約日選択部43により集約日を選択させ荷を集約させる集約日選択処理を行わせる(ステップS13)。集約日選択部43は、集約日を選択し、集約実行部44、更に荷量調整部45により選択した集約日へ荷を集約させ、荷量の調整を行わせる。
そして、配送管理部40は、配送計画部46により配送計画を作成する配送計画処理を行わせる(ステップS16)。配送管理部40は、規定回数を繰り返し実行したか否かを判断する(ステップS17)。規定回数に達していない場合(ステップS17のNo)、配送管理部40は、ステップS11へと戻り、上述した処理を繰り返す。一方、規定回数に達した場合(ステップS17のYes)、配送管理部40は、この配送管理処理を終了する。
図28は、荷量平準化部による荷量平準化処理の概要を説明するためのフローチャート図である。図28において、荷量平準化部41は、受注情報DB31から、配送する荷の配送先拠点ID、荷量、配送可能日、及び納期を取得する(ステップS1101)。
荷量平準化部41は、取得した配送可能日と納期とから荷毎に配送可能日を算出する(ステップS1102)。荷量平準化部41は、日別の合計荷量の最大量と最小量との差が小さくなるように荷毎の配送予定日を調整する荷量平準化を行う(ステップS1103)。
そして、荷量平準化部41は、荷量平準化の結果を荷量平準化結果DB34に保存して(ステップS1104)、この荷量平準化処理を終了する。
図29は、集約拠点選出部による集約拠点選出処理の概要を説明するためのフローチャート図である。図29において、集約拠点選出部42は、拠点情報DBより配送先の拠点IDを取得し、距離情報DB33より拠点間の距離情報を取得する(ステップS1201)。
集約拠点選出部42は、集約拠点6を過去に選出済み、かつ、拠点IDと距離情報とに更新がないか否かを判断する(ステップS1202)。集約拠点を選出済み、かつ、拠点IDと距離情報とに更新が無い場合(ステップS1202のYes)、集約拠点選出部42は、この集約拠点選出処理を終了する。集約拠点選出処理は、拠点IDが新たに増えたり、又は、減ったりした場合に集約拠点6の更新が必要となる。このような場合に、改めて、集約拠点6を選出する処理を行うようにする。
集約拠点を未選出、かつ、拠点ID又は距離情報に更新が有る場合(ステップS1202のNo)、集約拠点選出部42は、経路図K1上で最も西に位置する拠点を開始点として選択し、開始点から真西を開始の入力経路とする(ステップS1203)。複数拠点の経度が同じ場合は、その中で最も北に位置する拠点を開始点とすればよい。方位は、ユーザが適宜設定してもよい。
集約拠点選出部42は、選択拠点から出る経路の中で、入力経路から時計回りに最も近い角度の経路を選択し、経路の先の拠点を次の選択点とする操作を開始点に戻るまで順次繰り返す(ステップS1204)。最も左端の経路を順次選択して一周し開始点に戻る。集約拠点選出部42は、ステップS1204の処理で経由した拠点の一覧を、経路図K1上の最も外側の拠点の循環リストLとして抽出する(ステップS1205)。循環リストLは、順次選択した拠点を特定する拠点IDを記録したリストである。
そして、集約拠点選出部42は、ステップS1205の処理で抽出した拠点の循環リストLから拠点Mを順次取り出し(ステップS1206)、取り出した拠点Mと、循環リストL内で隣接する経路図K1上の最も外側の2拠点N及びOを取り出す(ステップS1207)。具体的には、集約拠点選出部42は、循環リストLに従って順に拠点IDを読み出し、更に、循環リストLにおいて、読み出した拠点IDに前後する2つの拠点IDも取得する。ここでは、隣接拠点間に経路が存在するケースを見つけるのみでよい。
集約拠点選出部42は、2拠点N及びOを結ぶ経路が存在するか否かを判断する(ステップS1208)。経路が存在しない場合(ステップS1208のNo)、集約拠点選出部42は、ステップS1210へと進む。一方、経路が存在する場合(ステップS1208のYes)、集約拠点選出部42は、拠点Mを集約拠点として拠点リストPに追加し(ステップS1209)、ステップS1210へと進む。
集約拠点選出部42は、全ての拠点について終了したか否かを判断する(ステップS1210)。未処理の拠点が存在する場合(ステップS1210のNo)、集約拠点選出部42は、ステップS1206へと戻り、上述同様の処理を繰り返す。
一方、全ての拠点について終了した場合(ステップS1210のYes)、集約拠点選出部42は、拠点リストPを集約拠点DB35に保存し(ステップS1211)、この集約拠点選出処理を終了する。
図30は、図29のステップS1203及びS1204での処理の一例を説明するための図である。図30において、集約拠点選出部42は、拠点情報DB32を参照して、経路図K1上で最も西に位置する拠点d9を開始点とした後(ステップS1203)、図29のステップS1204での処理を行う。
集約拠点選出部42は、真西の直線を開始点の拠点d9への入力経路とする(ステップS1211)。
集約拠点選出部42は、各経路の入力経路に対する角度を算出し、入力経路から時計回りに最も近い角度の経路を選択する(ステップS1212)。集約拠点選出部42は、距離情報DB33を参照して、開始点の拠点d9から経路が存在する拠点d6、d7、d8の3つの経路の存在を確認する。集約拠点選出部42は、拠点情報DB32を参照して、時計回で3つの経路それぞれの入力経路に対する角度を算出し、最も角度が小さい経路を選択する。集約拠点選出部42は、ステップ1212で選択した経路の先の拠点d8を次の選択点とする(ステップS1213)。
集約拠点選出部42は、ステップS1212で選択した経路を基準として、ステップS1212と同様の処理を行うことで、基準の経路から最も角度が小さい経路を次の経路として選択する(ステップS1214)。集約拠点選出部42は、距離情報DB33を参照して、選択点の拠点d8から経路が存在する拠点d6及びd7の2つの経路の存在を確認する。集約拠点選出部42は、拠点情報DB32を参照して、時計回で2つの経路それぞれの入力経路に対する角度を算出し、最も角度が小さい経路を選択する。集約拠点選出部42は、ステップ1214で選択した経路の先の拠点d6を次の選択点とする(ステップS1215)。
順に選んだ選択点に対して同様の処理を繰り返すことで、開始点の拠点d9まで一周する(ステップS1216)。開始点の拠点d9まで一周することで、外周5を得る。
上記処理にて、集約拠点選出部42は、経由した拠点d9、d8、d6、d5、d4、d4、d2、d1、d0、d10、及びd7を示す循環リストLを生成する(ステップS1217)。拠点d7の次は拠点9である。循環リストLは、即ち、経路図K1上で最も外側の拠点を示す。
ステップS1212、S1214等における、経路の角度の算出方法について説明する。図31は、経路の角度の算出方法を説明するための図である。図31では、経路図K1の拠点d3と拠点d4とを例として、拠点d3から拠点d4への経路の角度の算出方法について説明する。
緯度をXとし、緯度をYとし、XY座標で、拠点d3と拠点d4の位置を表わすと、拠点d3は(139.60,35.56)であり、拠点d4は(139.64,35.59)である。
拠点d3と拠点d4のX座標の差を求める。即ち、X座標の差は、拠点d4のX座標から拠点d3のX座標を減算することで、139.64−139.60=0.004を得て座標差xとする。Y座標の差は、拠点d4のY座標から拠点d3のY座標を減算することで、35.59−35.56=0.003であり、座標差yとする。
座標差xと座標差yとからX座標との角度tを求める。
= arctangent( y / | x | )
= arctangent( 0.03 / |0.04| )
= 36.9°
ここで、xが負の場合は180°から減算する。
図32は、集約拠点の選出例を説明するための図である。図32において、集約拠点選出部42は、循環リストLを右から左へと開始拠点とする拠点d0を検索し、拠点d0から順に、選択点とその選択点に隣接する2拠点とを特定する。
ケース(I)は、拠点d2が選択点であり、拠点d1及び拠点d4が隣接拠点であり、選択点(d2)は外側に位置する場合である。距離情報DB33を参照すると、拠点d1と拠点d4を結ぶ直線に相当する経路に距離「8.64」が設定されていることから拠点d1と拠点d4とを結ぶ経路が存在する。この場合、拠点d2は、拠点d1と拠点d4とを結ぶ直線より外側に位置している。
ケース(II)は、拠点d3が選択点であり、拠点d4及び拠点d5が隣接拠点であり、選択点(d3)は内側に位置する場合である。距離情報DB33を参照すると、拠点d4と拠点d5を結ぶ直線に相当する経路に距離は設定されていない。したがって、拠点d3は集約拠点6として選出されない。
仮に、拠点d5と拠点d4との間に経路が存在すれば、その経路が最も外側となり拠点d3は、外周5に沿った外側の拠点ではなくなる。ケース(II)のような外側の拠点が隣接間を結ぶ直線より内側のケースでは、隣接拠点間に経路は存在しない。
ケース(III)は、拠点d5が選択拠点であり、拠点d3及び拠点d6が隣接拠点であり、選択点(d5)に対して例外処理が適応される場合である。距離情報DB33を参照すると、拠点d3及び拠点d6を結ぶ直線に相当する経路に距離は設定されていない。
この場合、拠点d3及び拠点d6を結ぶ直線よりも、拠点d5は最も外側に位置するが、拠点d3と拠点d6とを結ぶ経路が存在しない場合、拠点d5の通過をスキップすることができない。拠点d3と拠点d6との間を移動する場合には、拠点d5を経由しなければならないため、拠点d5を集約拠点6に含めない。
上述したように、外周に位置する拠点が集約拠点か否かは、隣接拠点間を直接結ぶ経路が存在するか否かを判断(図29のステップS1208)すればよいことが分かる。
図33は、集約日選定部による集約日選定処理を説明するための図である。図33において、集約日選択部43は、荷量平準化結果DB34より配送平準化後の荷毎の配送予定日、配送先拠点ID、荷量、及び配送可能日を示す配送情報を示すリストAとして取得する(ステップS1301)。また、集約日選択部43は、集約拠点DB35より集約拠点IDの拠点リストPを取得する(ステップS1302)。
そして、集約日選択部43は、配送平準化後の荷毎の配送情報のリストAから日別のリストBを順次取り出し(ステップS1303)、取り出した日別のリストBを用いて、配送先の拠点のうち集約拠点6の数をカウントする(ステップS1304)。
集約日選択部43は、集約拠点6の数は閾値C以上か否かを判断する(ステップS1305)。集約拠点6の数が閾値C以上である場合(ステップS1305のNo)、集約日選択部43は、ステップS1303へと戻り、上記同様の処理を繰り返す。
一方、集約拠点6の数が閾値C未満の場合(ステップS1305のYes)、集約日選択部43は、取り出した日別のリストBの日を集約日に設定して、集約実行部44に集約実行処理を行わせる(ステップS1306)。
集約実行処理が終了すると、集約日選択部43は、全ての日について終了したか否かを判定する(ステップS1307)。終了していない場合(ステップS1307のNo)、集約日選択部43は、ステップS1303へと戻り、上述した同様の処理を繰り返す。
終了した場合(ステップS1307のYes)、集約日選択部43は、集約した結果を集約結果DB36に保存して(ステップS1308)、この集約日選定処理を終了する。
図34は、集約実行部による集約実行処理を説明するためのフローチャート図である。図34において、集約実行部44は、配送平準化後の荷毎の配送予定日、配送先拠点ID、荷量、及び配送可能日を示す配送情報を示すリストAとして取得する(ステップS1401)。
集約実行部44は、集約拠点IDの拠点リストPを取得し(ステップS1402)、また、集約日Dと、集約日Dの日別のリストBとを取得する(ステップS1403)。
集約拠点IDの拠点リストPは、集約日選択部43から与えられても良いし、集約拠点DB35から取得してもよい。集約日Dは、集約日選択部43によって与えられる。日別のリストBは、集約日選択部43から与えられても良いし、集約日Dを用いて、荷量平準化結果DB34から集約日Dと一致する配送予定日のレコードを取得することで、集約日Dの日別リストBを取得してもよい。
集約実行部44は、配送平準化後の荷毎の配送情報のリストAから、集約日D以外の配送予定日について日別のリストEを順次取り出す(ステップS1404)。そして、集約実行部44は、取り出した日別のリストEを参照して、集約拠点IDと一致する配送先拠点IDのうち、全ての配送情報を集約日Dに変更可能な配送先拠点IDについて、その全ての配送情報をリストFとして抽出する(ステップS1405)。
集約実行部44は、リストFで示される荷毎の荷量を合計して合計荷量を算出し(ステップS1406)、集約日D、リストEの配送予定日と、抽出したリストFの合計荷量とを荷量調整情報に設定して荷量調整部45に通知し、荷量調整処理を行わせる(ステップS1407)。
荷量調整処理が終了すると、集約実行部44は、荷量調整部45から集約日Dから日別のリストEの元の日へ配送予定日を変更する荷毎の配送情報を示すリストGを取得し、合計荷量を算出する(ステップS1408)。リストGは、荷量調整部45の逆移動による荷量の調整後の荷毎の配送情報を示すリストである。
集約実行部44は、ステップS1406で算出したリストFの合計荷量と、ステップS1408で算出したリストGの合計荷量との差の絶対値は、閾値H以下か否かを判断する(ステップS1409)。差の絶対値が閾値Hより大きい場合(ステップS1409のNo)、集約実行部44は、ステップS1404へと戻り上述した同様の処理を繰り返す。
一方、差の絶対値が閾値H以下の場合(ステップS1409のYes)、集約実行部44は、配送日予定日から集約日Dへ変更する荷に関するリストF及びGに基づいて、リストA、B、及びEを更新し(ステップS1410)、全ての配送予定日について終了したか否かを判断する(ステップS1411)。未処理の配送予定日が存在する場合(ステップS1411のNo)、集約実行部44は、ステップS1404へと戻り、上述した同様の処理を繰り返す。
一方、全ての配送予定日について終了した場合(ステップS1411のYes)、集約実行部44は、この集約実行処理を終了する。
集約実行部44による集約実行処理には、図34で説明するような機能を追加してもよい。追加機能は、ステップS1406で算出したリストFの合計荷量を調整して、荷量調整部45に荷量調整処理を行わせる機能である。
図35は、集約実行処理の追加機能について説明するためのフローチャート図である。図35では、図34のステップS1407から示し、それ以前のステップS1401〜S1406を省略している。図34で説明済みのステップについてその詳細な説明を省略する。
図35のステップS1409において、差の絶対値が閾値Hより大きい場合(ステップS1409のNo)、集約実行部44は、追加機能の処理S1420を行う。追加機能の処理S1420では、リストFで特定される全ての配送先の荷を集約するのではなく、一部を集約するための処理を行う。2以上の集約拠点6への荷の配送が予定されている場合には、集約させる集約拠点6の数を減らすことで、ステップS1409の閾値Hの条件を満たせる可能性がある。
追加機能の処理S1420において、集約実行部44は、リストFに2以上の配送先拠点IDを含むか否かを判断する(ステップS1421)。
リストFに2以上の配送先拠点IDが含まれない場合(ステップS1421のNo)、集約実行部44は、図34のステップS1404へと戻り上述同様の処理を繰り返す。この場合は、集約日Dへ集約する集約拠点6の削減を行なえないため、リストFに係る配送予定日における荷の集約拠点6への集約を断念する。
一方、リストFに2以上の配送先拠点IDが含まれる場合(ステップS1421のYes)、集約実行部44は、リストFに対して集約拠点6毎に合計荷量を算出する(ステップS1422)。集約実行部44は、1以上の集約拠点6への荷の配送情報を示すリストFに対して配送先拠点ID毎に荷量を合計する。
集約実行部44は、合計荷量が最も少ない配送先の配送情報をリストFから削除し(ステップS1423)、リストFの合計荷量で荷量調整情報を更新して(ステップS1424)、ステップS1407へ戻り、上述同様の処理を行う。合計荷量が最も少ない配送先の拠点IDについて全ての配送情報をリストFから削除することで、集約日Dへ集約する集約拠点6の数を減らすことで集約する荷量を調整する。
集約日Dへ集約する集約拠点6の数を減らす方法にはいくつかのバリエーションが考えられる。一例として、合計荷量が最も多い配送先、ランダムに選択した配送先等を削減してもよい。また、集約日Dへ集約する集約拠点6の削減方法は、これらに限定されない。
図36は、荷量調整部による荷量調整処理を説明するための図である。図36において、荷量調整部45は、集約日Dと、集約日Dの日別のリストBを取得する(ステップS1501)。集約日Dは、集約実行部44から与えられる荷量調整情報から取得する。集約日Dの日別のリストBは、集約実行部44から与えられても良いし、集約日Dを用いて、荷量平準化結果DB34から集約日Dと一致する配送予定日のレコードを取得することで、集約日Dの日別リストBを取得してもよい。
荷量調整部45は、集約日D以外の配送予定日の配送情報を示す日別のリストEの配送予定日を元の日Iに設定する(ステップS1502)。日別のリストEの配送予定日は、集約実行部44から与えられる荷量調整情報から取得する。
また、荷量調整部45は、集約する荷のリストFの合計荷量を取得する(ステップS1503)。リストFの合計荷量は、1以上の集約拠点6へ配送予定の荷を集約日Dへ集約する合計荷量を示し、集約実行部44から与えられる荷量調整情報から取得する。
次に、荷量調整部45は、集約日DのリストBの荷で、配送先が集約拠点6ではなく、かつ、逆移動先の元の日Iに変更可能な荷の配送情報をリストJとして抽出し(ステップS1504)。荷量調整部45は、リストJを荷量の少ない順にソートした後、先頭から荷量を積算し、リストFの合計荷量を超えた直後で終了する(ステップS1505)。
そして、荷量調整部45は、リストFの合計荷量を超えた直前と直後の合計荷量のうち、リストFの合計荷量との差の絶対値が少ない方を選択し、荷の組合せを抽出する(ステップS1506)。荷量調整部45は、リストFの合計荷量との差の絶対値が最も小さい組合せをリストGとして集約実行部44に返し(ステップS1507)、この荷量調整処理を終了する。
所定期間内の配送先予定日の間で、荷の集約及び逆移動を行うことで、所定期間におけるトラックの総移動距離を短縮できるようにした集約結果DB36が記憶部130に出力される。本実施例では、配送計画部46は、集約結果DB36に基づいて配送計画処理を行う。
図37は、配送計画部による配送計画処理を説明するための図である。図27において、配送計画部46は、拠点情報DB32より配送先拠点IDを取得し、距離情報DBより拠点間の距離情報を取得する(ステップS1601)。また、配送計画部46は、集約結果DB36より集約後の荷の配送先拠点ID、配送予定日、及び荷量を取得する(ステップS1602)。
配送計画部46は、日別に荷の配送情報をトラック別に振り分け、全てのトラックが配送する総移動距離が短くなるように配送順序と経路とを決定する配送計画最適化を行う(ステップS1603)。
その後、配送計画部46は、配送計画最適化の結果を配送計画DB37に保存して(ステップS1604)、この配送計画処理を終了する。
上述したように、本実施例では、図5に示すように、ステップAの荷量平準化処理の後に、発明者等により考案された集約処理を行った上で、集約処理の結果(集約結果DB36)を用いて、ステップBの配送計画処理を行う。
このような処理構成とすることで、荷量平準化処理の対象期間(所定期間)において、全体としてトラックの総移動距離を最短にすることができ、CO2排出量を更に削減することができる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
荷の配送を開始する基準拠点から配送先の複数の拠点を経由して該基準拠点に戻る経路を示す経路図において最も外側の経路上で遠回りとなる拠点を選出し、選出した該拠点を特定する拠点IDを集約拠点IDに設定して記憶部に記憶し、
前記記憶部に予め記憶された所定期間で荷量が平準化された日毎の配送情報を参照し、該記憶部に記憶した前記集約拠点IDを含む荷の配送情報の第1配送予定日を、該集約拠点IDの数が第1閾値以上の第2配送予定日に変更し、
前記第2配送予定日の配送情報と前記第1配送予定日の配送情報とに共通する拠点IDのうち、前記集約拠点IDとは異なる1以上の拠点IDを指定する配送情報の該第2配送予定日を前記第1配送予定日に変更する
処理をコンピュータに行わせる配送計画作成プログラム。
(付記2)
前記コンピュータに、
前記経路図において最も外側の経路のうち、予め定めた方位に位置する拠点を開始点として選択し、該開始点から出る経路のうち、方位方向に対する角度が最も小さい経路を選択し、選択した該経路で結ばれる次の拠点を特定し、該開始点となる拠点と該開始点から順に特定した拠点の拠点IDを、特定した順に記録して循環リストを作成し、
作成した前記循環リストから順に第1拠点IDを選択し、選択した該第1拠点IDの前後の2つの第2拠点IDを該循環リストから取得し、取得した該第2拠点IDで特定される2つの拠点を結ぶ経路が存在する場合に、選択した該第1拠点IDを前記集約拠点IDであると判断して前記記憶部に保存する
処理をコンピュータに行わせる付記1記載の配送計画作成プログラム。
(付記3)
前記コンピュータに、
前記記憶部に予め記憶された日毎の前記配送情報のうち、該記憶部に保存された前記集約拠点IDの数が前記第1閾値以上の前記第2配送予定日を選択し、
前記第2配送予定日以外の前記第1配送予定日の前記配送情報を用いて、少なくとも1以上の前記集約拠点IDへ配送する第1合計荷量を算出し、
前記第1配送予定日の前記配送情報のうち前記第2配送予定日の前記配送情報と共通する拠点IDへ配送する荷毎の荷量を、前記第1合計荷量に相当する第2合計荷量まで積算し、
前記第2合計荷量に達した荷毎の前記配送情報の前記第2配送予定日を前記第1配送予定日に変更する
処理を行わせる付記2記載の配送計画作成プログラム。
(付記4)
前記コンピュータに、
前記第1合計荷量と前記第2合計荷量との差の絶対値が第2閾値より大きい場合、前記第1配送予定日の前記配送情報を用いて、前記集約拠点ID毎に合計荷量を算出し、
最も少ない前記合計荷量となった前記集約拠点IDの配送情報を、前記第1配送予定日の前記配送情報から削除する
処理を行わせる付記3記載の配送計画作成プログラム。
(付記5)
前記コンピュータに、
日毎の前記配送情報と、トラック台数とに基づいて、荷の配送に掛る総移動距離が最小となる経路を求めて、配送計画を最適化する
処理を行わせる付記3又は4記載の配送計画作成プログラム。
(付記6)
前記コンピュータに、
前記第1配送予定日と前記第2配送予定日とを含む複数の配送予定日の前記配送情報を用いて、前記所定期間において該配送情報の該配送予定日を変更することで日毎の合計荷量を平準化する
処理を行わせる付記1乃至5のいずれか一項記載の配送計画作成プログラム。
(付記7)
荷の配送を開始する基準拠点から配送先の複数の拠点を経由して該基準拠点に戻る経路を示す経路図において最も外側の経路上で遠回りとなる拠点を選出し、選出した該拠点を特定する拠点IDを集約拠点IDに設定して記憶部に記憶し、
前記記憶部に予め記憶された所定期間で荷量が平準化された日毎の配送情報を参照し、該記憶部に記憶した前記集約拠点IDを含む荷の配送情報の第1配送予定日を、該集約拠点IDの数が第1閾値以上の第2配送予定日に変更し、
前記第2配送予定日の配送情報と前記第1配送予定日の配送情報とに共通する拠点IDのうち、前記集約拠点IDとは異なる1以上の拠点IDを指定する配送情報の該第2配送予定日を前記第1配送予定日に変更する
処理をコンピュータが行う配送計画作成処理。
(付記8)
荷の配送を開始する基準拠点から配送先の複数の拠点を経由して該基準拠点に戻る経路を示す経路図において最も外側の経路上で遠回りとなる拠点を選出し、選出した該拠点を特定する拠点IDを集約拠点IDに設定して記憶部に記憶する集約拠点選出部と、
前記記憶部に予め記憶された所定期間で荷量が平準化された日毎の配送情報を参照し、該記憶部に記憶した前記集約拠点IDを含む荷の配送情報の第1配送予定日を、該集約拠点IDの数が第1閾値以上の第2配送予定日に変更する集約部と、
前記第2配送予定日の配送情報と前記第1配送予定日の配送情報とに共通する拠点IDのうち、前記集約拠点IDとは異なる1以上の拠点IDを指定する配送情報の該第2配送予定日を前記第1配送予定日に変更する荷量調整部と
をコンピュータが行う配送計画作成装置。