以下、本発明の実施形態を添付図面に基づいて説明する。
図1は、本発明の実施例の在庫計画システムの構成の一例を示すブロック図である。
本発明の実施例の在庫計画システム1は、プロセッサ(CPU)11、通信インターフェース12、入出力インターフェース13及びメモリ14を有する計算機によって構成される。
プロセッサ11、通信インターフェース(図中通信IF)12、入出力インターフェース(図中入出力IF)13及びメモリ14は、バスなどの通信手段によってアクセス可能となるよう互いに接続されている(図示せず)。
プロセッサ11は、メモリ14に格納されたプログラムを実行する演算装置である。プロセッサ11が、各種プログラムを実行することによって、在庫計画システム1の各種機能が実現される。なお、プロセッサ11がプログラムを実行して行う処理の一部を、他の演算デバイス(例えば、ハードウェアによるFPGAやASIC)で実行してもよい。
メモリ14は、不揮発性の記憶素子であるROM及び揮発性の記憶デバイスであるRAMを含む。ROMは、不変のプログラム(例えば、BIOS、UEFI)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶デバイスであり、プロセッサ11が実行するプログラム及びプログラムの実行時に使用されるデータ(例えば、記憶装置2から読み出したデータ)を一時的に格納する。
例えば、プロセッサ11は輸送量上限決定プログラムを実行することによって輸送量上限決定部f1として機能する。輸送量上限決定部f1は、需要予測情報をはじめとする各種データに基づいて、輸送量上限を日次単位で決定する。
また、プロセッサ11は在庫計画立案プログラムを実行することによって在庫計画立案部f2として機能する。在庫計画立案部f2は、輸送量上限情報をはじめとする各種データに基づいて、在庫計画を立案する。
また、プロセッサ11は総コスト評価プログラムを実行することによって総コスト評価部f3として機能する。総コスト評価部f3は、在庫計画情報をはじめとする各種データに基づいて、在庫計画の総コストを評価する。
また、プロセッサ11は画面生成プログラムを実行することによって、画面生成部f4として機能する。画面生成部f4は、日次単位で決定した輸送量上限と、在庫計画と、その総コストや欠品率をユーザが視認できるよう、画面に表示するためのデータを生成する。
通信インターフェース12は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
入出力インターフェース13には、ディスプレイ装置(図示省略)やプリンタ(図示省略)などの出力装置、及びキーボード(図示省略)、マウス(図示省略)、タッチパネル(図示省略)などの入力装置が接続され、プログラムの実行結果をユーザが視認可能な形式で出力し、ユーザからの入力を受けるインターフェースである。
プロセッサ11が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介してサーバに提供され、非一時的記憶媒体である不揮発性のメモリ14や補助記憶装置に格納される。このため、在庫計画システム1は、ネットワークやリムーバブルメディアからデータを読み込むインターフェースを有するとよい。
在庫計画システム1は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で稼働するものでもよい。
在庫計画システム1は、記憶装置2と接続されている。記憶装置2は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶デバイスを有し、プロセッサ11がプログラムの実行時に使用するデータを格納する。
例えば、記憶装置2は、在庫計画システム1が演算処理に使用するデータである、商品情報i1、拠点情報i2、日別・商品別・経路別の需要予測情報i3、経路情報i4、車型情報i5、日別・経路別・車型別の輸送制約情報i6、商品別・拠点別の単価情報i7、商品別・拠点別の初期在庫情報i8、商品別の欠品率上限情報i9、需要予測誤差情報i10、商品別・経路別の前倒し輸送日数上限情報i11を格納する。なお、商品情報i1~前倒し輸送日数上限情報i11は、予め設定された情報である。
また、記憶装置2は、在庫計画システム1が演算処理の結果として出力する日別・商品別・経路別の輸送量上限情報o1、在庫計画情報o2を格納する。
在庫計画情報o2は、日別・商品別・経路別の輸送量情報o21、日別・車型別・経路別の輸送台数情報o22、日別・商品別・拠点別の入出庫・在庫量情報o23、コスト情報o24、欠品率情報o25を含む。なお、これらの情報の詳細については後述する。また、記憶装置2は、プロセッサ11が実行するプログラムを格納してもよい。
図1に示す構成では、在庫計画システム1とは別に記憶装置2を設けたが、データを格納する不揮発性記憶デバイスである補助記憶装置を在庫計画システム1内に設けてもよい。
在庫計画システム1は、通信インターフェース12を介して、他のシステム(例えば、客先POSシステム3、生産計画システム4、出庫管理システム5、輸送管理システム6)と接続してもよい。
客先POSシステムは、販売店における商品の販売を管理するためのシステムであり、販売店が商品を発注するためにも使用される。生産計画システム4は、工場などの各拠点における商品の生産を計画するためのシステムである。出庫管理システム5は、工場や倉庫などの各拠点における商品の出庫を管理するためのシステムである。輸送管理システム6は、輸送業者が輸送手段の運行を管理するためのシステムである。
例えば、在庫計画システム1は、客先POSシステム3から送信された商品の需要予測情報や発注情報を取り纏めて、各商品の到着要求日と予測要求量を生成し、輸送量上限を日次単位で決定し、コスト最小の在庫計画を立案して出力する。
出力された在庫計画に基づいて、生産計画システム4が生産計画を立案したり、出庫管理システム5が出庫指示を生成したり、輸送管理システム6が配車指示を生成したりすることができる。
図2は、商品情報i1の一例である。商品情報i1は、少なくとも、「商品名」(i101)を定義するデータ項目を有する。また、商品の単位数量あたりの重量である「単位重量」(i102)、商品の単位数量あたりの容積である「単位容積」(i103)などの、倉庫の保管能力に対する負荷を示す指標値のデータ項目を有してもよい。
本実施例では、以降、単位数量を個としているが、ケースやパレットなどほかの単位でもよい。また,本実施例では容積の単位は立方メートルとしているが、リットルなど他の単位でもよい。また、「保管日数上限」(i104)のデータ項目を有してもよい。保管日数上限i104が設定されている商品は、入庫後の保管日数が保管日数上限i104を過ぎたら、廃棄しなければならない。
図3は、拠点情報i2の一例である。拠点情報i2は、少なくとも、「拠点名」(i201)を定義するデータ項目を有する。また、「在庫保管容積上限」(i203)、「在庫保管数量の上限」(図示せず)、「在庫保管重量上限」(図示せず)などの、倉庫の保管能力上限を示す指標値のデータ項目を有してもよい。
本実施例では在庫保管容積上限i203の単位は立方メートルとしているが、リットルなど他の単位でもよい。また、「入庫量上限(i204)」、「出庫量上限」(i205)などの、倉庫の作業能力上限を示す指標値のデータ項目を有してもよい。他にも、「冷蔵機能の有無」(図示せず)、「クレーンの有無」(図示せず)などの、商品毎の保管可否を判別するのに用いる情報のデータ項目を有してもよい。
拠点で商品を入出庫可能な日を定義する「拠点稼働日」(図示せず)のデータ項目を有してもよい(図示せず)。拠点の地理的な位置を表す「住所」(i202)や、「緯度・経度」(図示せず)のデータ項目を有してもよい。
図4は、到着日別・商品別・経路別の需要予測情報i3の一例である。日別・商品別・経路別の需要予測情報i3は、少なくとも、「予測日」(i302)、「到着要求日」(i303)、「商品名」(i304)、「発拠点名」(i305)、「着拠点名」(i306)、「予測要求量」(i307)のデータ項目を有する。
予測日i302は、需要予測データの生成日である。需要予測情報i3は、到着要求日i303までに、着拠点i306に、指定の商品を、予測要求量i307分の納品が必要であることを示す。また、需要予測情報i3は、オーダ毎に設定するオーダIDi301のデータ項目を有してもよい。また、予測要求量i307は、需要予測量に対応する。
図5は、経路情報i4の一例である。経路情報i4は、少なくとも、「発拠点名」(i401)、「着拠点名」(i402)を定義するデータ項目を有する。発拠点名i401は、出発地とする拠点の名称である。着拠点名i402は、到着地とする拠点の名称である。また、発拠点を出発してから着拠点に到着するまでの輸送に要する時間を定義する「輸送所要時間」(i403)の情報を含んでもよい。輸送コストとして輸送量に比例した費用が連続的に加算される場合は、単位量あたりの輸送単価である「輸送単価」(図示せず、単位は$/m3、$/kg、$/CS(ケース数)など)を定義してもよい。
図6は、車型情報i5の例であり、「車型名」(i501)、「積載量上限」(i502、i503)のデータ項目を含む。積載量上限i502、i503は、1台あたりの積載量の上限であり、図示した重量上限や容積上限だけでなく、数量上限(パレット数など)のデータ項目を追加したり、これらで置換してもよい。
図7は、日別・経路別・車型別の輸送制約情報i6の一例である。日別・経路別・車型別の輸送制約情報i6は、少なくとも、「出発日」(i601)、「発拠点名」(i602)、「着拠点名」(i603)のデータ項目を有する。「車型名」(i604)のデータ項目を用意して、日別・経路別・車型別にデータを定義できるようにしてもよい。
「輸送台数上限」(i605)のデータ列を定義して、図7のように出発日あたりの最大台数を設定してもよい。輸送コストとして輸送台数に比例した費用が車両単位で加算される場合は、「輸送単価」(i606)のデータ列を定義して、図7のように1台あたりの単価を設定することもできる。なお、輸送台数上限i605は、輸送能力上限として扱うことができる。
図8は、商品別・拠点別の単価情報i7の一例である。商品別・拠点別の単価情報i7は、少なくとも、「拠点名」(i702)のデータ項目を有する。「商品名」(i702)のデータ項目を有して、拠点と商品の組合せ毎に設定してもよい。
「保管単価」(i703)は商品をその拠点に保管する際にかかる単価である。「入出庫作業単価」(i704)は、その拠点で商品を入出庫するときにかかる作業単価である。入庫作業単価と、出庫作業単価それぞれ別々に定義してもよい。
「廃棄単価」(i705)は、商品のその拠点における保管日数が、保管日数上限i104を超えて廃棄するときにかかる単価である。通貨単位は$の他、円などでもよい。量の単位はCSの他に、個、ロット、パレット、m3、kgなどでもよい。
また、「設備名」(図示せず)と「CSあたり作業負荷」(図示せず)のデータ項目を有して、その設備を使って作業する場合のCSあたりの作業負荷を定義し、別途、設備毎に、1日あたりの作業負荷上限などを定義することもできる。
図9は、商品別・拠点別の初期在庫情報i8の一例である。初期在庫情報i8は、少なくとも、「商品名」(i801)と,「拠点名」(i802)と、「保管開始日」(i803)と、「初期在庫量」(i804)のデータ項目を有する。
初期在庫情報i8は、商品と拠点の組合せ毎の初期在庫量を設定できる。
図10は、商品別の欠品率上限情報i9の一例である。欠品率上限情報i9は、少なくとも、「商品名」(i901)と、「欠品率上限」(i902)のデータ項目を有する。
欠品率上限情報i9は、商品毎の欠品率上限を設定できる。欠品率上限情報i9は、「着拠点名」(図示せず)のデータ項目を追加して、商品と着拠点名の組合せ毎に設定してもよい。
図11は、需要予測誤差情報i10の一例である。需要予測誤差情報i10は、「商品名」(i1001)、「着拠点名」(i1002)、「到着要求日までの日数」(i1003)の組合せ毎に、「予測誤差の分散」(i1004)などの予測誤差の統計値を設定できる。
周知又は公知の例では、到着要求日までの日数が短くなるほど、受注が確定する。そのため、例えば、到着要求日までの日数i1003が短くなるほど予測誤差の分散が小さくなるように設定すればよい。
また、常に一定の需要が見込まれる定番商品に比べ、季節商品や需要に突発変動のある商品は、予測誤差の分散i1004が大きくなるよう設定できる。また、着拠点名i1002毎に、その着拠点からのオーダの特性に応じて、予測誤差の分散i1004を設定できる。なお、予測誤差の分散i1004は需要予測誤差の統計データとして扱うことができる。
「商品名」(i1001)、「着拠点名」(i1002)の代わりに「オーダID」(図示せず)のデータ項目を追加して、個々のオーダID毎に、到着要求日までの日数i1003の組合せ毎の予測誤差の分散を設定してもよい。また、予測誤差が正規分布に従わない場合は、予測の下振れ時の分散と、予測の上振れ時の分散のそれぞれを設定してもよい(図示せず)。
図12は、商品別・経路別の前倒し輸送日数上限情報i11の一例である。前倒し輸送日数上限情報i11は、「商品名」(i1101)、「発拠点名」(i1102)、「着拠点名」(i1103)、「前倒し輸送日数上限」(i1104)のデータ項目を有する。
前倒し輸送日数上限情報i11は、商品名と、発拠点名と着拠点名の組合せからなる経路との組合せについて、到着要求日より前倒しして輸送する場合の、到着要求日と前倒し輸送による到着日との差の日数の上限である、前倒し輸送日数上限i1104を設定できる。
図13は、在庫計画システム1が出力する、日別・商品別・経路別の輸送量上限情報o1の一例である。輸送量上限情報o1は、「出発日」(o101)、「商品名」(o102)、「発拠点名」(o103)、「着拠点名」(o104)、「輸送量上限」(o105)のデータ項目を有する。
輸送量上限情報o1は、出発日と商品名と、発拠点名と着拠点名の組合せからなる経路の組合せについて、在庫計画システム1が決定した輸送量上限を格納する。
図14から図18はそれぞれ、在庫計画システム1が出力する在庫計画情報o2を構成する、日別・商品別・経路別の輸送量情報o21、日別・経路別の輸送台数情報o22、日別・商品別・拠点別の入出庫・在庫量情報o23、コスト情報o24、欠品率情報o25の一例である。
図14は、日別・商品別・経路別の輸送量情報o21の一例である。輸送量情報o21は、「出発日」(o2101)、「商品名」(o2102)、「発拠点名」(o2103)、「着拠点名」(o2104)、「車型名」(o2105)、「輸送量」(o2106)のデータ項目を有する。
輸送量情報o21は、出発日o2101と商品名o2102と車型名o2105と、発拠点名o2103と着拠点名o2104の組合せからなる経路の組合せについて、在庫計画システム1が在庫計画として立案した輸送量o2106を格納する。
図15は、日別・車型別・経路別の輸送台数情報o22の一例である。輸送台数情報o22は、「出発日」(o2201)、「車型名」(o2202)、「発拠点名」(o2203)、「着拠点名」(o2204)、「輸送台数」(o2205)のデータ項目を有する。
輸送台数情報o22は、出発日o2201と、車型名o2202と、発拠点名o2203と着拠点名o2204の組合せからなる経路の組合せについて、在庫計画システム1が在庫計画として立案した輸送台数o2205を格納する。
図16は、日別・商品別・拠点別の入出庫・在庫量情報o23の一例である。入出庫・在庫量情報o23は、「日付」(o2301)、「商品名」(o2302)、「拠点名」(o2303)、「入庫量」(o2304)、「出庫量」(o2305)、「廃棄量」(o2306)、「出庫要求量」(o2307)、「欠品量」(o2308)、「在庫量」(o2309)のデータ項目を有する。
入出庫・在庫量情報o23は、日付o2301と商品名o2302と拠点名o2303の組合せについて、在庫計画システム1が在庫計画として立案した入庫量o2304と出庫量o2305と廃棄量o2306と出庫要求量o2307と欠品量o2308と在庫量o2309を格納する。なお、入庫量o2304と出庫量o2305の組合せは、入出庫量として扱うことができる。
図17は、コスト情報o24の一例である。コスト情報o24は、「日付」(o2401)、「輸送コスト」(o2402)、「保管コスト」(o2403)、「廃棄コスト」(o2404)、「入庫作業コスト」(o2405)、「出庫作業コスト」(o2406)、「総コスト」(o2407)のデータ項目を有する。
コスト情報o24は、在庫計画システム1が立案した在庫計画について計算した、日付o2401毎の輸送・保管・廃棄・入庫作業・出庫作業それぞれのコストと、それらの総和である総コストo2407を格納する。他にも、拠点や設備の固定費、生産コスト、調達コストなどのデータ項目を定義してもよい(いずれも図示せず)。
図18は、欠品率情報o25の一例である。欠品率情報o25は、「商品名」(o2501)、「要求量合計」(o2502)、「欠品量合計」(o2503)、「欠品率」(o2504)のデータ項目を有する。
欠品率情報o25は、在庫計画システム1が立案した在庫計画について計算した、商品別の要求量合計o2502と欠品量合計o2503と欠品率o2504を格納する。「発拠点名」(図示せず)や「着拠点名」(図示せず)のデータ項目を追加して、それぞれの組合せについて欠品率などの情報を格納してもよい。
図19は、在庫計画システム1による、在庫計画処理のフローチャートS1である。この処理は、在庫計画システム1の利用者(又は管理者)の指令を受信した場合や,週次の計算日時など計算開始条件を満たした場合に開始される。以下の説明では、各機能部を処理の主体として説明するが、プロセッサ11や在庫計画システム1を処理の主体として読み替えることができる。
まず、在庫計画システム1は、記憶装置2から入力データとして商品情報i1~前倒し輸送日数上限情報i11を取り込む(S10)。
次に、輸送量上限決定部f1は、日別・商品別・経路別の需要予測情報i3における予測要求量i307と、需要予測誤差情報i10における到着要求日までの日数i1003別の予測誤差の分散i1004のデータを用いて、日別・商品別・経路別の輸送量上限o105を決定し、日別・商品別・経路別の輸送量上限情報o1に格納する(S11)。
次に、在庫計画立案部f2は、ステップS11で決定した輸送量上限o105と、日別・経路別・車型別の輸送制約情報i6における日別・経路別・車型別の輸送台数上限i605を満たすように、日別・商品別・経路別の輸送量情報o21と、日別・車型別・経路別の輸送台数情報o22と、日別・商品別・拠点別の入出庫・在庫量情報o23からなる在庫計画を立案する(S12)。
次に、総コスト評価部f3は、ステップS12で立案した在庫計画を実行した場合の、輸送・保管・廃棄・入庫作業・出庫作業のコストを含む総コストo2407と、欠品率o2504を、需要予測誤差を考慮して評価し、コスト情報o24と欠品率情報o25に格納する(S13)。
次に、総コスト評価部f3は、ステップS13の欠品率o2504は商品別の欠品率上限情報i9で設定した欠品率上限i902を満たし、かつ、それまでに保存した暫定解がある場合はその暫定解の在庫計画の総コストよりステップS13で評価した総コストo2407が安いかどうかを判定する(S14)。
総コスト評価部f3は、ステップS13の総コストの方が安い場合は、ステップS12で立案した在庫計画と、ステップS13で評価した総コストo2407と欠品率o2504を、暫定解として保存する(S15)。
次に、総コスト評価部f3は、所定の終了条件(後述)を満たすかどうかを判定する(S16)。所定の終了条件を満たす場合は、総コスト評価部f3は暫定解をコスト最小の在庫計画として保存し、出力する(S17)。
所定の終了条件を満たさない場合、総コスト評価部f3は、終了条件を満たすまで、上記ステップS12からステップS16の処理を繰り返す。
ステップS10の詳細を説明する。取り込んだ入力データから、画面生成部f4が表示データを生成し、入出力インターフェース13から出力してディスプレイ装置などに表示してもよい。
例えば、図22に示すd1は、在庫計画立案用データの入力・確認画面の例である。在庫計画立案用データの入力・確認画面d1には、日別・経路別・車型別の輸送制約情報(d11)や、需要予測誤差情報(d12)など、各入力データを表示できる。
また、在庫計画立案用データの入力・確認画面d1では、入力データの編集ボタン(d13)を押すと、入力データをユーザが直接編集・更新できるようにしてもよい。また、計画立案の実行ボタン(d14)を押すと、図19に示したステップS11以降の処理が始まるようにしてもよい。
ステップS11の詳細を説明する。ステップS11では、輸送量上限決定部f1が、日別・商品別・経路別の需要予測情報i3における予測要求量i307と、需要予測誤差情報i10における到着要求日までの日数i1003別の予測誤差の分散i1004のデータを用いて、日別・商品別・経路別の輸送量上限o105を決定する。
なお、輸送量上限o105の決定には、商品別・経路別の前倒し輸送日数上限情報i11における前倒し輸送日数上限のデータも用いてよい。例えば、拠点wから拠点fに発注する商品iについての、発拠点をf、着拠点をwとする経路(f、w)の出発日t、商品iの輸送量上限transub(t、i、f、w)は、例えば以下のように決定できる。
・集合:
・計画対象の日付:0、1、…、T
・商品の集合:I
・商品i、着拠点w、要求日τのオーダの集合:O(i、w、τ)
・定数:以下、o∈O、t∈T
・調達LT(リードタイム):ProcLT
・商品i、経路(f、w)の前倒し輸送日数上限:MoveUpDayCntUB
・商品i、着拠点w、到着要求日までの日数ρの需要予測誤差の分散:σ(i、w、ρ)
・オーダoの予測要求量:OrderQty(o)
・オーダoの要求日:ArrivalDay(o)
・オーダoの予測要求量のうち、出発日tに出発可能な量:OrderQty(o、t)は、以下のように表すことができる。
ここで、輸送量上限決定における分散の重み付け係数:k
とすると、
・商品i、出発日t、経路(f、w)の輸送量上限の決定式:transub(t、i、f、w)は、以下のように表すことができる。
上記(2)式は、出発日別の輸送量上限を、その出発日に輸送可能な対象商品・経路のオーダ全てについて、オーダの予測要求量i307から、出発日からオーダの到着要求日までの日数に応じた需要予測の分散を係数で重み付けして減算した値の総和として算出するものである。
ここで、需要予測の分散σ(i、w、ρ)は、前述の図11の例のように、商品名・着拠点・到着要求日までの日数i1003毎に設定してもよいし、図20のグラフのように、到着要求日までの日数が長いときは分散が大きく、短くなるほど分散が小さくなる関数を用いてもよい。到着要求日までの日数が短くなるにつれて、分散が減少する傾きに応じて、図中(a)、(b)、(c)のような関数を使い分けてもよい。
次に、ステップS12の詳細を説明する。ステップS12では、ステップS11で決定した輸送量上限o105と、日別・経路別・車型別の輸送制約情報i6における日別・経路別・車型別の輸送台数上限i105を満たすように、日別・商品別・経路別の輸送量情報o21と、日別・車型別・経路別の輸送台数情報o22と、日別・商品別・拠点別の入出庫・在庫量情報o23からなる在庫計画を立案する。
在庫計画の立案方法としては、例えば、輸送量・輸送台数・入出庫量・在庫量・廃棄量・欠品量の取り得る全通りの組合せを自動生成することで、全通りの在庫計画を生成してもよい。そして、生成した全通りの在庫計画から、各在庫計画についてステップS12からステップS16の処理を繰り返すことで全通りの組合せを探索し、欠品率上限i902を満たして総コストo2407が最小となる在庫計画を決定してもよい。
他の在庫計画の立案方法としては、全通りで要求到着日が最も遅いオーダから順に、そのオーダの要求量を満たすよう、輸送量上限o105及び輸送台数上限i605まで余裕がある能力枠に輸送を割付けていき、能力枠を超える分は前倒しして割付けることで、日別・商品別・経路別の輸送量o2106を決定してもよい。
出発日t、経路p、車型v、商品iについて、輸送量trans(t、p、v、i)に基づき、輸送台数vcnt(t、p、v)は次式で計算できる。
定数は、
・商品iの単位容積:ItemUnitVol(i)
・車型vの積載容積上限:VehicleVolUB(i)
とし、輸送台数vcnt(t、p、v)の計算式は、次のように表すことができる。
上記(3)式は積載量上限i503として容積のみ考慮したが、例えば重量も併せて考慮する場合は、積載容積上限について算出した輸送台数と、積載重量上限について算出した輸送台数の、いずれか多い方を用いればよい。
また、上記の輸送量に基づき、日別・拠点別・商品別の入庫量o2304は、上流からの全経路の輸送量を、同じ到着日・同じ商品について合算した値として算出される。
日別・拠点別・商品別の入庫量o2304は、上流からの全経路の輸送量を、同じ到着日・同じ商品について合算した値として算出される。
日別・拠点別・商品別の廃棄量は、その日に、保管開始日からの保管日数が保管日数上限を超える在庫量を、拠点別・商品別に合算した値として算出される。
日付t、拠点w、商品iについて、日別・拠点別・商品別の在庫量stock(t、w、i)は、上記の方法で計算した入庫量in(t、w、i)と、出庫量out(t、w、i)、廃棄量dispose(t、w、i)を用いて、次式で算出される。
定数は、
・初期在庫量:InitStock(w、i)
とすると、在庫量stock(t、w、i)は、次式で表すことができる。
拠点情報i2で在庫保管容積上限i203、入庫量上限i204、出庫量上限i205を定義する場合は、上限を超える分は、入庫量や出庫量を上限以下になるよう修正し、その分を欠品とすればよい。
日別・拠点別・商品別の欠品量shortage(t、w、i)は、拠点wの下流の経路の集合Pについて、下流からの要求量requestQty(t、p、i)(p∈P)を用いて、次式で算出される。
下流から拠点wへの出庫要求量requestQty(t、w、i)の計算式は以下のように表される。
欠品量shortage(t、w、i)の計算式は以下のように表される。
次に、ステップS13の詳細を説明する。ステップS13では、ステップS12で立案した在庫計画を実行した場合の、輸送・保管・廃棄・入庫作業・出庫作業のコストを含む総コストo2407と、欠品率o2504を、需要予測誤差を考慮して評価する。ステップS13で行われる評価処理の一例のフローチャートS2を図21に示す。
総コスト評価部f3は、まず、ステップS21で、日別・商品別・経路別の需要予測情報i3における予測要求量i307と、需要予測誤差情報i10における予測誤差の分散i1004に基づき、実需要として想定される日別・商品別・経路別の想定要求量を生成する。想定要求量は、予測要求量i307に、予測誤差の分散i1004に基づき生成したランダムノイズなどを加算することで生成できる。
次に、ステップS22で総コスト評価部f3は、ステップS12において、需要予測に基づき立案した在庫計画を実行した場合に、実需要がステップS21で生成した想定要求量であり需要の予実差が発生したときの、輸送量・輸送台数・入出庫量・在庫量・廃棄量・欠品量・出庫要求量を計画期間の初日から1日ずつ、最終日に達するまでシミュレーションする。
例えば、ある日に需要が下振れした場合は、需要に備えた在庫の一部が余剰となり、次の日にローリングする。ある日に需要が上振れし、在庫を上回る需要となった場合は、欠品量が生じ、在庫量がゼロになり、次の日にローリングする。これを最終日まで繰り返すことで、需要予測の誤差を考慮した各物量の推移のシミュレーションができる。
総コスト評価部f3は、最後に、ステップS23で、シミュレーションの結果得られた輸送量・輸送台数・入出庫量・在庫量・廃棄量・欠品量・出庫要求量に基づき、次式で、総コストと欠品率を評価する。
定数は、輸送単価TransUnitCost(t、p、v)、保管単価StockUnitCost(w、i)、廃棄単価DisposalUnitCost(w、i)、入庫作業単価InputUnitCost(w、i)、出庫作業単価OutputUnitCost(w、i)、とする。
変数は、総コストtotCost、輸送コストtransCost、保管コストstockCost、廃棄コストdisposalCost、入庫作業コストinputCost、出庫作業コストoutputCost、欠品率shortageRate、とする。
コストの計算式は、次のように表すことができる。
欠品率の計算式は、次のように表すことができる。
上記の例では輸送コストtransCost(o2402)は車両単位で加算されるとしたが、輸送量に比例して連続して加算される変動コストの項を追加してもよい。
次に、ステップS14とステップS15の詳細を説明する。図19の例では、欠品率上限i902を満たし、かつ、総コストo2407が暫定解より安い場合のみ暫定解として保存しているが、欠品率上限i902を満たさない場合でも欠品率上限i902の条件緩和案として保存したり、総コストo2407が上回る場合でも、次点の計画案などとして、全て保存してもよい。
ステップS16の詳細を説明する。図19の処理の終了条件として、ステップS12からステップS16の処理の繰り返し回数の上限や、総コストo2407の下限値や、総コストo2407の改善率の下限値などを設定しておき、その上限や下限に到達した場合は、終了条件を満たしたと判定してステップS17に進む。
終了条件を満たさない場合は、ステップS12からステップS16の処理を繰り返す。その場合、ステップS12では、例えば、全通り探索の場合は、未探索の輸送量・輸送台数・入出庫量・在庫量・廃棄量・欠品量の組合せの在庫計画を生成すればよい。もしくは、暫定解の在庫計画のうち、一部の物量を増減して新しい在庫計画を生成してもよい。
ステップS17の詳細を説明する。総コスト評価部f3は暫定解をコスト最小の在庫計画として保存し、画面生成部f4は表示データを生成する。生成されたデータは、入出力インターフェース13から出力されディスプレイ装置などに表示される。
図23は計画立案結果の確認画面d2の表示例である。確認画面d2には、日別・商品別・経路別の輸送量上限の立案結果(d21)や、在庫計画の立案結果(d22)を表示してもよい。
また、前述のように、コスト最小な計画案以外も保存しておいた場合は、図中下部の他の計画案の表示ボタン(d23)を押下すると、コスト最小の計画以外の案も表示されて、ユーザがコスト最小の在庫計画案とそれ以外の案を比較して、最も好ましい案を選択できるようにしてもよい。採用ボタン(d24)を押すと、表示されている在庫計画が採用されて、実際の運用に用いられるようにしてもよい。
在庫計画の立案結果d22の表示として、各日付に対する輸送台数・要求量・在庫量を示した時系列グラフを表示してもよい(d221)。輸送台数のグラフには、上限と、立案した輸送台数の計画値を経路別・車型別に表示してもよい。要求量のグラフには、日別・商品別・経路別の需要予測情報i3で設定した予測日別の予測要求量i307と、図21のステップS21で生成されて、需要予測誤差を考慮したシミュレーションに用いた日別・送品別・経路別の想定要求量を表示してもよい。在庫量のグラフには、商品別の在庫量を表示してもよい。
また、時系列グラフd221は、輸送量上限なしで立案した在庫計画(d2211)と、輸送量上限ありで算出したコスト最小の在庫計画(d2212)を比較表示してもよい。図23の例では、5、6月時点での予測要求量はA~Cの各商品とも30個であるのに対し、実際の要求量として想定した想定要求量は各商品とも22個である。
これに対し、輸送量上限なし(d2211)の計画では、輸送台数上限を満たすために、5、6月中にA、Bを予測要求量の30個ずつ前倒し輸送してしまったため、7月に需要が各22個に下振れして、A、Bは各8個の余剰在庫が生じている。
一方、ステップS11で決定した輸送量上限を用いた輸送量上限あり(d2212)のコスト最小の在庫計画では、5、6月の各月とも、A~Cの各商品を10個ずつ前倒し輸送し、7月に各商品の要求量が各22個に確定した後はA~Cの各商品を2個ずつ輸送することで、A~Cの余剰在庫はゼロに低減できている。また、需要の下振れにあわせて、7月の車両台数も低減できている。
在庫計画の立案結果d22の表示として、立案結果の総コストを、コスト費目毎の積み上げグラフで表示してもよい(d222)。また、立案結果の欠品率を、欠品率上限とともにグラフで表示してもよい(d223)。コストd222と欠品率d223のいずれも、図23の例のように、輸送量上限なしで立案した結果と、輸送量上限を決定して立案したコスト最小の在庫計画の両方を比較表示してもよい。
以上の例では、全組合せを生成したり、暫定解の一部の物量を増減して新しい在庫計画を生成することで、総コストo2407が最小の案を探索する方法を示したが、本発明はこのような方法に限定されるものではない。例えば、混合整数計画法をはじめとする数理最適化手法により、総コストが最小となるよう、前述の入力した条件下で、在庫計画を立案してもよい。
また、以上では、総コストo2407が最小の在庫計画を立案する方法について説明したが、例えば、日別・商品別・経路別の需要予測情報i3に基づき、入力された到着要求日i303までに要求量を納品できるように、要求日が早い順に商品を出庫して輸送する在庫計画を生成してもよい。
<結び>
以上のように、本実施例の在庫計画システム1は、需要予測量(予測要求量i307)と、到着要求日までの日数i1003に応じて変化する需要予測誤差の統計データ(予測誤差の分散i1004)に基づき輸送量上限o105を設定することで、需要の下振れ時に生じる余剰在庫による保管コストや廃棄コストを低減する輸送量を立案できる。また、前記の輸送量上限及び輸送台数上限を満たし、車両単位で加算される輸送コストや保管コストや廃棄コストを含む総コストが最小となる在庫計画を立案することで、サプライチェーン全体のコストが最小となる輸送量を決定することができる。
本実施例の在庫計画システム1は、上記課題に鑑みてなされたものであり、輸送台数上限を考慮して繁忙期より前倒しした分割輸送を計画する。その際、実需要が予測に対して下振れした際の余剰在庫を低減するように、到着要求日までの日数が長く需要予測の精度が低い時期は、前倒し輸送量を最小限とするよう輸送量を決定する。
上記は以下の手順で実現する。まず、日別・商品別の需要予測量と、到着要求日までの日数に応じて変化する需要予測の精度に基づき、日別・商品別の輸送量上限を設定する。次に、決定した日別・商品別の輸送量上限と、日別の輸送台数上限を考慮して、日別・商品別の輸送量や入出庫量や在庫量からなる在庫計画を立案する。その計画の実行にかかる輸送・保管・廃棄・作業などのコストの総和である総コストを計算し、総コストが最小となる在庫計画を立案する。
本実施例において開示される発明の代表的な一例を示せば以下の通りである。すなわち、在庫計画システムであって、所定の処理を実行する演算装置と、前記演算装置がアクセス可能なメモリとを有し、前記演算装置は、需要予測量と、到着要求日までの日数に応じて変化する需要予測誤差の分散など予測誤差の統計データに基づき輸送量上限を決定し、前記の輸送量上限と、輸送台数上限を満たすように輸送量と輸送台数を決定し、前記輸送量から入出庫量と在庫量を計算し、前記の輸送量と輸送台数と入出庫量と在庫量から輸送・保管・廃棄・作業などのコストを計算し、前記コストの総和である総コストが最小となるときの輸送量・輸送台数・入出庫量・在庫量からなる在庫計画を出力することを特徴とする。
なお、上記実施例の在庫計画システムは、以下のような構成とすることができる。
(1)所定の処理を実行する演算装置(プロセッサ11)と、前記演算装置(11)がアクセス可能なメモリ(14)と、を有する在庫計画システム(1)であって、前記演算装置(11)は、予め設定された物品の需要予測量(予測要求量i307)と、前記物品の到着要求日までの日数(i1003)に応じて変化する需要予測誤差の統計データ(予測誤差の分散i1004)を入力として、前記需要予測量(i307)と前記統計データ(i1004)に所定の処理を行って前記物品の輸送量上限(o105)を日次単位で決定して出力することを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、需要予測量と、到着要求日までの日数に応じて変化する需要予測誤差の統計データに基づき輸送量上限を日次単位で設定することで、需要下振れ時に生じる余剰在庫による保管コスト及び廃棄コストを低減する輸送量を立案できる。
(2)上記(1)に記載の在庫計画システムであって、前記演算装置(11)は、前記輸送量上限(o105)の決定において、前記到着要求日(i303)より前倒しした物品の輸送をする場合の前倒し輸送日数の上限(前倒し輸送日数上限i1104)を用いることを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、輸送台数上限i605を考慮して繁忙期よりも前倒しした分割輸送を計画する。その際、実需要が予測に対して下振れした際の余剰在庫を低減することが可能となる。また、在庫計画システム1は、需要の下振れにあわせて、車両台数も低減することも可能となる。
(3)上記(2)に記載の在庫計画システムであって、前記演算装置(11)は、前記決定した輸送量上限(o105)と、予め設定された輸送能力上限(輸送台数上限i605と車型名i604)を満たすように前記物品の輸送量(o2106)を決定し、前記輸送量(o2106)から入出庫量と在庫量を計算し、前記輸送量(o2106)と前記入出庫量(入庫量o2304と出庫量o2305)と前記在庫量(o2306)からなる在庫計画(d2)を出力することを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、需要予測量と、到着要求日までの日数i1003に応じて変化する需要予測誤差の統計データ(予測誤差の分散i1004)に基づき輸送量上限o105を設定することで、需要の下振れ時に生じる余剰在庫による保管コストや廃棄コストを低減する輸送量を立案できる。
(4)上記(3)に記載の在庫計画システムであって、前記演算装置(11)は、前記決定した輸送量(o2106)と入出庫量(o2304、o2305)と在庫量(o2306)と、予め設定された輸送単価(i606)と保管単価(i703)と廃棄単価(i705)と入出庫作業単価(i704)に基づいて、輸送コスト(o2402)と保管コスト(o2403)と廃棄コスト(o2404)及び入出庫作業コストト(o2405、o2406)の少なくともひとつを計算して出力することを特徴とする在庫計画システム。
上記構成により、前記の輸送量上限及び輸送台数上限を満たし、車両単位で加算される輸送コストや保管コストや廃棄コストを含む総コストが最小となる在庫計画を立案することで、サプライチェーン全体のコストが最小となる輸送量を決定することができる。
(5)上記(4)に記載の在庫計画システムであって、前記演算装置(11)は、前記計算した輸送コスト(o2402)と保管コスト(o2403)と廃棄コスト(o2404)及び入出庫作業コストト(o2405、o2406)の総和である総コスト(o2407)を計算し、前記総コスト(o2407)が最小となる輸送量(o2106)と入出庫量(o2304、o2305)と在庫量(o2306)からなる在庫計画(d2)を出力することを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、輸送量上限及び輸送台数上限を満たし、車両単位で加算される輸送コストや保管コストや廃棄コストを含む総コストが最小となる在庫計画を立案することで、サプライチェーン全体のコストが最小となる輸送量を決定することができる。
(6)上記(5)に記載の在庫計画システムであって、前記演算装置(11)は、前記決定した輸送量(o2106)と入出庫量(o2304、o2305)と在庫量(o2306)に基づいて欠品率(o2504)を計算して出力することを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、輸送量上限及び輸送台数上限を満たし、車両単位で加算される輸送コストや保管コストや廃棄コストを含む総コストが最小となる在庫計画を立案することで、欠品率を低減することが可能となる。
(7)上記(6)に記載の在庫計画システムであって、前記演算装置(11)は、前記欠品率(o2504)が所定の欠品率上限(i902)を満たし、かつ、前記総コスト(o2407)が最小となる前記在庫計画(d2)を出力することを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、輸送量上限及び輸送台数上限を満たし、車両単位で加算される輸送コストや保管コストや廃棄コストを含む総コストが最小となる在庫計画を立案することで、欠品率を低減することが可能となる。
(8)上記(7)に記載の在庫計画システムであって、前記演算装置(11)は、前記輸送能力上限(i605、i604)を輸送台数上限(i605)として定義し、前記輸送量上限(o105)と前記輸送台数上限(i605)限を満たすように輸送量(o2106)を決定し、前記輸送量(o2106)から必要な輸送台数を計算し、前記輸送コスト(o2402)を前記輸送量(o2106)と前記輸送台数(o2205)と前記輸送単価(i605)に基づいて計算することを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、輸送量・輸送台数・入出庫量・在庫量・廃棄量・欠品量の取り得る全通りの組合せで要求到着日が最も遅いオーダから順に、そのオーダの要求量を満たすよう、輸送量上限o105及び輸送台数上限i605まで余裕がある能力枠に輸送を割付けていき、能力枠を超える分は前倒しして割付けることで、需要の下振れ時に生じる余剰在庫による保管コストや廃棄コストを低減する輸送量を立案できる。なお、日別・商品別・経路別の輸送量o2106を決定してもよい。
(9)上記(2)に記載の在庫計画システムであって、前記演算装置(11)は、前記輸送量上限(o105)と前記輸送能力上限(i605、i604)を満たすように、前記到着要求日(i303)が早い順に商品を出庫して輸送するよう、前記輸送量(o2106)を決定することを特徴とする在庫計画システム。
上記構成により、在庫計画システム1は、要求日が早い順に商品を出庫して輸送する在庫計画を生成することで、需要予測情報i3に基づき、入力された到着要求日i303までに要求量を納品することが可能となる。
以上、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。