(57)【特許請求の範囲】
【請求項１】
倉庫に保管された出荷対象品を積載するための積載地に出荷用の輸送機が到着する到着時点及び前記積載地から出発する出発時点を規定する出荷計画を立案する出荷計画立案装置であって、
前記倉庫における出荷可能な出荷対象品の時点毎の在庫量及びある時点において前記輸送機に積載されている出荷対象品の積載量を特定する特定手段と、
前記特定手段によって特定された前記在庫量が、前記輸送機に積載される出荷対象品の量の上限値に到達する前の時点を、前記到着時点として決定する決定手段と、
前記特定手段によって特定された、前記到着時点以後に前記輸送機に積載される出荷対象品の前記積載量が、前記輸送機に積載される出荷対象品の量の上限値となる時点を、前記出発時点として決定する第２決定手段と、
前記決定手段及び前記第２決定手段のそれぞれによって決定された前記到着時点及び前記出発時点に基づいて出荷計画を生成する生成手段と
を備える、出荷計画立案装置。
【請求項２】
前記生成手段によって生成された出荷計画において、前記積載地に同時に停留させておく前記輸送機の数に関する制約条件に違反するか否かを判定する判定手段と、
前記判定手段によって前記制約条件に違反すると判定された場合に、前記積載地に同時に停留させておく複数の輸送機のうちの少なくとも１つの輸送機の前記到着時点又は前記出発時点を変更する変更手段と、をさらに備える、
請求項１に記載の出荷計画立案装置。
【請求項３】
前記変更手段は、前記複数の輸送機のうち、後に出発する後発輸送機の到着時点を、先に出発する先発輸送機の出発時点の後に変更するように構成されている、
請求項２に記載の出荷計画立案装置。
【請求項４】
前記変更手段は、前記輸送機に積載される出荷対象品の量の上限値と、前記輸送機における出荷対象品の積載量とに基づく前記輸送機の空き容量に基づいて、前記複数の輸送機のうちの少なくとも１つの輸送機の前記到着時点又は前記出発時点を変更するように構成されている、
請求項２に記載の出荷計画立案装置。
【請求項５】
前記変更手段は、前記複数の輸送機のうち、前記空き容量が小さい輸送機の出発時点が、空き容量が大きい輸送機の出発時点よりも早くなるように、前記少なくとも１つの輸送機の出発時点を変更するように構成されている、
請求項４に記載の出荷計画立案装置。
【請求項６】
前記変更手段は、前記輸送機における出荷対象品の積載量に基づいて、前記複数の輸送機のうちの少なくとも１つの輸送機の前記到着時点又は前記出発時点を変更するように構成されている、
請求項２に記載の出荷計画立案装置。
【請求項７】
前記変更手段は、前記複数の輸送機のうち、前記積載量が小さい輸送機の到着時点が、前記積載量が大きい輸送機の出発時点よりも遅くなるように、前記少なくとも１つの輸送機の到着時点を変更するように構成されている、
請求項６に記載の出荷計画立案装置。
【請求項８】
前記変更手段によって前記輸送機の前記到着時点又は前記出発時点が変更された出荷計画を出力する出力手段をさらに備える、
請求項２乃至７の何れかに記載の出荷計画立案装置。
【請求項９】
前記変更手段によって前記輸送機の前記到着時点又は前記出発時点が変更された出荷計画に基づいて、複数の時点毎に倉庫における出荷可能な出荷対象品の在庫量を生成する出荷可能在庫量生成手段をさらに備え、
前記出力手段は、前記出荷可能在庫量生成手段によって生成された前記出荷可能な出荷対象品の在庫量をさらに出力するように構成されている、
請求項８に記載の出荷計画立案装置。
【請求項１０】
前記変更手段によって前記輸送機の前記到着時点又は前記出発時点が変更された出荷計画に基づいて、複数の時点毎に倉庫の総在庫量を生成する総在庫量生成手段をさらに備え、
前記出力手段は、前記総在庫量生成手段によって生成された前記総在庫量をさらに出力するように構成されている、
請求項８又は９記載の出荷計画立案装置。
【請求項１１】
倉庫に保管された出荷対象品を積載するための積載地に出荷用の輸送機が到着する到着時点及び前記積載地から出発する出発時点を規定する出荷計画を立案する出荷計画立案方法であって、
コンピュータが、前記倉庫における出荷可能な出荷対象品の時点毎の在庫量及びある時点において前記輸送機に積載されている出荷対象品の積載量を特定するステップと、
前記コンピュータが、特定された前記在庫量が、前記輸送機に積載される出荷対象品の量の上限値に到達する前の時点を、前記到着時点として決定するステップと、
前記コンピュータが、特定された、前記到着時点以後に前記輸送機に積載される出荷対象品の前記積載量が、前記輸送機に積載される出荷対象品の量の上限値となる時点を、前記出発時点として決定するステップと、
前記コンピュータが、決定された前記到着時点及び前記出発時点に基づいて出荷計画を生成するステップと
を有する、出荷計画立案方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、船、貨物自動車等の輸送機による製品又は半製品の出荷計画を立案するための出荷計画立案装置及びその方法に関する。
【背景技術】
【０００２】
工場で製造された製品を効率的に出荷するためには出荷計画を立案することが重要である。特許文献１には、製品の出荷期限日、輸送機の積載量、及び出荷作業の際に製品を倉庫から輸送機へ搬送するための搬送機器（クレーン等）の作業量を考慮して出荷計画を立案する出荷計画立案装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２５４４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
工場で製造された製品は、出荷する前に一時的に倉庫に保管される。倉庫の容量には限界があるため、倉庫への入庫量に出庫量が追いつかなければ倉庫に製品を保管できなくなり、工場での製造ラインを止めなければならない。しかしながら、特許文献１に記載された出荷計画立案装置では、出荷計画の立案において倉庫の負荷状況が考慮されておらず、上記のような問題に対応できない。
【０００５】
本発明は斯かる事情に鑑みてなされたものであり、その主たる目的は、倉庫の負荷状況を考慮した出荷計画を立案できる出荷計画立案装置及び出荷計画立案方法を提供することにある。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の一の態様の出荷計画立案装置は、倉庫に保管された出荷対象品を積載するための積載地に出荷用の輸送機が到着する到着時点及び前記積載地から出発する出発時点を規定する出荷計画を立案する出荷計画立案装置であって、前記倉庫における出荷可能な出荷対象品の在庫量を特定する特定手段と、前記特定手段によって特定された前記在庫量に基づいて、前記輸送機の前記到着時点を決定する決定手段と、前記決定手段によって決定された前記到着時点に基づいて出荷計画を生成する生成手段とを備える。なお、出荷対象品は製品および半製品を含む。また、「積載」とは出荷対象品を倉庫から輸送機に移送することをいい、「出荷」とは輸送機によって出荷対象品を出荷先へ移送することをいう。
【０００７】
この態様において、前記決定手段は、前記在庫量及び前記輸送機に積載される出荷対象品の量に基づいて、前記到着時点を決定するように構成されていてもよい。
【０００８】
また、上記態様において、前記決定手段は、前記在庫量が、前記輸送機に積載される出荷対象品の量の上限値に到達する前の時点を、前記到着時点として決定するように構成されていてもよい。
【０００９】
また、上記態様において、前記出荷計画立案装置は、前記輸送機における出荷対象品の積載量が、前記輸送機に積載される出荷対象品の量の上限値となる時点を、前記輸送機の前記出発時点として決定する第２決定手段をさらに備え、前記生成手段は、前記決定手段及び前記第２決定手段のそれぞれによって決定された前記到着時点及び前記出発時点に基づいて、前記出荷計画を生成するように構成されていてもよい。
【００１０】
また、上記態様において、前記出荷計画立案装置は、前記生成手段によって生成された出荷計画において、前記積載地に同時に停留させておく前記輸送機の数に関する制約条件に違反するか否かを判定する判定手段と、前記判定手段によって前記制約条件に違反すると判定された場合に、前記積載地に同時に停留させておく複数の輸送機のうちの少なくとも１つの輸送機の前記到着時点又は前記出発時点を変更する変更手段と、をさらに備えてもよい。
【００１１】
また、上記態様において、前記変更手段は、前記複数の輸送機のうち、後に出発する後発輸送機の到着時点を、先に出発する先発輸送機の出発時点の後に変更するように構成されていてもよい。
【００１２】
また、上記態様において、前記変更手段は、前記輸送機に積載される出荷対象品の量の上限値と、前記輸送機における出荷対象品の積載量とに基づく前記輸送機の空き容量に基づいて、前記複数の輸送機のうちの少なくとも１つの輸送機の前記到着時点又は前記出発時点を変更するように構成されていてもよい。
【００１３】
また、上記態様において、前記変更手段は、前記複数の輸送機のうち、前記空き容量が小さい輸送機の出発時点が、空き容量が大きい輸送機の出発時点よりも早くなるように、前記少なくとも１つの輸送機の出発時点を変更するように構成されていてもよい。
【００１４】
また、上記態様において、前記変更手段は、前記輸送機における出荷対象品の積載量に基づいて、前記複数の輸送機のうちの少なくとも１つの輸送機の前記到着時点又は前記出発時点を変更するように構成されていてもよい。
【００１５】
また、上記態様において、前記変更手段は、前記複数の輸送機のうち、前記積載量が小さい輸送機の到着時点が、前記積載量が大きい輸送機の出発時点よりも遅くなるように、前記少なくとも１つの輸送機の到着時点を変更するように構成されていてもよい。
【００１６】
また、上記態様において、前記出荷計画立案装置は、前記変更手段によって前記輸送機の前記到着時点又は前記出発時点が変更された出荷計画を出力する出力手段をさらに備えてもよい。
【００１７】
また、上記態様において、前記出荷計画立案装置は、前記変更手段によって前記輸送機の前記到着時点又は前記出発時点が変更された出荷計画に基づいて、複数の時点毎に倉庫における出荷可能な出荷対象品の在庫量を生成する出荷可能在庫量生成手段をさらに備え、前記出力手段は、前記出荷可能在庫量生成手段によって生成された前記出荷可能な出荷対象品の在庫量をさらに出力するように構成されていてもよい。
【００１８】
また、上記態様において、前記出荷計画立案装置は、前記変更手段によって前記輸送機の前記到着時点又は前記出発時点が変更された出荷計画に基づいて、複数の時点毎に倉庫の総在庫量を生成する総在庫量生成手段をさらに備え、前記出力手段は、前記総在庫量生成手段によって生成された前記総在庫量をさらに出力するように構成されていてもよい。
【００１９】
本発明の他の態様の出荷計画立案方法は、倉庫に保管された出荷対象品を積載するための積載地に出荷用の輸送機が到着する到着時点及び前記積載地から出発する出発時点を規定する出荷計画を立案する出荷計画立案方法であって、コンピュータが、前記倉庫における出荷可能な出荷対象品の在庫量を特定するステップと、前記コンピュータが、特定された前記在庫量に基づいて前記輸送機の前記到着時点を決定するステップと、前記コンピュータが、決定された前記到着時点に基づいて出荷計画を生成するステップとを有する。
【発明の効果】
【００２０】
本発明によれば、倉庫の負荷状況を考慮した出荷計画を立案できる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態に係る出荷計画立案装置の構成を示すブロック図。
【図２】実施の形態に係る出荷計画立案装置による出荷計画立案処理の手順を示すフローチャート。
【図３】生産計画データの一例を示す図。
【図４】輸送機データの一例を示す図。
【図５】初期出荷計画生成処理の手順を示すフローチャート。
【図６】出荷可能在庫量の更新を説明するための模式図。
【図７】出荷計画修正処理の手順を示すフローチャート。
【図８】複数の船の出港が重なっている場合の発着予定の変更を説明するための模式図。
【図９】複数の船の出港が重なっていない場合の発着予定の変更を説明するための模式図。
【図１０】出荷計画再修正処理の手順を示すフローチャート
【図１１Ａ】出荷計画再修正処理における発着予定の変更の一例を説明するための模式図。
【図１１Ｂ】出荷計画再修正処理における発着予定の変更の一例を説明するための模式図。
【図１１Ｃ】出荷計画再修正処理における発着予定の変更の一例を説明するための模式図。
【図１２Ａ】出荷計画再修正処理における発着予定の変更の他の例を説明するための模式図。
【図１２Ｂ】出荷計画再修正処理における発着予定の変更の他の例を説明するための模式図。
【図１２Ｃ】出荷計画再修正処理における発着予定の変更の他の例を説明するための模式図。
【図１３】出荷計画の出力例を示す図。
【図１４】出荷可能在庫量の出力例を示す図。
【図１５】倉庫の総在庫量の出力例を示す図。
【発明を実施するための形態】
【００２２】
以下、本発明の好ましい実施の形態を、図面を参照しながら説明する。
【００２３】
本実施の形態では、船により製品（出荷対象品）が出荷される場合の出荷計画の立案について説明する。工場で製造された製品は、出荷する前に一時的に倉庫に保管される。倉庫に保管された製品に対して出荷のための検査が行われ、検査に合格した製品が出荷可能とされる。他方、検査に不合格の製品及び検査前の製品は出荷不可能とされる。また、出荷用の船毎に積載される製品の量の下限値及び上限値が定められ、出荷可能とされた製品の倉庫における在庫量が下限値以上となった場合に、船が出荷用の港に入港し、船に製品が積載されるものとする。そして、船には上限値以下の量の製品が積載され、出荷されるものとする。
【００２４】
また、ある時点において倉庫に保管されている製品のうち、出荷可能な製品の量を「出荷可能在庫量」といい、出荷不可能な製品の量を「出荷不可能在庫量」という。また、ある時点における倉庫の在庫全体の量、即ち、出荷可能在庫量と出荷不可能在庫量との和を「総在庫量」という。ある時点までに製造された出荷可能な製品の累計を「出荷可能累計量」という。
【００２５】
ある時点において船に積載されている製品の量を「実積載量」といい、船に積載される製品の量の下限値及び上限値のそれぞれを「最小積載量」及び「最大積載量」という。ある時点において船に製品が積載されているか否かを示す情報を船の「積載状態」という。「積載状態」が「０」の場合、船には製品が積載されていないことを示し、「積載状態」が「１」の場合、船には製品が積載されていることを示すものとする。
【００２６】
また、港に船の着岸に関する次のような制約条件があるものとする。船には２種類のサイズ「大」及び「小」が規定されており、「大」及び「小」又は「小」及び「小」の組み合わせで２隻しか同時に港に着岸できない。つまり、「大」及び「大」の組み合わせの２隻、並びに３隻以上の船は港に同時に着岸できない。
【００２７】
また、出荷先毎に１つずつ船がある、即ち、１つの出荷先に対して１つの船があるものとする。
【００２８】
本実施の形態に係る出荷計画立案装置は、製品出荷用の船が製品を積載するための港に到着する到着時点（入港時点）及び港から出発する出発時点（出港時点）を複数の船毎に示す出荷計画を立案する。
【００２９】
［出荷計画立案装置の構成］
本実施の形態に係る出荷計画立案装置の構成について説明する。図１は、本実施の形態に係る出荷計画立案装置の構成を示すブロック図である。出荷計画立案装置１は、コンピュータ１０によって実現される。図１に示すように、コンピュータ１０は、本体１１と、入力部１２と、表示部１３とを備えている。本体１１は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、読出装置１１４、ハードディスク１１５、入出力インタフェース１１６、及び画像出力インタフェース１１７を備えており、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、読出装置１１４、ハードディスク１１５、入出力インタフェース１１６、及び画像出力インタフェース１１７は、バスによって接続されている。
【００３０】
ＣＰＵ１１１は、ＲＡＭ１１３にロードされたコンピュータプログラムを実行することが可能である。そして、出荷計画立案用のコンピュータプログラムである出荷計画立案プログラム１１０を当該ＣＰＵ１１１が実行することにより、コンピュータ１０が出荷計画立案装置１として機能する。
【００３１】
ＲＯＭ１１２は、マスクＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、又はＥＥＰＲＯＭ等によって構成されており、ＣＰＵ１１１に実行されるコンピュータプログラム及びこれに用いるデータ等が記録されている。
【００３２】
ＲＡＭ１１３は、ＳＲＡＭ又はＤＲＡＭ等によって構成されている。ＲＡＭ１１３は、ハードディスク１１５に記録されている出荷計画立案プログラム１１０の読み出しに用いられる。また、ＣＰＵ１１１がコンピュータプログラムを実行するときに、ＣＰＵ１１１の作業領域として利用される。
【００３３】
ハードディスク１１５は、オペレーティングシステム及びアプリケーションプログラム等、ＣＰＵ１１１に実行させるための種々のコンピュータプログラム及び当該コンピュータプログラムの実行に用いられるデータがインストールされている。出荷計画立案プログラム１１０も、このハードディスク１１５にインストールされている。
【００３４】
入出力インタフェース１１６は、例えばUSB，IEEE1394，又はRS-232C等のシリアルインタフェース、SCSI，IDE，又は IEEE1284等のパラレルインタフェース、及びＤ／Ａ変換器、Ａ／Ｄ変換器等からなるアナログインタフェース等から構成されている。入出力インタフェース１１６には、キーボード及びマウスからなる入力部１２が接続されており、ユーザが当該入力部１２を使用することにより、コンピュータ１０にデータを入力することが可能である。
【００３５】
画像出力インタフェース１１７は、ＬＣＤまたはＣＲＴ等で構成された表示部１３に接続されており、ＣＰＵ１１１から与えられた画像データに応じた映像信号を表示部１３に出力するようになっている。表示部１３は、入力された映像信号にしたがって、画像（画面）を表示する。
【００３６】
［出荷計画立案装置の動作］
以下、本実施の形態に係る出荷計画立案装置１の動作について説明する。出荷計画立案装置１は、以下に説明する出荷計画立案処理を実行する。
【００３７】
図２は、本実施の形態に係る出荷計画立案装置１による出荷計画立案処理の手順を示すフローチャートである。
【００３８】
まず、出荷計画立案装置１のＣＰＵ１１１は、出荷計画立案用の入力データを受け付ける（ステップＳ１０１）。
【００３９】
入力データは、各時点における出荷可能累計量を出荷先毎に示す生産計画データと、輸送機である船に関する輸送機データとを含む。
【００４０】
図３は、生産計画データの一例を示す図である。図３に示すように、生産計画データでは、複数の時点毎に出荷可能累計量、即ち、その時点までに製造された出荷可能な製品の累計と、その出荷先とが示されている。なお、図３では省略しているが、生産計画データには時点毎の出荷不可能在庫量も含まれている。図３において、各行は出荷先に対応し、各列は時点に対応する。ここで、生産計画データが１日毎の生産計画を示す場合、「時点」は日付となる。また、生産計画データが毎日午前及び午後の２回ずつの生産計画を示す場合、「時点」は「○年○月○日午前」のように日付及び午前又は午後となる。生産計画データが１時間毎の生産計画を示す場合、「時点」は日付及び時刻（○年○月○日○時）となる。このように、「時点」は様々な情報であり得るが、図３に示すとおり、本実施の形態では「時点」を日付とした例を用いて説明する。
【００４１】
図３において、各マス内の数字は出荷計画累計量である。例えば、１月１０日には出荷先Ａ用の出荷可能な製品の量は「０」であるが、製品が製造された結果、１月１１日には「１００」の出荷可能な製品がある。さらに「４００」の製品が製造された結果、１月１２日の出荷可能累計量は「５００」（１００＋４００）となっている。
【００４２】
図４は、輸送機データの一例を示す図である。輸送機データは、船毎に、出荷先と、船のサイズ（大又は小）と、船の最小積載量及び最大積載量とを規定するデータである。
【００４３】
次に、ＣＰＵ１１１は、初期出荷計画生成処理を実行する（ステップＳ１０２）。この初期出荷計画生成処理は、入力データに基づいて、上記の制約条件がない場合の出荷計画を生成する処理である。
【００４４】
初期出荷計画生成処理では、次に示すようなルールに従って出荷計画を生成する。
＜ルール＞
ａ．出荷可能在庫量（倉庫における出荷可能な製品の在庫量）が最小積載量になった場合、船が入港する。
ｂ．実積載量（船に積載されている製品の量）がその船の最大積載量になるまで、船は港に停留する。
ｃ．実積載量がその船の最大積載量になった場合、船が出港する。
ｄ．制約条件は課されない（同時に着岸する船のサイズ及び数に制限がない）。
【００４５】
初期出荷計画生成処理についてさらに詳しく説明する。図５は、初期出荷計画生成処理の手順を示すフローチャートである。
【００４６】
初期出荷計画生成処理において、まずＣＰＵ１１１は、処理対象の時点ｔｉを現在の時点にセットする（ステップＳ２０１）。
【００４７】
ここで、ハードディスク１１５には、出荷先毎（船毎）に船の実積載量が記憶される。実積載量は、船に積載されている製品の量を示す。なお、船の実積載量の初期値は「０」である。
【００４８】
また、ハードディスク１１５には、出荷先毎（船毎）に積載状態が記憶される。積載状態は、船に製品が積載されているか否かを示す。積載状態は、「０」と「１」の２つの値を取り得る情報である。積載状態が「０」であれば、その船に製品が積載されていないことを示す。積載状態が「１」であれば、その船に製品が積載されていることを示す。船が未入港の場合は、積載状態は「０」とされる。船が港に停留している場合、その船には製品が積載されるので、積載状態が「１」とされる。つまり、積載状態は次のように船の入港に関する状態を示している。
【表１】
0006710090.tif 000002
【００４９】
ＣＰＵ１１１は、出荷先の１つを処理対象出荷先として選択する（ステップＳ２０２）。また、ＣＰＵ１１１は、時点ｔｉにおける処理対象出荷先の出荷可能在庫量を特定する（ステップＳ２０３）。ステップＳ２０３の処理では、ＣＰＵ１１１が、ハードディスク１１５に記憶された在庫量データから時点ｔｉにおける処理対象出荷先の出荷可能在庫量を読み出すことで、当該出荷可能在庫量を特定する。初期の在庫量データは、生産計画データと同一のデータである。後述するように、在庫量データは処理が進むにしたがって更新される。
【００５０】
さらにＣＰＵ１１１は、時点ｔｉにおいて、処理対象出荷先の出荷可能在庫量が最小積載量以上であるか否かを判定する（ステップＳ２０４）。ステップＳ２０４において、出荷可能在庫量が最小積載量未満である場合（ステップＳ２０４においてＮＯ）、船への積載に最低限必要な量の製品が倉庫に保管されていない。この場合、ＣＰＵ１１１は、処理対象出荷先の船が時点ｔｉに入港しないと決定し、時点ｔｉにおける処理対象出荷先の積載状態を、船に製品が積載されていないことを示す「０」とし（ステップＳ２０５）、ステップＳ２１１へ処理を移す。
【００５１】
ステップＳ２１１では、全出荷先が処理対象出荷先として選択済みであるか否かをＣＰＵ１１１が判定する（ステップＳ２１１）。処理対象出荷先として選択されていない出荷先が残っている場合（ステップＳ２１１においてＮＯ）、ＣＰＵ１１１は、ステップＳ２０２に処理を移し、まだ選択されていない出荷先の１つを処理対象出荷先として選択し（ステップＳ２０２）、ステップＳ２０３以降の処理を実行する。
【００５２】
また、ステップＳ２１１において、全出荷先が処理対象出荷先として選択済みである場合（ステップＳ２１１においてＹＥＳ）、ＣＰＵ１１１は、時点ｔｉが計画立案期間の最終時点であるか否かを判定する（ステップＳ２１２）。なお、計画立案期間の最終時点は、出荷計画立案装置１に予め与えられる。時点ｔｉが計画立案期間の最終時点ではない場合（ステップＳ２１２においてＮＯ）、ＣＰＵ１１１は、処理対象の時点ｔｉを次の時点に変更し（ステップＳ２１３）、ステップＳ２０２へ処理を移す。
【００５３】
一方、ステップＳ２０４において、出荷可能在庫量が最小積載量以上である場合（ステップＳ２０４においてＹＥＳ）、ＣＰＵ１１１は、処理対象出荷先の船が時点ｔｉにおいて入港又は港に停留すると決定し、その船の実積載量を更新する（ステップＳ２０６）。このステップＳ２０６の処理において、処理対象出荷先への時点ｔｉにおける出荷可能在庫量が最大積載量以下である場合は、実積載量がその出荷可能在庫量と同じ値に更新される。また、当該出荷可能在庫量が最大積載量より大きい場合は、実積載量が最大積載量と同じ値に更新される。
【００５４】
次にＣＰＵ１１１は、時点ｔｉにおける処理対象出荷先の積載状態を、船に製品が積載されていることを示す「１」とする（ステップＳ２０７）。さらに、ＣＰＵ１１１は、処理対象出荷先への時点ｔｉにおける出荷可能在庫量を更新する（ステップＳ２０８）。このステップＳ２０８の処理では、在庫量データにおいて、処理対象出荷先への時点ｔｉにおける出荷可能在庫量が最大積載量以下である場合は、その出荷可能在庫量が「０」とされる。また、当該出荷可能在庫量が最大積載量より大きい場合は、出荷可能在庫量と最大積載量との差分が新たな出荷可能在庫量とされる。
【００５５】
ステップＳ２０３〜Ｓ２０８の処理について例を挙げて説明する。図６は、出荷可能在庫量の更新を説明するための模式図である。図６に示す例では、「１月１０日」〜「１月１２」における出荷先Ａの出荷可能在庫量は６００未満である。ここで、出荷先Ａの船の最小積載量が「６００」、最大積載量が「１０００」であるとすると、「１月１０日」〜「１月１２日」における出荷先Ａの出荷可能在庫量は最小積載量未満となる。このため、「１月１０日」〜「１月１２日」において出荷先Ａの船が入港しないとされ、この間の実積載量は「０」のままであり、出荷可能在庫量も更新されない。また「１月１０日」〜「１月１２日」における積載状態は「０」とされる。一方、「１月１３日」では、更新前の出荷先Ａの出荷可能在庫量が「６００」となっており、これは最小積載量以上、最大積載量未満である。したがって、出荷先Ａの船の入港時点が「１月１３日」に決定され、実積載量が「０」から「６００」に変更され、「１月１３日」における出荷先Ａの積載状態が「１」とされる。また、在庫量データにおいて、「１月１３日」における出荷先Ａへの出荷可能在庫量が「０」とされる。
【００５６】
ステップＳ２０８の処理を終えると、ＣＰＵ１１１は、処理対象出荷先の船の実積載量が最大積載量であるか否かを判定する（ステップＳ２０９）。ここで、処理対象出荷先の船の実積載量が最大積載量でない場合（ステップＳ２０９においてＮＯ）、ＣＰＵ１１１は、時点ｔｉにおいて船が出港しないと決定し、ステップＳ２１１へ処理を移す。
【００５７】
一方、ステップＳ２０９において、処理対象出荷先の船の実積載量が最大積載量である場合（ステップＳ２０９においてＹＥＳ）、ＣＰＵ１１１は、船の出港時点を時点ｔｉに決定する。この場合、ＣＰＵ１１１は、在庫量データにおいて、処理対象出荷先への時点ｔｉ＋１以降における出荷可能在庫量のそれぞれから当該出荷先の船の最大積載量を差し引く（ステップＳ２１０）。
【００５８】
図６の例を用いて、出荷可能在庫量が最大積載量以上の場合におけるステップＳ２０３〜Ｓ２１０の処理について説明する。図６に示す例において、「１月１４日」における出荷先Ａの出荷可能在庫量は「１０００」である。したがって、出荷可能在庫量が最小積載量以上であるため、船は港に「１月１４日」において停留すると決定され、「１月１４日」の実積載量が更新される。ここで、出荷可能在庫量が最大積載量と同じ「１０００」であるため、実積載量は「１０００」に更新される。また、「１月１４日」における積載状態が「１」とされ、出荷可能在庫量が「０」に更新される。
【００５９】
上記のように、「１月１４日」における出荷先Ａの実積載量は「１０００」とされている。これは、出荷先Ａの船の最大積載量「１０００」と同じである。したがって、当該船の出港時刻が「１月１４日」に決定され、ステップＳ２１０において、「１月１５日」以降の全ての時点における出荷可能在庫量が１０００だけ減らされ、当該出荷可能在庫量を含む在庫量データがハードディスク１１１に記憶される。
【００６０】
ステップＳ２１０の処理を終えると、ＣＰＵ１１１は、ステップＳ２１１へ処理を移す。ステップＳ２１１において、全出荷先が処理対象出荷先として選択済みであり（ステップＳ２１１においてＹＥＳ）、ステップＳ２１２において、時点ｔｉが計画立案期間の最終時点である場合（ステップＳ２１２においてＹＥＳ）、ＣＰＵ１１１は、上記のようにして決定した入港時点及び出港時点に基づいて出荷計画を生成する（ステップＳ２１４）。ステップＳ２１４の処理では、各時点の積載状態を用いて出荷計画が生成される。ある出向先の船のある時点における積載状態が「０」の場合、出荷計画において、当該出向先の当該時点での値が未入港を示す「０」とされる。また、ある出向先の船のある時点における積載状態が「１」の場合、出荷計画において、当該出向先の当該時点での値がその船の最大出荷量とされる。ここで、出荷計画における最大積載量は、船が港に停留していることを示すものとする（図１０参照）。
【００６１】
ステップＳ２１４の処理を終えると、ＣＰＵ１１１は、初期出荷計画生成処理を終了し、出荷計画立案処理のメインルーチンに処理を戻す。
【００６２】
以上の初期出荷計画生成処理により、倉庫の負荷状況を考慮した出荷計画を生成できる。また、この出荷計画は、船の着岸に関する制約条件がない場合の出荷計画となる。
【００６３】
再び図２を参照し、出荷計画立案処理について説明する。初期出荷計画生成処理の後、ＣＰＵ１１１は、出荷計画修正処理を実行する（ステップＳ１０３）。この出荷計画修正処理は、初期出荷計画生成処理によって生成された出荷計画を、船の着岸に関する制約条件を満たすように修正する処理である。
【００６４】
出荷計画修正処理についてさらに詳しく説明する。図７は、出荷計画修正処理の手順を示すフローチャートである。
【００６５】
出荷計画修正処理では、計画立案期間の最終時点から遡り、各時点において制約条件に違反するか否かを判定し、制約条件に違反する場合に、制約条件の違反を解消するように船の発着予定を修正する。
【００６６】
出荷計画修正処理において、まずＣＰＵ１１１は、出荷計画を読み出す（ステップＳ３０１）。ステップＳ３０１において、修正する対象が初期出荷計画生成処理によって生成された出荷計画である場合、ＣＰＵ１１１は、ハードディスク１１５からこの出荷計画を読み出す。また、修正する対象がユーザから指定された出荷計画である場合、指定された出荷計画を当該出荷計画が記録された記録媒体（ハードディスク１１５又は他の記録媒体）から読み出す。
【００６７】
次にＣＰＵ１１１は、処理対象の時点ｔｉを計画立案期間の最終時点にセットする（ステップＳ３０２）。
【００６８】
次にＣＰＵ１１１は、時点ｔｉにおいて、出荷計画が制約条件に違反しているか否かを判定する（ステップＳ３０３）。ステップＳ３０３においては、ＣＰＵ１１１は出荷計画を参照し、時点ｔｉにおいて「大」及び「大」の組み合わせの２つの船、又は３つ以上の船が港に停留するか否かを判定する。「大」及び「大」の組み合わせの２つの船、又は３つ以上の船が港に停留する場合、制約条件に違反する。時点ｔｉにおいて停留する船がない、１つだけ船が停留する、「大」及び「小」又は「小」及び「小」の組み合わせの２つの船が停留する場合は、制約条件に違反しない。
【００６９】
時点ｔｉにおいて制約条件に違反していない場合（ステップＳ３０３においてＮＯ）、ＣＰＵ１１１は、時点ｔｉが現在時点（計画立案期間の開始時点）であるか否かを判定する（ステップＳ３０７）。時点ｔｉが現在時点ではない場合（ステップＳ３０７においてＮＯ）、ＣＰＵ１１１は、処理対象の時点ｔｉを１つ前の時点に変更し（ステップＳ３０８）、ステップＳ３０３へ処理を移す。
【００７０】
他方、時点ｔｉにおいて制約条件に違反している場合（ステップＳ３０３においてＹＥＳ）、ＣＰＵ１１１は、時点ｔｉにおいて複数の船の出港が重なっているか否かを判定する（ステップＳ３０４）。時点ｔｉにおいて複数の船の出港が重なっている場合（ステップＳ３０４においてＹＥＳ）、ＣＰＵ１１１は、これらの船のうちの一部の船の出港時点を時点ｔｉ−１に変更する（ステップＳ３０５）。
【００７１】
ステップＳ３０５の処理において、ＣＰＵ１１１は、出港時点が重なっている複数の船の時点ｔｉ−１における空き容量を比較し、空き容量が小さい船の出港時点を時点ｔｉ−１に変更する。ここで、空き容量とは、最大積載容量から時点ｔｉ−１における実積載量を差し引いた値である。２つの船の出港時点が重なっている場合、ＣＰＵ１１１は、時点ｔｉ−１における空き容量が小さい方の船の出港時点を変更し、空き容量が大きい方の船の出港時点を変更しない。３以上の船の出港時点が重なっている場合、ＣＰＵ１１１は、時点ｔｉ−１における空き容量が最小の船の出港時点を変更せず、その他の船の出港時点を変更する。また、複数の船の間で時点ｔｉ−１における空き容量が同一の場合、どちらか一方の船の出港時点を変更する。
【００７２】
図８は、複数の船の出港が重なっている場合の発着予定の変更を説明するための模式図である。図８において、○印は船が港に停留していることを示す。図８に示す例では、時点（日付）「１月２０日」〜「１月２５日」において出荷先Ａの船が港に停留しており、時点（日付）「１月２３日」〜「１月２５日」において出荷先Ｂの船が港に停留している。つまり、出荷先Ａ及びＢの両方の船において、最後の停留時点が「１月２５日」であり、この「１月２５日」が出港時点である。また、この例では出荷先Ａ及びＢの船のサイズは両方とも「大」であるとする。つまり、「１月２５日」において制約条件に違反しており、出荷先Ａ及びＢの船の出港が重なっているため、これらの船のうちの一方の出港時点が変更される。
【００７３】
ここで、「１月２４日」における出荷先Ａの船の実積載量は「８００」であり、この船の最大積載量は「１０００」であるとする。また、「１月２４日」における出荷先Ｂの船の実積載量は「２００」であり、この船の最大積載量は「６００」であるとする。この場合、出荷先Ａの船の空き容量は「２００」であり、出荷先Ｂの船の空き容量は「４００」となる。したがって、空き容量が少ない出荷先Ａの船の出港時点が「１月２５日」から「１月２４日」に変更される。これにより、出港時点が重ならないように出荷計画を修正できる。
【００７４】
なお、図８の例では、出荷先Ａの出港時点が変更されても、「１月２３日」及び「１月２４日」における制約条件の違反は解消されないが、当該違反は処理が進むと解消される。この違反の解消については後述する。
【００７５】
上記のように、空き容量が小さい出荷先Ａの船を先に出港させることで、空き容量が大きい出荷先Ｂの船の荷室を倉庫として使用することができ、倉庫の負荷を低減できる。また、出荷先Ｂの船の出港時点を「１月２４日」に変更すると、当該船の出港時点の空き容量は「４００」となり、出荷先Ａの船の出港時点を「１月２４日」に変更した場合における当該船の空き容量「２００」と比べて空き容量が増大する。つまり、空き容量が小さい出荷先Ａの船を先に出港させることで、出港時点における船の空き容量の増加を抑制できる。
【００７６】
ステップＳ３０５の処理を終えると、ＣＰＵ１１１は、ステップＳ３０７に処理を移す。
【００７７】
一方、時点ｔｉにおいて複数の船の出港が重なっていない場合（ステップＳ３０４においてＮＯ）、ＣＰＵ１１１は、時点ｔｉにおいて港に停留している複数の船のうち、後に出港する船（以下、「後発船」という）の入港時点を、先に出港する船（以下、「先発船」という）の出港時点の後に変更する（ステップＳ３０６）。
【００７８】
ステップＳ３０６の処理において、時点ｔｉにおいて３以上の船が港に停留している場合、ＣＰＵ１１１は、各船のサイズを確認し、時点ｔｉで制約条件を違反しないように、時点ｔｉにおいて港に停留している複数の船のうちの１つ又は複数の船の入港時点を変更する。ここで、時点ｔｉにおいて港に停留している複数の船のうち、最後に出港する船の入港時点を、その他の船の出港時点の後に変更してもよいし、最も遅く出港する２以上の船の入港時点を、その他の船の出港時点の後に変更してもよい。
【００７９】
図９は、複数の船の出港が重なっていない場合の発着予定の変更を説明するための模式図である。図９に示す例では、時点（日付）「２月６日」〜「２月９日」において出荷先Ａの船が港に停留しており、「２月８日」〜「２月１２日」において出荷先Ｂの船が港に停留している。また、この例では出荷先Ａ及びＢの船のサイズは両方とも「大」であるとする。つまり、「２月８日」〜「２月９日」において制約条件に違反している。この例では、出荷先Ａの船が先に出港し（出港時点「２月９日」）、出荷先Ｂの船が後に出港する（出港時点「２月１２日」）。したがって、出荷先Ｂの船の入港時点が、出荷先Ａの船の出港時点「２月９日」の後の「２月１０日」に変更される。
【００８０】
上記のように、後発船の入港時点を、先発船の出港時点の後になるように変更することで、先発船の停留時間が短縮されず、先発船の出港時点での空き容量は変化しない。他方、後発船についても、入港時点は変更されるが出港時点は変更されないため、出港時点での空き容量は変化しない。したがって、先発船及び後発船における空き容量が増加するのを防止できる。
【００８１】
また、上記の図８の例のように、ステップＳ３０５の処理では制約条件の違反が解消されていない場合、時点ｔｉが更新された後のステップＳ３０６において制約条件の違反が解消される。
【００８２】
ステップＳ３０６の処理を終えると、ＣＰＵ１１１は、ステップＳ３０７に処理を移す。ステップＳ３０７において、時点ｔｉが現在時点である場合（ステップＳ３０７においてＹＥＳ）、ＣＰＵ１１１は、出荷計画修正処理を終了し、出荷計画立案処理のメインルーチンに処理を戻す。
【００８３】
以上の出荷計画修正処理により、船の着岸に関する制約条件に違反しないよう、出荷計画が修正される。
【００８４】
次にＣＰＵ１１１は、修正された出荷計画を再修正する出荷計画再修正処理を実行する（ステップＳ１０４）。出荷計画修正処理によって修正された出荷計画では、計画立案期間の最終時点から遡り、複数の船の出港が重複する時点があれば、当該複数の船のうち、空き容量が小さい船の出港時点を１つ前の時点に変更した。このため、計画立案期間の開始時点、つまり現在時点において複数の船の出港が重なっている場合、その時点よりも前の時点が存在しないため、制約条件の違反を解消できない。出荷計画再修正処理は、このように出荷計画修正処理によっても残った制約条件の違反を解消するための処理である。なお、便宜上、出荷計画修正処理によって制約条件が残らなかった場合も、出荷計画再修正処理を実行することとして説明を続ける。
【００８５】
かかる出荷計画再修正処理の内容について詳細に説明する。図１０は、出荷計画再修正処理の手順を示すフローチャートである。まず、ＣＰＵ１１１は、処理対象の時点ｔｉを現在時点にセットする（ステップＳ４０１）。
【００８６】
次にＣＰＵ１１１は、時点ｔｉにおいて、出荷計画が制約条件に違反しているか否かを判定する（ステップＳ４０２）。時点ｔｉにおいて制約条件に違反していない場合（ステップＳ４０２においてＮＯ）、ＣＰＵ１１１は、時点ｔｉが計画立案期間の最終時点であるか否かを判定する（ステップＳ４０７）。時点ｔｉが計画立案期間の最終時点ではない場合（ステップＳ４０７においてＮＯ）、ＣＰＵ１１１は、処理対象の時点ｔｉを１つ後の時点に変更し（ステップＳ４０８）、ステップＳ４０２へ処理を移す。これにより、出荷計画修正処理の結果、出荷計画に制約条件違反が残っていない場合、出荷計画は再修正されない。
【００８７】
他方、時点ｔｉにおいて制約条件に違反している場合（ステップＳ４０２においてＹＥＳ）、ＣＰＵ１１１は、時点ｔｉにおいて複数の船の出港が重なっているか否かを判定する（ステップＳ４０３）。制約条件違反の場合、時点ｔｉにおいて制約条件に違反する複数の船が港に停留している。かかる制約条件違反には、複数の船の出港が時点ｔｉで重複しているもの（以下、「出港重複」という）と、複数の船が時点ｔｉにおいて港に停留しているが、出港時点は重なっていないもの（以下、「停留重複」という）とがある。ステップＳ４０３は、制約条件違反に出港重複が含まれるか否かを判定するものである。つまり、ステップＳ４０３において出港重複が含まれないと判定された場合、制約条件違反は停留重複であることになる。
【００８８】
時点ｔｉにおける制約条件違反に出港重複が含まれる場合（ステップＳ４０３においてＹＥＳ）、ＣＰＵ１１１は、出港が重なっている船のうちの一部の船の入港時点及び出港時点（入出港時点）を時点ｔｉ＋１に変更する（ステップＳ４０４）。
【００８９】
ステップＳ４０４の処理では、将来（ｔｉ＋１）において倉庫の負荷（在庫量）の増加が最小となるように、発着予定が修正される。具体的には、ＣＰＵ１１１は、出港時点が重なっている複数の船の時点ｔｉにおける実積載量を比較し、実積載量が最小の船の入出港時点を時点ｔｉ＋１に変更する。これにより、入出港時点が変更された船の実積載量だけ時点ｔｉ＋１における倉庫の負荷は増大するが、当該船の実積載量は、時点ｔｉにおいて出港が重なっている全ての船の実積載量の中で最小であるため、倉庫の負荷の増大は最小限に止まることになる。例えば、２つの船の出港時点が重なっている場合、ＣＰＵ１１１は、時点ｔｉにおける実積載量が小さい方の船の入出港時点を変更し、実積載量が大きい方の船の入出港時点を変更しない。３以上の船の出港時点が重なっている場合、ＣＰＵ１１１は、時点ｔｉにおける実積載量が最小の船の入出港時点を変更し、その他の船の入出港時点を変更しない。また、複数の船の間で時点ｔｉにおける実積載量が最小であり且つ同一の場合、次の時点ｔｉ＋１における出荷可能在庫量が大きい方の船の入出港時点を変更する。
【００９０】
図１１Ａ乃至図１１Ｃは、出荷計画再修正処理における発着予定の変更の一例を説明するための模式図である。図１１Ａ乃至図１１Ｃにおいて、それぞれの数字は船の実積載量を示している。また、太線の枠は、船の港への停留を示している。つまり、図１１Ａに示す例において、「８月１８日」に出荷先Ａ、Ｃ、及びＧの船が入出港し、「８月１９日」に出荷先Ｂ及びＥの船が入出港する予定である。ここで、出荷先Ａ及びＢの船のサイズは「大」であり、出荷先Ｃ、Ｅ、及びＧの船のサイズは「小」であるとする。図１１Ａに示す例では、「８月１８日」において出荷先Ａ、Ｃ、及びＧの船の入出港が重なっており、制約条件に違反している。したがって、これらのうちで実積載量が最小の出荷先Ｇの船の入出港時点が「８月１９日」に変更される。これにより、「８月１８日」における制約条件の違反は解消される。
【００９１】
上記のように出荷先Ｇの入出港時点を変更すると、図１１Ｂに示す状態となる。図１１Ｂでは、「８月１９日」において出荷先Ｂ、Ｅ、及びＧの船の入出港が重なっており、制約条件に違反している。したがって、ステップＳ４０２において制約条件に違反していると判定され、ステップＳ４０３の処理が実行される。図１１Ｂに示す例では、出荷先Ｅ及びＧの船の実積載量は出荷先Ｂの船の実積載量よりも小さいが、４００で同一である。したがって、この場合、出荷先Ｅ及びＧの船のそれぞれについて、入出港時点を「８月２０日」に変更した場合における「８月２０日」の出荷可能在庫量を比較する。出荷先Ｅの船の入出港時点を「８月２０日」に変更した場合、「８月２０日」における出荷先Ｅの出荷可能在庫量は「４００」である。これに対して、出荷先Ｇの船の入出港時点を「８月２０日」に変更した場合、「８月２０日」における出荷先Ｇの出荷可能在庫量は「５００」である。したがって、「８月２０日」における出荷可能在庫量が大きい出荷先Ｇの船の入出港時点が、「８月２０日」に変更される（図１１Ｃ参照）。これにより、「８月１９日」における制約条件の違反は解消される。また、「８月２０日」においても制約条件は満たされている。
【００９２】
再び図１０を参照する。ステップＳ４０３において、時点ｔｉで複数の船の出港が重なっていない場合、つまり、制約条件違反に出港重複が含まれない場合（ステップＳ４０３においてＮＯ）、出港時点が異なる複数の船が港に停留している状態にある。この場合、ＣＰＵ１１１は、これらの船のうちの一部の船の入港時点を時点ｔｉ＋１に変更する（ステップＳ４０５）。具体的には、ＣＰＵ１１１は、同時に港に停留している複数の船の時点ｔｉにおける実積載量を比較し、実積載量が最小の船の入港時点を時点ｔｉ＋１に変更する。ここで、入港時点を変更する対象の船の出港時点が時点ｔｉである場合、入港時点と共に出港時点も時点ｔｉ＋１に変更される。ステップＳ４０５の処理の後、ＣＰＵ１１１は、ステップＳ４０７に処理を移す。
【００９３】
図１２Ａ乃至図１２Ｃは、出荷計画再修正処理における発着予定の変更の他の例を説明するための模式図である。図１２Ａに示す例において、「８月１８日」に出荷先Ａ、Ｃ、及びＧの船が入出港し、「８月１９日」に出荷先Ｂの船が入出港する予定である。また、出荷先Ｅの船が「８月１９日」に入港し、「８月２０日」に出港する予定である。この例では、「８月１８日」において出荷先Ａ、Ｃ、及びＧの船の入出港が重なっており、制約条件に違反している。したがって、ステップＳ４０４の処理により、実積載量が最小の出荷先Ｇの船の入出港時点が「８月１９日」に変更される。これにより、「８月１８日」における制約条件の違反は解消される。
【００９４】
上記のように出荷先Ｇの入出港時点を変更すると、図１２Ｂに示す状態となる。図１２Ｂでは、「８月１９日」において出荷先Ｂ、Ｅ、及びＧの船の入港が重なっているが、出港時点は出荷先Ｂ及びＧ（「８月１９日」）と出荷先Ｅ（「８月２０日」）とで異なっている。したがって、ＣＰＵ１１１は、ステップＳ４０５の処理により、処理対象時点「８月１９日」における実積載量が最小の出荷先Ｅの船の入港時点を「８月２０日」に変更する（図１２Ｃ参照）。これにより、「８月１９日」における制約条件の違反は解消される。また、「８月２０日」においても制約条件は満たされている。
【００９５】
再び図１０を参照する。上述したステップＳ４０４の処理を行うと、複数の船の出港重複は解消される。しかし、時点ｔｉにおける制約条件違反に、出港重複と停留重複の両方が含まれる場合があり、このような場合は、時点ｔｉにおける出港重複を解消しても、停留重複は解消されておらず、結果として制約条件の違反が解消されないことがある。そこで、ＣＰＵ１１１は、ステップＳ４０４の処理の後、時点ｔｉにおける制約条件違反が解消したか否か、即ち、停留重複が存在するか否かを判定する（ステップＳ４０６）。停留重複が存在する場合（ステップＳ４０６においてＹＥＳ）、ＣＰＵ１１１は、上記のステップＳ４０５に処理を移す。これにより、停留重複が解消される。
【００９６】
ステップＳ４０６において停留重複が存在しない場合（ステップＳ４０６においてＮＯ）、ＣＰＵ１１１は、ステップＳ４０７に処理を移す。ステップＳ４０７において、時点ｔｉが計画立案期間の最終時点である場合（ステップＳ４０７においてＹＥＳ）、ＣＰＵ１１１は、出荷計画再修正処理を終了し、出荷計画立案処理のメインルーチンに処理を戻す。以上の出荷計画再修正処理を実行することで、出荷計画修正処理で残った制約条件違反を解消できる。また、制約条件を違反している船のうち、実積載量が小さい船の発着予定を変更することで、できるだけ倉庫負荷の増大を抑制しつつ、船の空き容量を減らし、しかも制約条件も満たす出荷計画とすることができる。
【００９７】
再び図２を参照し、出荷計画立案処理について説明する。出荷計画再修正処理の後、ＣＰＵ１１１は、得られた出荷計画に基づいて、時点毎の製品の出荷可能在庫量を生成する（ステップＳ１０５）。
【００９８】
次にＣＰＵ１１１は、時点毎の倉庫の総在庫量を生成する（ステップＳ１０６）。この処理では、時点毎に出荷可能在庫量と出荷不可能在庫量とを加算することにより、倉庫の総在庫量が生成される。
【００９９】
次にＣＰＵ１１１は、（１）修正された出荷計画、（２）時系列の出荷可能在庫量、及び（３）倉庫の総在庫量を出力する（ステップＳ１０７）。図１３は出荷計画の出力例を示す図であり、図１４は出荷可能在庫量の出力例を示す図であり、図１５は倉庫の総在庫量の出力例を示す図である。図１３に示すように、出荷計画では、時点毎にどの出荷先の船が港に停留しているかが示される。制約条件を違反していない出荷計画でも、倉庫の負荷状況、工場の生産能力等の理由によって、実行できない場合がある。ユーザは、出力された出荷計画を確認することで、その出荷計画に問題がないかを判断できる。
【０１００】
また、図１４に示すように、時点毎の出荷可能在庫量が出力される。ユーザは、この出荷可能在庫量を参考にして、製品の生産計画を立案したり、修正したりすることができる。また、工場の生産能力等の理由により、出力された出荷可能在庫量を実現できない場合がある。このような場合、ユーザは出荷計画を修正すべきであると判断できる。
【０１０１】
また、図１５に示すように、時点毎の倉庫の総在庫量がグラフ形式で出力される。グラフの縦軸は倉庫の収容率を示し、横軸は時点を示している。このように、倉庫の総在庫量を時系列で出力することで、ユーザが総在庫量の推移を確認できる。また、倉庫の収容率が１００％を超える時点がある場合、倉庫に製品を収容しきれなくなってしまう。したがって、このような場合、ユーザは出荷計画に問題があると判断できる。
【０１０２】
ここで、出荷計画、出荷可能在庫量及び総在庫量を表示部１３に表示させてもよいし、出荷計画立案装置１に接続されたプリンタによって印刷してもよい。
【０１０３】
ユーザは、出力された出荷計画、出荷可能在庫量及び総在庫量を確認し、出荷計画に問題がないかを判断する。問題があれば、ユーザは出荷計画を手作業で訂正する。訂正を行った場合、ユーザは再度出荷計画修正処理を実行する指示を出荷計画立案装置１に与える。この場合、ユーザは、処理の対象の出荷計画のハードディスク１１５等における保存場所を指定することで、出荷計画立案装置１に出荷計画の修正を指示する。また、出荷計画の訂正を行わなかった場合、ユーザは出荷計画立案処理の終了指示を出荷計画立案装置１に与える。
【０１０４】
ＣＰＵ１１１は、ユーザから出荷計画の修正の指示を受け付けたか、出荷計画立案処理の終了指示を受け付けたかを判定する（ステップＳ１０８）。出荷計画の修正指示を受け付けた場合（ステップＳ１０８において「出荷計画の修正指示」）、ＣＰＵ１１１は、ステップＳ１０３に処理を移し、指定された出荷計画に対して出荷計画修正処理を実行する。
【０１０５】
一方、ユーザから出荷計画立案処理の終了指示を受け付けた場合（ステップＳ１０８において「終了指示」）、ＣＰＵ１１１は、出荷計画立案処理を終了する。
【０１０６】
以上のような構成とすることにより、倉庫の負荷状況を考慮した出荷計画を立案できる。また、港における船の同時受入可能数の制限を超えることなく、各船の発着予定を定めた出荷計画を立案できる。
【０１０７】
（その他の実施の形態）
上述した実施の形態においては、船による出荷計画を立案する構成について述べたが、これに限定されるものではない。船以外の輸送機、例えば、貨物自動車、鉄道、航空機による出荷計画を立案するものであってもよい。
【０１０８】
また、上述した実施の形態においては、製品の出荷計画を立案する構成について述べたが、これに限定されるものではない。「出荷対象品」を、製造が完了した製品でなく、製造の途中段階の半製品としてもよい。１つの工場で製造工程の途中まで加工された半製品を、倉庫に一時的に保管した後別の工場へ搬送し、当該別の工場で残りの製造工程を実施し製品を完成させる場合がある。このような場合に、半製品の出荷計画を立案することが有用である。
【０１０９】
また、上述した実施の形態においては、出荷計画修正処理において、初期出荷計画生成処理で生成された出荷計画を制約条件に違反しないように修正し、修正された出荷計画を出力する構成について述べたが、これに限定されるものではない。制約条件を考慮せずに生成された出荷計画を出力してもよい。この場合でも、得られる出荷計画は倉庫の負荷状況が考慮されたものであり、有用である。
【０１１０】
また、上述した実施の形態においては、時点ｔｉにおける出荷可能在庫量と最小積載量とを比較して、出荷可能在庫量が最小積載量以上である場合、時点ｔｉに船が入港することとしたが、これに限定されるものではない。出荷可能在庫量の比較対象は船に積載される製品の量であれば、最小積載量以外であってもよい。例えば、出荷可能在庫量と最大積載量とを比較して、出荷可能在庫量が最大積載量に達した時点を、船の入港時点とすることもできる。このように、出荷可能在庫量と船に積載される製品の量とを利用することで、出荷可能在庫量に応じた入港時点を決定できる。ただし、例えば、出荷可能在庫量が最大積載量から所定量少ない量に達した時点を、船の入港時点とするなど、出荷可能在庫量が最大積載量に到達する前の時点を到着時点として決定することが好ましい。これにより、船に最大積載量の製品を積載可能な時点よりも前に船を入港させ、船の停留期間を長く確保できる。このため、停留されている船を擬似的に倉庫の一部として利用して、倉庫の負荷を軽減できる。
【０１１１】
また、時刻ｔｉにおける出荷可能在庫量を、船に積載される製品の量と比較しなくてもよい。例えば、出荷可能在庫量が０以外となった時点を、船の入港時点とすることもできる。出荷可能在庫量は、倉庫の負荷状況を反映した情報である。したがって、この場合も、倉庫の負荷状況を考慮した出荷計画を立案できる。
【０１１２】
また、上述した実施の形態においては、制約条件を違反している場合に、複数の船の出港時点が重なっているか否かを判定し、その判定結果によって異なる処理を実行する構成について述べたが、これに限定されるものではない。制約条件に違反していれば、複数の船の出港時点が重なっているか否かに関わらず、同一の処理によって、港に同時に停留させておく複数の船のうちの少なくとも１つの船の入港時点又は出港時点を変更する構成としてもよい。例えば、制約条件を違反している場合、無作為に一部の船を選択し、選択された船の入港時点又は出港時点を変更してもよいし、当該複数の船の間である時点における空き容量を比較し、空き容量が小さい船の出港時点を早めるようにしてもよい。
【０１１３】
また、上述した実施の形態においては、出荷計画修正処理において、制約条件を違反しており、且つ、複数の船の出港時点が重なっていない場合に、同時に港に停留している複数の船のうち、後発船の入港時点を、先発船の出港時点の後に変更する構成について述べたが、これに限定されるものではない。先発船の出港時点を、後発船の入港時点の前に変更する構成とすることもできる。
【０１１４】
また、上述した実施の形態においては、出荷計画修正処理において、制約条件を違反しており、且つ、複数の船の出港時点が重なっている場合に、空き容量が小さい船の出港時点を、空き容量が大きい船の出港時点の前に変更する構成について述べたが、これに限定されるものではない。空き容量が小さい船の出港時点を、空き容量が大きい船の出港時点よりも遅くするように船の発着予定を変更してもよい。この場合、空き容量が大きい船の出港時点を変更せず、空き容量が小さい船の出港時点を、空き容量が大きい船の出港時点の後に変更してもよいし、空き容量が小さい船の出港時点を変更せず、空き容量が大きい船の出港時点を、空き容量が小さい船の出港時点の前に変更してもよい。
【０１１５】
また、空き容量が小さい船の出港時点を変更せず、空き容量が大きい船の出港時点を、空き容量が小さい船の出港時点の後に変更する構成とすることも可能である。この場合、時点ｔｉにおいて空き容量が大きい船の出港と空き容量が小さい船の出港が重なっているとすると、空き容量が大きい船の出港時点が時点ｔｉから次の時点ｔｉ＋１に変更されることになる。したがって、時点ｔｉにおける制約条件の違反は解消されていない。このため、時点ｔｉにおける制約条件の違反を解消するために、発着予定の変更を別途行う必要がある。
【０１１６】
また、上述した実施の形態においては、出荷計画修正処理の後に、出荷計画再修正処理を実行する構成について述べたが、これに限定されるものではない。出荷計画修正処理を実行し、出荷計画再修正処理を実行しない構成としてもよい。また、出荷計画修正処理を実行することなく、出荷計画再修正処理と同様の処理を実行する構成としてもよい。つまり、初期出荷計画生成処理で生成された出荷計画について、各時点で制約条件の違反があるか否かを判定し、制約条件の違反があった場合に、制約条件を違反する複数の船の実積載量を比較し、実積載量が小さい船の入出港時点を遅らせるようにすることもできる。
【０１１７】
また、上述した実施の形態においては、出荷計画再修正処理において、複数の船の出港時点が重なっている場合に、出港時点が重なっている複数の船のうち実積載量が小さい船の入出港時点を遅らせるようにすることについて述べたが、これに限定されるものではない。出港時点は重なっていなくても、制約条件を違反している場合に、同時に港に停留する複数の船のうち実積載量が小さい船の入出港時点を、他の船の出港時点の後に変更する構成としてもよい。
【産業上の利用可能性】
【０１１８】
本発明の出荷計画立案装置及び出荷計画立案方法は、船、貨物自動車等の輸送機による製品又は半製品の出荷計画を立案するための出荷計画立案装置及びその方法として有用である。
【符号の説明】
【０１１９】
１  出荷計画立案装置
１０  コンピュータ
１１  本体
１２  入力部
１３  表示部
１１０  出荷計画立案処理プログラム
１１１  ＣＰＵ
１１５  ハードディスク
１１６  入出力インタフェース
１１７  画像出力インタフェース
【図１】
0006710090.tif 000003
【図２】
0006710090.tif 000004
【図３】
0006710090.tif 000005
【図４】
0006710090.tif 000006
【図５】
0006710090.tif 000007
【図６】
0006710090.tif 000008
【図７】
0006710090.tif 000009
【図８】
0006710090.tif 000010
【図９】
0006710090.tif 000011
【図１０】
0006710090.tif 000012
【図１１Ａ】
0006710090.tif 000013
【図１１Ｂ】
0006710090.tif 000014
【図１１Ｃ】
0006710090.tif 000015
【図１２Ａ】
0006710090.tif 000016
【図１２Ｂ】
0006710090.tif 000017
【図１２Ｃ】
0006710090.tif 000018
【図１３】
0006710090.tif 000019
【図１４】
0006710090.tif 000020
【図１５】
0006710090.tif 000021