(57)【要約】【課題】  車両調達期間における各日の必要な車両数の情報を入力するという簡単な操作を行なうだけで、格別な経験を必要とせずとも、契約タイプと契約始期日、更には、それらの契約数を自動決定する。【解決手段】  設定された車両調達計画期間に含まれる日数をＮとしたとき、契約タイプと契約始期日から契約日数分で示される区間を“１”、当該区間以外を“０”とするＮ個のデータで構成される行データを、契約タイプ及び契約始期日の組みあせ分だけ生成し、Ｍ行Ｎ列の行列Ａを生成する（Ｓ４）。そして、行列Ａの各行の契約タイプ別の契約金を示すＭ行１列の行列Ｃを生成する（Ｓ５）。また、Ｎ日の各日の必要車両台数を示す１行Ｎ列の行列Ｚを生成する。そして、最小化目標：Ｃt×Ｂ、制約条件：Ｂt×Ａ≧Ｚ、並びに、行列Ｂの要素∈ 非負整数、を数理計画モデルとし、Ｍ行１列とする行列Ｂを算出する（Ｓ７）。そして、算出された行列Ｂの各要素を、行列Ａの第ｉ行の契約タイプ及び契約始期日の契約数として出力する（Ｓ８）。【選択図】  図８
2008158579.tif 000002
【特許請求の範囲】
【請求項１】
要求された車両調達期間の各日毎の、荷物の搬送に必要な車両の調達計画を行なう情報処理装置であって、
互いに異なる契約日数の契約タイプを示す情報と各契約タイプ毎の契約金額を示す情報を記憶する記憶手段と、
各日の搬送に必要な車両台数を入力する入力手段と、
車両調達計画期間を設定する期間設定手段と、
該期間設定手段で設定された車両調達計画期間に含まれる日数をＮとしたとき、契約始期日から契約日数分で示される区間を“１”、当該区間以外を“０”とするＮ個のデータで構成される行データを、契約タイプ及び契約始期日の組み合わせ数Ｍだけ生成し、Ｍ行Ｎ列の行列Ａを生成する第１の行列生成手段と、
前記行列Ａの各行の契約タイプ別の契約金を示す要素をＣ1,Ｃ2,…ＣMとするＭ行１列の行列Ｃを生成する第２の行列生成手段と、
前記入力手段で入力された前記Ｎ日の各日の必要車両台数を示す要素をＺ1,Ｚ2,…ＺNとする１行Ｎ列の行列Ｚを生成する第３の行列生成手段と、
最小化目標：Ｃt×Ｂ
制約条件：Ｂt×Ａ≧Ｚ
行列Ｂの要素Ｘi(1≦i≦Ｎ）∈ 非負整数
を数理計画モデルとし、Ｍ行１列とする前記行列Ｂを算出する演算手段と、
当該演算手段で算出された行列Ｂの要素Ｘiを、行列Ａの第ｉ行の契約タイプにおける契約始期日の契約数として出力する出力手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記出力手段は、
前記車両調達計画期間を示す領域に対し、前記行列Ｂの要素Ｘiのうち、非ゼロとなった各契約タイプと該当する契約始期日から契約日数分で表わされる相対位置に棒グラフを表示する表示手段を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示手段は、更に、前記各棒グラフには該当する行列Ｂの要素Ｘiで示される契約数を表示することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
更に、前記期間設定手段で設定された車両調達計画期間内の必要車両台数、及び、前記演算手段で求めた前記行列Ｂの各要素の値を示す情報を蓄積記憶する蓄積記憶手段を備え、
前記入力手段は、前記蓄積記憶手段に蓄積された情報が示す過去の必要車両台数から、設定された車両調達計画期間内における各日の必要車両台数をデフォルト値として入力することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
更に、各日に走向した車両実績台数を入力する第２の入力手段を有し、
前記蓄積記憶手段は、更に前記車両実績台数を蓄積記憶し、
前記入力手段は、各日の搬送に必要な車両台数として前記蓄積記憶手段に蓄積された過去の各日の車両実績台数から予測された、設定された車両調達計画期間内における各日の必要車両台数をデフォルトとして入力することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
更に、前記記憶手段は、契約日数と当該契約日数以内であって最大稼動日数が定義された契約タイプを示す情報を記憶し、
最大稼動日数が設定された契約タイプの契約日数をＮ、最大稼動日数をＮmax（Ｎmax≦Ｎ）、契約金額をＰ、契約数をＱ、前記最大稼動日数が設定された契約タイプの契約数Ｑにおける各日の稼動車両数を示す要素をＲ1,Ｒ2、…ＲNを有する行列をＲとしたとき、
前記演算手段は、
最小化目標：Ｃt×Ｂ＋Ｐ×Ｑ
制約条件：Ｂt×Ａ＋Ｒ≧Ｚ
ΣＲi≦Ｎmax×Ｑ
Ｒi≦Ｑ
行列Ｂ、Ｒの要素及びＱ∈ 非負整数
を数理計画モデルとし、Ｍ行１列とする前記行列Ｂを算出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
互いに異なる契約日数の契約タイプを示す情報と各契約タイプ毎の契約金額を示す情報を記憶する記憶手段を備え、要求された車両調達期間の各日毎の、荷物の搬送に必要な車両の調達計画を行なう情報処理装置の制御方法であって、
入力手段が、各日の搬送に必要な車両台数を入力する入力工程と、
期間設定手段が、車両調達計画期間を設定する期間設定工程と、
第１の行列生成手段が、前記期間設定工程で設定された車両調達計画期間に含まれる日数をＮとしたとき、契約始期日から契約日数分で示される区間を“１”、当該区間以外を“０”とするＮ個のデータで構成される行データを、契約タイプ及び契約始期日の組み合わせ数Ｍだけ生成し、Ｍ行Ｎ列の行列Ａを生成する第１の行列生成工程と、
第２の行列生成手段が、前記行列Ａの各行の契約タイプ別の契約金を示す要素をＣ1,Ｃ2,…ＣMとするＭ行１列の行列Ｃを生成する第２の行列生成工程と、
第３の行列生成手段が、前記入力工程で入力された前記Ｎ日の各日の必要車両台数を示す要素をＺ1,Ｚ2,…ＺNとする１行Ｎ列の行列Ｚを生成する第３の行列生成工程と、
演算手段が、
最小化目標：Ｃt×Ｂ
制約条件：Ｂt×Ａ≧Ｚ
行列Ｂの要素Ｘi(1≦i≦Ｎ）∈ 非負整数
を数理計画モデルとし、Ｍ行１列とする前記行列Ｂを算出する演算工程と、
出力手段が、前記演算工程で算出された行列Ｂの要素Ｘiを、行列Ａの第ｉ行の契約タイプにおける契約始期日の契約数として出力する出力工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータに読込ませ実行させることで、互いに異なる契約日数の契約タイプを示す情報と各契約タイプ毎の契約金額を示す情報を記憶する記憶手段を有し、要求された車両調達期間の各日毎の、荷物の搬送に必要な車両の調達計画を行なう情報処理装置として機能するコンピュータプログラムであって、前記コンピュータを
各日の搬送に必要な車両台数を入力する入力手段と、
車両調達計画期間を設定する期間設定手段と、
該期間設定手段で設定された車両調達計画期間に含まれる日数をＮとしたとき、契約始期日から契約日数分で示される区間を“１”、当該区間以外を“０”とするＮ個のデータで構成される行データを、契約タイプ及び契約始期日の組み合わせ数Ｍだけ生成し、Ｍ行Ｎ列の行列Ａを生成する第１の行列生成手段と、
前記行列Ａの各行の契約タイプ別の契約金を示す要素をＣ1,Ｃ2,…ＣMとするＭ行１列の行列Ｃを生成する第２の行列生成手段と、
前記入力手段で入力された前記Ｎ日の各日の必要車両台数を示す要素をＺ1,Ｚ2,…ＺNとする１行Ｎ列の行列Ｚを生成する第３の行列生成手段と、
最小化目標：Ｃt×Ｂ
制約条件：Ｂt×Ａ≧Ｚ
行列Ｂの要素Ｘi(1≦i≦Ｎ）∈ 非負整数
を数理計画モデルとし、Ｍ行１列とする前記行列Ｂを算出する演算手段と、
当該演算手段で算出された行列Ｂの要素Ｘiを、行列Ａの第ｉ行の契約タイプにおける契約始期日の契約数として出力する出力手段
として機能させることを特徴とするコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両調達期間の各日毎の、荷物の搬送に必要な車両の調達計画を行なう技術に関するものである。
【背景技術】
【０００２】
過去の需要実績に基づき、車両の積載量の効率化を管理する技術が知られている（特許文献１）。この技術は、過去１年間の販売（需要）実績に基づく「月別指数」又は「旬別指数」と直近の需要実績とに基づいて、１〜２週間後における荷物の需要量を予測する。そして、この予測に基づき工場から荷物を出荷する際の車両の台数を最小にする出荷積載パターンを決定する、というものである。
【０００３】
車両の台数を小さくすることと、コストを下げることは互いに密接な関係にあることが明らかであるものの、コストを下げる全ての要因が車両数であるとは限らない。
【０００４】
一般に、契約車両のタイプには、１日、３日間、１０日間、２０日間等の期間契約傭車車両が存在する。各契約タイプの契約金がそれぞれ異なる。このうち、１日だけの傭車車両はスポット傭車車両と呼ばれ、コストは比較的高いものの、文字通りスポット的に契約が結べるという利点がある。一方、連続した複数日の契約傭車車両の場合、契約コストはスポット傭車車両よりも高くなるものの、１日当たりのコストはむしろ低い。また、契約期間が長いほど、１日当たりのコストは更に低くなる。従って、コストを下げるためには、どのタイプの契約車両をどのタイミングで契約するかが新たな要因として浮かんでくるのが理解できよう。
【特許文献１】特開2005-194073号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常、翌月等、将来の各稼動日での配送物量に従い、各日の必要車両数を決定している。問題なのは、先に示したように、どの期間を、どのようなタイプの傭車車両の契約を行なうかである。
【０００６】
これまでは、その業務を携わっている者が、自身の経験や過去の契約結果をたよりに、契約傭車の種類及び台数、更には、各契約始期日を決定している。従って、目標とする期間での契約にかかるコストは、経験からのものであり、ある程度は低く抑えているとは言えても、その契約が果たして最小限なものであるのかまでは不明であるし、未経験者には成し得るものでもない。
【０００７】
本発明はかかる問題点に鑑みなされたものであり、車両調達期間として設定する期間に対し、格別な経験を必要とせず、且つ、簡単な操作でもって、どのようなタイプの傭車車両の契約を結べば良いかを自動決定する技術を提供しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
要求された車両調達期間の各日毎の、荷物の搬送に必要な車両の調達計画を行なう情報処理装置であって、
互いに異なる契約日数の契約タイプを示す情報と各契約タイプ毎の契約金額を示す情報を記憶する記憶手段と、
各日の搬送に必要な車両台数を入力する入力手段と、
車両調達計画期間を設定する期間設定手段と、
該期間設定手段で設定された車両調達計画期間に含まれる日数をＮとしたとき、契約始期日から契約日数分で示される区間を“１”、当該区間以外を“０”とするＮ個のデータで構成される行データを、契約タイプ及び契約始期日の組み合わせ数Ｍだけ生成し、Ｍ行Ｎ列の行列Ａを生成する第１の行列生成手段と、
前記行列Ａの各行の契約タイプ別の契約金を示す要素をＣ1,Ｃ2,…ＣMとするＭ行１列の行列Ｃを生成する第２の行列生成手段と、
前記入力手段で入力された前記Ｎ日の各日の必要車両台数を示す要素をＺ1,Ｚ2,…ＺNとする１行Ｎ列の行列Ｚを生成する第３の行列生成手段と、
最小化目標：Ｃt×Ｂ
制約条件：Ｂt×Ａ≧Ｚ
行列Ｂの要素Ｘi(1≦i≦Ｎ）∈ 非負整数
を数理計画モデルとし、Ｍ行１列とする前記行列Ｂを算出する演算手段と、
当該演算手段で算出された行列Ｂの要素Ｘiを、行列Ａの第ｉ行の契約タイプにおける契約始期日の契約数として出力する出力手段とを備える。
【発明の効果】
【０００９】
本発明によれば、車両調達期間における各日の必要な車両数の情報を入力するという簡単な操作を行なうだけで、格別な経験を必要とせずとも、契約タイプと契約始期日、更には、それらの契約数を自動決定することが可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面に従って本発明にかかる実施形態を詳細に説明する。
【００１１】
図１は実施形態における情報処理装置（傭車管理システム）のブロック構成図である。
【００１２】
図中、１は装置全体の制御を司るＣＰＵ、２はＢＩＯＳやブートプログラムを格納しているＲＯＭである。３はＣＰＵ１のワークエリアとして使用されるＲＡＭである。４はＯＳ（オペレーティングシステム）、並びに、実施形態における傭車管理アプリケーションプログラムを格納しているハードディスク装置（以下、ＨＤＤ）である。このＨＤＤ４には、図示の如く傭車ＤＢ（傭車データベース）４ａ、カレンダーＤＢ４ｂ、契約ＤＢ４ｃが格納されており、これらＤＢは、傭車管理アプリケーションプログラムが実行した際に参照又は更新される。
【００１３】
５はキーボード、６はポインティングデバイスの１つであるマウスである。７は表示制御部であり、内部にはビデオメモリ及びＣＰＵ１の制御の下でビデオメモリに描画すると共にビデオメモリに格納されたイメージを映像信号として表示装置８に出力するビデオコントローラが設けられている。表示装置８はＣＲＴや液晶等で構成されるもので構わない。９はネットワークインタフェースであり、インターネット等のネットワークに接続するためのものである。
【００１４】
上記構成において、本装置の電源がＯＮになると、ＣＰＵ１はＲＯＭ２のブートプログラムに従ってＨＤＤ４よりＯＳをＲＡＭ３にロードし実行する。そして、ユーザがキーボード５及びマウス６を用いて操作することで、本実施形態における傭車管理アプリケーションプログラムがＨＤＤ４からＲＡＭ３にロードされ実行される。この結果、本装置が傭車管理装置として機能することになる。なお、ＯＳの種別は問わないが、ここではグラフィカルユーザインタフェースを持つ、米国マイクロソフト社が提供するWindows（登録商標）として説明する。
【００１５】
ＨＤＤ４に格納されているカレンダーＤＢ４ｂは、自社の営業日、休業日を記憶しているものであるので、説明するまでもないであろう。また、契約ＤＢ４ｃは、傭車契約のデータを格納するデータベースである。一方、傭車ＤＢ４ａは、図２に示す構造を有する。
【００１６】
図２に示すように傭車ＤＢ４ａの第１フィールドには契約期間（日数）が格納され、第２フィールドには契約金額（円）が格納されている。１日当たりのコストは、契約金額を期間（日数）で除算することで得られる。
【００１７】
ここで本実施形態の基本的な原理について説明する。説明を単純なものとするため、ここでは傭車契約タイプは１日単位（スポット傭車車両）と、２０日間単位の２種類であるものとする。また、ここでは次期契約対象の期間を翌月とし、その月の実労日は２０日間であるものとする。
【００１８】
今、翌月の２０日間の各日に必要な傭車車両数が、荷物量から図３に示すように求まったとする。また、２０日間の中で、１日当たりに必要な最大傭車車両数が仮に“１０”であるとする。このような状況で１０台の２０日契約傭車車両を決定すると、全ての日の必要傭車車両数は１０台以下であるので、理論上、業務に支障は出ない。しかし、実際に不使用の車両が多く存在することになり、コスト的に割高になることは明らかである。一方、２０日間を１つの２０日契約傭車車両だけ契約を結ぶと、各日の残りの台数を全てスポット傭車で賄うことになり、同様の問題が発生する。
【００１９】
２０日契約傭車とスポット契約傭車のそれぞれの契約数（車両数）と、コストとの関係を簡略化して示すと図４に示すようになる。同図は、２０日契約傭車車両数が増えるとスポット契約傭車の車両数が減ることを示している。コストは、２０日契約傭車の単価×契約数と、スポット契約傭車の単価×契約数の合計である。従って、この合計値の推移は図示のコスト曲線として表わせる。コストが最小となるのは、コスト曲線のコスト軸に対する極小値を求めることと等価であるので、その極小値は容易に求めることができる。つまり、設定した期間での最適なスポット契約傭車車両数、及び、２０日契約傭車車両数を求めることができることに他ならない。
【００２０】
さて、上記は契約タイプが２種類についてのものであったが、実際は図２に示すように、多数のタイプの契約傭車が存在する。本実施形態では、このように多数の契約タイプが存在した場合の最小コストとなる各タイプ別の契約数、及び、各契約の契約始期日までも求めることを可能にする。以下にその具体的例の詳細を説明する。
【００２１】
図５は、実施形態における傭車管理アプリケーションプログラムを実行した際の表示装置８に表示されるＧＵＩウインドウ５０を示している。
【００２２】
このＧＵＩウインドウ５０は、設定対象の契約期間の「年」を設定する設定エリア５１、「月」を設定する設定エリア５２、設定された年、月で特定される期間での必要傭車車両数をキーボード５等で入力する傭車車両数入力エリア５３、及び、解析開始ボタン５４、傭車車両ＤＢ編集ボタン５５、カレンダーＤＢ編集ボタン５６、保存ボタン５７を有する。
【００２３】
さて、傭車管理アプリケーションプログラムを実行すると、ＣＰＵ１はそのプログラムに従ってＧＵＩウインドウ５０を表示することになる。そして、操作者による設定エリア５１、５２に対する設定が行われ、年、月が確定すると、ＣＰＵ１はその年、月で特定されるデータをカレンダーＤＢ４ｂを参照して、その期間の稼動日の日付を日付順に傭車車両数入力エリア５３に表示すると共に、その年、月のデータが契約ＤＢ４ｃ内に存在する場合にはそのデータを読込む。稼働日は年、月毎に依存するので、傭車車両数入力エリア５３の入力欄の個数もそれに応じて変化する。新規設定の場合、設定した年、月のデータは契約ＤＢ４ｃには存在しないので、傭車車両数入力エリア５３内の傭車車両数を入力する各日の欄は空白のままである。操作者は、各日に必要な傭車車両数を、その台数が判明した段階で入力し、保存ボタン５７をクリックすることで、傭車車両数を入力と保存する。そして、これを繰り返し、全日の必要傭車車両数が決定する。ここで解析開始ボタン５４をクリックすると、後述する解析処理が開始され、設定された期間内での最適な契約車両のタイプ及び台数と、各契約始期日が決定される。
【００２４】
なお、傭車ＤＢ編集ボタン５５をクリックすると、傭車ＤＢ４ａの編集ＧＵＩが表示される。このＧＵＩでは、新規に傭車タイプの登録、削除、並びに、金額改定を行なう編集を行ない、傭車ＤＢ４ａを更新できる。また、カレンダーＤＢ編集ボタン５６をクリックすると、休日の設定や変更を行なうことができる。通常、このカレンダーＤＢ編集ボタン５６は翌年の休日等が確定した段階で行なうものであるので、年１回程度の操作となる。なお、傭車ＤＢ編集ボタン５５、カレンダーＤＢ編集ボタン５６がクリックされた際のＧＵＩ、並びに、ＣＰＵの処理内容については上記説明から明らかであるので、その説明は省略する。
【００２５】
さて、図５のＧＵＩウインドウ５０にて、対象とする期間の全日について必要傭車台数を入力した状態で解析開始ボタン５４がクリックされると、ＣＰＵ１は本実施形態におけるアプリケーションプログラムに基づく、解析処理を実行する（詳細は後述）。この解析処理の結果表示の例を示すのが図６のＧＵＩウインドウ６０である。
【００２６】
図示のＧＵＩウインドウ６０の最上部のエリア６１には設定した期間（図示では「２００６年１２月」）が示される。エリア６２には解析した結果、最小となったコスト（全契約の合計金額）が表示される。そして、エリア６３には、日付番号、操作者が設定した必要台数、本実施形態での解析処理の結果に基づいて各日に利用できる傭車車両数、及び、各日毎の過不足台数が表示される。エリア６４には、１日単位の契約傭車車両であるスポット傭車数（契約数）が表示される。そして、エリア６５には、スポット傭車車両を除く複数日期間の契約傭車（図示ではチャーター便）のタイプと契約期間が棒グラフ的に表示される。複数日期間の契約傭車の場合、その棒グラフが表示される同一行のエリア６６に、その契約数が表示される。また、解析処理の結果、契約タイプとその契約期間の組み合わせの数が、エリア６５の内に表示される行数を超えることも有り得るので、図示の如くスクロールバー６７を表示した。画面の最下位置には、図示の解析結果に基づく契約発注書の印刷を指示する発注ボタン６８が設けられる。なお、この発注ボタン６８がクリックされると、設定した期間での契約が完了したものとして、契約ＤＢ４ｃに登録される。また、キャンセルボタン６９がクリックされると、解析処理結果を破棄し、再び図５のＧＵＩウインドウに戻る。
【００２７】
以上が実施形態における大まかなＧＵＩに関する説明であるが、次に、図５のＧＵＩウインドウ５０における解析開始ボタン５４がクリックされた際の、本実施形態におけるアプリケーションプログラムにおける解析処理内容の詳細を説明する。
【００２８】
実施形態での契約傭車タイプは図２に示すように複数（３以上）存在する。また、１０日間契約傭車車両の１つのタイプに着目しても、図６のエリア６５に示すように、契約始期日はまちまちに成り得る。
【００２９】
そこでＣＰＵ１は、先ず、ＲＡＭ２内に、稼動日の日数を列数とし、契約傭車タイプとその契約始期日の種別毎に、契約期間内では“１”、それ以外では“０”の行データを生成する。この処理で生成される行例の例を示すのが図７（ａ）の行列Ａである。ここでは、設定した期間の稼動日の日数は２０日であるので、この行列Ａの列数は“２０”となる。
【００３０】
また、契約傭車車両のうち、最大期間は２０日契約であるので、第１行の２０日気帷幄傭車の場合、全ての行列要素に“１”を割り当てる。なお、設定した期間の日数が２１日である場合には、契約開始日が１日目と、２日目の２通りとなり、稼働日数が２２日の場合には契約始期日が１日目、２日目、３日目の３通りとなる。
【００３１】
次に期間の長い契約傭車タイプは１０日である。１０日契約傭車車両の場合、行中の“１”の連続数は１０個となり、残りは“０”とする。また、その契約始期日が１日目、２日目、…１１日目の１１通り存在するので、１０日契約傭車の行データは、行列Ａの１１行分を占めることになる。
【００３２】
同様に、契約期間が３日間、そして１日単位の契約傭車が存在するので、それぞれのタイプと契約始期日に応じて“１”を設定する。３日契約傭車の場合、契約始期日が１日目、２日目、…１８日目の１８行分となる。また、１日契約傭車（スポット傭車）は２０行分のデータとなる。
【００３３】
図７（ａ）の行列Ａは、ＣＰＵ１が以上のような理由によりＲＡＭ３内に生成されるものである。ここでは２０日間という期間について行列Ａを生成しているわけであるから、結局のところ、行列Ａは５０行２０列のサイズとなる。
【００３４】
また、ＣＰＵ１は、行列Ａの各行毎の未知の契約数を示す行列Ｂを図７（ｂ）に示すようにＲＡＭ３内に確保する。行列Ｂの要素中、例えば、Ｘ10-1は１０日契約傭車車両で、契約始期日が１日目である契約数を示す。同様に、Ｘ10-2は１０日契約傭車車両で、契約始期日が２日目の契約数を示す。なお、この場合、行列Ｂの要素の数は行列Ａの行数と等しい５０個となる。
【００３５】
また、行列Ｂに対応する契約金額の行列Ｃも同図（ｃ）に示すように作成する。行列ＢにおいてＸm-1,Ｘm-2,…はｍ日契約傭車タイプを示しているので、傭車ＤＢ４ａを参照して同図（ｃ）のような契約金額の５０行１列の行列Ｃが生成される。ここで総コストは、「Ｃt×Ｂ」で与えられることがわかる。
【００３６】
そして、ＣＰＵ１は、図７（ｄ）に示す行列演算を行なうための１行２０列の行列ＤをＲＡＭ３に確保する。なお、Ｂtは行列Ｂの転置行列を示している。行列Ｄは１行２０列の行列となり、その各要素をＹ1,Ｙ2,…Ｙ20と表わす。
【００３７】
一方、２０日の各日の必要傭車車両台数は図５に示すようにユーザが入力するものであり、既知である。この必要傭車車両数を日付順にＺ1,Ｚ2,Ｚ3,…Ｚ20を要素として持つ配列ＺをＲＡＭ３に確保する。
【００３８】
さて、図７（ｄ）の演算によって得られる行列Ｄの要素Ｙiは、ｉ番目の日における各契約タイプで用意される傭車車両数を表わしている。従って、１≦ｉ≦２０の範囲で、
Ｙi≧Ｚi
を満たさなければならない。
【００３９】
つまり、上記条件を満たす行列Ｂのうち、与えられた期間（ここでは２０日間）の合計コストＥが最小となる行列Ｂを求める数理計画モデル式を作成すれば、ユーザが設定した必要台数の傭車車両数を決定する際の最小コストとなる各傭車車両のタイプ別の契約始期日と契約数が特定できることになる。コストＥは、図７（ｅ）に示す如く、行列Ｂの各要素と、配列Ｃの同じ順位の要素の乗算、すなわち、Ｃt×Ｂを求めれば良い。
【００４０】
以上の如く、本実施形態では、次のような数理計画モデルを作成する。このモデルは、全て一次式で表現された、線形整数計画モデルである。
最小化目標：Ｃt×Ｂ
制約条件：Ｂｔ×Ａ≧Ｚ
Ｂの要素  ∈  非負の整数
上記最小コストを求めるための手法としては、上記のようにして求めた数理計画モデル式を、例えば、公知のシンプレックス法と分枝限定法を組み合わせて解けばよい。但し演算速度を向上させるためには、行列Ｂの各要素値Ｘ20-1、Ｘ10-1…の値の取り得る範囲を狭くすることが重要となる。最小値は０で良いが、最大値は、設定した期間内のユーザが入力した必要傭車車両数Ｚｉの中の最大値で良いであろう。また、各契約タイプ毎（契約始期日の違いを含む）の最小契約数と最大契約数を決定しても構わない。例えば、２０日の契約傭車の場合、計画した必要傭車車両台数の最小値と最大値を、行列Ｂの要素Ｘ20-1の取り得る最小、最大値として求めても良いであろう。
【００４１】
上記処理をまとめて、図８のフローチャートに従って説明する。このフローチャートは、実施形態におけるアプリケーションプログラムの図５のＧＵＩで解析開始ボタン５４がクリックされた際の処理手順を示している。
【００４２】
先ず、ステップＳ１において、ＣＰＵ１は、図５のＧＵＩで設定された期間の日数Ｎを入力し、その入力した日数ＮをＲＡＭ３内に一時的に格納する。図５の場合、Ｎ＝２０である。
【００４３】
次に、ステップＳ２において、ＣＰＵ１は、設定期期間内の各日の必要傭車台数｛Ｚ1 ,Ｚ2,Ｚ3 …ＺN｝を入力し、ＲＡＭ３にＮ行１列の行列Ｚ｛Ｚ1,Ｚ2,…ＺN｝として一時的に格納する。
【００４４】
ステップＳ３において、ＣＰＵ１は、傭車ＤＢ４ａ内に格納されている傭車データ（契約日数と契約金額）を読込み、ＲＡＭ３内に一時的に格納する。
【００４５】
次いでＣＰＵ１は、ステップＳ４において、日数Ｎ内における契約期間内を“１”とし、それ以外では“０”とする行データを、契約傭車タイプ及び契約始期日の組み合わせの種類数であるＭ個生成し、Ｍ行Ｎ列の行列Ａ（図７（ａ）参照）を作成し、ＲＡＭ３内に一時的に保存する。
【００４６】
そして、ステップＳ５にて、ＣＰＵ１は行列Ａの各行毎の契約傭車タイプ毎の契約金額の値Ｃ1,Ｃ2,ＣMを持つＭ行１列の行列Ｃ（図７（ｃ）参照）をＲＡＭ３に作成する。
【００４７】
次いで、ステップＳ６にて、ＣＰＵ１は、次のような数理計画モデル式を作成する。
・Ｍ行１列の行列Ｂについて：
最小化目標：Ｃt×Ｂ
制約条件  ：Ｂt×Ａ≧Ｚ
行列Ｂの要素  ∈  非負の整数
【００４８】
そして、ＣＰＵ１は、ステップＳ７にて、数理計画モデル式を、シンプレックス法と分枝限定法の組み合わせ等の既存の手法を用いた処理を実行することで、最小コストとなる行列Ｂを算出する。
【００４９】
なお、最小コストとなる行列Ｂが複数見つかった場合、超過数の合計値が最も大きいものを解として選択する。これは、超過数が大きければ大きいほど、突発的な搬送荷物が発生した場合にも、契約範囲で対処する可能性を高めるためである。
【００５０】
以上のようにして行列Ｂ及び最小コストを求めることができると、ＣＰＵ１は、ステップＳ８にて、その行列Ｂから、１日単位の契約傭車と複数日の契約傭車の各契約始期日と契約数を求め、図６に示す表示データを生成し、出力する。
【００５１】
以上説明したように本実施形態によれば、操作者は設定した期間内で必要とする傭車台数を入力し、解析開始を指示するだけで、最小コストとなる契約傭車のタイプと契約始期日、並びに、各契約数を如何にすべきかの情報を得ることができるようになる。
【００５２】
なお、前記行列Ａ、前記行列Ｂ及び前記行列Ｃそれぞれの行と列を入れ替えて（Ｘ行Ｙ列の値がＹ行Ｘ列の値になる行列にして）、
・１行Ｍ列の行列Ｂについて：
最小化目標：Ｃ×Ｂt
制約条件：Ａ×Ｂt≧Ｚt
行列Ｂの要素  ∈  非負の整数
という数理計画モデル式を作成し、シンプレックス法と分枝限定法の組合せ等の既存の手法を用いた処理を実行することで、最小コストとなる行列Ｂを算出する手法をとっても得られる結果は同等であるので、この手法を用いることも可能である。さらに、夫々の数理計画モデル式において、１ないしまたは複数個の、行数または列数が１の行列の行と列を入れ替え、かつ転置表記した別の数理計画もモデル式を作成して同様の手法を用いることも可能である。
【００５３】
＜第２の実施形態＞
上記実施形態では、図５のＧＵＩウインドウにて、期間（年、月）を設定し、その期間内での必要傭車台数をキーボード５から入力するものとした。しかし、毎月の稼動日順に、必要な台数がある程度の変動幅内にあるような場合、契約ＤＢ４ｃを参照して、その予測値を求め、その予測値を必要傭車台数のデフォルト値として表示しても良い。この場合、操作者は、必要な日の必要傭車台数を編集すれば良くなる。予測値の求め方としては、例えば、過去数ヶ月（例えば６ヶ月）の各日毎の平均値、前年の同月のデータをデフォルトとして表示すれば良い。すなわち、図５のＧＵＩウインドウに、過去Ｎ月から予測、昨年の同月から予測、等のボタンを配置し、それらがクリックされたことを検出したら、ＣＰＵ１が契約ＤＢ４ｃを参照して、予測値を求め、表示すれば良いであろう。
【００５４】
また、搬送することになる物量が発生する度に、その搬送しようとする日とその物量を入力するためのＧＵＩを別に設け、そのＧＵＩでの入力結果をデータベースに登録するようにする。そして、ユーザが、図５に示すＧＵＩにて、期間を設定した際、各日の必要傭車台数を自動的に算出するようにしても構わない。この場合、１傭車車両当たり搬送可能な物量の関係を示すデータベースがあれば、求められる。また、実際に荷物を配送するのに用いた各日毎の車両実績台数の入力を受け付けて、その車両実績台数をＨＤＤ４に記録しておき、その車両実績台数に基づいて移動平均法等の時系列予測手法などによって車両調達期間の各日に必要となる必要傭車台数を予測して、その予測値を必要傭車台数のデフォルト値として表示しても良い。
【００５５】
さらに、過去配送した各日毎の物量の入力を受け付けて、その物量をＨＤＤ４に記録しておき、過去の物量に基づいて、移動平均法等の時系列予測手法などによって車両調達期間内の各日の予測物量を算出し、その予測物量に基づいて配車計画システムなどを用いて車両調達期間内の各日の必要傭車台数を自動的に算出し、その値を必要傭車台数のデフォルト値として表示しても良い。
【００５６】
＜第３の実施形態＞
上記第１、第２の実施形態では、Ｎ日契約傭車車両は連続したＮ日が稼動日であることを前提にしたが、実際はＮ日中Ｍ日を運転手の休日扱いにするという契約形態もある。例えば２０日契約傭車車両の場合、そのうち、２日を運転手の休みとし、残り１８日を稼働日とする場合である。
【００５７】
説明を簡単なものとするため、実施形態でも設定期間は２０日とし、２０日契約傭車車両では、最大１８日の稼働（少なくても２日を休み）とする例を説明する。それ以外は、契約日数が稼動日数と等しいものとする。なお、これに対処するためには、図２の傭車ＤＢ４ａ内に、最大稼動日数のフィールドを追加すればよい。
【００５８】
また、各稼働日の必要な傭車台数は、第１の実施形態と同様、図３に示す値であるとする。この各日の必要傭車台数を行列ｂ（＝要素はｂ1,ｂ2,ｂ3…,ｂ20）とする。
【００５９】
更に、以下のように各表現を定義する。
設定期間（計画対象期間）：２０日
チャーター便の契約期間の種別  ：２０日／１０日／３日／１日
（但し、２０日タイプは、２０日の期間中、最大１８日の稼働とする。）
契約期間（第１の単位期間）と、夫々の稼働の始期日（第２の単位期間）の組み合わせ、および各契約１台あたりの単価は第１の実施形態と同様、次の通りとする。
第１の単位期間    第２の単位期間        契約金額（円）
２０日間          １日                  １００００
１０日間          １日〜１１日の各日      ６５００
３日間            １日〜１８日の各日      ２９４０
１日間            １日〜２０日の各日      １０００
【００６０】
なお、契約１台当たりの単価は、契約始期毎に異なってもよい。この場合、同じ日数の傭車車両であっても契約始期日が異なるとコスト（契約金）が異なるわけであるから、図２の傭車ＤＢ４ａ内に、更に、契約始期日のフィールドを追加すればよい。なお、当業者であれば、これまでの説明から明らかなように、第１の実施形態にかかる点を反映させても構わない（図７（ｃ）の各行列の要素の金額が、同じ契約日数でもことなるようにするだけである）。
【００６１】
ここで、契約期間が１０日における「契約数」を、その契約始期日別にＸ10-1,Ｘ10-2,…Ｘ10-11と表わす。これは第１の実施形態と同じ表現である。
【００６２】
図１０（ａ）は、２０日契約傭車車両を除く、１０日、３日、１日の契約傭車と契約始期日に基づいて生成する行列Ａを示している。また、図１０（ｂ）は、２０日契約傭車車両を除く、１０日、３日、１日の契約傭車の契約始期日別毎の未知の契約数を示す行列Ｂを示している。そして、図１０（ｃ）は、行列Ｂの各行に応じた契約金額を示す行列Ｃを示している。
【００６３】
また、設定期間が２０日の場合、２０日契約傭車車両の契約始期日は必ず１日目となる。そして、設定期間のｉ日目の２０日契約傭車の実稼動車両台数（契約数とは異なる点に注意されたい）をＹ20-1-iと表わす。図９を用いて、このＹ20-1-iの意味を説明する。
【００６４】
図９は設定期間「２０日」において、２０日契約傭車車両の契約数が４つの例を示している。内訳は、次の通りである。
・少なくとも４日目と１７日目が非稼動の２０日契約傭車の契約数が２つ
・少なくとも３日目と１９日目が非稼動の２０日契約傭車の契約数が１つ
・少なくとも４日目と１９日目が非稼動の２０日契約傭車の契約数が１つ
図示の場合、１日目に着目すると、実稼動車両台数は４となるのが理解できよう。つまり、この例では、Ｙ20-1-1は“４”となる。また、２日目であるＹ20-1-2も“４”となり、３日目でのＹ20-1-3は“３”となり、４日目でのＹ20-1-4は“１”である。なお、図９は、単にＹ20-1-iを説明するためのものである点に注意されたい。また、このＹ20-1-iで表わされる行列をＹとする。また、２０日契約傭車車両の契約数をＺ20-1と定義する（図９の場合は“４”である）。そして、２０日契約傭車車両の契約金額を特にＣ20-1と表わす。
【００６５】
さらに、このＹ20-1-iは、必ず、２０日契約傭車車両の契約数Ｚ20-1以下とならなければならない。
【００６６】
また、１つの２０日契約傭車車両につき最大稼働日が１８日とするわけであるから、２０日契約傭車車両の契約数Ｚ20-1に対して、稼働日は、必ず「１８×Ｚ20-1」以下にしなければならない。
【００６７】
以上の条件の下、本第３の実施形態の問題は、次の数理計画モデルとして表わせることが理解できる。
最小化：Ｃt×Ｂ＋Ｃ20-1×Ｚ20-1
制約条件：Ｂｔ×Ａ＋Ｙ≧ｂ
Ｘi-j、Ｙ20-1-i、Ｚ20-1  ∈  非負の整数
ΣＹ20-1-i≦Ｚ20-1×１８
Ｙ20-1-i≦Ｚ20-1
各契約タイプ＆契約始期日毎の調達台数ＸとＺを決定することで、各日毎の調達される台数が求まり、その台数が必要台数と同じか、より大きくなることが必要である。
【００６８】
なお、各契約タイプ毎に契約可能台数の上限がある場合は、制約条件中のＸとＺの各要素は非負整数である、という部分に、上限値を設定してもよい。
【００６９】
また、第３の実施形態では、２０日契約傭車車両にのみ最大稼働日の条件を付与したものとなっているが、それ以外の日数の傭車車両および契約始期毎に、行列Ｙ、Ｚを設定し各式に追加すれば、より複雑な場合でも台数と契約始期を求めることが可能である。
【００７０】
上記数理計画モデルを、シンプレックス法と分枝限定法の組み合わせ等の既存手法によって解くことで、結果として、コスト最小となるチャーター便数が決定される。
【００７１】
以上説明したように本第３の実施形態によれば、契約タイプで表わされる期間中の最大稼働日数が設定されている場合であっても、シンプレックス法と分枝限定法の組み合わせ等の既存手法に適用するための数理計画モデルを作成することで、最小コストとなる各契約タイプの契約始期日別の契約数を求めることが可能になる。
【００７２】
なお、先に説明した第１の実施形態と同様に、前記行列Ａ、前記行列Ｂ及び前記行列Ｃそれぞれの行と列を入れ替えて（Ｘ行Ｙ列の値がＹ行Ｘ列の値になる行列にして）、
最小化目標：Ｃ×Ｂt＋Ｃ20-1×Ｚ20-1
制約条件：Ａ×Ｂt＋Ｙt≧ｂt
Ｘi-j、Ｙ20-1-i、Ｚ20-1  ∈  非負の整数
ΣＹ20-1-i≦Ｚ20-1×１８
Ｙ20-1-i≦Ｚ20-1
という数理計画モデル式を作成し、シンプレックス法と分枝限定法の組合せ等の既存の手法を用いた処理を実行することで、最小コストとなる行列Ｂを算出する手法をとっても得られる結果は同等であるので、この手法を用いることも可能である。さらに、夫々の数理計画モデル式において、１ないし複数個の、行数または列数が１の行列の行と列を入れ替え、かつ転置表記した別の数理計画もモデル式を作成して同様の手法を用いることも可能である。
【００７３】
なお、実施形態では、操作者が設定する期間を月単位とする例を説明したが、設定対象期間の年月日と、その期間の最後の日を年月日で設定しても構わない。
【００７４】
更に、本発明は、上記第１乃至第３の実施形態で説明したように、コンピュータに実行させるコンピュータプログラムによって実現できるものである。通常、コンピュータプログラムはＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されており、それを媒体をアクセス装置（ＣＤ−ＲＯＭドライブ）にセットし、システムにコピーもしくはインストールすることで実行可能となる。従って、かかるコンピュータ可読記憶媒体も本発明の範疇に入ることは明らかである。
【図面の簡単な説明】
【００７５】
【図１】実施形態の情報処理装置のブロック構成図である。
【図２】実施形態の傭車ＤＢのデータ構造を示す図である。
【図３】設定期間と必要傭車台数の例を示す図である。
【図４】２０日契約傭車車両数と１日単位の契約であるスポット傭車車両数と、コストとの相関関係を示す図である。
【図５】実施形態における期間設定と必要車両数を入力するためのＧＵＩを示す図である。
【図６】実施形態における解析結果のＧＵＩを示す図である。
【図７】実施形態での解析処理の過程で生成される行列と演算内容を示す図である。
【図８】実施形態における解析処理の詳細を示すフローチャートである。
【図９】第３の実施形態における行列要素Ｙ20-1-iの意味を説明するための図である。
【図１０】第３の実施形態における解析処理の過程で生成される行列を例を示す図である。
【図１】
2008158579.tif 000003
【図２】
2008158579.tif 000004
【図３】
2008158579.tif 000005
【図４】
2008158579.tif 000006
【図５】
2008158579.tif 000007
【図６】
2008158579.tif 000008
【図７】
2008158579.tif 000009
【図８】
2008158579.tif 000010
【図９】
2008158579.tif 000011
【図１０】
2008158579.tif 000012