(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023180299
(43)【公開日】2023-12-21
(54)【発明の名称】配送管理システム及び配送ルートの生成方法
(51)【国際特許分類】
G06Q 10/08 20230101AFI20231214BHJP
【FI】
G06Q10/08
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022093466
(22)【出願日】2022-06-09
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】藤平 達
(72)【発明者】
【氏名】長谷川 学
(72)【発明者】
【氏名】小坂 忠義
(72)【発明者】
【氏名】古家 直樹
(72)【発明者】
【氏名】宇山 一世
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC51
(57)【要約】 (修正有)
【課題】配送ルートの生成後に追加の配送オーダを受け付けた場合に、効率的かつ高速に新たな配送ルートを生成する、配送管理システム及び配送ルートの生成方法を提供する。
【解決手段】方法は、複数の配送オーダを受け付け、多目的遺伝的アルゴリズムに基づいて、配送ルートに対する配送オーダの割当ての組合せである割当パターンの中からパレート最適解となる割当パターンを探索する第1探索処理を実行し、パレート最適解となる割当パターンについて、配送オーダが割り当てられた配送ルートの新たな配送順序を探索する第2探索処理を実行する。第1探索処理は、一つの割当パターンについて、配送オーダが割り当てられた配送ルートに対して、配送オーダを構成する拠点を配送ルートによって定義される移動ルートに挿入することによって新たな配送ルートを仮決めする処理を含む。
【選択図】
図9
【特許請求の範囲】
【請求項1】
配送管理システムであって、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
複数の配送ルートの情報を保持し、
前記少なくとも一つの計算機は、
荷積みの拠点及び荷降ろしの拠点の組みから構成される、複数の配送オーダを受け付け、
多目的遺伝的アルゴリズムに基づいて、前記配送ルートに対する前記配送オーダの割当てを表す割当パターンの中からパレート最適解となる前記割当パターンを探索する第1探索処理を実行し、
パレート最適解となる前記割当パターンについて、前記配送オーダが割り当てられた前記配送ルートの新たな配送順序を探索する第2探索処理を実行し、
前記第1探索処理は、
一つの前記割当パターンについて、前記配送オーダが割り当てられた前記配送ルートに対して、前記配送オーダを構成する前記荷積みの拠点及び前記荷降ろしの拠点を前記配送ルートによって定義される移動ルートに挿入することによって新たな配送ルートを仮決めする第1処理と、
複数の前記割当パターンの各々について、前記多目的遺伝的アルゴリズムで使用される複数の評価指標の値を算出する第2処理と、
複数の前記割当パターンの各々の前記複数の評価指標の値に基づいて、複数の前記割当パターンから遺伝的操作を行う前記割当パターンを選択する第3処理と、
選択された前記割当パターンに対して遺伝的操作を行って、新たな割当パターンを生成する第4処理と、
を繰り返し実行する、ことを特徴とする配送管理システム。
【請求項2】
請求項1に記載の配送管理システムであって、
前記第1探索処理は、前記複数の割当パターンの各々について、前記第1処理で使用する前記評価指標であるベース評価指標を選択する第5処理を含み、
前記第1処理は、
複数の前記新たな配送ルートの各々の前記ベース評価指標の値を算出する第6処理と、
前記ベース評価指標の値に基づいて、採用する前記新たな配送ルートを選択する第7処理と、を含むことを特徴とする配送管理システム。
【請求項3】
請求項2に記載の配送管理システムであって、
前記第5処理は、
前記複数の評価指標について、前記複数の割当パターンの各々の前記評価指標の値に基づいてソートを行う第8処理と、
前記複数の割当パターンの各々について、前記ソートの結果に基づいて、前記複数の評価指標の中から前記割当パターンの多様性が確保される前記ベース評価指標を選択する第9処理と、を含むことを特徴とする配送管理システム。
【請求項4】
請求項3に記載の配送管理システムであって、
前記多目的遺伝的アルゴリズムは、NSGA-IIであって、
前記第9処理では、前記複数の割当パターンの各々について、前記ソートの結果に基づいて、前記複数の評価指標の中から混雑度が低減する前記ベース評価指標を選択することを特徴とする配送管理システム。
【請求項5】
請求項2に記載の配送管理システムであって、
前記第4処理は、親となる前記割当パターンの前記ベース評価指標を、子となる前記割当パターンに関連付ける処理を含むことを特徴とする配送管理システム。
【請求項6】
請求項2に記載の配送管理システムであって、
前記第1処理は、
前記配送オーダが割り当てられた前記配送ルートを選択する処理と、
選択された前記配送ルートにより定義される前記移動ルートに含まれる一つの拠点間を結ぶルートに、前記配送オーダに含まれる前記荷積みの拠点及び前記荷降ろしの拠点の組みを挿入することによって前記新たな配送ルートを生成する処理と、を含むことを特徴とする配送管理システム。
【請求項7】
請求項2に記載の配送管理システムであって、
前記第1処理は、
前記配送オーダが割り当てられた前記配送ルートを選択する処理と、
選択された前記配送ルートにより定義される前記移動ルートに含まれる出発拠点と次の拠点とを結ぶルートに、前記配送オーダに含まれる前記荷積みの拠点及び前記荷降ろしの拠点の組みを挿入することによって前記新たな配送ルートを生成する処理と、を含むことを特徴とする配送管理システム。
【請求項8】
請求項2に記載の配送管理システムであって、
前記第1処理は、
前記配送オーダが割り当てられた前記配送ルートを選択する処理と、
選択された前記配送ルートにより定義される前記移動ルートに含まれる出発拠点と次の拠点とを結ぶルートに、前記配送オーダに含まれる前記荷積みの拠点を挿入し、選択された前記配送ルートにより定義される前記移動ルートに含まれる最終拠点と一つ前の拠点とを結ぶルートに、前記配送オーダに含まれる前記荷降ろしの拠点を挿入することによって前記新たな配送ルートを生成する処理と、を含むことを特徴とする配送管理システム。
【請求項9】
配送管理システムが実行する配送ルートの生成方法であって、
前記配送管理システムは、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を含み、
複数の配送ルートの情報を保持し、
前記配送ルートの生成方法は、
前記少なくとも一つの計算機が、荷積みの拠点及び荷降ろしの拠点の組みから構成される、複数の配送オーダを受け付ける第1のステップと、
前記少なくとも一つの計算機が、多目的遺伝的アルゴリズムに基づいて、前記配送ルートに対する前記配送オーダの割当てを表す割当パターンの中からパレート最適解となる前記割当パターンを探索する第1探索処理を実行する第2のステップと、
前記少なくとも一つの計算機が、パレート最適解となる前記割当パターンについて、前記配送オーダが割り当てられた前記配送ルートの新たな配送順序を探索する第2探索処理を実行する第3のステップと、を含み、
前記第2のステップでは、前記少なくとも一つの計算機が、
一つの前記割当パターンについて、前記配送オーダが割り当てられた前記配送ルートに対して、前記配送オーダを構成する前記荷積みの拠点及び前記荷降ろしの拠点を前記配送ルートによって定義される移動ルートに挿入することによって新たな配送ルートを仮決めするステップと、
複数の前記割当パターンの各々について、前記多目的遺伝的アルゴリズムで使用される複数の評価指標の値を算出するステップと、
複数の前記割当パターンの各々の前記複数の評価指標の値に基づいて、複数の前記割当パターンから遺伝的操作を行う前記割当パターンを選択するステップと、
選択された前記割当パターンに対して遺伝的操作を行って、新たな割当パターンを生成するステップと、
を繰り返し実行する、ことを特徴とする配送ルートの生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物流の配送の最適化技術に関する。
【背景技術】
【0002】
物流業界では、人手不足及びCO2の削減等の課題を解決するために、配送の効率化が重要となっている。配送の最適化の手法として、例えば、特許文献1に記載のような遺伝的アルゴリズムを用いる手法が知られている。
【0003】
特許文献1には「解探索方針最適化手段1は、与えられた最適化問題の解探索方針を示す染色体を有する個体を、遺伝的アルゴリズムを用いて生成する。順序検討手段1aは、所定の空間内に固定されて存在する要素種の各要素を結ぶ経路のうち距離が最も短くなる経路を所定のアルゴリズムで求め、その経路上の第2の要素種の配列を要素種検討順序5として決定する。解探索手段2は、個々の解探索方針および要素種検討順序5に従って個々の解探索を行い、解候補を生成する。そして、解探索方針最適化手段1は、解探索によって得られた解候補の適応度関数値を計算し、次の世代の解候補を探索する必要がなければ、適応度関数値の最も良い解候補を最適化問題の解とする。」ことが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
配送業務を行う企業は、通常、配達日の前日に配送ルートを決定する。一方、リソース等に余裕がある場合、追加の配送オーダを受け付ける場合がある。このとき、追加の配送オーダをどのように配送ルートに組み込むかが問題となる。
【0006】
配送ルートの生成時に使用した配送オーダと、追加の配送オーダに基づいて、従来技術を用いて改め配送ルートを生成することも考えられるが、計算量及び計算時間(計算コスト)が多い。
【0007】
また、特許文献1では、移動距離に基づいて配送の経路が決定されており、一つの指標に基づく最適解となっている。
【0008】
本発明は、配送ルートの生成後に追加の配送オーダを受け付けた場合に、効率的かつ高速に新たな配送ルートを生成するシステム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、配送管理システムであって、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、複数の配送ルートの情報を保持し、前記少なくとも一つの計算機は、荷積みの拠点及び荷降ろしの拠点の組みから構成される、複数の配送オーダを受け付け、多目的遺伝的アルゴリズムに基づいて、前記配送ルートに対する前記配送オーダの割当ての組合せである割当パターンの中からパレート最適解となる前記割当パターンを探索する第1探索処理を実行し、パレート最適解となる前記割当パターンについて、前記配送オーダが割り当てられた前記配送ルートの新たな配送順序を探索する第2探索処理を実行し、前記第1探索処理は、一つの前記割当パターンについて、前記配送オーダが割り当てられた前記配送ルートに対して、前記配送オーダを構成する前記荷積みの拠点及び前記荷降ろしの拠点を前記配送ルートによって定義される移動ルートに挿入することによって新たな配送ルートを仮決めする第1処理と、複数の前記割当パターンの各々について、前記多目的遺伝的アルゴリズムで使用される複数の評価指標の値を算出する第2処理と、複数の前記割当パターンの各々の前記複数の評価指標の値に基づいて、複数の前記割当パターンから遺伝的操作を行う前記割当パターンを選択する第3処理と、選択された前記割当パターンに対して遺伝的操作を行って、新たな割当パターンを生成する第4処理と、を繰り返し実行する。
【発明の効果】
【0010】
本発明によれば、配送ルートの生成後に追加の配送オーダを受け付けた場合に、効率的かつ高速に新たな配送ルートを生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】実施例1のシステムの構成例を示す図である。
【
図2】実施例1の配送管理システムを構成する計算機の構成例を示す図である。
【
図3】実施例1の荷主情報のデータ構造の一例を示す図である。
【
図4】実施例1の配送業者情報のデータ構造の一例を示す図である。
【
図5】実施例1の拠点情報のデータ構造の一例を示す図である。
【
図6】実施例1の配送ルート情報のデータ構造の一例を示す図である。
【
図7】実施例1の配送オーダ情報のデータ構造の一例を示す図である。
【
図8】実施例1の配送管理システムが実行する配送ルート更新処理の一例を示すフローチャートである。
【
図9】実施例1の配送管理システムが実行するオーダ割当処理の一例を示すフローチャートである。
【
図10】実施例1の配送管理システムが実行する評価値算出処理の一例を示すフローチャートである。
【
図11】実施例1の配送管理システムが実行する配送ルートの仮決め処理の一例を示すフローチャートである。
【
図12】実施例1の配送管理システムが生成する配送ルートの一例を示す図である。
【
図13】実施例1の配送管理システムが実行する評価指標選択処理の一例を示すフローチャートである。
【
図14】実施例2の配送管理システムが実行する配送ルートの仮決め処理の一例を示すフローチャートである。
【
図15】実施例2の配送管理システムが生成する配送ルートの一例を示す図である。
【
図16】実施例2の配送管理システムが実行する配送ルートの仮決め処理の一例を示すフローチャートである。
【
図17】実施例2の配送管理システムが生成する配送ルートの一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0013】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0014】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0015】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【0016】
各種情報の例として、「テーブル」、「リスト」、「キュー」等の表現にて説明することがあるが、各種情報はこれら以外のデータ構造で表現されてもよい。例えば、「XXテーブル」、「XXリスト」、「XXキュー」等の各種情報は、「XX情報」としてもよい。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
【実施例0017】
図1は、実施例1のシステムの構成例を示す図である。
図2は、実施例1の配送管理システムを構成する計算機の構成例を示す図である。
【0018】
システムは、配送管理システム100及び端末101から構成される。配送管理システム100及び端末101は、LAN及びWAN等のネットワーク102を介して互いに接続される。ネットワークの接続方式は有線又は無線のいずれでもよい。また、端末101は二つ以上でもよい。
【0019】
端末101は、配送管理システム100を利用するユーザが操作する端末である。端末101は、例えば、コンピュータ、スマートフォン、及びタブレット端末等である。例えば、ユーザは端末101を用いて配送ルート及び配送オーダ等を入力する。
【0020】
配送管理システム100は、配送オーダ群に基づいて配送ルート群の生成及び更新を行う。実施例1では、配送管理システム100は、既存の配送ルートの情報を保持し、追加の配送オーダを受け付けるものとする。既存の配送ルートの情報は、事前に入力された配送オーダに基づいて配送管理システム100が生成してもよいし、ユーザが入力してもよい。
【0021】
ここで、配送ルートは、一台の車両が荷積み及び荷降ろしを行う拠点の移動ルートと、配送業務の作業内容とを含む。配送オーダは、荷積みを行う拠点及び荷降ろしを行う拠点を含む。
【0022】
配送管理システム100は、
図2に示すような計算機200から構成される。計算機200は、プロセッサ201、主記憶装置202、副記憶装置203、及びネットワークインタフェース204を有する。各ハードウェア要素はバスを介して互いに接続される。なお、計算機200は、キーボード、マウス、及びタッチパネル等の入力装置を有してもよいし、ディスプレイ及びプリンタ等の出力装置を有してもよい。
【0023】
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該機能部を実現するプログラムを実行していることを示す。
【0024】
主記憶装置202は、DRAM(Dynamic Random Access Memory)等の記憶装置であり、プロセッサ201が実行するプログラム及びプログラム使用するデータを格納する。主記憶装置202はワークエリアとしても用いられる。副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置であり、データを永続的に格納する。
【0025】
なお、主記憶装置202に格納されるプログラム及びデータは、副記憶装置203に格納されてもよい。この場合、プロセッサ201は、副記憶装置203からプログラム及びデータを読み出し、主記憶装置202にロードする。
【0026】
配送管理システム100は、配送ルート生成部110及びデータ管理部111を有する。また、配送管理システム100は、荷主情報120、配送業者情報121、拠点情報122、配送ルート情報123、及び配送オーダ情報124を保持する。
【0027】
配送ルート生成部110は、配送ルートの生成及び更新を行う。データ管理部111は、各種データを管理する。なお、配送管理システム100が有する機能部は、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0028】
荷主情報120は、荷主を管理するための情報である。配送業者情報121は、配送業者を管理するための情報である。拠点情報122は、荷積み及び荷降ろしを行う拠点を管理するための情報である。配送ルート情報123は、配送ルート生成部110によって生成又は更新された配送ルートを管理する他面情報である。配送オーダ情報124は、配送オーダを管理するための情報である。
【0029】
なお、配送管理システム100を構成する計算機200は一つでもよいし、二つ以上でもよい。また、機能部は、物理的な計算機200を用いて実現してもよいし、仮想計算機及びコンテナ等の仮想的なコンポーネントを用いて実現してもよい。
【0030】
図3は、実施例1の荷主情報120のデータ構造の一例を示す図である。
【0031】
荷主情報120は、荷主ID301及び名称302を含むエントリを格納する。一人の荷主に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0032】
荷主ID301は、荷主の識別情報を格納するフィールドである。名称302は、荷主の名称を格納するフィールドである。
【0033】
図4は、実施例1の配送業者情報121のデータ構造の一例を示す図である。
【0034】
配送業者情報121は、配送業者ID401及び名称402を含むエントリを格納する。一つの配送業者に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0035】
配送業者ID401は、配送業者の識別情報を格納するフィールドである。名称402は、配送業者の名称を格納するフィールドである。
【0036】
図5は、実施例1の拠点情報122のデータ構造の一例を示す図である。
【0037】
拠点情報122は、拠点ID501、名称502、緯度503、及び経度504を含むエントリを格納する。一つの拠点に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0038】
拠点ID501は、拠点の識別情報を格納するフィールドである。名称502は、拠点の名称を格納するフィールドである。緯度503は、拠点の緯度を格納するフィールドである。経度504は、拠点の経度を格納するフィールドである。
【0039】
図6は、実施例1の配送ルート情報123のデータ構造の一例を示す図である。
【0040】
配送ルート情報123は、ルートID601、配送業者ID602、オーダID603、荷主ID604、拠点ID(発)605、拠点ID(着)606、及び種別607を含むエントリを格納する。配送業務の一つの作業に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0041】
ルートID601は、配送ルートの識別情報を格納するフィールドである。配送業者ID602は、配送業者の識別情報を格納するフィールドである。配送業者ID602には、配送業者情報121にて管理される識別情報が格納される。
【0042】
オーダID603は、追加の配送オーダの識別情報を格納するフィールドである。追加の配送オーダに基づいて追加されたエントリのオーダID603にのみ値が格納される。荷主ID604は、追加の配送オーダを発注した荷主の識別情報を格納するフィールドである。荷主ID604には、荷主情報120にて管理される識別情報が格納される。
【0043】
拠点ID(発)605は、発側の拠点の識別情報を格納するフィールドである。拠点ID(着)606は、着側の拠点の識別情報を格納するフィールドである。拠点ID(発)605及び拠点ID(着)606の各々には、拠点情報122にて管理される識別情報が格納される。なお、荷積み及び荷降ろしに対応する作業のエントリの場合、拠点ID(発)605にのみ値が格納され、拠点ID(着)606は空欄となる。移動に対応する作業のエントリの場合、拠点ID(発)605には出発地点の拠点の識別情報が格納され、拠点ID(着)606には到着地点の拠点の識別情報が格納される。
【0044】
種別607は、配送業務の作業の種別を格納するフィールドである。種別607には、「荷積」、「荷降」、及び「移動」のいずれかが格納される。なお、前述した以外の値が格納されてもよい。
【0045】
図7は、実施例1の配送オーダ情報124のデータ構造の一例を示す図である。
【0046】
配送オーダ情報124は、オーダID701、荷主ID702、拠点ID(荷積)703、及び拠点ID(荷降)704を含むエントリを格納する。一つの配送オーダに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
【0047】
オーダID701は、追加の配送オーダの識別情報を格納するフィールドである。荷主ID702は、追加の配送オーダを発注した荷主の識別情報を格納するフィールドである。荷主ID702には、荷主情報120にて管理される識別情報が格納される。
【0048】
拠点ID(荷積)703は、荷積みを行う拠点の識別情報を格納するフィールドである。拠点ID(荷降)704は、荷降ろしを行う拠点の識別情報を格納するフィールドである。拠点ID(荷積)703及び拠点ID(荷降)704の各々には、拠点情報122にて管理される識別情報が格納される。
【0049】
図8は、実施例1の配送管理システム100が実行する配送ルート更新処理の一例を示すフローチャートである。
【0050】
配送管理システム100は、追加の配送オーダを含む実行要求を受け付けた場合、以下で説明する配送ルート更新処理を開始する。
【0051】
配送管理システム100は、多目的遺伝的アルゴリズムに基づく配送オーダの割当パターン探索処理を実行する(ステップS101)。
【0052】
配送オーダの割当パターン探索処理は、配送ルートへの追加の配送オーダの割当てを表す割当パターンの中からパレート最適解となる割当パターンを探索するための処理である。ここで、パレート最適解とは、ある評価指標(目的関数)の値を改善するためには、少なくとも他の一つの評価指標の値を改悪せざるを得ないような解である。
【0053】
実施例1では、評価指標として以下のようなものを考える。
(指標1)総移動距離
(指標2)収益の分散
(指標3)実車率の平均
(指標4)配送計画の変更箇所
【0054】
指標1は、例えば、拠点間のユークリッド距離を用いて算出できる。指標2は、配送ルート毎の利益値を用いて算出できる。指標3は、配送ルート毎の移動距離及び空荷状態の移動距離を用いて算出できる。指標4は、配送ルート毎の割り当てられた配送オーダの数を用いて算出できる。
【0055】
実施例1では、多目的遺伝的アルゴリズムの一つであるNSGA-IIを用いる。NSGA-IIは、非劣個体を保存する母集団Ptと、遺伝的操作による探索に用いる母集団Qtとを用いて以下のような手順でパレート最適解を探索するアルゴリズムである。tは世代を表す変数である。なお、各母集団の個体の数はNであるものとする。
(手順1)母集団Pt及び母集団Qtを組み合わせて母集団Rtを生成し、母集団Rtに対して非優越ソートを実行することによって、ランク毎に全個体を分類する。
(手順2)空集合の母集団Pt+1を生成し、Pt+1にランクが高い順に個体を追加する。Pt+1に含まれる個体の数がNより大きくなる場合、Pt+1に追加することによって個体数がNより大きくなるランクの個体に対して混雑ソートを実行する。さらに、混雑度に基づいて所定の数の個体を追加し、母集団Pt+1を生成する。
(手順3)母集団Pt+1に対して混雑度トーナメント選択を行って個体を選択し、選択された個体に対して遺伝的操作(交叉、突然変異)を行うことによって母集団Qt+1を生成する。
(手順4)終了条件を満たす場合、処理を終了する。終了条件を満たさない場合、手順1に戻る。
【0056】
配送ルートへの配送オーダの割当てを決定する場合、厳密には、配送オーダが割り当てられた配送ルートにおける配送順序も考慮する必要がある。しかし、配送ルートの配送順序の組合せの数は膨大であるため、計算コストが多いことが問題となる。そこで、配送管理システム100は、追加の配送オーダが割り当てられた配送ルートについて、所定のアルゴリズムに基づいて配送順序を決定することによって新たな配送ルートの仮決めを行う。これによって、計算コストを削減することができる。
【0057】
配送管理システム100は、パレート最適解となる前記割当パターンについて、配送オーダが割り当てられた配送ルートに対して配送順序探索処理を実行する(ステップS102)。
【0058】
配送順序探索処理は、割当パターンについて、配送オーダが割り当てられた配送ルートの最適な配送順序を探索し、新たな配送ルートを生成するための処理である。配送順序探索処理は、構築法又は総当たり法等の公知の技術を用いる。
【0059】
図9は、実施例1の配送管理システム100が実行するオーダ割当処理の一例を示すフローチャートである。
【0060】
配送管理システム100は、多目的遺伝的アルゴリズムで使用する演算DB(図示省略)を初期化する(ステップS201)。
【0061】
配送管理システム100は、初期の割当パターンを生成する(ステップS202)。初期の割当パターンは、ランダムに生成されてもよいし、過去の割当実績に基づいて生成されてもよい。実施例1では、初期の割当パターンの生成方法に限定されない。
【0062】
実施例1では、割当パターンが多目的遺伝的アルゴリズムの個体として扱われる。ここで、割当パターンの遺伝型の表現Rをk個の要素からなる配列データとして定義する。kは配送オーダの数を表す。配列データの各要素には配送ルートの識別情報が格納される。例えば、kが3の場合、表現R=(3、1、1)は、配送ルート「3」に配送オーダ「1」が割り当てられ、配送ルート「1」に配送オーダ「2」、「3」が割り当てられた割当パターンを表す。
【0063】
配送管理システム100は、複数の割当パターンから母集団P1及び母集団Q1を生成する。配送管理システム100は、母集団P1及び母集団Q1を演算DBに保存する。
【0064】
配送管理システム100は、世代のループ処理を開始する(ステップS203)。具体的には、配送管理システム100は、世代を表す変数tに1を加算し、また、母集団Pt及び母集団Qtを組み合わせて母集団Rtを生成する。
【0065】
配送管理システム100は、評価値算出処理を実行する(ステップS204)。評価値算出処理では、個体毎に複数の評価指標の値が算出される。評価値算出処理の詳細は
図10を用いて説明する。
【0066】
配送管理システム100は、非優越ソート及び混雑ソートを実行することによって、母集団Pt+1を生成する(ステップS205、ステップS206)。配送管理システム100は、母集団Pt+1を演算DBに保存する。なお、配送管理システム100は、非優越ソート及び混雑ソートにおいて算出したランク及び各評価指標の値も演算DBに保存する。なお、実施例1では高速非優越ソートを用いている。
【0067】
配送管理システム100は、母集団P
t+1に対して評価指標選択処理を実行する(ステップS207)。評価指標選択処理では、母集団P
t+1に含まれる各個体について、配送ルートの仮決め処理に使用する評価指標が選択される。評価指標選択処理の詳細は
図13を用いて説明する。以下の説明では、評価指標選択処理によって選択された評価指標をベース評価指標と記載する。
【0068】
配送管理システム100は、母集団Pt+1を用いて、混雑度トーナメント選択、及び遺伝的操作(交叉及び突然変異)を実行することによって、母集団Qt+1を生成する(ステップS208)。配送管理システム100は、母集団Qt+1を演算DBに保存する。
【0069】
実施例1では、配送管理システム100は親となる個体に関連付けられるベース評価指標を子の個体に関連付けて保存する。これによって、後述する配送ルートの仮決め処理を制御する。なお、交叉では、二つの親の個体のベース評価指標のうち、ソート順位が高いベース評価指標、すなわち、混雑度の削減効果が大きいと見込まれるベース評価指標が子の個体に関連付けられる。
【0070】
配送管理システム100は、終了条件を満たすか否かを判定する(ステップS209)。
【0071】
終了条件を満たさない場合、配送管理システム100はステップS203に戻る。終了条件を満たす場合、配送管理システム100はオーダ割当処理を終了する。
【0072】
図10は、実施例1の配送管理システム100が実行する評価値算出処理の一例を示すフローチャートである。
【0073】
配送管理システム100は、個体のループ処理を開始する(ステップS301)。具体的には、配送管理システム100は、母集団Rtの中から一つの個体を選択する。
【0074】
配送管理システム100は、選択した個体のベース評価指標を特定する(ステップS302)。実施例1では、評価指標選択処理において、個体に対して一つのベース評価指標が関連づけられる。ステップS302では、配送管理システム100は、個体に関連付けられるベース評価指標を特定する。
【0075】
配送管理システム100は、個体を、配送ルート単位で扱うことができるデータ(表現型)にデコードする(ステップS303)。これによって、配送オーダが割り当てられた配送ルート単位で処理を実行できる。
【0076】
配送管理システム100は、演算DBを参照して、選択した個体の評価指標の値が算出済みであるか否かを判定する(ステップS304)。具体的には、配送管理システム100は、評価指標の値が関連づけられ、かつ、配送ルート及び配送オーダの組合せが同じである演算結果が演算DBに存在するか否かを判定する。
【0077】
選択した個体の評価指標の値が算出済みである場合、配送管理システム100は、演算DBから評価指標の値を取得し(ステップS305)、ステップS309に進む。
【0078】
選択した個体の評価指標の値が算出されていない場合、配送管理システム100は、ベース評価指標に基づいて配送ルート仮決め処理を実行する(ステップS306)。当該処理では、配送オーダが割り当てられた配送ルートに対して新たな配送ルートが生成される。配送オーダが割り当てられていない配送ルートはそのままである。配送ルート仮決め処理の詳細な方法については
図11を用いて説明する。
【0079】
配送管理システム100は、配送ルート仮決め処理の結果に基づいて、選択された個体の評価指標の値を算出する(ステップS307)。配送ルート仮決め処理によって、全ての配送ルートが確定しているため、評価指標の値を算出することができる。なお、配送ルートの確定は一時的なものである。
【0080】
配送管理システム100は、選択された個体と、評価指標の値とを対応づけた演算結果を演算DBに登録し(ステップS308)、その後、ステップS309に進む。
【0081】
ステップS309では、配送管理システム100は、全ての個体について処理が完了したか否かを判定する(ステップS309)。
【0082】
全ての個体について処理が完了していない場合、配送管理システム100は、ステップS301に戻る。全ての個体について処理が完了した場合、配送管理システム100は評価値算出処理を終了する。
【0083】
演算結果を演算DBに格納することによって、同一個体の評価指標の値の算出処理を省略することができる。これによって、計算コストを削減することができる。
【0084】
図11は、実施例1の配送管理システム100が実行する配送ルートの仮決め処理の一例を示すフローチャートである。
図12は、実施例1の配送管理システム100が生成する配送ルートの一例を示す図である。
【0085】
配送管理システム100は、配送オーダが割り当てられた配送ルートのループ処理を開始する(ステップS401)。具体的には、配送管理システム100は、配送オーダが割り当てられた配送ルートの中から一つの配送ルートを選択する。
【0086】
配送管理システム100は、配送ルートに含まれる、いずれかの拠点間のルートに、配送オーダに含まれる荷積みの拠点及び荷降ろしの拠点の組みを挿入することによって、新たな配送ルートを生成する(ステップS402)。
【0087】
例えば、
図12に示すように、配送順序が拠点B1、拠点B2、拠点B3、拠点B4、拠点B1である配送ルートに、荷積みの拠点B6及び荷降ろしの拠点B7の組みを挿入する場合を考える。この場合、三つ配送ルートが生成される。
【0088】
配送管理システム100は、新たな配送ルートについて、ベース評価指標の値を算出する(ステップS403)。なお、1世代目ではベース評価指標は選択されていないため、ユーザ等によって指定されたベース評価指標を用いる。
【0089】
配送管理システム100は、ベース評価指標の値に基づいて、新たな配送ルートの中から評価がよい配送ルートを選択する(ステップS404)。例えば、ベース評価指標の値が最小の配送ルートが選択される。
【0090】
配送管理システム100は、配送オーダが割り当てられた全ての配送ルートについて処理が完了したか否かを判定する(ステップS405)。
【0091】
配送オーダが割り当てられた全ての配送ルートについて処理が完了していない場合、配送管理システム100はステップS401に戻る。配送オーダが割り当てられた全ての配送ルートについて処理が完了した場合、配送管理システム100は、配送ルートの仮決め処理を終了し、ステップS307に進む。
【0092】
図11の方式では、新たな配送ルートの生成に必要な計算コストが低いという特徴がある。ただし、総移動距離が長い配送ルート、又は、実車率が低い配送ルートが生成される可能性がある。
【0093】
図13は、実施例1の配送管理システム100が実行する評価指標選択処理の一例を示すフローチャートである。
【0094】
配送管理システム100は、非優越ソートによって付与されたランクのループ処理を開始する(ステップS501)。具体的には、配送管理システム100は、一つのランクを選択する。ここでは、ランク「1」から順に選択されるものとする。
【0095】
配送管理システム100は、選択されたランクに属する個体に対して評価指標のループを開始する(ステップS502)。具体的には、配送管理システム100は、複数の評価指標の中から一つの評価指標を選択する。
【0096】
配送管理システム100は、選択された評価指標の値に基づいて、選択されたランクに属する個体をソートする(ステップS503)。例えば、評価指標が小さい順にソートされる。この場合、「1」が最もソート順位が高いことを示す。
【0097】
配送管理システム100は、ソート結果を演算DBに保存する(ステップS504)。具体的には、配送管理システム100は、選択された評価指標と、ソート順位とを、個体に関連付けて演算DBに保存する。
【0098】
配送管理システム100は、全て評価指標について処理が完了したか否かを判定する(ステップS505)。
【0099】
全て評価指標について処理が完了していない場合、配送管理システム100はステップS502に戻る。
【0100】
全ての評価指標について処理が完了した場合、配送管理システム100は、個体のループ処理を開始する(ステップS506)。具体的には、配送管理システム100は、選択されたランクに属する個体の中から一つの個体を選択する。
【0101】
配送管理システム100は、選択された個体の各評価指標のソート結果に基づいて、個体の多様性を確保できるベース評価指標を選択する(ステップS507)。具体的には、配送管理システム100は、ソート順位が最も高い評価指標を、ベース評価指標として選択する。すなわち、混雑度が低減する評価指標がベース評価指標として選択される。なお、ソート順位が高い評価指標が複数存在する場合、評価指標に優先順位を定義しておく方法が考えられる。
【0102】
配送管理システム100は、ベース評価指標の情報を個体と関連付けて演算DBに保存する(ステップS508)。
【0103】
配送管理システム100は、選択されたランクに属する全ての個体について処理が完了したか否かを判定する(ステップS509)。
【0104】
選択されたランクに属する全ての個体について処理が完了していない場合、配送管理システム100はステップS506に戻る。
【0105】
選択されたランクに属する全ての個体について処理が完了した場合、配送管理システム100は、全てのランクについて処理が完了したか否かを判定する(ステップS510)。
【0106】
全てのランクについて処理が完了していない場合、配送管理システム100はステップS501に戻る。全てのランクについて処理が完了した場合、配送管理システム100は評価指標選択処理を終了する。
【0107】
本発明では、配送管理システム100は、混雑度の低減が期待できる評価指標をベース評価指標として選択し、ベース評価指標に基づいて配送ルートの仮決めを行っている。これによって、効率的、かつ、高速な演算が可能となる。
【0108】
以上で説明したように、実施例1の配送管理システム100は、配送ルートを仮決めすることによって、配送ルートに対する配送オーダの割当てを決定し、その後、配送オーダが割り当てられた配送ルートについて配送順序を最適化する。したがって、配送順序を考慮して全ての配送ルートを再生成するより計算コストを大幅に削減できる。
【0109】
また、遺伝的操作において、親の個体のベース評価指標を子の個体に引き継ぐことによって、混雑度の低減か期待できるベース評価指標に基づいて、次の世代の配送ルートの仮決めを制御することができる。
実施例2のシステムの構成は実施例1と同一である。実施例2の配送管理システム100の機能構成は実施例1と同一である。実施例2の配送管理システム100が管理する情報のデータ構造は実施例1と同一である。また、実施例2の配送管理システム100が実行する処理の流れは実施例1と同一である。
配送管理システム100は、配送オーダが割り当てられた配送ルートのループ処理を開始する(ステップS601)。具体的には、配送管理システム100は、配送オーダが割り当てられた配送ルートの中から一つの配送ルートを選択する。
配送管理システム100は、選択された配送ルートに割り当てられた配送オーダについて、配送ルートの出発拠点と次の拠点とを結ぶルートに、配送オーダに含まれる荷積みの拠点及び荷降ろしの拠点の組みを挿入することによって、新たな配送ルートを生成する(ステップS602)。
配送管理システム100は、新たな配送ルートについて、ベース評価指標の値を算出する(ステップS603)。なお、1世代目ではベース評価指標は選択されていないため、ユーザ等によって指定されたベース評価指標を用いる。
配送管理システム100は、ベース評価指標の値に基づいて、新たな配送ルートの中から評価がよい配送ルートを選択する(ステップS604)。例えば、ベース評価指標の値が最小の配送ルートが選択される。
配送オーダが割り当てられた全ての配送ルートについて処理が完了していない場合、配送管理システム100はステップS601に戻る。配送オーダが割り当てられた全ての配送ルートについて処理が完了した場合、配送管理システム100は、配送ルートの仮決め処理を終了し、ステップS307に進む。
配送管理システム100は、配送オーダが割り当てられた配送ルートのループ処理を開始する(ステップS701)。具体的には、配送管理システム100は、配送オーダが割り当てられた配送ルートの中から一つの配送ルートを選択する。
配送管理システム100は、選択された配送ルートに割り当てられた配送オーダについて、配送ルートの出発拠点と次の拠点とを結ぶルートに、配送オーダに含まれる荷積みの拠点を挿入し、また、配送ルートの最終拠点と一つ前の拠点とを結ぶルートに、配送オーダに含まれる荷降ろしの拠点を挿入することによって、新たな配送ルートを生成する(ステップS702)。
配送管理システム100は、新たな配送ルートについて、ベース評価指標の値を算出する(ステップS703)。なお、1世代目ではベース評価指標は選択されていないため、ユーザ等によって指定されたベース評価指標を用いる。
配送管理システム100は、ベース評価指標の値に基づいて、新たな配送ルートの中から評価がよい配送ルートを選択する(ステップS704)。例えば、ベース評価指標の値が最小の配送ルートが選択される。
配送オーダが割り当てられた全ての配送ルートについて処理が完了していない場合、配送管理システム100はステップS701に戻る。配送オーダが割り当てられた全ての配送ルートについて処理が完了した場合、配送管理システム100は、配送ルートの仮決め処理を終了し、ステップS307に進む。
配送管理システム100は、配送ルートの仮決めの方法を提示し、ユーザが選択できるようにしてもよい。また、ベース評価指標に応じて配送ルートの仮決め方法を切り替えてもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。