(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022185898
(43)【公開日】2022-12-15
(54)【発明の名称】情報処理装置、情報処理方法、及び情報処理プログラム
(51)【国際特許分類】
G06Q 10/08 20120101AFI20221208BHJP
【FI】
G06Q10/08
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021093809
(22)【出願日】2021-06-03
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】伊東 佑人
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC51
(57)【要約】 (修正有)
【課題】配送計画問題における最適化対象の経路として適切な経路を生成する、情報処理装置、情報処理方法及び情報処理プログラムを提供する。
【解決手段】情報処理装置20は、配送計画問題において配送対象の荷物を配送する複数の経路を生成する経路生成部と、複数の経路を対象として配送計画問題に対する第1の最適解を求める演算部と、複数の経路を対象として得られた配送計画問題の線形緩和問題に対する第2の最適解の目的関数値と、第1の最適解の目的関数値との差分が、第1の閾値以上であるか否かを判定する解性能判定部と、差分が第1の閾値以上である場合に、経路の選択を示す変数値が第2の最適解において第2の閾値以下である経路を複数の経路から除去する経路除去部とを含む。経路生成部は、複数の経路のうちで除去されずに残った経路により配送される荷物を除いた配送対象の荷物に対して、経路生成部により新たな経路を生成する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
配送計画問題において配送対象の荷物を配送する複数の経路を生成する経路生成部と、
前記複数の経路を対象として前記配送計画問題に対する第1の最適解を求める演算部と、
前記複数の経路を対象として得られた前記配送計画問題の線形緩和問題に対する第2の最適解の目的関数値と、前記第1の最適解の目的関数値との差分が、第1の閾値以上であるか否かを判定する解性能判定部と、
前記差分が前記第1の閾値以上である場合に、経路の選択を示す変数値が前記第2の最適解において第2の閾値以下である経路を前記複数の経路から除去する経路除去部と
を含み、前記経路生成部は、前記複数の経路のうちで除去されずに残った経路により配送される荷物を除いた配送対象の荷物に対して、前記経路生成部により新たな経路を生成する、情報処理装置。
【請求項2】
前記経路生成部は、列生成法により前記複数の経路を生成する、請求項1記載の情報処理装置。
【請求項3】
前記新たな経路を含む複数の経路に対して前記演算部により第1の最適解を求める処理、前記解性能判定部により第2の最適解を求めると共に新たな差分が前記第1の閾値以上であるか否かを判定する処理、前記経路除去部により経路を除去する処理、及び前記経路生成部により更に新たな複数の経路を生成する処理を、前記新たな差分が前記第1の閾値以上である条件が満たされる間は繰り返し実行する、請求項1又は2記載の情報処理装置。
【請求項4】
前記差分又は前記新たな差分が前記第1の閾値より小さくなった場合、前記演算部は、過去に生成され除去されずに残った複数の経路を対象として、前記配送計画問題に対する最適解を求める、請求項1乃至3いずれか一項記載の情報処理装置。
【請求項5】
前記複数の経路のうちの全ての経路について前記変数値が前記第2の最適解において前記第2の閾値以下である場合、前記経路除去部は、前記変数値が最大である1つの経路のみを残し他の経路を削除する、請求項1記載の情報処理装置。
【請求項6】
前記第2の閾値は前記差分が大きいほど大きな値に動的に設定される、請求項1乃至5いずれか一項記載の情報処理装置。
【請求項7】
配送計画問題において配送対象の荷物を配送する複数の経路を生成し、
前記複数の経路を対象として前記配送計画問題に対する第1の最適解を求め、
前記複数の経路を対象として前記配送計画問題の線形緩和問題に対する第2の最適解を求め、
前記第1の最適解の目的関数値と前記第2の最適解の目的関数値との差分が第1の閾値以上である場合に、経路の選択を示す変数値が前記第2の最適解において第2の閾値以下である経路を前記複数の経路から除去し、
前記複数の経路のうちで除去されずに残った経路により配送される荷物を除いた配送対象の荷物に対して、新たな経路を生成する、
処理をコンピュータにより実行する、情報処理方法。
【請求項8】
配送計画問題において配送対象の荷物を配送する複数の経路を生成し、
前記複数の経路を対象として前記配送計画問題に対する第1の最適解を求め、
前記複数の経路を対象として前記配送計画問題の線形緩和問題に対する第2の最適解を求め、
前記第1の最適解の目的関数値と前記第2の最適解の目的関数値との差分が第1の閾値以上である場合に、経路の選択を示す変数値が前記第2の最適解において第2の閾値以下である経路を前記複数の経路から除去し、
前記複数の経路のうちで除去されずに残った経路により配送される荷物を除いた配送対象の荷物に対して、新たな経路を生成する、
処理をコンピュータに実行させる、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願開示は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【0002】
組み合わせ最適化問題の1つに配送計画問題がある。複数の運搬車が、拠点を出発点として顧客位置であるノードを訪れた後に拠点に戻る複数の経路により、拠点から各ノードに荷物を配送又は各ノードから拠点に荷物を配送する。問題を規定するデータとして、ノードの数、ノード間を運搬車で移動する所要時間、配送する荷物量(需要)、運搬車が各ノードを訪れられる時間帯、各運搬車の最大積載量、各運搬車を運行させたときにかかるコスト、等があり得る。これらのデータが与えられた時に、運搬車による運搬にかかるコストの和(即ち総運搬コスト)を最小化するように各運搬車の経路を求めることが、配送計画問題における最適解を求めことに相当する。
【0003】
配送計画問題において最適解を求める最適化処理は、組み合わせ最適化であり、実用的な時間で最適解を求めることは困難である。そこで配送計画問題を効率的に解くための手法として、全ての可能な経路を最適化処理の対象とするのではなく、配送のための経路として適切な経路を選択しておき、それら適切な経路の中から最適な経路の組みを最適化処理により選択する手法がある。配送経路として適切な経路を選択する際には、全ての可能な経路のうちで最適解を構成する可能性がある経路、即ち実際に使用される可能性がある経路、を優先的に選択することが好ましい。好ましくない経路を列挙したのでは、最適化により求めた解が、品質の低い解となってしまう。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-057050号公報
【特許文献2】特開2017-033378号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上を鑑みると、配送計画問題における最適化対象の経路として適切な経路を生成する手法が望まれる。
【課題を解決するための手段】
【0006】
情報処理装置は、配送計画問題において配送対象の荷物を配送する複数の経路を生成する経路生成部と、前記複数の経路を対象として前記配送計画問題に対する第1の最適解を求める演算部と、前記複数の経路を対象として得られた前記配送計画問題の線形緩和問題に対する第2の最適解の目的関数値と、前記第1の最適解の目的関数値との差分が、第1の閾値以上であるか否かを判定する解性能判定部と、前記差分が前記第1の閾値以上である場合に、経路の選択を示す変数値が前記第2の最適解において第2の閾値以下である経路を前記複数の経路から除去する経路除去部とを含み、前記経路生成部は、前記複数の経路のうちで除去されずに残った経路により配送される荷物を除いた配送対象の荷物に対して、前記経路生成部により新たな経路を生成する。
【発明の効果】
【0007】
少なくとも1つの実施例によれば、配送計画問題における最適化対象の経路として適切な経路を生成することができる。
【図面の簡単な説明】
【0008】
【
図1】配送計画問題の一例を模式的に示す図である。
【
図2】情報処理装置のハードウェア構成の一例を示す図である。
【
図3】情報処理装置の機能構成の一例を示す図である。
【
図4】情報処理装置が実行する経路生成方法の処理手順を示すフローチャートである。
【
図5】経路生成部が実行する経路生成処理の処理手順を示すフローチャートである。
【
図6】初期経路生成により生成された経路集合の一例を示す図である。
【
図7】経路R5が追加された経路集合の一例を示す図である。
【
図8】経路R6が追加された経路集合の一例を示す図である。
【
図9】経路R7が追加された経路集合の一例を示す図である。
【
図10】経路R8が追加された経路集合の一例を示す図である。
【
図11】経路R9が追加された経路集合の一例を示す図である。
【
図12】経路生成処理により生成された複数の経路の一例を示す図である。
【
図13】整数最適化問題の対象となる経路の部分集合として好ましい集合の一例を示す図である。
【
図14】経路生成処理により生成された複数の経路の一例を示す図である。
【
図15】経路生成処理により追加される経路の一例を示す図である。
【発明を実施するための形態】
【0009】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0010】
図1は、配送計画問題の一例を模式的に示す図である。
図1に示される配送計画問題では、拠点D及びノードN0乃至N11の12個のノードが規定されている。複数の運搬車が、拠点Dを出発点として1つ又は複数個のノードを訪れた後に拠点Dに戻る複数の経路により、拠点から各ノードに荷物を配送又は各ノードから拠点に荷物を配送する。
図1に示される例では、第1の運搬車が経路R1によりノードN0、N1、N4、及びN7に対する荷物の配送を行い、第2の運搬車が経路R2によりノードN2、N3、N5、及びN8に対する荷物の配送を行う。また更に、第3の運搬車が経路R3によりノードN6、N9、N10、及びN11に対する荷物の配送を行う。これらの3個の経路R1乃至R3が、目的関数値(運搬コスト)を最小化する最適化処理により求められた最適経路の組みであってよい。
【0011】
運搬コストとしては、例えば配送のために運搬車が移動した総移動距離であってよく、又は例えば移動距離等に関係無く一台の運搬車を使用することにより一台あたり固定のコストが発生してもよい。また拘束条件として、例えば運搬車毎に最大積載量が決められていてよく、更に例えばノード毎に訪問可能時間帯が決められていてよい。拘束条件はこれらの例に限られることなく、配送計画をたてるにあたり、考慮する必要がある任意の条件を設定してよい。
【0012】
図1に示されるように12個という比較的少ない数のノードを対象とした場合であっても、全ての可能な経路の個数は非常に大きな数となる。そのような大きな数の経路を対象として、最適化処理により最適な経路の組み合わせを短時間で求めることは難しい。そこで、全ての可能な経路(即ち全経路からなる集合)を最適化処理の対象とするのではなく、配送目的のために適切な経路として予め選択的に生成した比較的少ない数の経路(即ち適切な経路からなる部分集合)を最適化処理の対象とする。
【0013】
例えば、拠点Dを出発した後に、ノードN5、ノードN4、ノードN1、及びノードN2をこの順番に訪れて、その後拠点Dに戻るような経路は、運搬コストが総移動距離である場合には、使用される可能性が低い不適切な経路であると考えられる。また例えば、拠点Dを出発した後に、ノードN1に訪れて、その後直ぐに拠点Dに戻るような経路は、運搬コストとして一台あたり固定のコストが発生する場合には、使用される可能性が低い不適切な経路であると考えられる。このように、全ての可能な経路の中には使用される可能性が低い不適切な経路が含まれているので、そのような経路を可能な限り排除しながら、運搬コスト(目的関数値)をなるべく低くすることに寄与するような経路を選択することが好ましい。
【0014】
以下に説明する本願開示の情報処理装置及び情報処理方法では、配送計画問題における最適化対象となる部分集合を構成する経路として適切な経路を生成する。
【0015】
図2は、情報処理装置のハードウェア構成の一例を示す図である。
図2に示す情報処理装置は、CPU11、表示部12、入力部13、ROM14、RAM15、HDD16、ネットワークインターフェース17、可搬型記憶媒体用ドライブ18、及びメタヒューリスティック計算部19を含む。
【0016】
入力部13は、ユーザとのインターフェースを提供するものであり、情報処理装置を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。表示部12は、情報処理装置で処理された結果等をディスプレイ画面に表示すると共に、情報処理装置を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。ネットワークインターフェース17は、周辺装置との通信又は遠隔地との通信を行なうためのものである。
【0017】
図2に示される情報処理装置はコンピュータであり、情報処理方法は、情報処理装置が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可搬型記憶媒体用ドライブ18に装着可能な記憶媒体Mに記憶されており、記憶媒体Mから可搬型記憶媒体用ドライブ18を介して、RAM15或いはHDD16にロードされる。或いは、このコンピュータプログラムは、周辺装置又は遠隔地にある記憶媒体(図示せず)に記憶されており、この記憶媒体からネットワークインターフェース17を介して、RAM15或いはHDD16にロードされる。
【0018】
入力部13を介してユーザからプログラム実行指示があると、CPU11は、記憶媒体M、周辺装置、遠隔地記憶媒体、或いはHDD16からプログラムをRAM15にロードする。CPU11は、RAM15の空き記憶空間をワークエリアとして使用して、RAM15にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおROM14は、情報処理装置の基本動作を制御するための制御プログラムが格納されている。上記コンピュータプログラムを実行することにより、情報処理装置が、配送計画問題に対して適切な経路を生成する動作を実行する。
【0019】
メタヒューリスティック計算部19は、メタヒューリスティックアルゴリズムを実行するように専用に設計された専用ハードウェアであってよく、例えばシミュレーテッド・アニーリングによりイジング問題の解探索を実行する専用ハードウェアであってよい。但し専用のメタヒューリスティック計算部19を設けることなく、汎用計算用のプロセッサであるCPU11が、メタヒューリスティック計算部として機能することにより、メタヒューリスティックアルゴリズムを実行してもよい。メタヒューリスティックアルゴリズムとしては、シミュレーテッド・アニーリング、ランダムウォーク解探索アルゴリズム、遺伝的アルゴリズム、確率的進化手法、或いはタブーサーチ等であってよい。メタヒューリスティックアルゴリズムは、目的関数を最小化する解に近い解(近似解)を発見的に探索するアルゴリズムであってよい。
【0020】
上記コンピュータプログラムを実行することにより、情報処理装置が、配送計画問題における最適化対象の経路として適切な経路を生成する動作を実行する。情報処理装置は更に、生成された経路を対象として最適化処理を実行することにより、配送計画問題に対する最適解(厳密には準最適解(近似最適解))を求めてよい。後述するように、メタヒューリスティックアルゴリズムは、経路を生成する経路生成処理において用いられると共に、最終的に確定された経路を対象として実行する最適化処理においても用いられる。
【0021】
図3は、情報処理装置の機能構成の一例を示す図である。
図3に示す情報処理装置20は、経路生成部21、目的関数生成部22、演算部23、出力部24、解性能判定部25、及び経路除去部26を含む。経路生成部21、目的関数生成部22、出力部24、解性能判定部25、及び経路除去部26は、
図2に示すCPU11により実現されてよい。演算部23は、CPU11又はメタヒューリスティック計算部19により実現されてよい。
【0022】
なお各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、機能的な境界を示すものであり、プログラムモジュールの境界に対応したり、制御論理的な分離等に対応したりするとは限らない。また、ある1つの機能ブロックが別の機能ブロックと組み合わさり1つの機能ブロックとして動作してもよいし、ある1つの機能ブロックが複数の機能ブロックに分割されて各々が協働して動作してもよい。
【0023】
経路生成部21には、配送計画問題を規定するデータとして例えば、ノード数、運搬車によるノード間の移動所要時間、配送荷物量(需要)、運搬車により各ノードを訪問可能な時間帯、各運搬車の最大積載量、各運搬車による運搬コスト等のデータが入力されてよい。
図3に示される例では、運搬車によるノード間の移動所要時間を示すデータ31、運搬元(拠点)から運搬先(ノード)に運ぶ必要のある荷物量を示すデータ32、各ノードを訪問可能な時間帯を示すデータ33が入力されている。
【0024】
経路生成部21は、配送計画問題を規定する入力データに基づいて、配送計画問題において配送対象の荷物を配送する複数の経路R1乃至Rnを初期経路生成及び列生成法による経路生成処理により生成する。初期経路生成は任意の方法でよく、適切な経路であるか否かにはこだわらずに単純なルールにより、拘束条件を満たすような経路を生成すればよい。列生成法は、配送計画問題を線形緩和して得られる線形緩和問題の双対問題を解くことにより得られた情報に基づいて、双対問題の目的関数値(配送計画問題の目的関数の近似値)が小さくなるような経路を追加していく方法である。初期経路生成及び列生成法については後程より詳しく説明する。経路生成部21が生成する各経路Rr(r=1~n)を規定するデータは、当該経路において訪問する1つ又は複数のノード、拠点を出発して拠点に戻るまでのノード訪問順、及び拠点から各ノードに運搬する荷物量、を示すデータを含んでよい。
【0025】
目的関数生成部22は、経路生成部21が生成した経路R1乃至Rnを対象として、配送計画問題を規定する入力データに基づいて、配送計画問題で最小化すべき目的関数及び拘束条件を生成する。目的関数及び拘束条件は例えば下記の式により規定されてよい。
【0026】
【0027】
【数2】
式(1)及び式(2)において、Rは経路R1乃至Rnを要素とする集合であり、総和記号Σは集合Rに属する全ての経路に対する和である。
【0028】
式(1)において、cr(r=1~n)は経路Rrに関する運搬コストであり、経路Rrに関するデータ、運搬車によるノード間の移動所要時間を示す入力データ31、及び各経路Rrの訪問先及び訪問順を示すデータに基づいて生成されてよい。xrは経路Rrの選択を示す変数(即ち当該経路を使用経路として選択するか否かを示す変数)であり、経路を選択する場合には値が1であり、選択しない場合には値が0である。式(1)は目的関数であり、当該目的関数の値が、選択された全経路にかかる運搬コストの総和を示す。
【0029】
式(2)において、変数Diは、ノードNi(i=0~m)での需要(ノードNiに運搬する必要がある荷物量)であり、運搬元から運搬先に運ぶ必要のある荷物量を示す入力データ32に基づいて生成されてよい。変数Sr,iは経路RrによりノードNiに供給する荷物量であり、経路Rrに関するデータに基づいて生成されてよい。式(2)は各ノードNi(i=0~m)に対して規定される荷物の需要及び供給に関する拘束条件であり、当該ノードについて供給が需要以上であることを示す。
【0030】
演算部23は、経路生成部21の生成した複数の経路R1乃至Rnを対象として配送計画問題に対する第1の最適解を求める。配送計画問題においては、式(2)に規定される拘束条件を満たしながら、式(1)に規定される目的関数値を最小化するような経路の組みを求めることが、最適解(準最適解)を求めることに相当する。この際、演算部23は、式(2)の左辺を右辺に移項して得られる右辺の値(0以下であることが要求される値)に重み係数を掛け、当該重み係数を掛けた値を式(1)に加算することに得られる評価値を最小化するように、最適化処理を実行してよい。演算部23は、評価値を最小化するような経路の組みをメタヒューリスティックな手法により求めてよい。
【0031】
メタヒューリスティックな手法においては、0又は1の値を有するn個の変数xrからなるビット列(x1,x2,・・・,xn)を各時点における状態として考えて、評価値が確率的に小さくなっていくよう状態遷移させていけばよい。この際、重み係数を十分に大きな値とすることにより、拘束条件が必ず満たされるような経路の組みを求めることができる。代替的に、メタヒューリスティックな手法により式(1)に規定される目的関数値が確率的に小さくなっていくよう状態遷移させていき、次の状態として常に式(2)の拘束条件を満たすような状態を選択するようにしてもよい。
【0032】
式(2)では、拠点からノードへの荷物運搬しか考慮していない。ノードから拠点への荷物運搬を考慮する場合には、各ノードから拠点へ運搬が必要な荷物量を示す変数と、経路毎に各ノードから拠点に運搬される荷物量を示す変数とを規定して、式(2)と同様な拘束条件を示す式を生成すればよい。また式(2)に示す拘束条件では、各ノードを訪問可能な時間帯を示す入力データ33により課される制約が、明示的には反映されていない。訪問可能な時間帯についての制約を満たすようにするためには、例えば、経路生成部21が経路を生成する際に、訪問可能な時間帯にのみノードを訪問するような経路を生成するようにすればよい。配送計画問題において課されるその他の制約が更にあれば、それら制約に関する拘束条件を追加するか、或いは当該制約を満たすように経路を生成する等のやり方により、当該制約を考慮するようにすればよい。
【0033】
演算部23が生成する第1の最適解は、0又は1の値を有するn個の変数値からなるビット列(x1,x2,・・・,xn)により表現されてよい。出力部24は、経路生成部21により生成された経路を示すデータのうちで、第1の最適解のビット列により示される選択経路(値が1である経路)に関するデータを抽出することにより、最適解として選択された経路のデータを出力する。この最適解として選択された経路のデータは解性能判定部25に供給される。
【0034】
解性能判定部25は、上記経路のデータに基づいて、第1の最適解の目的関数値(総運搬コスト)を求めてよい。解性能判定部25は更に、経路生成部21の生成した複数の経路R1乃至Rnを対象として得られた配送計画問題の線形緩和問題に対する第2の最適解の目的関数値と、第1の最適解の目的関数値との差分が、第1の閾値以上であるか否かを判定する。ここで言う目的関数値は、例えば式(1)及び式(2)により規定される配送計画問題の場合、式(1)に規定される運搬コスト値である。なお第2の最適解の目的関数値は、解性能判定部25が線形緩和問題を解くことにより求めてもよいし、経路生成部21が線形緩和問題を解くことにより求め、解性能判定部25に供給してもよい。
【0035】
なお本願において、ある値と閾値との大小関係に基づいてYES/NOの判断をする場合、等号が成立する条件をYES側に含めるか或いはNO側に含めるかは問題ではない。即ち、ある値と閾値との大小関係に基づく判断において、「ある値が閾値以上である場合」との表現は「ある値が閾値より大きい場合」との表現と同等であると解釈してよい。「以上」という用語を判断基準として用いたことにより、「より大きい」との判断基準とは異なることを意図しているのではなく、「以上」を「より大きい」に読み替えてもよい。「以下」及び「より小さい」についても同様である。
【0036】
配送計画問題を規定する変数xrは0又は1の値をとる2値変数であり、配送計画問題は整数計画問題に相当する。上記の線形緩和問題とは、変数xrのとり得る値を整数に限定することなく、変数xrのとり得る値として0以上の実数値であることを許した問題である。変数xrの値域が緩和された以外、拘束条件等のその他の条件については、線形緩和問題と元の配送計画問題とで同一である。配送計画問題の線形緩和問題は、線形計画問題であり、単体法又は内点法等により線形計画問題を解く線形計画ソルバー等を用いて、線形計画問題に対する最適解を求めることができる。線形緩和問題については、後程より詳しく説明する。
【0037】
経路除去部26は、上記差分が上記第1の閾値以上である場合に、経路の選択を示す変数値xrが第2の最適解において第2の閾値以下である経路を、経路生成部21の生成した複数の経路R1乃至Rnから除去する。経路生成部21が最初に生成した複数の経路R1乃至Rnには、十分に高品質な準最適解では使用される可能性が低い不適切な経路が多く含まれている可能性がある。この場合、経路R1乃至Rnを対象として演算部23が求めた第1の最適解は、十分に高品質な準最適解ではない(真の最適解から離れた解である)可能性がある。第1の最適解の目的関数値と第2の最適解の目的関数値との差分が第1の閾値以上である場合には、第1の最適解の品質が十分には高くないと判断できるので、経路除去部26により、変数値xrが第2の最適解において第2の閾値以下である経路を除去する。これにより、経路生成部21が最初に生成した複数の経路R1乃至Rnのうちで、高品質な準最適解において選択される可能性が低い経路を削除し、高品質な準最適解において選択される可能性がある経路を残す。
【0038】
配送計画問題とその線形緩和問題とでは変数の値域が異なるので、最適解における目的関数値は通常互いに異なり、配送計画問題の第1の最適解に対応する目的関数値は、線形緩和問題の第2の最適解に対応する目的関数値以上の値となる。経路生成部21により複数の経路R1乃至Rnを生成する際には、後述するように列生成法において、配送計画問題の線形緩和問題の目的関数値を配送計画問題の目的関数値に対する近似値として用い、この近似値が小さくなるようにして経路を生成している。第1の最適解と第2の最適解とで目的関数値が大きく異なる場合、変数値xrが0又は1の値をとることにより達成できる最適解(本来欲しい整数計画問題の最適解)から大きく異なる線形計画問題の最適解に基づいて、経路R1乃至Rnが生成されていることになる。従って、このような場合には、複数の経路R1乃至Rnから不適切な経路を除去することにより、配送計画問題における最適化処理の対象となる経路として適切な経路のみを残すようにする。
【0039】
またこの場合、変数値xrが第2の最適解において第2の閾値以下である経路、例えば変数値xrが0.7である経路については、配送計画問題において選択されて値が1.0となったとき、運搬コストが0.3cr増えてしまうことになる。一方、例えば変数値xrが0.99である経路については、配送計画問題において選択されて値が1.0となったとき、運搬コストが0.01cr増えるだけである。従って、変数値xrが0.7である経路は、変数値xrが0.99である経路と比較して、配送計画問題の最適解を構成する経路としてより不適切であり、また最適解を構成する経路として選択される可能性がより低いと考えられる。従って例えば第2の閾値を0.9に設定し、変数値xrが第2の最適解において0.9以下である経路を全て削除することにより、配送計画問題における最適解の経路として適切な経路、即ち最適解として選択される可能性がより高い経路のみを残すことが可能となる。
【0040】
別の見方をすれば、変数値xrが例えば0.7等の低い値である経路は、他の経路と荷物の供給に重複があり、0.7等の重み付けをして他の経路と組み合わせて用いられることにより線形緩和問題の最適解を構成している。このような経路は、0.7等の重み付けをして始めて最適解を構成可能な経路であり、変数値xrが0又は1の値をとることにより達成できる最適解(本来欲しい整数計画問題の最適解)を構成する経路としては適切ではない。従って、変数値xrが第2の最適解において例えば0.9以下である経路を全て削除することにより、配送計画問題における最適解の経路として不適切な経路を削除することができる。
【0041】
経路生成部21は、複数の経路R1乃至Rnのうちで除去されずに残った1つ又は複数の経路により配送される荷物を除いた配送対象の荷物に対して、前述と同様の経路生成処理により新たな複数の経路を生成する。即ち、複数の経路R1乃至Rnのうちで除去されずに残った経路を、最適化処理の対象となる経路の部分集合に最終的に含まれる経路として確定し、確定した経路により運搬される荷物を配送対象の荷物から除去する。その結果残った配送対象の荷物を対象として、経路生成部21が、新たな複数の経路を初期経路生成及び列生成法による経路生成処理により生成する。
【0042】
このようにして生成した新たな複数の経路と前述の既に確定した経路とを要素として含む経路の集合は、最初に経路生成部21が生成した複数の経路R1乃至Rnよりは、最適化対象となる部分集合としてより好ましい経路の集合となっていることが期待できる。何故なら、所定の経路生成処理により生成した複数の経路から適切な経路を残しそれ以外の不適切な経路を全て削除した後、同一の経路生成処理により新たに生成した複数の経路の中には、最初の場合と同様に適切な経路が含まれていることを期待できるからである。即ち、新たな複数の経路と既に確定した経路とを含む経路の集合には、既に確定した適切な経路と、後に別に生成された新しい適切な経路とが含まれている可能性がある。このような経路の集合は、確定した適切な経路以外は全て不適切な経路から構成されていた最初の経路の集合(経路R1乃至Rn)よりは好ましい経路の集合となっていることが期待できる。
【0043】
以上のようにして、
図3に示す情報処理装置20は、配送計画問題における最適化対象となる部分集合を構成する経路として適切な経路を生成することができる。また更に、前述の演算部23による求解処理、解性能判定部25による差分に基づく判定処理、経路除去部26による経路除去処理、経路生成部21による新たな経路生成処理を、差分が第1の閾値以上である条件が満たされる間は繰り返し実行してよい。このように経路を除去して新たに経路を生成する処理を、十分に高い品質の最適解が得られるまで繰り返し計算することにより、配送計画問題における最適化対象となる部分集合として十分に高品質な部分集合を得ることができる。
【0044】
図3に示される情報処理装置20において、演算部23は、前述の差分が第1の閾値より小さくなった場合、過去に生成され除去されずに残った複数の経路を対象として、配送計画問題に対する最適解を求めてよい。即ち情報処理装置20は、配送計画問題における最適化対象となる部分集合として十分に高品質な部分集合を求めた後、当該部分集合に属する経路を対象としてメタヒューリスティックな手法に基づく最適化処理を実行し、配送計画問題に対する最適解を求めてよい。これにより、情報処理装置20は十分に高品質な最適解(準最適解)を求めることができる。
【0045】
なお経路除去部26における経路除去処理の際に、複数の経路のうちの全ての経路について変数値xrが第2の最適解において第2の閾値以下である場合、経路除去部26は、変数値xrが最大である1つの経路のみを残し他の経路を削除してよい。これにより、繰り返し計算において、経路の品質が向上せずに同様の品質の経路を生成し続けることを避けることができる。
【0046】
図4は、情報処理装置20が実行する経路生成方法の処理手順を示すフローチャートである。なお
図4及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Aステップの次にBステップが実行されるように本願に説明されていたとしても、Aステップの次にBステップを実行することが可能なだけでなく、Bステップの次にAステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Bステップの次にAステップが実行されてもよいことは自明である。Aステップの次にBステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【0047】
図4のステップS1において、情報処理装置20は、配送計画問題において運搬必要とされている全ての荷物を「残りの荷物」に設定すると共に、ループ数を示す変数を0に初期化する。
【0048】
ステップS2において、情報処理装置20の経路生成部21は、初期経路生成及び列生成法による経路生成処理により、残りの荷物を運搬する経路を生成する。ここで初期経路生成は任意の方法でよく、適切な経路であるか否かにはこだわらずに単純なルールにより、拘束条件を満たし且つ需要を満たす経路を生成すればよい。列生成法は、配送計画問題を線形緩和して得られる線形緩和問題の双対問題を解くことにより得られた情報に基づいて、双対問題の目的関数値(配送計画問題の目的関数の近似値)が小さくなるような経路を追加していく方法である。以下に経路生成部21による経路生成処理について詳細を説明する。
【0049】
図5は、経路生成部21が実行する経路生成処理の処理手順を示すフローチャートである。ステップS11において、経路生成部21は、任意の初期経路生成方法により、配送計画問題の拘束条件を満たし且つ需要を満たす経路の組みを生成する。初期経路生成の時点において、運搬コストは悪くてもよく、運搬コストを無視して経路を生成してよい。一例として、初期経路生成において、ノード数と同数のルートを用意し、各ルートにより1つのノードのみを訪れ、それぞれのルートが互いに異なるルートを訪れるようにして、ルートを生成してよい。
【0050】
ステップS12において、経路生成部21は、既に生成された経路の集合から総運搬コスト(例えば前述の式(1)に規定される運搬コスト)を最小化する経路の組みを選ぶ問題を線形緩和した線形緩和問題の双対問題を解く。これにより、線形緩和問題の最適値(総運搬コストの近似値)及び次に生成される経路がどのノードを訪れれば総運搬コストの近似値を下げられるかの指標を生成する。ステップS13において、経路生成部21は、得られた指標に基づいて、総運搬コストの近似値を下げるように機能し且つ問題の条件を満たす経路を求める。ステップS14において、そのような経路が存在するか否かを判定する。そのような経路が存在しない場合には、ステップS16において、経路生成処理を終了する。そのような経路が存在する場合には、ステップS15において、求めた経路を既に生成された経路の集合に追加する。その後処理はステップS12に戻り、以降の処理を繰り返す。
【0051】
以上説明したステップS12乃至S15に記載の処理が列生成法に相当する。以下において、簡略化した具体例を用いて、列生成法についてより詳細に説明する。この具体例においては、6個のノードN0乃至N5が存在する。ノードN0、N1、N2、N3、N4、及びN5に拠点から運搬する必要がある荷物の量は、それぞれD0(5kg)、D1(4kg)、D2(4kg)、D3(3kg)、D4(2kg)、及びD5(2kg)である。また各運搬車の最大積載可能量は10kgであり、各運搬車のコストは1(即ち前述の式(1)においてcr=1)である。また更に、1つのノードに対して荷物を分割して運ぶことはできないものとする。即ち、例えばノードN0に荷物を運ぶ運搬車は、5kgの荷物全てを運ぶものとする。
【0052】
図6は、初期経路生成により生成された経路集合の一例を示す図である。この例では、
図5に示されるステップS11における初期経路生成により、
図6の表に示されるような5つの経路R0乃至R4が生成されている。表において、ある経路に対応する行とあるノードに対応する列との交差位置において1が記載されている場合、当該経路により当該ノードに荷物を運搬する。例えば経路R0は、ノードN0とノードN1とに荷物を運搬する。なお表に示されているa
i,r(i=0~5,r=0~4)は、経路RrによりノードNiに荷物を供給する場合に1になり、経路RrによりノードNiに荷物を供給しない場合に0になる変数である。
【0053】
図6に示される経路R0乃至R4が初期経路生成により生成されると、
図5に示されるステップS12において、配送計画問題の線形緩和問題の双対問題を解く。ここで上記の配送計画問題は以下の式により規定される。
【0054】
【0055】
【数4】
但しここで具体例として用いている配送計画問題において全ての経路についてc
r=1である。また配送計画問題において変数x
rの値は0又は1である。式(4)に規定される拘束条件を6個のノードNi(i=0~5)について満たしながら、式(3)に規定される目的関数を最小化するような0又は1の値をとる変数x
rを求めることが、配送計画問題において最適解を求めることに相当する。一方、この配送計画問題を線形緩和した線形緩和問題においては、上記式(3)及び式(4)に現れる変数x
rの値が0以上の実数値であるとする。式(4)に規定される拘束条件を満たしながら、式(3)に規定される目的関数を最小化するような0以上の値をとる変数x
rを求めることが、配送計画問題の線形緩和問題において最適解を求めることに相当する。
【0056】
上記線形緩和問題の双対問題は以下の式により規定される。
【0057】
【0058】
【数6】
但しここでは全ての経路についてc
r=1である。y
i(i=0~5)は0以上の実数値を有する変数である。双対問題は、各r(r=0~4)について式(6)を満たす条件下で、式(5)の値を最大化するような変数y
iを求めることに相当する。
【0059】
上記変数yiは、式(4)に示される6個の制約式(6個のノードNiに対応する制約式)にそれぞれ重みを掛けて加算することにより合成して合成制約式を作成したときに、6個の制約式にそれぞれ掛けられる重みに相当する。式(6)は、各経路のコストcrに関連し、合成制約式を満たす条件下で元の目的関数(式(3)に規定される目的関数)を最小化する際に、有限な最適解が存在する(即ち問題が有界である)条件に相当する。また式(5)を最大化することは、式(3)に規定される目的関数を最小化する際に最もきつい合成制約式を与える重みを求めることに相当する。言い換えれば、線形緩和問題の双対問題とは、線形緩和問題の最適解を構成する際に、線形緩和問題の各制約式をどの程度の重みで評価すればよいのかに答える問題に相当する。線形緩和問題の最適解の目的関数値(式(3)の値)と双対問題の最適解の目的関数値(式(5)の値)とは互いに等しくなる。
【0060】
図6に示される5個の経路R0乃至R4に対して、式(5)及び式(6)で規定される双対問題に対する最適解を求めると、(y
0,y
1,y
2,y
3,y
4,y
5)=(1,0,0,0,1,1)となる。このときの最適値は3である。このような最適解は、単体法又は内点法等により線形計画問題を解く線形計画ソルバー等により求めることができる。こうして求めた双対問題に対する最適解(y
0,y
1,y
2,y
3,y
4,y
5)=(1,0,0,0,1,1)を、双対問題の最適値(総運搬コストの近似値)を下げる指標として用いることができる。
【0061】
図5に示されるステップS13において、経路生成部21は、上記指標に基づいて、総運搬コストの近似値を下げるように機能し且つ問題の条件を満たす経路R5を求める。具体的には、下記の式(8)の条件を満たすように下記の式(7)の目的関数値を最大化するような変数a
i,5を求めることにより、経路R5の候補を求める。
【0062】
【0063】
【数8】
ここで式(7)に現れるy
i(i=0~5)は、双対問題の最適解(y
0,y
1,y
2,y
3,y
4,y
5)=(1,0,0,0,1,1)に等しいが、式(7)においては変数ではなく定数として扱われる。式(8)は、1つの運搬車の最大積載可能量は10kgであるという拘束条件に相当する。式(7)及び式(8)で規定される線形計画問題を解くと、最適解として(a
0,5,a
1,5,a
2,5,a
3,5,a
4,5,a
5,5)=(1,0,0,0,1,1)が得られる。
【0064】
上記最適解を求めることは、新たに追加する経路R5の候補として、ノードN0、ノード4、及びノードN5の3箇所に荷物を運搬する経路が求められたことに相当する。この経路R5の候補は式(7)を最大化することにより求められるため、経路R5の候補を求めることは、双対問題の最適解が経路R5について式(6)の拘束条件を満たさなくなるような可能性が高い経路を求めることに相当する。この経路R5の候補が実際に式(6)の拘束条件を満たさなくなる経路であれば、
図5に示されるステップS15において、当該候補を新たな経路R5として追加すればよい。これにより、双対問題の前述の最適解(y
0,y
1,y
2,y
3,y
4,y
5)=(1,0,0,0,1,1)は、経路R5に対して式(6)で規定される新たな拘束条件を満たさないような変数y
iの組みとなり、最適解を構成する変数の組ではなくなる。従って、経路R5を新たに追加した後の経路集合に対して双対問題を解いたときには、最大化すべき目的関数値(式(5)の値)の最適値は、前回よりも厳しい拘束条件により制限され、前回の最適値よりも小さくなる。前述のように双対問題の目的関数の最適値は元の線形緩和問題の目的関数の最適値と等しくなるので、経路R5を追加することにより、線形緩和問題の最適値(総運搬コストの近似値)を下げることができる。
【0065】
経路R5の候補が実際に式(6)の拘束条件を満たさなくなるか否かは、crとΣa
1,5y
iとの大小関係を判定すればよい。c
r<Σa
1,5y
iである場合、候補を経路R5として追加することにより、式(6)の拘束条件を満たさなくなるので、線形緩和問題の最適値を下げることができる。c
r≧Σa
1,5y
iである場合、候補を経路R5として追加しても、式(6)の拘束条件は満たされてしまう。従ってc
r≧Σa
1,5y
iである場合には、
図5に示されるステップS14において、所望の経路が存在しないと判定されて、経路生成処理が終了する。
【0066】
図7は、上記のようにして経路R5が追加された経路集合の一例を示す図である。
図7に示される6個の経路R0乃至R5に対して、式(5)及び式(6)で規定される双対問題に対する最適解を求めると、(y
0,y
1,y
2,y
3,y
4,y
5)=(1/3,2/3,2/3,0,1/3,1/3)となる。このときの最適値は2.33・・・である。
【0067】
式(7)及び式(8)において変数ai,5の代わりに変数ai,6を用いて線形計画問題を解くと、最適解として(a0,6,a1,6,a2,6,a3,6,a4,6,a5,6)=(0,1,1,0,1,0)が得られる。
【0068】
上記最適解を求めることは、新たに追加する経路R6の候補として、ノードN1、ノード2、及びノードN4の3箇所に荷物を運搬する経路が求められたことに相当する。c
r<Σa
1,6y
i(=2/3+2/3+1/3)であるので、
図5に示されるステップS15において、当該候補を新たな経路R6として経路の集合に追加する。これにより、経路R6を新たに追加した後の経路集合に対して双対問題を解いたときには、最大化すべき目的関数値(式(5)の値)の最適値は、前回よりも厳しい拘束条件により制限され、前回の最適値よりも小さくなる。従って、経路R6を追加することにより、線形緩和問題の最適値(総運搬コストの近似値)を下げることができる。
【0069】
図8は、上記のようにして経路R6が追加された経路集合の一例を示す図である。
図8に示される7個の経路R0乃至R6に対して、式(5)及び式(6)で規定される双対問題に対する最適解を求めると、(y
0,y
1,y
2,y
3,y
4,y
5)=(0.6,0.4,0.4,0.4,0.2,0.2)となる。このときの最適値は2.2である。
【0070】
式(7)及び式(8)において変数a
i,5の代わりに変数a
i,7を用いて線形計画問題を解くと、最適解として(a
0,7,a
1,7,a
2,7,a
3,7,a
4,7,a
5,7)=(1,0,0,1,1,0)が得られる。c
r<Σa
1,7y
i(=0.6+0.4+0.2)であるので、
図5に示されるステップS15において、当該候補を新たな経路R7として経路の集合に追加する。
【0071】
図9は、上記のようにして経路R7が追加された経路集合の一例を示す図である。
図9に示される8個の経路R0乃至R7に対して、式(5)及び式(6)で規定される双対問題に対する最適解を求めると、(y
0,y
1,y
2,y
3,y
4,y
5)=(1/2,1/3,1/2,1/3,1/6,1/3)となる。このときの最適値は2.166・・・である。
【0072】
式(7)及び式(8)において変数a
i,5の代わりに変数a
i,8を用いて線形計画問題を解くと、最適解として(a
0,8,a
1,8,a
2,8,a
3,8,a
4,8,a
5,8)=(0,1,1,0,0,1)が得られる。c
r<Σa
1,8y
i(=1/3+1/2+1/3)であるので、
図5に示されるステップS15において、当該候補を新たな経路R8として経路の集合に追加する。
【0073】
図10は、上記のようにして経路R8が追加された経路集合の一例を示す図である。
図10に示される9個の経路R0乃至R8に対して、式(5)及び式(6)で規定される双対問題に対する最適解を求めると、(y
0,y
1,y
2,y
3,y
4,y
5)=(1/2,0,1/2,1/2,0,1/2)となる。このときの最適値は2である。
【0074】
式(7)及び式(8)において変数a
i,5の代わりに変数a
i,9を用いて線形計画問題を解くと、最適解として(a
0,9,a
1,9,a
2,9,a
3,9,a
4,9,a
5,9)=(1,0,0,1,0,1)が得られる。c
r<Σa
1,9y
i(=1/2+1/2+1/2)であるので、
図5に示されるステップS15において、当該候補を新たな経路R9として経路の集合に追加する。
【0075】
図11は、上記のようにして経路R9が追加された経路集合の一例を示す図である。
図11に示される10個の経路R0乃至R9に対して、式(5)及び式(6)で規定される双対問題に対する最適解を求めると、(y
0,y
1,y
2,y
3,y
4,y
5)=(1/2,1/2,1/4,1/4,1/4,1/4)となる。このときの最適値は2である。
【0076】
式(7)及び式(8)において変数a
i,5の代わりに変数a
i,10を用いて線形計画問題を解くと、最適解として(a
0,10,a
1,10,a
2,10,a
3,10,a
4,10,a
5,10)=(1,0,0,1,0,1)が得られる。c
r≧Σa
1,10y
i(=1/2+1/4+1/4)であるので、
図5に示されるステップS15において当該候補を新たな経路R10として経路の集合に追加しても、線形緩和問題の最適値(総運搬コストの近似値)が下がらないことが分かる。従って、
図5に示されるステップS16において所望の経路が存在しないと判定されて、経路生成処理が終了する。
【0077】
以上のようにして、
図5に示される経路生成処理により、経路生成部21が複数の経路を生成する。即ち、
図4に示される経路生成方法において、ステップS2における経路生成処理(経路生成部21による初期経路生成及び列生成法による経路生成)が終了する。
【0078】
このようにして生成された経路の集合は、全ての可能な経路を含む全体集合ではなく、全ての可能な経路のうちの一部の経路を含む部分集合である。この部分集合に十分な個数の適切な経路が含まれていない場合、配送計画問題を解くために当該部分集合に対して演算部23により最適な経路の組みを求める際に、十分に高品質な最適解が得られない虞がある。一例として、ノードが3個あり、各々のノードに対して荷物を1kgずつ拠点から運搬する必要がある状況を考える(即ち前述の式(2)においてDi=1)。各運搬車の最大積載可能量は1.5kgであり、各運搬車のコストは1(即ち前述の式(1)においてcr=1)であるとする。
【0079】
図12は、経路生成処理により生成された複数の経路の一例を示す図である。
図12に示される3個の経路が、
図4に示されるステップS2において生成されたとする。この場合、前述の式(1)及び(2)で規定される配送計画問題の線形緩和問題を解くと、最適解として(x
1,x
2,x
3)=(2/3,2/3,2/3)が得られ、最適値(総運搬コストの近似値)は2となる。一方、配送計画問題(整数最適化問題)を解くと、最適解として(x
1,x
2,x
3)=(1,1,1)が得られ、最適値(総運搬コスト)は3である。この例では、線形緩和問題の最適値2と配送計画問題の最適値3とでは大きな差が生じている。変数値x
rが2/3という低い値である経路は、他の経路と荷物の供給に重複があり、2/3の重み付けをして他の経路と組み合わせて用いられることにより線形緩和問題の最適解を構成している。このような経路は、2/3の重み付けをして始めて最適解を構成可能な経路であり、変数値x
rが0又は1の値をとることにより達成できる最適解(本来欲しい整数最適化問題の最適解)を構成する経路としては適切ではない。
【0080】
図4に示されるステップS2においては、列生成法により、配送計画問題の線形緩和問題における最適値を可能な限り小さくするようにして経路を生成している。従って、
図12に例示されるように1より小さな値の重み付けをして始めて最適解を構成可能な経路であり、本来欲しい整数最適化問題の最適解を構成する経路としては適切ではない経路が生成されている可能性がある。このような経路により、整数最適化問題の対象となる経路の部分集合が構成されることは好ましくない。
【0081】
図13は、整数最適化問題の対象となる経路の部分集合として好ましい集合の一例を示す図である。
図13に示される2個の経路が得られている場合、配送計画問題の線形緩和問題の最適値は2であり、配送計画問題(整数最適化問題)の最適値も2である。この場合、線形緩和問題の最適値2と配送計画問題の最適値2とでは差がなく、配送計画問題に対して求めた最適解は十分に高品質な解であることが予想される。また上記説明から分かるように、生成された経路の部分集合に対して求めた配送計画問題の線形緩和問題の最適値と配送計画問題の最適値との差分により、当該部分集合に含まれる経路が適切な経路である否かを判断できる。
【0082】
図4に戻り、ステップS2において経路生成部21が複数の経路を生成した後の処理について更に説明する。
【0083】
ステップS3において、情報処理装置20が、複数の経路に対して経路選択問題(整数最適化問題)を解くことにより総運搬コストを求めると共に、経路選択問題を線形緩和した問題の最適値(総運搬コストの近似値)と総運搬コストとのギャップを求める。具体的には、ステップS2において生成された複数の経路を対象として、演算部23が配送計画問題に対する第1の最適解を求め、解性能判定部25が配送計画問題の線形緩和問題に対する第2の最適解の目的関数値と、第1の最適解の目的関数値との差分を求める。
【0084】
ステップS4において、情報処理装置20の解性能判定部25は、ステップS3において求めたギャップが所定の閾値よりも小さいか否かを判断する。ギャップが所定の閾値よりも小さい場合、ステップS2において求めた経路の集合は十分な数の適切な経路を含んでいると判断できるので、処理はステップS8に進み、ステップS8において演算部23により最終的な最適化処理を実行する。ギャップが所定の閾値以上である場合、処理はステップS5に進む。
【0085】
ステップS5において、情報処理装置20の経路除去部26は、経路選択問題を線形緩和した問題の解において、経路を示す変数の値が閾値より小さい経路については経路の集合から削除し、削除されずに残った経路については選択することを確定する。この際、ステップS2において生成された全経路について変数値が閾値より小さい場合には、1つの経路(変数値が最大の経路)のみを残して、残りの経路を削除する。複数の経路が最大の変数値を有する場合には、そのうちの1つの経路をランダムに選択してよい。
【0086】
ステップS5において用いる閾値は、事前に設定された固定値であってよい。この閾値は、或いは、ステップS3において求めたギャップが大きいほど大きな値に動的に設定されてもよい。ギャップが大きいほど、ステップS2において生成された経路が適切でない度合いが高く、より厳しい条件で経路を削除する(より多くの経路を削除する)ことが好ましいからである。このように、ステップS2において生成された経路の集合の品質に応じて経路削除の基準を動的に変更することにより、より適切な経路を生成することができるようになる。
【0087】
ステップS6において、情報処理装置20は、選択が確定された経路により運ばれる荷物を現在の「残りの荷物」から削除し、削除後に残った荷物を「残りの荷物」に設定すると共に、ループ数を示す変数を1増加させる。
【0088】
ステップS7において、情報処理装置20は、残りの荷物がないか或いはループ数が上限に達したかを判定する。残りの荷物がない場合(即ち「残りの荷物」が空である場合)、或いはループ数を示す変数値が所定の上限回数に到達した場合、処理はステップS8に進む。それ以外の場合には処理はステップS2に戻り、「残りの荷物」に対する経路生成処理及び以降の処理を繰り返す。
【0089】
ステップS8において、情報処理装置20は、全ループで生成された経路を対象として経路選択問題(整数最適化問題)を解き、その解を最終出力とする。より具体的には、各ループにおいてステップS2で経路生成部21により生成されてステップS5で経路除去部26により除去されずに選択確定した経路と、最後のループにおいてステップS2で経路生成部21により生成された経路とを最適化処理の対象とする。これら経路に対して演算部23が配送計画問題の最適解を求め、出力部24が当該最適解を構成する経路に関するデータを出力し、この経路データが情報処理装置20から最終出力として出力される。
【0090】
以下に上記の
図4に示される経路生成処理により適切な経路集合が生成される様子を具体例に基づいて説明する。具体例として、ノードが3個あり、各々のノードに対して荷物を1kgずつ拠点から運搬する必要がある状況を考える(即ち前述の式(2)においてD
i=1)。各運搬車の最大積載可能量は1.5kgであり、各運搬車のコストは1(即ち前述の式(1)においてc
r=1)であるとする。またギャップに関する所定の閾値は1であり、経路を示す変数の値に関する閾値は0.9であるとする。
【0091】
図14は、経路生成処理により生成された複数の経路の一例を示す図である。
図14に示される3個の経路が、
図4に示される最初のループにおいてステップS2で生成されたとする。
【0092】
ステップS3において、演算部23が配送計画問題(整数最適問題)に対する第1の最適解を求め、解性能判定部25が配送計画問題の線形緩和問題に対する第2の最適解の目的関数値と、第1の最適解の目的関数値とのギャップ(差分)を求める。
図14に示される経路の例の場合、第1の最適解は経路R1乃至R3を含み、そのときの目的関数値(運搬コスト)は3である。また第2の最適解は経路R1乃至R3を含み、それぞれに対応する変数x
1乃至x
3の値が何れも1/3であり、そのときの目的関数値(運搬コストの近似値)は2である。
【0093】
ステップS4において、情報処理装置20の解性能判定部25は、ステップS3において求めたギャップが所定の閾値よりも小さいか否かを判断する。この例の場合、ギャップの大きさが1であり、閾値1よりも小さくないので、処理はステップS5に進む。
【0094】
ステップS5において、情報処理装置20の経路除去部26は、経路選択問題を線形緩和した問題の解において、経路を示す変数の値が閾値より小さい経路については経路の集合から削除し、削除されずに残った経路については選択することを確定する。この例の場合、経路を示す変数x1乃至x3の値が全て同一値1/3であり、閾値0.9よりも小さいので、1つの経路(例えば経路R1)をランダムに選択し、残りの経路R2及びR3を削除する。
【0095】
ステップS6において、選択が確定された経路R1により運ばれる荷物を現在の「残りの荷物」から削除することにより、「残りの荷物」はノードN1、N2、及びN3について0kg、0.5kg、及び1kgとなる。その後、処理は次のループを開始するためにステップS2に戻り、この次のループにおけるステップS2で、新たな経路R4が生成される。
【0096】
図15は、経路生成処理により追加された経路R4の一例を示す図である。次にステップS3において、配送計画問題(整数最適問題)に対する第1の最適解を求めると、第1の最適解は経路R4のみを含み、そのときの目的関数値(運搬コスト)は1である。また第2の最適解は経路R4のみを含み、それに対応する変数x
4の値が1であり、そのときの目的関数値(運搬コストの近似値)は1である。
【0097】
ステップS4において、ステップS3において求めたギャップが所定の閾値よりも小さいか否かを判断すると、ギャップの大きさが0であり閾値1よりも小さいので、処理はステップS8に進み、演算部23により最終的な最適化処理を実行する。この最適化処理では、各ループにおいて選択確定した経路(この例ではR1)と、最後のループにおいてステップS2で生成された経路(この例ではR4)とを最適化処理の対象として、演算部23が配送計画問題の最適解を求める。出力部24が、当該最適解(R1及びR4)を構成する経路に関するデータ(R1においてN1及びN2にそれぞれ1kg及び0.5kgを運搬し、R4においてN2及びN3にそれぞれ0.5kg及び1kgを運搬する)を出力する。この経路データが情報処理装置20から最終出力として出力される。
【0098】
なお上記の例では、複数の経路を対象として演算部23により配送計画問題に対する最適解を求めると、当該最適解には最適化対象となった複数の経路の全てが含まれる構成になっているが、これは説明の便宜上そのような簡単な例を用いたにすぎない。実際には、多数の経路を対象として配送計画問題に対する最適解を求めると、当該多数の経路のうちから選択された一部の経路のみが、当該最適解を構成する経路となる。
【0099】
以上、配送計画問題を対象として本発明の経路生成方法について説明したが、本発明の経路生成方法は、配送計画問題に限定されるものではない。本発明による経路生成方法は、ビンパッキング問題等の整数計画問題として定式化できる種々の問題にも同様に適用できる。例えば、ビンパッキングの場合であれば、配送計画問題における経路がビンパッキング問題における箱(ビンやコンテナ等)となる。配送計画問題の場合、ノード毎に1つの荷物を運ぶ条件において複数のノードに対する複数の荷物を運搬する1つの経路が、ビンパッキング問題の場合、複数の荷物を詰める1つの箱となる。このように、「配送計画問題」、「荷物」、「経路」、「ノード」等の用語を他の整数計画問題における他の用語に置き換えることにより規定できる問題についても、請求項に規定される権利範囲に均等な範囲に含まれることが意図される。
【0100】
なお本発明による経路生成方法により生成された複数の経路に対して最適解を求めた後に、当該最適解に対応する最適配送経路に従って配送を実施するような制御が
図2に示されるハードウェア(主にCPU)により適宜実行されてよい。例えば各運搬車に搭載する荷物を当該運搬車に自動で搭載するように制御動作を実行したり、各運搬車に搭載する荷物を当該運搬車に搭載するように各ドライバに対して自動で指示が発信されたりしてよい。また、各運搬車のナビゲーションシステムに対して当該運搬車の配送経路を無線により自動で設定したり、各ドライバが有する携帯機器に対して配送経路を無線により自動で送信したりしてよい。このように、人による判断を介することなく、又は/且つ人手を可能な限り排除する形で、最適配送経路による配送を実現するように各機器を制御してよい。
【0101】
上記のような制御動作を実行することにより、本発明の経路生成方法で生成した経路を対象として配送計画問題に対する高品質な解を生成するだけでなく、そのような高品質な解に基づく効率的な経路により低コストで荷物を配送できるという効果が得られる。即ち、人的資源の効率的利用、燃料消費量の削減、配送時間の短縮等の様々な効果を得ることができる。
【0102】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【0103】
11 CPU
12 表示部
13 入力部
14 ROM
15 RAM
16 HDD
17 ネットワークインターフェース
18 可搬型記憶媒体用ドライブ
19 メタヒューリスティック計算部
20 情報処理装置
21 経路生成部
22 目的関数生成部
23 演算部
24 出力部
25 解性能判定部
26 経路除去部