(57)【要約】【課題】複数種の受注オーダーに対して引き当てる複数種の在庫品ロットの各引当数の適した組合せを効率よく設定できる在庫引当方法及び在庫引当装置を提供する。【解決手段】本発明の在庫引当方法は、各受注オーダーに対して各在庫品ロットの引当数をそれぞれ決定するものであって、任意の１の優先度受注パラメータ及び任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成する第１工程と、前記第１工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータの少なくとも一方を変更して各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成する第２工程と、前記第１引当組合せ解と前記第２引当組合せ解とを評価関数に基づいて比較し、より優れた評価値を示す解を引当組合せ解に設定する第３工程とを含む。【選択図】図２
2018026097.tif 000002
【特許請求の範囲】
【請求項１】
同一又は相異なる２種以上の製品を作製するために製品ごとに必要となる１又は複数種の在庫品ロットの受注量が定められた各受注オーダーに対して各在庫品ロットの引当数をそれぞれ決定する在庫引当方法であって、
前記各受注オーダーはそれぞれ、予め２以上設定された、各在庫品ロットを引き当てるべき受注オーダーの優先順位を決定する優先度受注パラメータを備え、
前記各在庫品ロットはそれぞれ、予め２以上設定された、各受注オーダーに引き当てるべき在庫品ロットの優先順位を決定する優先度在庫パラメータを備え、
前記優先度受注パラメータのうちの任意の１の優先度受注パラメータ及び前記優先度在庫パラメータのうちの任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成する第１工程と、
前記第１工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成する第２工程と、
前記第１引当組合せ解と前記第２引当組合せ解とを評価関数に基づいて比較し、より優れた評価値を示す解を引当組合せ解に設定する第３工程とを含む、在庫引当方法。
【請求項２】
前記第１工程又は前記第２工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した仮引当組合せ解を作成する第４工程と、
前記引当組合せ解と前記仮引当組合せ解とを評価関数に基づいて比較し、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記仮引当組合せ解を新たな引当組合せ解に書き換える第５工程とを含み、
前記第４工程及び前記第５工程を各１回以上行う請求項１に記載の在庫引当方法。
【請求項３】
前記引当組合せ解における任意の１の受注オーダーに対する任意の１種の前記在庫品ロットの引当数を変更した局所変更引当組合せ解を作成する第６工程と、
前記引当組合せ解の評価値及び前記局所変更引当組合せ解の評価値を前記評価関数を用いて算出し、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記局所変更引当組合せ解を新たな引当組合せ解に書き換える第７工程と、を含み、
前記第６工程及び前記第７工程を１回以上行う請求項１又は２に記載の在庫引当方法。
【請求項４】
前記第１工程又は前記第２工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した仮引当組合せ解を作成する第４工程と、
前記引当組合せ解と前記仮引当組合せ解とを評価関数に基づいて比較し、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記仮引当組合せ解を新たな引当組合せ解に書き換える第５工程と、
前記引当組合せ解における任意の１の受注オーダーに対する任意の１種の前記在庫品ロットの引当数を変更した局所変更引当組合せ解を作成する第６工程と、
前記引当組合せ解の評価値及び前記局所変更引当組合せ解の評価値を前記評価関数を用いて算出し、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記局所変更引当組合せ解を新たな引当組合せ解に書き換える第７工程と、を含み、
前記第１工程、前記第２工程、及び前記第３工程を実行し、続いて前記第４工程及び前記第５工程を第１ループ回数実行する処理が、全体探索処理と定義され、
前記第６工程及び前記第７工程を第２ループ回数実行する処理が、局所探索処理と定義され、
前記全体探索処理を実行した後に前記局所探索処理を実行する解探索処理が、１回以上行われ、
前記在庫引当方法は、さらに、
前記解探索処理が１回行われた場合は、前記解探索処理で得られた前記引当組合せ解を出力する第１出力工程を含み、
前記解探索処理が２回以上行われた場合は、前記２回以上の前記解探索処理で得られた前記引当組合せ解の評価値を前記評価関数を用いてそれぞれ算出し、算出したそれぞれの前記評価値を互いに比較し、前記評価値が最高の前記引当組合せ解を出力する第２出力工程を含む、
請求項１に記載の在庫引当方法。
【請求項５】
前記全体探索処理は、１回目の前記解探索処理における前記第１ループ回数を前記受注オーダー数に応じて設定する設定工程を含む、
請求項４に記載の在庫引当方法。
【請求項６】
前記設定工程は、前記受注オーダー数が所定の閾値以上のときは１回目の前記解探索処理における前記第１ループ回数を第１回数値に設定し、前記受注オーダー数が前記閾値未満のときは１回目の前記解探索処理における前記第１ループ回数を前記第１回数値より少ない第２回数値に設定する、
請求項５に記載の在庫引当方法。
【請求項７】
前記設定工程は、２回目以降の前記解探索処理における前記第１ループ回数を、１回目の前記解探索処理における前記第１ループ回数より少ない一定値に設定する、
請求項５又は６に記載の在庫引当方法。
【請求項８】
前記解探索処理を開始する際に経過時間のカウントを開始するカウント開始工程と、
前記解探索処理が終了したときに、前記経過時間が所定時間を超えているか否かを判定する時間判定工程と、を含み、
前記時間判定工程において、前記経過時間が前記所定時間を超えていないと判定されると前記解探索処理が新たに開始され、前記経過時間が前記所定時間を超えていると判定されると前記解探索処理が新たに開始されない、
請求項４〜７のいずれか１項に記載の在庫引当方法。
【請求項９】
前記評価関数は、前記各受注オーダーに対して前記各在庫品ロットを引き当てるべき優先度と、前記引当組合せ解における全ての受注オーダーに対する、前記受注オーダーの受注量を満たす在庫品ロットの引当数が設定された充当完了オーダーの割合と、前記在庫品ロットの在庫量とを変動因子に有する請求項１〜８のいずれか１項に記載の在庫引当方法。
【請求項１０】
前記評価関数は、下記の式（Ｉ）で表される評価関数Ｆである請求項９に記載の在庫引当方法。
【数３】
2018026097.tif 000007
前記式（Ｉ）中、ｘｉはＮ（Ｎは２以上の整数）種類の受注オーダーのうちの受注オーダーｉに引き当てるべき優先度であり、ｙｊはＭ（Ｍは自然数）種類の在庫品ロットのうちの在庫品ロットｊを引き当てるべき優先度であり、ａｉ，ｊは受注オーダーｉに対して引き当てる在庫品ロットｊの引当数であり、αは前記各受注オーダーに応じて設定される補正係数であり、βは前記各在庫品ロットに応じて設定される補正係数であり、Ｘは引当組合せ解における全ての受注オーダーに対する充当完了オーダーの割合（％）であり、Ｙは在庫品ロットを引き当てた後の在庫品の在庫量の総和である。
【請求項１１】
同一又は相異なる２種以上の製品を作製するために製品ごとに必要となる１又は複数種の在庫品ロットの受注量が定められた各受注オーダーに対して各在庫品ロットの引当数をそれぞれ決定する在庫引当装置であって、
前記各受注オーダーはそれぞれ、予め２以上設定された、各在庫品ロットを引き当てるべき受注オーダーの優先順位を決定する優先度受注パラメータを備え、
前記各在庫品ロットはそれぞれ、予め２以上設定された、各受注オーダーに引き当てるべき在庫品ロットの優先順位を決定する優先度在庫パラメータを備え、
前記優先度受注パラメータのうちの任意の１の優先度受注パラメータ及び前記優先度在庫パラメータのうちの任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成する第１引当組合せ解作成部と、
前記第１工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成する第２引当組合せ解作成部と、
前記第１引当組合せ解と前記第２引当組合せ解とを評価関数に基づいて比較する評価値比較部と、
前記評価値比較部によって比較された前記第１引当組合せ解及び前記第２引当組合せ解のうちのより優れた評価値を示す解を引当組合せ解に設定する引当組合せ解設定部とを含む、在庫引当装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、製造業の工場で製品を製造するための複数の受注オーダーに対して複数種の在庫品ロットを引き当てる業務において、引当可能な在庫品ロットの種類に一定の自由度がある場合に、在庫の汎用性（引当可能な受注オーダーの幅）や生産性等の優先度を考慮して最適の在庫品の引当数の組合せを決定し得る在庫引当装置及び在庫引当方法に関する。
【背景技術】
【０００２】
設計製品の製造において、それぞれ仕様の異なる製品を作製する受注オーダーに在庫品を引き当てる際には、オペレータが受注オーダーに対する在庫品ロットの組み合わせを試行錯誤して、各受注オーダーに引き当てる各在庫品の種類及びその引当数を決定している。一般的には、それぞれの受注オーダーに対して引当可能な在庫品ロットと引当不可能な在庫品ロットとが存在するので、その条件の下で、できるだけ汎用性の高い在庫品ロットを在庫として手元に残しながら、納期の近い受注オーダーを充足するように各在庫品の引当数を設定する。
【０００３】
このような在庫品の引当処理に関し、作製する製品の種類が少ない場合は、オペレータが複数の在庫品のうちから最適な在庫品の引当数の組合せを決定できるが、上記在庫品の種類数及び受注オーダーの数が増えるにつれて、それら全てを満足するように各受注オーダーに対して各在庫品の引当数を設定するための計算量は指数関数的に増加する。このため、受注オーダー及び在庫品の双方の選択肢が多い場合には、オペレータが、各製品を作製するために適した在庫品の引当数の組合せを設定することが困難になる。
【０００４】
そこで、上記選択肢の中から最適な在庫品の引当数の組合せを特定する方法として、例えば下記非特許文献１に開示の線形計画法、又はその解空間を整数に限定する整数計画法が考えられる。非特許文献１に開示の方法は、各製品を作製するための各在庫品の引当数に対し、各種の制約条件を考慮して評価関数を設定し、当該評価関数が最大となるように各製品を作製するための各在庫品の引当数を最適の値に設定することによって行う。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】数理計画法入門  森北出版  ２０１４年１１月出版（ＩＳＢＮ−１３：９７８−４６２７９２１８１８）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記線形計画法及び整数計画法を用いた場合、受注オーダーと在庫品ロットとの組合せの探索空間が膨大となるため、実用的な時間内に最適解を見出すことが困難である。
【０００７】
上記線形計画法及び整数計画法以外の最適解を算出するアルゴリズムとして、局所探索法と呼ばれる手法もある。局所探索法は、まず、出発点となる暫定解（初期解）に対し、局所的に異なる解（近傍解）を設定し、初期解の評価値と近傍解の評価値を評価関数に基づいてそれぞれ算出して比較する。次に、例えばコンピュータの演算処理部は、近傍解が評価値が大きい場合には近傍解を新たな暫定解に設定し、初期解が評価値が大きい場合には暫定解を変更しないという作業を繰り返す。この暫定解の書き換えを繰り返すほど暫定解が最適解に近づく。上記局所探索法を在庫引当処理に適用することにより、より高い評価値の引当組合せ解が設定される。
【０００８】
しかしながら、引当組合せ解における評価値の解空間は多峰性の評価値分布を有している場合が多く、初期解がある程度高品質のものである場合には、その初期解の一部の引当数を微調整する局所探索法によって解の品質を高めることはできるが、初期解自体の完成度が低い場合には解空間全体の中での最適解からは程遠い局所解に陥ってしまうこともある。また引当数をランダムに設定する検索手法は、解空間が膨大である場合には必ずしも効率的に解を見出し得るとは言い難い。
【０００９】
本発明は、このような事情に鑑みてなされたものであり、その目的とするところは、複数種の受注オーダーに対して引き当てる複数種の在庫品ロットの各引当数の適した組合せを効率よく設定できる在庫引当方法及び在庫引当装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明者は、種々検討した結果、上記目的は、以下の本発明により達成されることを見出した。すなわち、本発明の一態様に係る在庫引当方法は、同一又は相異なる２種以上の製品を作製するために製品ごとに必要となる１又は複数種の在庫品ロットの受注量が定められた各受注オーダーに対して各在庫品ロットの引当数をそれぞれ決定する在庫引当方法であって、前記各受注オーダーはそれぞれ、予め２以上設定された、各在庫品ロットを引き当てるべき受注オーダーの優先順位を決定する優先度受注パラメータを備え、前記各在庫品ロットはそれぞれ、予め２以上設定された、各受注オーダーに引き当てるべき在庫品ロットの優先順位を決定する優先度在庫パラメータを備え、前記優先度受注パラメータのうちの任意の１の優先度受注パラメータ及び前記優先度在庫パラメータのうちの任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成する第１工程と、前記第１工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成する第２工程と、前記第１引当組合せ解と前記第２引当組合せ解とを評価関数に基づいて比較し、より優れた評価値を示す解を引当組合せ解に設定する第３工程とを含む。
【００１１】
上記のように優先度受注パラメータと優先度在庫パラメータとの組合せに基づいて第１引当組合せ解と第２引当組合せ解とが作成されるので、無作為に引当数を設定した場合に比べて、第１引当組合せ解も第２引当組合せ解も充当制約を満たす可能性が高い。しかも、第１引当組合せ解と第２引当組合せ解とを比較した上で優れた方の解を引当組合せ解として設定するので、最適解により近い引当数を設定した引当組合せ解を簡便に得ることができる。
【００１２】
上記構成において、前記第１工程又は前記第２工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した仮引当組合せ解を作成する第４工程と、前記引当組合せ解と前記仮引当組合せ解とを評価関数に基づいて比較し、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記仮引当組合せ解を新たな引当組合せ解に書き換える第５工程とを含んでもよい。前記第４工程及び前記第５工程を各１回以上行ってもよい。
【００１３】
上記構成によれば、第１引当組合せ解及び第２引当組合せ解を作成したときの優先度受注パラメータ及び優先度在庫パラメータの組合せとは異なる組合せで仮引当組合せ解を作成することができる。このように作成された仮引当組合せ解の評価値を引当組合せ解の評価値と比較し、仮引当組合せ解の方が大きくなる場合に仮引当組合せ解を引当組合せ解に書き換えることにより、引当組合せ解の各在庫品ロットの引当数を最適解に近づけることができる。しかも、上記第４工程及び第５工程を実行する回数を多くするほど、より優れた評価値となる仮引当組合せ解を引当組合せ解とすることができ、引当組合せ解を最適解に近づけることができる。
【００１４】
上記構成において、前記引当組合せ解における任意の１の受注オーダーに対する任意の１種の前記在庫品ロットの引当数を変更した局所変更引当組合せ解を作成する第６工程と、前記引当組合せ解の評価値及び前記局所変更引当組合せ解の評価値を前記評価関数を用いて算出し、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記局所変更引当組合せ解を新たな引当組合せ解に書き換える第７工程と、を含んでもよい。前記第６工程及び前記第７工程を１回以上行ってもよい。
【００１５】
上記のように引当組合せ解における任意の１の受注オーダーに対する任意の１種の在庫品ロットの引当数を局所的に変更し、その変更前後の引当組合せ解の評価値を比較して、より評価値が好ましくなるように引当組合せ解を書き換えることにより、引当組合せ解の各受注オーダーに対する各在庫品ロットの引当数を最適解に近づけることができる。しかも、局所的に引当数を変更する受注オーダーと在庫品ロットの組合せを変えつつ上記第６工程及び上記第７工程を実行する回数を多くするほど、各受注オーダーに対する在庫品ロットの引当数を最適解に近づけることができる。
【００１６】
上記構成において、前記第１工程又は前記第２工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した仮引当組合せ解を作成する第４工程と、
前記引当組合せ解と前記仮引当組合せ解とを評価関数に基づいて比較し、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記仮引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記仮引当組合せ解を新たな引当組合せ解に書き換える第５工程と、
前記引当組合せ解における任意の１の受注オーダーに対する任意の１種の前記在庫品ロットの引当数を変更した局所変更引当組合せ解を作成する第６工程と、
前記引当組合せ解の評価値及び前記局所変更引当組合せ解の評価値を前記評価関数を用いて算出し、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値未満の場合に前記引当組合せ解を変更せず、前記局所変更引当組合せ解の評価値が前記引当組合せ解の評価値以上の場合に前記局所変更引当組合せ解を新たな引当組合せ解に書き換える第７工程と、を含んでもよい。
【００１７】
前記第１工程、前記第２工程、及び前記第３工程を実行し、続いて前記第４工程及び前記第５工程を第１ループ回数実行する処理が、全体探索処理と定義されてもよい。前記第６工程及び前記第７工程を第２ループ回数実行する処理が、局所探索処理と定義されてもよい。前記全体探索処理を実行した後に前記局所探索処理を実行する解探索処理が、１回以上行われてもよい。
【００１８】
前記在庫引当方法は、さらに、前記解探索処理が１回行われた場合は、前記解探索処理で得られた前記引当組合せ解を出力する第１出力工程を含み、前記解探索処理が２回以上行われた場合は、前記評価関数を用いて前記２回以上の前記解探索処理で得られた前記引当組合せ解の評価値をそれぞれ算出し、算出したそれぞれの前記評価値を互いに比較し、前記評価値が最高の前記引当組合せ解を出力する第２出力工程を含んでもよい。
【００１９】
上記構成では、第１工程、第２工程、及び第３工程を実行し、続いて第４工程及び第５工程を第１ループ回数実行する全体探索処理が実行された後に、第６工程及び第７工程を第２ループ回数実行する局所探索処理が実行される解探索処理が、１回以上行われる。解探索処理が１回行われた場合は、解探索処理で得られた引当組合せ解が出力される。解探索処理が２回以上行われた場合は、評価関数を用いて２回以上の解探索処理で得られた引当組合せ解の評価値がそれぞれ算出され、算出されたそれぞれの評価値が互いに比較され、最も高い評価値の引当組合せ解が出力される。したがって、上記構成によれば、各受注オーダーに対する在庫品ロットの引当数を最適解に近づけることができる。
【００２０】
上記構成において、前記全体探索処理は、１回目の前記解探索処理における前記第１ループ回数を前記受注オーダー数に応じて設定する設定工程を含んでもよい。
【００２１】
上記構成では、全体探索処理に含まれる設定工程において、１回目の解探索処理における第１ループ回数が、受注オーダー数に応じて設定される。したがって、上記構成によれば、第１ループ回数を受注オーダー数に応じた適切な値に設定することができる。
【００２２】
上記構成において、前記設定工程は、前記受注オーダー数が所定の閾値以上のときは１回目の前記解探索処理における前記第１ループ回数を第１回数値に設定し、前記受注オーダー数が前記閾値未満のときは１回目の前記解探索処理における前記第１ループ回数を前記第１回数値より少ない第２回数値に設定してもよい。
【００２３】
上記構成では、設定工程において、受注オーダー数が所定の閾値以上のときは１回目の解探索処理における第１ループ回数が第１回数値に設定される。受注オーダー数が閾値未満のときは１回目の解探索処理における第１ループ回数が第１回数値より少ない第２回数値に設定される。したがって、上記構成によれば、第１ループ回数を受注オーダー数に応じた適切な値に設定することができる。
【００２４】
上記構成において、前記設定工程は、２回目以降の前記解探索処理における前記第１ループ回数を、１回目の前記解探索処理における前記第１ループ回数より少ない一定値に設定してもよい。
【００２５】
２回目以降の解探索処理における第１ループ回数を、１回目の解探索処理における第１ループ回数以上の値に設定しても、引当組合せ解を最適解に近づけられない場合が多いことが判明した。そこで、上記構成では、設定工程において、２回目以降の解探索処理における第１ループ回数が、１回目の解探索処理における第１ループ回数より少ない一定値に設定される。このため、上記構成によれば、全体探索処理の時間が無駄に長くなるのを防ぐことができる。
【００２６】
上記構成において、前記解探索処理を開始する際に経過時間のカウントを開始するカウント開始工程と、前記解探索処理が終了したときに、前記経過時間が所定時間を超えているか否かを判定する時間判定工程と、を含んでもよい。前記時間判定工程において、前記経過時間が前記所定時間を超えていないと判定されると前記解探索処理が新たに開始されてもよく、前記経過時間が前記所定時間を超えていると判定されると前記解探索処理が新たに開始されなくてもよい。
【００２７】
上記構成では、解探索処理を開始する際に経過時間のカウントが開始され、解探索処理が終了したときに、経過時間が所定時間を超えているか否かが判定される。そして、経過時間が所定時間を超えていないと判定されると、解探索処理が新たに開始される。一方、経過時間が所定時間を超えていると判定されると、解探索処理が新たに開始されない。したがって、上記構成によれば、解探索処理の時間を制御することが可能になっている。
【００２８】
上記構成において、前記評価関数は、前記各受注オーダーに対して前記各在庫品ロットを引き当てるべき優先度と、前記引当組合せ解における全ての受注オーダーに対する、前記受注オーダーの受注量を満たす在庫品ロットの引当数が設定された充当完了オーダーの割合と、前記在庫品ロットの在庫量とを変動因子に有してもよい。前記評価関数は、下記の式（Ｉ）で表される評価関数Ｆであってもよい。
【００２９】
【数１】
2018026097.tif 000003
【００３０】
前記式（Ｉ）中、ｘｉはＮ（Ｎは２以上の整数）種類の受注オーダーのうちの受注オーダーｉに引き当てるべき優先度であり、ｙｊはＭ（Ｍは自然数）種類の在庫品ロットのうちの在庫品ロットｊを引き当てるべき優先度であり、ａｉ，ｊは受注オーダーｉに対して引き当てる在庫品ロットｊの引当数であり、αは前記各受注オーダーに応じて設定される補正係数であり、βは前記各在庫品ロットに応じて設定される補正係数であり、Ｘは引当組合せ解における全ての受注オーダーに対する充当完了オーダーの割合（％）であり、Ｙは在庫品ロットを引き当てた後の在庫品の在庫量の総和である。
【００３１】
上記変動因子を有する評価関数を用いることにより、第１引当組合せ解、第２引当組合せ解、仮引当組合せ解及び引当組合せ解の評価値をそれぞれ数値化することができるので、各組合せ解の評価値の優劣を簡便に判定することができる。
【００３２】
本発明の在庫引当装置は、同一又は相異なる２種以上の製品を作製するために製品ごとに必要となる１又は複数種の在庫品ロットの受注量が定められた各受注オーダーに対して各在庫品ロットの引当数をそれぞれ決定するものであって、前記各受注オーダーはそれぞれ、予め２以上設定された、各在庫品ロットを引き当てるべき受注オーダーの優先順位を決定する優先度受注パラメータを備え、前記各在庫品ロットはそれぞれ、予め２以上設定された、各受注オーダーに引き当てるべき在庫品ロットの優先順位を決定する優先度在庫パラメータを備え、前記優先度受注パラメータのうちの任意の１の優先度受注パラメータ及び前記優先度在庫パラメータのうちの任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成する第１引当組合せ解作成部と、前記第１工程で用いた前記優先度受注パラメータ又は前記優先度在庫パラメータのうちの少なくとも一方を変更した前記優先度受注パラメータ及び前記優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成する第２引当組合せ解作成部と、前記第１引当組合せ解と前記第２引当組合せ解とを評価関数に基づいて比較する評価値比較部と、前記評価値比較部によって比較された前記第１引当組合せ解及び前記第２引当組合せ解のうちのより優れた評価値を示す解を引当組合せ解に設定する引当組合せ解設定部とを含む。
【００３３】
上記のように優先度受注パラメータと優先度在庫パラメータとの組合せに基づいて第１引当組合せ解と第２引当組合せ解とが作成されるので、無作為に引当数を設定した場合に比べて、第１引当組合せ解も第２引当組合せ解も充当制約を満たす可能性が高い。しかも、第１引当組合せ解と第２引当組合せ解とを比較した上で優れた方の解を引当組合せ解として設定することにより、引当組合せ解をより簡便に最適解に近づけることができる。
【発明の効果】
【００３４】
本発明によれば、複数種の受注オーダーに対して引き当てる複数種の在庫品ロットの各引当数の適した組合せを効率よく設定できる在庫引当方法及び在庫引当装置を提供することができる。
【図面の簡単な説明】
【００３５】
【図１】第１実施形態における在庫引当方法を実行する在庫引当システムの構成を示す図である。
【図２】第１実施形態における在庫引当方法のうちの全体探索の手順を示すフローチャートである。
【図３】第１実施形態における在庫引当方法のうちの局所探索の手順を示すフローチャートである。
【図４】第２実施形態における在庫引当方法を実行する在庫引当システムの構成を示す図である。
【図５】第２実施形態におけるループ回数情報の一例を概略的に示す図である。
【図６】第２実施形態における在庫引当方法の手順を示すフローチャートである。
【図７】第２実施形態における在庫引当方法のうちの全体探索の手順を示すフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明にかかる実施形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を適宜省略する。
【００３７】
＜第１実施形態の在庫引当システム＞
図１は、第１実施形態の在庫引当方法を実行する在庫引当システムの構成を示す図である。第１実施形態の在庫引当システム１は、図１に示すように、入力部１１と、出力部１２と、記憶部１３と、制御処理部１４と、で構成されている。
【００３８】
入力部１１は、制御処理部１４に接続され、例えば在庫を引き当てる上で必要な各種データを在庫引当システム１に入力する機器であり、例えば、所定の機能を割り付けられた複数の入力スイッチ、キーボード、マウス等である。
【００３９】
出力部１２は、制御処理部１４に接続され、制御処理部１４の制御に従って、入力部１１から入力されたコマンドやデータを出力する機器であり、例えばＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）及び有機ＥＬディスプレイ等の表示装置、又はプリンタ等の印刷装置等である。
【００４０】
記憶部１３は、制御処理部１４に接続され、制御処理部１４の制御に従って、各種の所定のプログラム及び各種の所定のデータを記憶する回路である。この各種の所定のプログラムは、例えば、当該在庫引当システムの各部を当該各部の機能に応じて制御する制御プログラム、複数の受注オーダーに対して複数種の在庫品の最適な引当数の組合せ（引当組合せ解）を決定する在庫引当プログラム等の制御処理プログラムが含まれる。前記各種の所定のデータには、製品に関する情報（例えば価格、用途、機能、保管期間、大きさ等）を記憶する製品情報データベース３１、在庫品に関する情報（例えば在庫数、有効期限、大きさ、材質、機能及び用途等）を記憶する在庫品情報データベース３２、各受注オーダーに対する各在庫品の引当数を決定するために必要な情報（例えば各受注オーダーに対して特定の在庫品を引き当てる優先度、引当可否情報、ループ数設定値Ｋ，Ｌ等）を記憶する解探索条件データベース３３等が含まれる。
【００４１】
このような記憶部１３は、例えば不揮発性の記憶素子であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や書き換え可能な不揮発性の記憶素子であるＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を備える。そして、記憶部１３は、前記所定のプログラムの実行中に生じるデータ等を記憶するいわゆる制御処理部１４のワーキングメモリとなるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を備える。また、記憶部１３は、例えばハードディスク等の比較的大容量の記憶装置を備えて良い。
【００４２】
制御処理部１４は、在庫引当システム１の各部を当該各部の機能に応じてそれぞれ制御し、複数種の製品を作製するための複数種の在庫品の各引当数を決定するための回路である。制御処理部１４は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びその周辺回路を備えて構成される。制御処理部１４には、記憶部１３に記憶されている制御処理プログラムが実行されることによって、図１に示すように、制御部４１、第１引当組合せ解作成部４２、第２引当組合せ解作成部４３、評価値比較部４４、引当組合せ解設定部４５、カウンタ部４６、カウンタ成否判定部４７、仮引当組合せ解作成部４８、引当組合せ解更新部４９、及び局所変更解作成部５０が機能的に構成される。
【００４３】
制御部４１は、在庫引当システム１の各部を当該各部の機能に応じてそれぞれ制御するものである。
【００４４】
第１引当組合せ解作成部４２は、記憶部１３の製品情報データベース３１に格納された優先度受注パラメータのうちの任意の１の優先度受注パラメータと、記憶部１３の在庫品情報データベース３２に格納された優先度在庫パラメータのうちの任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成するものである。ここで、第１引当組合せ解作成部４２は、上記優先度受注パラメータにおける優先度が高い受注オーダーから順に、上記優先度在庫パラメータにおける優先度が高い在庫品ロットの引当数を設定していくことによって上記第１引当組合せ解を作成する。各引当数の設定の手順の詳細は後述する。
【００４５】
第２引当組合せ解作成部４３は、第１引当組合せ解作成部４２が用いた優先度受注パラメータ又は優先度在庫パラメータの少なくとも一方を変更した優先度受注パラメータ及び優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成するものである。このように優先度受注パラメータ又は優先度在庫パラメータの少なくとも一方を変更して第２引当組合せ解を作成することにより、第２引当組合せ解は、第１引当組合せ解で設定された引当数の組合せとは異なる引当数の組合せとなる。
【００４６】
評価値比較部４４は、上記第１引当組合せ解と上記第２引当組合せ解とをそれぞれ評価関数に基づいて評価値を算出し、それらの評価値を比較する。ここで算出される評価値によって第１引当組合せ解及び第２引当組合せ解のうちのいずれがより優れた解であるかを特定することができる。また評価値比較部４４は、後述する仮引当組合せ解作成部４８によって作成された仮引当組合せ解の評価値を算出し、局所変更解作成部５０によって作成された局所変更引当組合せ解の評価値を算出する。この仮引当組合せ解の評価値及び局所変更引当組合せ解の評価値を、引当組合せ解の評価値と比較することで、いずれがより優れた解であるかを特定することができる。
【００４７】
引当組合せ解設定部４５は、上記評価値比較部４４によって算出された第１引当組合せ解の評価値と第２引当組合せ解の評価値とを比較し、より優れた評価値を示す解を引当組合せ解に設定する。これにより優先度受注パラメータ又は優先度在庫パラメータの少なくとも一方を変更して２種類の引当組合せ解が作成され、そのうちの評価値が優れた方を引当組合せ解に設定することができる。
【００４８】
カウンタ部４６は、後述する仮引当組合せ解作成部４８が仮引当組合せ解を作成した回数を数えるものである。例えば引当組合せ解が第１引当組合せ解と第２引当組合せ解とのいずれか優れた方を設定したものである場合、仮引当組合せ解は一度も作成されていないので、カウンタ部４６は、カウンタｎの値を０に設定する。カウンタ部４６は、その後、仮引当組合せ解作成部４８によって仮引当組合せ解を作成した回数に応じてカウンタｎの値を１ずつ増数させる。
【００４９】
カウンタ成否判定部４７は、カウンタｎの値が予めユーザによって設定されたループ数設定値Ｋを満たすか否かを判定するものであり、具体的にはカウンタｎの値がループ数設定値Ｋと同値となる場合に、さらなる仮引当組合せ解を作成する必要はないと判定し、カウンタｎの値がループ数設定値Ｋに到達していない場合に、さらに仮引当組合せ解を作成すべきと判定する。ループ数設定値Ｋは、例えば１００又は１０００等のようにユーザーによって任意に設定されるものであり、解探索条件データベース３３に格納されている。本実施形態において、ループ数設定値Ｋは、第１ループ回数の一例に相当する。
【００５０】
仮引当組合せ解作成部４８は、上記第１引当組合せ解作成部４２及び第２引当組合せ解作成部４３が用いた優先度受注パラメータ又は優先度在庫パラメータのうちの少なくとも一方を変更した優先度受注パラメータ及び優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した仮引当組合せ解を作成する。ここで作成された仮引当組合せ解は、上記引当組合せ解を更新する候補となるものであり、仮引当組合せ解の評価値が引当組合せ解の評価値以上である場合にはその仮引当組合せ解が新たな引当組合せ解となる。
【００５１】
引当組合せ解更新部４９は、上記評価値比較部４４による比較の結果、仮引当組合せ解の評価値が、引当組合せ解の評価値以上の場合に、仮引当組合せ解作成部４８によって作成された仮引当組合せ解を新たな引当組合せ解に書き換えるものである。
【００５２】
局所変更解作成部５０は、引当組合せ解における任意の１の受注オーダーに対する任意の１種の前記在庫品ロットの引当数を変更した局所変更引当組合せ解を作成するものである。ここで作成された局所変更引当組合せ解は、上記引当組合せ解を更新する候補となるものであり、局所変更引当組合せ解の評価値が引当組合せ解の評価値以上である場合にはその局所変更引当組合せ解が新たな引当組合せ解となる。
【００５３】
このような在庫引当システム１は、例えばパーソナルコンピュータ等のコンピュータによって構成されてよいし、また例えば、処理サーバ装置、データサーバ装置および入出力端末装置を互いに通信可能に備えたシステムで構成されてもよい。
【００５４】
以下においては、第１実施形態の在庫引当方法を構成する各ステップを説明する。図２は第１実施形態における在庫引当方法のうちの全体探索の手順を示すフローチャートであり、図３は第１実施形態における在庫引当方法のうちの局所探索の手順を示すフローチャートである。上記在庫引当システム１を用いた在庫引当方法は、解空間における全体探索と局所探索とを組み合わせることで、同一又は相異なる複数種の製品を作製するために引き当てる１種又は複数種の在庫品ロットの引当数の組合せを設定した引当組合せ解を決定するものであり、オペレータが在庫引当システム１に対し在庫引当処理の実行を指示したタイミングでスタートして、制御処理部１４が図２のステップＳ１の処理に進む。
【００５５】
このスタートと同時に、制御処理部１４は、必要な各部の初期化を実行し、制御処理プログラムの実行によって、制御処理部１４には、制御部４１、第１引当組合せ解作成部４２、第２引当組合せ解作成部４３、評価値比較部４４、引当組合せ解設定部４５、カウンタ部４６、カウンタ成否判定部４７、仮引当組合せ解作成部４８、引当組合せ解更新部４９、及び局所変更解作成部５０等が機能的に構成される。上記在庫引当システムは、各製品に対する各在庫品の引当数の決定に関して、大略、次のように動作する。
【００５６】
まず、制御処理部１４は、制御部４１によって、製品情報データベース３１に格納されている受注オーダーに関するデータ、在庫品情報データベース３２に格納されている在庫品に関するデータ、及び解探索条件データベース３３に格納されている引当に関する制約条件に関するデータを読み込む。
【００５７】
制御処理部１４は、図２に示すように、第１引当数組合せ解作成部４２によって、任意の１の優先度受注パラメータ及び任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成する（Ｓ１）。
【００５８】
次に、制御処理部１４は、第２引当数組合せ解作成部４３によって、第１引当数組合せ解作成部４２が用いた優先度受注パラメータ又は優先度在庫パラメータのうちの少なくとも一方を変更した優先度受注パラメータ又は優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成する（Ｓ２）。
【００５９】
次に、制御処理部１４は、評価値比較部４４によって、上記第１引当組合せ解の評価値ＥＶ１と、第２引当組合せ解の評価値ＥＶ２を算出し、評価値ＥＶ１と評価値ＥＶ２とを比較する（Ｓ３）。そして、制御処理部１４は、引当組合せ解設定部４５によって、上記第１引当組合せ解の評価値ＥＶ１と第２引当組合せ解の評価値ＥＶ２とのうちのより優れた評価値を示す方の解を引当組合せ解に設定する（Ｓ４）。
【００６０】
次に、制御処理部１４は、カウンタ部４６によって、仮引当組合せ解を作成した回数を示すカウンタｎの値を０に設定する（Ｓ５）。ここでは、仮引当組合せ解は一度も作成されていないので、カウンタｎの値が０に設定される。
【００６１】
次に、制御処理部１４は、カウンタ成否判定部４７によって、カウンタｎの値がループ数設定値Ｋを満たすか否かを判定する（Ｓ６）。そして、カウンタｎの値がループ数設定値Ｋと同値である場合（Ｓ６：Ｙｅｓ）、制御処理部１４は、記憶部１３に記憶された引当組合せ解を最適解として記憶部１３に格納し、全体探索の処理を終了する（エンド）。例えば、ループ数設定値Ｋが０に設定されている場合、制御処理部１４は、ステップＳ７に進むことなく、ステップＳ４で定めた引当組合せ解を記憶部１３に格納し、処理を終了する（エンド）。記憶部１３に格納された引当組合せ解は、必要に応じて、制御部４１によって外部機器に出力されてもよい。一方、カウンタｎの値がループ数設定値Ｋに満たない場合（Ｓ６：Ｎｏ）、カウンタ部４６によってカウンタｎの値を１増数させて（Ｓ７）、ステップＳ８の処理に進む。
【００６２】
次に、制御処理部１４は、仮引当組合せ解作成部４８によって、第１組合せ解作成部４２又は第２組合せ解作成部４３が用いた優先度受注パラメータ又は優先度在庫パラメータのうちの少なくとも一方を変更した優先度受注パラメータ及び優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した仮引当組合せ解を作成する（Ｓ８）。
【００６３】
そして、制御処理部１４は、評価値比較部４４によって、引当組合せ解設定部４５で設定された引当組合せ解の評価値ＥＶ３及び前記仮引当組合せ解の評価値ＥＶ４を算出し、評価値ＥＶ３と評価値ＥＶ４とを比較する（Ｓ９）。そして、前記仮引当組合せ解の評価値ＥＶ４が前記引当組合せ解の評価値ＥＶ３未満の場合（Ｓ９：Ｎｏ）、制御処理部１４はステップＳ６の処理に戻る。一方、前記仮引当組合せ解の評価値ＥＶ４が前記引当組合せ解の評価値ＥＶ３以上の場合（Ｓ９：Ｙｅｓ）、引当組合せ解更新部４９は、前記仮引当組合せ解を新たな引当組合せ解に書き換えた上で（Ｓ１０）。制御処理部１４はステップＳ６の処理に戻る。
【００６４】
以上のようにしてステップＳ５〜Ｓ１０の各工程を繰り返すことで、カウンタ部４６がカウンタｎの値を１ずつ増数させて、カウンタｎの値がループ数設定値ＫになるまでステップＳ５〜ステップＳ１０の各工程を繰り返す。このようにステップＳ８において、優先度在庫パラメータ又は優先度在庫パラメータの少なくとも一方を変更して作成された仮引当組合せ解を作成し、ステップＳ９において、当該仮引当組合せ解の評価値が、元の引当組合せ解の評価値以上となる場合のみ仮引当組合せ解を新たな引当組合せ解に設定することにより、各受注オーダーに対する各在庫品ロットの引当数をより適した値に設定することができる。そして、受注オーダーの優先順位を決める優先度受注パラメータと在庫品ロットの優先順位を決める優先度在庫パラメータの組合せを変えて仮引当組合せ解を設定するステップＳ８の実行回数を多くするほど、引当組合せ解を書き換える回数を多くなるので、引当組合せ解を最適解に近づけることができる。
【００６５】
上記各ステップにより、全体探索による引当組合せ解が設定される（Ｓ１１）。この引当組合せ解に対して以下の各工程による局所探索を施すことでより適した引当数を設定した引当組合せ解に修正することができる。
【００６６】
制御処理部１４は、カウンタ部４６によって、局所変更解を作成した回数を示すカウンタｎの値を０に設定する（Ｓ１２）。ここでは、局所変更解は一度も作成されていないので、カウンタｎの値が０に設定される。
【００６７】
次に、制御処理部１４は、カウンタ成否判定部４７によって、カウンタｎの値がループ数設定値Ｌを満たすか否かを判定する。このループ数設定値Ｌは、ループ数設定値Ｋと同じ値であっても異なる値であってもよい。そして、カウンタｎの値がループ数設定値Ｌと同値である場合（Ｓ１３：Ｙｅｓ）、制御処理部１４は、記憶部１３に記憶された引当組合せ解を最適解として記憶部１３に格納し、全体探索の処理を終了する（エンド）。つまり、ループ数設定値Ｌが０に設定されている場合は、制御処理部１４は、ステップＳ１４に進むことなく、ステップＳ１１で定めた引当組合せ解を記憶部１３に格納し、処理を終了する（エンド）。一方、カウンタｎの値がループ数設定値Ｌに満たない場合（Ｓ１３：Ｎｏ）、カウンタ部４６によってカウンタｎの値を１増数させて（Ｓ１４）、ステップＳ１５の処理に進む。
【００６８】
次に、制御処理部１４は、局所変更解作成部５０によって、引当組合せ解における任意の１の受注オーダーに対する任意の１種の在庫品ロットの引当数を変更した局所変更引当組合せ解を作成する（Ｓ１５）。ここでの引当数は、０以上の整数であって、かつ受注オーダーの受注量又は在庫品の在庫数のいずれか小さい方の数値を上限とする整数の中からランダムに設定される。なお、このように引当数を変更したことに伴って、各種の制約条件を満たさなくなった場合には、それらの各種制約条件を満たすように各在庫品ロットの引当数を適宜修正する工程を含む。
【００６９】
次に、制御処理部１４は、評価値比較部４４によって、引当組合せ解の評価値ＥＶ５及び局所変更引当組合せ解の評価値ＥＶ６を算出し、評価値ＥＶ５と評価値ＥＶ６とを比較する（Ｓ１６）。そして、局所変更引当組合せ解の評価値ＥＶ６が引当組合せ解の評価値ＥＶ５未満の場合（Ｓ１６：Ｎｏ）、前記引当組合せ解を変更せず、制御処理部１４はステップＳ１３の処理に戻る。一方、局所変更引当組合せ解の評価値ＥＶ６が引当組合せ解の評価値ＥＶ５以上の場合（Ｓ１６：Ｙｅｓ）、引当組合せ解更新部４９は、局所変更引当組合せ解を新たな引当組合せ解に書き換えた上で（Ｓ１７）。制御処理部１４はステップＳ１３の処理に戻る。このようにして引当組合せ解の一部を修正することにより引当組合せ解の評価値をより高めることができる。本実施形態において、ループ数設定値Ｌは、第２ループ回数の一例に相当する。
【００７０】
＜引当問題の具体例＞
次に、本第１実施形態の在庫引当方法によって、Ｎ種類の受注オーダーに対するＭ種類の在庫品ロットの引当数を設定する手順を説明する。引当組合せ解は、下記の表１のＮ×Ｍの行列で表され、受注オーダーは、受注オーダーＪ１、Ｊ２、Ｊ３、・・・、ＪＮの合計Ｎ種類があり、在庫品ロットは、在庫品ロットＬ１、Ｌ２、Ｌ３、・・・、ＬＭの合計Ｍ種類がある。
【００７１】
【表１】
2018026097.tif 000004
【００７２】
表１における「在庫品群」は、同一の製造地及び製造日に製造された一群の在庫品である。同一の在庫品群に属する在庫品であっても、製造後の品質検査において異なる性質を示す在庫品に対して別々の在庫品ロットを設定している。例えば、同一の在庫品群Ｇ１に属する複数の在庫品ロットＬ１、Ｌ２は、同一の製造日に同一の製造地で製造された在庫品群に含まれる在庫品であるが、その後の品質検査で異なる性質を示すことが明らかとなった２種類の在庫品である。
【００７３】
表１における「在庫品ロット」は、同一の製造日時、製造場所、幅、長さ、重量及び各種性能等の属性に応じて在庫品に対し個別のロット番号を付してグループ分けした在庫品の管理番号であり、表１の横の数列は各在庫品ロットの引当数をそれぞれ個別に設定したものである。各在庫品ロットにはそれぞれ個別に在庫量が設定されており、当該在庫量は、在庫品ロットの在庫数である。例えば在庫品ロットＬ１の在庫品は１０個の在庫が存在し、全ての受注オーダーに対して合計で最大１０個の在庫品を引き当てることができる。
【００７４】
在庫品群と在庫品ロットとの関係の一例として、例えば、同一の製造日に同一の製造地で製造された在庫品は、本来であれば同一の在庫品ロットを付して管理すべきであるが、その在庫品の保管場所を異なる場所（例えば倉庫ＷＨ１と倉庫ＷＨ２）にした場合や、各場所によって在庫品ロットが異なる性質を示すものとなっていることが品質検査において判明した場合には、それぞれの在庫品は、受注オーダーへの引当においては保管場所又は品質に応じて別々の在庫品ロットとして引き当てるべき在庫品となる。
【００７５】
各在庫品ロットにはそれぞれ、各受注オーダーに引き当てるべき在庫品ロットの優先順位を決定する優先度在庫パラメータが予め２以上設定されている。この優先度在庫パラメータが高いほど受注オーダーに引き当てる優先度が高い在庫品ロットであることを意味する。なお、優先度が高い在庫品ロットとは、換言すれば、優先的に引き当て消化したい在庫品ロットということであり、例えば早く使い切ってしまいたい在庫品ロット、汎用性が低く引き当てにくい在庫品ロット等は優先度が高い在庫品ロットとなる。このような優先度在庫パラメータとしては、例えば各在庫品ロットに個別に設定された基本的な優先度値、各在庫品ロットの引当可能な受注オーダーの種類数、各在庫品ロットの在庫量、各在庫品ロットの在庫滞留期間、各在庫品ロットが受注オーダーに引き当てられなかった回数、各在庫品ロットの製造年月日、ランダムに設定される各在庫品ロットの優先度等が挙げられる。
【００７６】
上記各優先度在庫パラメータは、例えば引当可能な受注オーダーの種類数が少ないほど受注オーダーに引き当てるべき優先度が高く、在庫品ロットの在庫量が多いほど優先度が高く、在庫品ロットの滞留期間が長いほど優先度が高く、引き当てられている受注オーダー数が少ないほど優先度が高く、製造年月日が古いほど優先度が高いなど、複数の優先度基準がある。また優先度をランダムに決定することもできる。これらのうちのいずれかの優先度在庫パラメータに基づいて在庫品ロットを順位付けした上でその優先順位が高い在庫品ロットから順に引当数が設定される。
【００７７】
表１における「受注オーダー」は、製品を作製するために引き当てる各在庫品ロットの引当数を設定したものであり、各受注オーダーにはそれぞれ個別に受注量が設定されており、さらに必要に応じて、在庫品群数上限及び引当数下限のような制約条件が設定されている。表１の縦の数列が１つの受注オーダーに相当し、例えば、受注オーダーＪ１は、在庫品ロットＬ１を０個、在庫品ロットＬ２を２個、・・・、在庫品ロットＬＭを５個をそれぞれ引き当てることが設定されている。なお、ここでの引当数の単位は「個」に限られず、例えば扱う在庫品に応じて、枚数（枚）、本数（本）、重量（ｇ、ｋｇ、ｔｏｎ）、体積（ｃｍ３、ｍ３）等で表されることもある。
【００７８】
受注オーダーの受注量は、製品を作製するために引き当てるべき在庫品の引当数の合計であり、その合計には表１に示すように個別の受注オーダーの事情に応じて数値範囲が設定されることもある。各受注オーダーに引き当てられる各在庫品ロットの引当数の合計が、各受注オーダーの受注量の上限を上回ることがないように各在庫品ロットの引当数が設定される。表１の受注オーダーＪ１を例にとると、受注オーダーＪ１の受注量は４以上７以下に設定されているので、受注オーダーＪ１に引き当てる在庫品ロットの引当数の合計が８以上となることがないように各在庫品ロットの引当数が設定される。
【００７９】
そして、受注オーダーに引き当てられる各在庫品ロットの引当数の合計が、当該受注オーダーの受注量の範囲内にある場合のその受注オーダーを「充当完了オーダー」といい、上記受注量の範囲の下限値未満のその受注オーダーを「未充当オーダー」という。例えば受注オーダーＪ１の場合、各在庫品ロットの引当数の合計が４以上７以下である場合の受注オーダーＪ１を充当完了オーダーといい、各在庫品ロットの引当数の合計が３以下の場合の受注オーダーＪ１を未充当オーダーという。また引当組合せ解における全ての受注オーダーに対する充当完了オーダーの割合（％）を充当完了率ということもある。
【００８０】
各受注オーダーの在庫品群数上限は、在庫品群の種類数の上限で設定された種類数の在庫品群に含まれる在庫品ロットのうちから在庫品ロットを引き当てる必要があることを定めたものであり、例えば、表１の受注オーダーＪ１に在庫品を引き当てる場合には、３種類以下の在庫品群に含まれる在庫品ロットの中から在庫品ロットを引き当てる必要があり、４種類以上の在庫品群に含まれる在庫品ロットの中から在庫品ロットを引き当てることができないことを定めた制約条件である。例えば在庫品群数上限が１と設定されている場合には、単一の在庫品群に含まれる在庫品ロットのうちから引当数を設定して受注オーダーの受注量を満たす必要があるし、在庫品群数上限が２と設定されている場合には、多くても２種類（好ましくは１種類）の在庫品群に含まれる在庫品ロットのうちから引当数を設定して受注オーダーの受注量を満たす必要がある。例えば、在庫品ロットＬ１と在庫品ロットＬ２とは同一の在庫品群Ｇ１に属しているので、在庫品ロットＬ１及び在庫品ロットＬ２の両方を引き当てても在庫品群数としては１種類としてカウントされる。
【００８１】
各受注オーダーの引当数下限は、受注オーダーに対し、１つの在庫品群に含まれる在庫品ロットの引当数の総和の最低数を設定したものであり、各受注オーダーに対して引き当てる各在庫品ロットを含む在庫品群の種類数を少なくするための制約条件である。例えば、ある受注オーダーの引当数下限が３と定められている場合、その受注オーダーに対して１つの在庫品群に含まれる全ての在庫品ロットの引当数の総和を１又は２とすることは許されず、その総和が３以上となるように設定する必要があり、３以上の引当数を設定できない場合にはその在庫品群に含まれる全ての在庫品ロットの引当数は０に設定される。
【００８２】
例えば表１の受注オーダーＪ１に在庫品を引き当てる場合には、最低でも１つの在庫品群に属する全ての在庫品ロットの引当数の総和を３以上とする必要がある。引当数下限も、上記在庫品群数上限と同様に在庫品群単位で数えられる。したがって、例えば受注オーダーＪ１に在庫品を引き当てる場合には、在庫品ロットＬ１の引当数を１とし、在庫品ロットＬ２の引当数を２としても、在庫品群Ｇ１に属する在庫品ロットの引当数の総和が３となるので、上記受注オーダーＪ１の引当数下限を満たすことになる。
【００８３】
上記のように受注オーダーに対して在庫品群数上限及び引当数下限等の制約条件が課されることにより、別々の在庫品群に含まれる在庫品ロットから１つずつ細切れで引き当てられることを防止することができる。
【００８４】
各受注オーダーにもそれぞれ、各在庫品ロットと同様に、在庫品ロットを引き当てるべき受注オーダーの優先順位を決定する優先度受注パラメータが予め設定されている。当該優先度受注パラメータとしては、例えば各受注オーダーに個別に設定された基本的な優先度値、受注オーダーによって作製される製品の納期までの期間、過去の引当処理において未充当オーダーとなった回数、ランダムに設定される優先度等が挙げられる。これらのうちのいずれかの優先度受注パラメータに基づいて受注オーダーを順位付けした上で、その優先順位が高い順に受注オーダーに対して各在庫品ロットの引当数が設定される。
【００８５】
各受注オーダーはそれぞれ個別に特定の在庫品ロットを引き当てることができないという制約条件が存在することもある。このような引当可否の情報は、解探索条件データベース３３に格納されており、例えば、下記の表２に示すようなＮ×Ｍの行列で表される。表２において、各受注オーダーに対して引当可能な在庫品ロットに「１」を、引当不可の在庫品ロットに「０」をそれぞれ表記している。言い換えると、表２の引当可否の情報における「１」の受注オーダーに対する在庫品ロットの組合せに対して任意の引当数を設定することはできるが、引当可否情報における「０」の受注オーダーに対する在庫品ロットの組合せに対しては０以外の引当数を設定することはできない。
【００８６】
【表２】
2018026097.tif 000005
【００８７】
上記表２に示すように、在庫品群Ｇ１のように同一の在庫品群に含まれる在庫品ロットＬ１、Ｌ２であっても、特定の受注オーダー（例えば受注オーダーＪ２）に引当可能な在庫品ロットと引当不可能な在庫品ロットとが存在することはあり得る。以下に本第１実施形態の在庫引当方法を構成する全体探索の各工程（Ｓ１〜Ｓ１０）及び局所探索の各工程（Ｓ１１〜Ｓ１７）をそれぞれ説明する。概念的な説明ではあるが、全体探索は引当組合せ解における在庫品ロットの行単位及び受注オーダーの列単位を変更して引当組合せ解を最適化するものであるのに対し、局所探索は引当組合せ解のうちの特定の受注オーダーに対する特定の在庫品ロットの引当数を部分的に変更して引当組合せ解の最適化を図るものである。図２は第１実施形態における全体探索のフローチャートであり、図３は第１実施形態における局所探索のフローチャートである。
【００８８】
（ステップＳ１：第１引当組合せ解の作成（第１工程））
ステップＳ１において、第１引当組合せ解作成部４２は、優先度受注パラメータのうちの任意の１の優先度受注パラメータ及び前記優先度在庫パラメータのうちの任意の１の優先度在庫パラメータに基づいて各受注オーダーに引き当てる各在庫品ロットの引当数を設定した第１引当組合せ解を作成する。
【００８９】
ここで、各在庫品ロットの引当数の設定の手順は、受注オーダーに対して引当数下限の制約条件及び在庫品群数上限の制約条件が設定されている場合と、これらの制約条件が設定されていない場合とで異なる。以下に各場合における引当数の設定の手順を説明する。
【００９０】
（受注オーダーに引当数下限及び在庫品群数上限の制約条件が設定されていない場合）
受注オーダーに引当数下限及び在庫品群数上限の制約条件が設定されていない場合、優先度受注パラメータの優先度が高い順に受注オーダーを並べるとともに、優先度在庫パラメータの高い順に在庫品ロットを並べる。例えば優先度受注パラメータとして受注オーダーの納期を用いるとともに、優先度受注パラメータとして在庫品の在庫数を用いる場合には、受注オーダーの納期が近い順に受注オーダーを並べるとともに、在庫品ロットの在庫数が多い順に在庫品ロットを並べる。
【００９１】
このように受注オーダー及び在庫品ロットを並べた上で、最も優先度受注パラメータが高い受注オーダーに対し、最も優先度在庫パラメータが高い在庫品ロットから優先度の高い順に引当数を設定していく。具体的には、まず、受注オーダーの受注量と、当該受注オーダーに引当可能な在庫品ロットのうちの最も優先度が高い在庫品ロットの在庫量とを比較し、その小さい方の数値を当該受注オーダーに引き当てる在庫品ロットの引当数として設定する。ここで設定した引当数が受注オーダーの受注量を満たす場合には、当該受注オーダーに対する引当処理を終了し、次に優先度が高い受注オーダーの引当処理を実行する。
【００９２】
一方、上記で設定した引当数が受注オーダーの受注量に満たない場合には、当該受注オーダーの受注量からすでに在庫品ロットを引き当てた引当数を減算することにより、当該受注オーダーに引き当てるべき在庫品ロットの残引当数を算出する。そして、当該残引当数と、当該受注オーダーに引当可能な在庫品ロットのうちの２番目に優先度が高い在庫品ロットの在庫量とを比較し、その小さい方の数値を当該受注オーダーに引き当てる在庫品ロットの引当数として設定する。そして、当該受注オーダーに引き当てた全ての在庫品ロットの引当数の総和が受注オーダーの受注量を満たす場合には、当該受注オーダーに対する引当処理を終了し、次に優先度が高い受注オーダーの引当処理に進む。
【００９３】
一方、上記受注オーダーに引き当てた全ての在庫品ロットの引当数の総和が受注オーダーの受注量に満たない場合には、当該受注オーダーの受注量からすでに在庫品ロットを引き当てた引当数の合計を減算することにより、当該受注オーダーに引き当てるべき在庫品ロットの残引当数を算出する。そして、当該残引当数と、当該受注オーダーに引当可能な在庫品ロットのうちの３番目に優先度が高い在庫品ロットの在庫量とを比較し、その小さい方の数値を当該受注オーダーに引き当てる在庫品ロットの引当数として設定する。このような操作を繰り返すことにより受注オーダーの受注量を満たすまで引当可能な在庫品ロットの優先度順に引当数を設定していく。これにより優先度の高い受注オーダーに対して優先度の高い在庫品ロットを優先的に引き当てることができる。
【００９４】
しかし、受注オーダーに対して引当可能な全ての在庫品ロットの引当数を設定してもなお全ての在庫品ロットの引当数の合計が受注オーダーの受注量に満たない場合もある。この場合には、その受注オーダーを未充当オーダーとして引当処理を終了し、次に優先度の高い受注オーダーの引当処理に進む。このような未充当オーダーが発生しても有効な引当組合せ解として扱うものとする。なぜなら、現実問題として在庫品ロットの在庫数が足りずに受注オーダーの受注量を充足させ得ない場合でも、次回の引当処理までに特定の在庫品ロットが納入されることで、その在庫品の不足分を未充当オーダーに引き当てることができ、これにより充当完了オーダーにすることができるからである。
【００９５】
（受注オーダーに引当数下限及び在庫品群数上限の制約条件が設定されている場合）
受注オーダーに引当数下限及び在庫品群数上限の制約条件が設定されている場合、在庫品ロット単位で引当数を決定するのではなく、在庫品群単位で在庫品ロットの引当数を設定していく。したがって、まず、在庫品群に含まれる在庫品ロットのうちの優先度在庫パラメータが最も高い値をその在庫品群の優先度として、各在庫品群を優先度が高い順に並べた上で、各在庫品群内において優先度在庫パラメータが高い順に各在庫品ロットを並べる。一方、受注オーダーについては優先度受注パラメータが高い順に並べる。
【００９６】
次に、まず受注オーダーの受注量と、当該受注オーダーに引当可能な在庫品ロットのうちの最も優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットのうちの最も優先度が高い在庫品ロットの在庫量とを比較し、その小さい方の数値を当該受注オーダーに引き当てる在庫品ロットの引当数として設定する。ここで設定した引当数が受注オーダーの受注量を満たす場合には、当該受注オーダーに対する引当処理を終了し、次に優先度が高い受注オーダーの引当処理に進む。
【００９７】
一方、当該受注オーダーに引き当てた在庫品ロットの引当数が受注オーダーの受注量に満たない場合には、当該受注オーダーの受注量からすでに在庫品ロットを引き当てた引当数を減算することにより、当該受注オーダーに引き当てるべき在庫品ロットの残引当数を算出する。そして、当該残引当数と、当該受注オーダーに引当可能な在庫品ロットのうちの最も優先度が高い在庫品ロットを含む在庫品群のうちの２番目に優先度が高い在庫品ロットの在庫量とを比較し、その小さい方の数値を当該受注オーダーに引き当てる在庫品ロットの引当数として設定する。このような操作を繰り返すことにより単一の在庫品群に含まれる在庫品ロットで受注オーダーの受注量を満たすまで引当可能な在庫品ロットの優先度順に引当数を設定する。
【００９８】
上記受注オーダーに対して単一の在庫品群に含まれる引当可能な全ての在庫品ロットの引当数を設定し終えた場合、当該在庫品群に含まれる全ての在庫品ロットの引当数の合計値と引当数下限とを比較し、在庫品群に含まれる全ての在庫品ロットの引当数の合計値が引当数下限に満たない場合は、当該在庫品群に含まれる全ての在庫品ロットの引当数を０に設定した上で、２番目に優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットのうちの最も優先度が高い在庫品ロットの引当数を設定する。
【００９９】
一方、在庫品群に含まれる全ての在庫品ロットの引当数の合計値が引当数下限以上となる場合は、当該在庫品群に含まれる全ての在庫品ロットの引当数を上記で設定した通りに維持し、当該受注オーダーに対して２番目に優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットのうちの最も優先度が高い在庫品ロットの引当数を設定する。このような操作を繰り返すことにより２番目に優先度が高い在庫品ロットを含む在庫品群に含まれる全ての在庫品ロットの引当数を設定する。なお、２番目に優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットのうちの上記受注オーダーに引当可能な在庫品ロットの在庫量の総和が上記引当数下限に満たない場合、当該２番目に優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットの引当数を設定せずに、次（３番目）に優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットを引き当てる処理に進む。
【０１００】
上記受注オーダーに対して２番目に優先度が高い在庫品ロットを含む在庫品群に含まれる引当可能な全ての在庫品ロットの引当数を設定し終えた場合、当該在庫品群に含まれる全ての在庫品ロットの引当数の合計値と引当数下限とを比較し、在庫品群に含まれる全ての在庫品ロットの引当数の合計値が引当数下限に満たない場合は、当該在庫品群に含まれる全ての在庫品ロットの引当数を０に設定した上で、３番目に優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットのうちの最も優先度が高い在庫品ロットの引当数を設定する。このようにして受注オーダーに対して優先度の高い在庫品ロットを含む在庫品群ごとに在庫品ロットを引き当てることにより優先度の高い受注オーダーに対して優先度の高い在庫品群に含まれる在庫品ロットから順番に在庫品ロットの引当数を設定することができる。
【０１０１】
このような操作を繰り返すことにより受注オーダーの受注量を満たすか又は受注オーダーの在庫品群種類数上限を超えるまで引当可能な在庫品ロットを含む在庫品群の優先度順に在庫品ロットの引当数を設定していく。これにより優先度の高い受注オーダーに対して優先度の高い在庫品ロットを含む在庫品群に含まれる在庫品ロットの引当数を優先的に設定することができる。このようにして優先度が高い受注オーダーから順に受注オーダーに対して在庫品ロットの引当数を決定することで、全ての受注オーダーに対して在庫品ロットの引当数を設定する。このようにして第１引当組合せ解を作成することによりステップＳ１は完了し、制御処理部１４はステップＳ２の処理に進む。
【０１０２】
一方、受注オーダーの在庫品群種類数上限と同数の在庫品群に含まれる在庫品ロットを引き当ててもなお全ての在庫品ロットの引当数の合計が受注オーダーの受注量に満たない場合、先に引当済の在庫品ロットのうちの最も優先度が低い在庫品群に含まれる全ての在庫品ロットの引当数を０にした上で、引当処理を実施していない在庫品群のうちの最も優先度が高い在庫品ロットを含む在庫品群に含まれる在庫品ロットのうちの最も優先度が高い在庫品ロットから優先度の高い順に在庫品ロットの引当数を設定する。このようにして在庫品群種類数上限の制約条件を満たしつつ在庫品ロットの引当数を決定していく。
【０１０３】
上記未充当オーダーに対しては、次回の在庫品の納品後に再度の引当処理を行う場合にも、各受注オーダーの在庫品群種類数の制約条件及び引当数下限の制約条件を満たすように引当数を修正する必要がある。なお、下記の在庫品群種類数上限による修正工程及び引当数下限による修正工程の順序は一例に過ぎず、各修正工程を入れ替えて実行してもよい。
【０１０４】
（未充当オーダーが在庫品群種類数上限の制約条件を満たすための修正工程）
上記未充当オーダーに対し在庫品群の種類数の上限が設定されている場合において、当該未充当オーダーに在庫品群種類数の上限と同数の在庫品群に含まれる在庫品ロットを引き当てている場合には、次回の引当処理時に新たな在庫品群に含まれる在庫品ロットを引き当てることができない。このような事態を避けるために、未充当オーダーに対して引き当て済の在庫品ロットのうちのいずれか１以上の在庫品群に含まれる全ての在庫品ロットの引当数を０に設定することにより、次回の引当処理時に在庫品種類数上限の制約条件を満たし得るように在庫品ロットの引当数を修正する。
【０１０５】
具体的には、未充当オーダーに引当可能な在庫品群の種類数の上限をＡとし、未充当オーダーの受注量の下限をＢとし、当該未充当オーダーに引当済の各在庫品ロットの引当数の合計をＣとし、次に引当処理を実行するまでに補充される予定の１種の在庫品群に含まれる全ての在庫品ロットの補充予定数の総和をＤとすると、上記未充当オーダーに引き当てる在庫品群の種類数が、Ａ−（Ｂ−Ｃ）÷Ｄによって算出される値の小数点以下を切り捨てた整数値以下となるように、当該未充当オーダーに引き当てた在庫品群のうちのいずれか１以上の在庫品群に含まれる全ての在庫品ロットの引当数を０にする。このように引当数を修正することにより、未充当オーダーに引当可能な在庫品群の種類数に余裕を持たせることができ、次回の引当処理までに納品される在庫品ロットを引当可能とすることができる。
【０１０６】
（未充当オーダーが引当数下限の制約条件を満たすための修正工程）
未充当オーダーに引当数下限が定められている場合において、当該未充当オーダーの受注量の上限と、未充当オーダーに引当済の在庫品ロットの引当数の合計値との差が当該未充当オーダーの引当数下限未満の場合、次回の引当処理時に未充当オーダーに対して在庫品ロットの引当数を引当数下限以上に設定することができなくなる。このような事態を避けるために、次回の引当処理時に未充当オーダーに対して在庫品ロットを引き当てることができるように以下の修正工程を行う。
【０１０７】
すなわち、受注オーダーの受注量の上限から受注オーダーに引当済の在庫品ロットの引当数の合計値を引いた値が未充当オーダーの引当数下限以上となるように、受注オーダーに引当済のいずれか１以上の在庫品ロットの引当数を減算する。このように未充当オーダーに引当済の在庫品ロットの引当数を減算することにより、次回の引当処理時に未充当オーダーに対して在庫品ロットを引き当てることができるように引当数の余地を残すことができる。なお、在庫品ロットの引当数を減算した結果、減算した在庫品ロットを含む在庫品群に含まれる全ての在庫品ロットの引当数の総和が未充当オーダーの引当数下限を下回る場合には、当該在庫品群に含まれる全ての在庫品ロットの引当数を０に設定する。
【０１０８】
ここでの引当数の減算は、未充当オーダーに対して引き当てたいずれか１の在庫品ロットの引当数を１ずつ行うことが好ましい。このように在庫品ロットの引当数を徐々に減らしていくことで、当該減算後の引当数が、受注オーダーに許容される在庫品群に含まれる全ての在庫品ロットの引当数の総和の下限値未満となりにくくなるので、過剰に引当数が減算されることを防止することができる。以上のように引当数を修正することにより第１引当組合せ解を作成することができる。
【０１０９】
（ステップＳ２：第２引当組合せ解の作成（第２工程））
ステップＳ２において、第２引当組合せ解作成部４３は、第１工程で用いた優先度受注パラメータ又は優先度在庫パラメータの少なくとも一方を変更した優先度受注パラメータ及び優先度在庫パラメータに基づいて各受注オーダに引き当てる各在庫品ロットの引当数を設定した第２引当組合せ解を作成する。例えば第１工程で優先度受注パラメータとして受注オーダーの納期を用いる場合には、第２工程で優先度受注パラメータとして受注オーダーの受注量を用いるか、又は第１工程で優先度在庫パラメータとして在庫品ロットの在庫数を用いる場合には、第２工程で優先度在庫パラメータとして在庫品ロットの製造年月日を用いる。
【０１１０】
第２引当組合せ解作成部４３は、上記のように優先度受注パラメータ又は優先度在庫パラメータのうちの少なくとも一方を変更したことが異なる他は第１引当組合せ解と同様にして第２引当組合せ解を作成する。このように優先度受注パラメータ又は優先度在庫パラメータの少なくとも一方を第１引当組合せ解を作成した場合とは異なる組合せで第２引当組合せ解を作成することにより、第１引当組合せ解とは異なる行列となる第２引当組合せ解を得ることができる。
【０１１１】
（ステップＳ３：評価値の比較）
ステップＳ３において、評価値比較部４４は、所定の評価関数に基づいて、第１引当組合せ解の評価値ＥＶ１と、第２引当組合せ解の評価値ＥＶ２とを算出する。ここで算出される評価値ＥＶ１及び評価値ＥＶ２はいずれも具体的数値によって特定されるものであり、その数値が高いほど最適解に近いことを示すものである。ここでの評価関数は、受注オーダーの優先度、在庫品ロットの優先度、充当完了オーダーの割合、及び引当処理後の在庫品の在庫数に基づいて設定されることが好ましく、より好ましくは下記式（Ｉ）で表される評価関数Ｆを用いることである。
【０１１２】
【数２】
2018026097.tif 000006
【０１１３】
ここで、上記式（Ｉ）中、ｘｉはＮ（Ｎは２以上の整数）種類の受注オーダーのうちの受注オーダーｉに引き当てるべき優先度であり、ｙｊはＭ（Ｍは自然数）種類の在庫品ロットのうちの在庫品ロットｊを引き当てるべき優先度であり、ａｉ，ｊは受注オーダーｉに対して引き当てる在庫品ロットｊの引当数であり、αは前記各受注オーダーに応じて設定される補正係数であり、βは前記各在庫品ロットに応じて設定される補正係数であり、Ｘは引当組合せ解における全ての受注オーダーに対する充当完了オーダーの割合（％）であり、Ｙは在庫品ロットを引き当てた後の在庫品の在庫量の総和である。
【０１１４】
引当組合せ解の評価値を大きくするためには、上記式（Ｉ）に示されるように、優先度の高い受注オーダーに引き当てる在庫品ロットの引当数を多くするほど、また優先度の高い在庫品ロットの引当数を多くするほど、充当完了オーダーの割合を増やすほど、引当終了後の在庫品ロットの在庫数の総和が少ないほど好ましく、上記諸条件相互のバランスをとることが肝要である。したがって、例えば優先度が高い受注オーダーに優先度が高い在庫品ロットを引き当てることができたとしても、充当完了オーダーの割合が低い場合には評価値が高くならないこともあるし、充当完了オーダーの割合が多少劣っていても引当処理を終えた後の在庫品ロットの在庫数が著しく少なくなる場合には、評価値が高くなることもある。
【０１１５】
上記受注オーダーの優先度は、各受注オーダーによって作製される製品に関する条件（例えば要求性能、仕様、用途、大きさ等）に基づいて設定されるものであり、在庫品ロットの優先度は、各在庫品ロットに関する条件（品質、原材料、有効期限、用途、形状等）に基づいて設定されるものである。上記式（Ｉ）における充当完了オーダーの割合（％）は、引当組合せ解に含まれる全ての受注オーダーに対する充当完了オーダーの個数の百分率である。
【０１１６】
なお、比較対象となる２種類の引当組合せ解Ｓ１、Ｓ２において、引当組合せ解Ｓ１の充当完了オーダーの割合と引当組合せ解Ｓ２の充当完了オーダーの割合との差が所定値αより大きい場合は、上記評価関数の値にかかわらず、その充当完了オーダーの割合が高い方の解を引当組合せ解として採用することができる。そして、充当完了オーダーを大幅に改善できた引当組合せ解に対し、後述するステップＳ１５及びＳ１６における局所探索を実行して局所的に引当数を変更した引当組合せ解を作成した上で、この局所的に変更した引当組合せ解を上述の評価関数で評価値を算出し、当該評価値が、これまでに算出された引当組合せ解の最善解の評価値を上回る場合には、その解を引当組合せ解として設定することができる。
【０１１７】
なお、上記式（Ｉ）で表される評価関数以外の変動因子として、例えば引当処理後の在庫品ロットの在庫数等を加えてもよい。例えば引当処理後の在庫品ロットの在庫数が少なすぎると、次回の引当処理時にその少量のみの在庫品ロットを引き当てにくくなるので好ましくない。
【０１１８】
（ステップＳ４：引当組合せ解設定（第３工程））
評価値比較部４４は、上記第１引当組合せ解の評価値ＥＶ１と第２引当組合せ解の評価値ＥＶ２とを比較し、引当組合せ解設定部４５によって、より優れた評価値を示す解が引当組合せ解に設定される。このように引当組合せ解を設定することにより、第１引当組合せ解と第２引当組合せ解とを比較して、優れた方の解を引当組合せ解に設定することができるので、引当組合せ解の評価値を高めることができる。これによりステップＳ４は完了し、ステップＳ５の処理に進む。
【０１１９】
（ステップＳ５：ループ数設定）
ステップＳ５において、カウンタ部４６は仮引当組合せ解を設定した回数（ループ回数）を示すカウンタｎの値を０に設定する。カウンタｎの値は、仮引当組合せ解を設定した回数を意味するが、ステップＳ４の後のステップＳ５の段階では、引当組合せ解に対し、引当数の書き換えを一度も行っていないため、カウンタ部４６は、カウンタｎの値を０に設定する。このカウンタｎの設定によりステップＳ５は完了し、制御処理部１４はステップＳ６の処理に進む。
【０１２０】
（ステップＳ６：ループ判定）
ステップＳ６において、カウンタ成否判定部４７はカウンタｎの値とループ数設定値Ｋとを比較し、カウンタｎの値がループ数設定値Ｋであるか否かを判定する。カウンタｎの値がループ数設定値Ｋである場合（Ｓ６：Ｙｅｓ）、カウンタ成否判定部４７は、現在設定されている引当組合せ解を最適解と判定し、制御処理部１４は引当組合せ解の書き換えを終了する（エンド）。一方、カウンタｎの値がループ数設定値Ｋに達していない場合（Ｓ６：Ｎｏ）、カウンタ部４６はカウンタｎの値を１増数するステップＳ７を行う。これによりステップＳ７は完了し、制御処理部１４はステップＳ８の処理に進む。
【０１２１】
（ステップＳ８：仮引当組合せ解の作成（第４工程））
ステップＳ８において、仮引当組合せ解作成部４８は、第１工程及び第２工程で用いた優先度受注パラメータ又は優先度在庫パラメータのうちの少なくとも一方を変更した優先度受注パラメータ及び優先度在庫パラメータに基づいて各受注オーダに引き当てる各在庫品ロットの引当数を設定した仮引当組合せ解を作成する。このように第１工程又は第２工程で用いた優先度受注パラメータと優先度在庫パラメータの組合せとは異なる優先度受注パラメータと優先度在庫パラメータの組合せを用いて各受注オーダーに引き当てる各在庫品ロットの引当数を設定することにより、仮引当組合せ解作成部４８は、第１引当組合せ解と第２引当組合せ解以外の引当数の組合せを設定した仮引当組合せ解を作成することができる。
【０１２２】
（ステップＳ９：評価値の比較）
ステップＳ９において、評価値比較部４４は、上記式（Ｉ）に示される評価関数を用いて、上記で作製した仮引当組合せ解の評価値を算出し、上記引当組合せ解の評価値ＥＶ３と仮引当組合せ解の評価値ＥＶ４とを比較し、評価値ＥＶ４が評価値ＥＶ３未満の場合（Ｓ９：Ｎｏ）、引当組合せ解を変更せず、ステップＳ５の処理に戻るように判定する。一方、評価値比較部４４は評価値ＥＶ４が評価値ＥＶ３以上の場合（Ｓ９：Ｙｅｓ）、ステップＳ１０の処理に進むように判定し、引当組合せ解更新部４９はステップＳ１０において仮引当組合せ解を新たな引当組合せ解に書き換える。このように引当組合せ解を書き換えることにより、引当組合せ解の各受注オーダーに対する各在庫品ロットの引当数を最適解に近づけることができる。これによりステップＳ１０は完了し、ステップＳ５の処理に戻る。以上のようにしてステップＳ５〜ステップＳ１０の各工程を繰り返し、カウンタｎの値がループ数設定値Ｋになった後にステップＳ６において、カウンタ成否判定部４７は制御処理部１４が処理を終了すると判定する（エンド）。
【０１２３】
ステップＳ５〜ステップＳ１０のループを繰り返す中でステップＳ８を複数回実行する場合、優先度受注パラメータ又は優先度在庫パラメータのうちの少なくとも一方を各ステップＳ８ごとに異ならしめることが好ましく、例えば優先度受注パラメータを変更せずに、優先度在庫パラメータのみを変更して仮引当組合せ解を作成し、全ての優先度在庫パラメータの変更を終えると優先度受注パラメータを変更して、同様に優先度在庫パラメータを順番に変更していくというように各優先度受注パラメータと優先度在庫パラメータの組合せを変更することが好ましい。もちろん、ステップＳ５〜ステップＳ１０のループを繰り返す中でのステップＳ８ごとに、優先度受注パラメータ及び優先度在庫パラメータの組合せをランダムに変更してもよい。
【０１２４】
ステップＳ８（第４工程）は、優先度受注パラメータ及び優先度在庫パラメータの全ての組合せに対して仮引当組合せ解を設定することが好ましい。例えば、５種類の優先度受注パラメータと５種類の優先度在庫パラメータが予め設定されている場合にはその全組合せである５×５の２５通りの優先度受注パラメータと優先度在庫パラメータとに基づいて２５種類の仮引当組合せ解を設定し、その中での評価値が最大となる解を引当組合せ解として設定することが好ましい。このように全ての組合せに対して仮引当組合せ解を設定することにより、より適した引当数を設定した引当組合せ解を得ることができる。
【０１２５】
上記各ステップによって作製された引当組合せ解に対して以下の局所探索を実行することにより引当組合せ解をより優れた評価値にする。図３は、第１実施形態における在庫引当方法のうちの局所探索の手順を示すフローチャートである。
【０１２６】
（ステップＳ１１：引当組合せ解の設定）
ステップＳ１１において、上記全体探索（Ｓ１〜Ｓ１０）によって得られた引当組合せ解を局所探索の初期解として設定する。このように初期解を設定することによりステップＳ１１は完了し、制御処理部１４はステップＳ１２の処理に進む。
【０１２７】
（ステップＳ１２：ループ数設定）
ステップＳ１２において、カウンタ部４６は局所変更引当組合せ解を作成した回数を示すカウンタｎの値を０に設定する。カウンタｎの値は、仮引当組合せ解を設定した回数を意味するが、ステップＳ１２の段階では引当数の書き換えを一度も行っていないため、カウンタ部４６は、カウンタｎの値を０に設定する。このカウンタｎの設定によりステップＳ１２は完了し、制御処理部１４はステップＳ１３の処理に進む。
【０１２８】
（ステップＳ１３：ループ判定）
ステップＳ１３において、カウンタ成否判定部４７はカウンタｎの値とループ数設定値Ｌとを比較し、カウンタｎの値がループ数設定値Ｌであるか否かを判定する。カウンタｎの値がループ数設定値Ｌである場合（Ｓ１３：Ｙｅｓ）、カウンタ成否判定部４７は、現在設定されている引当組合せ解を最適解と判定し、制御処理部１４は引当組合せ解の書き換えを終了する（エンド）。一方、カウンタｎの値がループ数設定値Ｌに達していない場合（Ｓ１３：Ｎｏ）、カウンタ部４６はカウンタｎの値を１増数するステップＳ１４を行う。これによりステップＳ１４は完了し、制御処理部１４はステップＳ１５の処理に進む。
【０１２９】
（ステップＳ１５：特定の引当数の変更：第６工程）
ステップＳ１５において、局所変更解作成部５０は、引当組合せ解における任意の１種の受注オーダーに対する任意の１種の在庫品ロットの引当数を変更した局所変更引当組合せ解を作成する。ここでの特定の１の引当数を変更する在庫品ロットの選択方法は、特に限定されず、全受注オーダーの中からランダムに任意の１の受注オーダーを選択し、その選択した受注オーダーに対して引当可能な全在庫品ロットの中からランダムに任意の１の在庫品ロットを選択してもよい。ここでの変更後の引当数は、各種の制約条件を満たすように変更され、この変更に応じて別の在庫品ロットの引当数を変更する必要が生じた場合にはその引当数を新たに変更する。これらの引当数の変更によりステップＳ１５は完了し、制御処理部１４はステップＳ１６の処理に進む。
【０１３０】
ステップＳ１３〜ステップＳ１６のループを繰り返す中でステップＳ１５を複数回実行する場合、変更する引当数の受注オーダー又は在庫品ロットの少なくとも一方を各ステップＳ１５ごとに異ならしめることが好ましい。各ステップＳ１５ごとに、変更する受注オーダー及び在庫品ロットの組合せをランダムに設定してもよい。
【０１３１】
（ステップＳ１６：評価値の比較）
ステップＳ１６において、評価値比較部４４は、所定の評価関数に基づいて、全体探索によって設定された引当組合せ解の評価値ＥＶ５と、ステップＳ１５で設定された局所変更引当組合せ解の評価値ＥＶ６を算出する。ここでの評価値を算出する評価関数は、ステップＳ３及びステップＳ９で用いた評価関数Ｆと同様のものを用いることができる。
【０１３２】
評価値比較部４４は、上記引当組合せ解の評価値ＥＶ５と局所変更引当組合せ解の評価値ＥＶ６とを比較し、評価値ＥＶ６が評価値ＥＶ５未満の場合（Ｓ１６：Ｎｏ）、引当組合せ解を変更せず、ステップＳ１３の処理に戻る。一方、評価値比較部４４は評価値ＥＶ６が評価値ＥＶ５以上の場合（Ｓ１６：Ｙｅｓ）、ステップＳ１７の処理に進むように判定し、引当組合せ解更新部４９はステップＳ１７において局所変更引当組合せ解を新たな引当組合せ解に書き換える。このように引当組合せ解を書き換えることにより、引当組合せ解の各製品に対する各在庫品の引当数を最適解に近づけることができる。これによりステップＳ１７は完了し、ステップＳ１３の処理に戻る。以上のようにしてステップＳ１３〜ステップＳ１７の各工程を繰り返し、カウンタｎの値がループ数設定値Ｋになった後にステップＳ１３において、制御処理部１４はカウンタ成否判定部４７によって処理を終了すると判定する（エンド）。
【０１３３】
＜第２実施形態の在庫引当システム＞
図４は、第２実施形態の在庫引当方法を実行する在庫引当システムの構成を示す図である。第２実施形態の在庫引当システム１は、図４に示されるように、入力部１１と、出力部１２と、記憶部１３と、制御処理部１４と、を備える。記憶部１３は、第２実施形態の在庫引当プログラム等の第２実施形態の制御処理プログラムを記憶する。
【０１３４】
制御処理部１４には、記憶部１３に記憶されている第２実施形態の制御処理プログラムが実行されることによって、図４に示されるように、制御部４１、第１引当組合せ解作成部４２、第２引当組合せ解作成部４３、評価値比較部４４、引当組合せ解設定部４５、カウンタ部４６、カウンタ成否判定部４７、仮引当組合せ解作成部４８、引当組合せ解更新部４９、局所変更解作成部５０、時間判定部５１、ループ回数設定部５２が機能的に構成される。
【０１３５】
制御部４１は、各部４２〜５０を制御して、全体探索を実行した後、局所探索を実行する解探索処理を行う。時間判定部５１は、解探索処理の実行時間をカウントする。時間判定部５１は、１回の解探索処理が終了したときに、解探索処理の実行時間が所定時間を超えているか否かを判定する。
【０１３６】
時間判定部５１が、解探索処理の実行時間が所定時間を超えていないと判定すると、制御部４１は、解探索処理を再び行う。時間判定部５１が、解探索処理の実行時間が所定時間を超えていると判定すると、制御部４１は、解探索処理を行わずに終了する。
【０１３７】
ループ回数設定部５２は、解探索条件データベース３３に記憶されているループ回数情報５００（図５）に基づき、第２実施形態の全体探索におけるループ回数を設定する。ループ回数は、後述される図７のステップＳ７１，Ｓ７，Ｓ８，Ｓ９，Ｓ１０のループを実行する回数である。
【０１３８】
図５は、第２実施形態の解探索条件データベース３３に記憶されているループ回数情報５００の一例を概略的に示す図である。図５に示されるように、ループ回数情報５００では、探索回数Ｎｓに応じて、ループ回数Ｋ（Ｎｓ）が定められている。探索回数Ｎｓは、解探索処理を行う回数を表す。
【０１３９】
また、ループ回数情報５００では、探索回数が１回目（つまりＮｓ＝１）のときは、受注オーダー数Ｎに応じて、ループ回数Ｋ（Ｎｓ）が定められている。すなわち、受注オーダー数Ｎが５００以上のときは、ループ回数Ｋ（１）が５０に定められ、受注オーダー数Ｎが５００未満で３００以上のときは、ループ回数Ｋ（１）が３０に定められ、受注オーダー数Ｎが３００未満のときは、ループ回数Ｋ（１）が１０に定められている。
【０１４０】
探索回数が２回目以降のときは、受注オーダー数Ｎに関係なく、ループ回数Ｋ（Ｎｓ）が定められている。すなわち、第２実施形態では、探索回数が２回目（つまりＮｓ＝２）のときは、受注オーダー数Ｎに関係なく、ループ回数Ｋ（２）は例えば５に定められ、探索回数が３回目以降（つまりＮｓ≧３）のときは、受注オーダー数Ｎに関係なく、ループ回数Ｋ（Ｎｓ）は例えば１に定められている。
【０１４１】
本実施形態において、ループ回数Ｋ（Ｎｓ）は、第１ループ回数の一例に相当する。受注オーダー数Ｎ＝５００は、閾値の一例に相当し、ループ回数Ｋ（１）＝５０は、第１回数値の一例に相当し、ループ回数Ｋ（１）＝３０は、第２回数値の一例に相当する。受注オーダー数Ｎ＝３００は、閾値の一例に相当し、ループ回数Ｋ（１）＝３０は、第１回数値の一例に相当し、ループ回数Ｋ（１）＝１０は、第２回数値の一例に相当する。
【０１４２】
図６は、第２実施形態における在庫引当方法の手順を示すフローチャートである。ステップＳ６０において、制御部４１は、探索回数Ｎｓを１に設定する。ステップＳ６１（カウント開始工程）において、時間判定部５１は、経過時間のカウントを開始する。ステップＳ６２において、制御部４１は、各部４２〜５０を制御して、全体探索処理（後述の図７）を実行する。
【０１４３】
ステップＳ６３において、制御部４１は、各部４２〜５０を制御して、局所探索処理を実行する。第２実施形態の局所探索処理は、図３に示される第１実施形態と同様である。なお、第２実施形態の局所探索処理では、ループ数設定値Ｌは、一定値（本実施形態では例えば３）に設定されている。この第２実施形態において、ステップＳ６２（全体探索処理）〜Ｓ６３（局所探索処理）は、解探索処理の一例に相当する。
【０１４４】
ステップＳ６４において、制御部４１は、ステップＳ６３で得られた引当組合せ解を記憶部１３に保存する。ステップＳ６５（時間判定工程）において、時間判定部５１は、経過時間が所定時間を超えているか否かを判定する。所定時間は、例えば解探索条件データベース３３に記憶されている。経過時間が所定時間を超えていないと時間判定部５１が判定すると（ステップＳ６５でＮｏ）、処理はステップＳ６６に進む。一方、経過時間が所定時間を超えていると時間判定部５１が判定すると（ステップＳ６５でＹｅｓ）、処理はステップＳ６７に進む。
【０１４５】
ステップＳ６６において、制御部４１は、探索回数Ｎｓを１インクリメントして、処理はステップＳ６２に戻り、全体探索処理（ステップＳ６２）と局所探索処理（ステップＳ６３）とを含む解探索処理を再び実行する。すなわち、解探索処理の終了時に、解探索処理の開始時から所定時間が経過していなければ、解探索処理を新たに開始する。一方、解探索処理の終了時に、解探索処理の開始時から所定時間が経過していれば、解探索処理を新たに開始しない。
【０１４６】
ステップＳ６７において、制御部４１は、引当組合せ解が記憶部１３に２個以上保存されているか否か、つまり解探索処理が２回以上行われたか否かを判定する。引当組合せ解が記憶部１３に１個だけ保存されていれば（ステップＳ６７でＮｏ）、処理はステップＳ６８に進む。一方、引当組合せ解が記憶部１３に２個以上保存されていれば（ステップＳ６７でＹｅｓ）、処理はステップＳ６９に進む。
【０１４７】
ステップＳ６８（第１出力工程）において、制御部４１は、記憶部１３に保存されている引当組合せ解を出力部１２に出力して、図６の処理は終了する。ステップＳ６９（第２出力工程）において、評価値比較部４４は、上記評価関数Ｆを用いて、記憶部１３に保存されている２個以上の引当組合せ解の評価値をそれぞれ算出し、算出した評価値を比較し、評価値が最も高い引当組合せ解を出力部１２に出力して、図６の処理は終了する。出力部１２が表示装置の場合、制御部４１は引当組合せ解を出力部１２に表示してもよい。出力部１２が印刷装置の場合、制御部４１は引当組合せ解を出力部１２により印刷してもよい。
【０１４８】
図７は、第２実施形態における在庫引当方法のうちの全体探索の手順を示すフローチャートである。ステップＳ１〜Ｓ４は、図２のステップＳ１〜Ｓ４と同じである。ステップＳ４に続くステップＳ７０（設定工程）において、ループ回数設定部５２は、ループ回数Ｋ（Ｎｓ）を設定する。探索回数Ｎｓは、図６のステップＳ６０又はステップＳ６５で設定されている。
【０１４９】
解探索処理の１回目は、図６のステップＳ６０において、Ｎｓが１に設定される。Ｎｓが１であれば、ループ回数設定部５２は、製品情報データベース３１に記憶されている情報から受注オーダー数Ｎを読み出す。ループ回数設定部５２は、読み出した受注オーダー数Ｎと解探索条件データベース３３に記憶されているループ回数情報５００とから、ループ回数Ｋ（Ｎｓ）を設定する。例えば受注オーダー数Ｎが４５０であれば、ループ回数Ｋ（Ｎｓ）を３０に設定する。
【０１５０】
解探索処理の２回目以降は、図６のステップＳ６５において、Ｎｓが設定される。Ｎｓが２であれば、ループ回数設定部５２は、解探索条件データベース３３に記憶されているループ回数情報５００から、ループ回数Ｋ（Ｎｓ）を５に設定する。Ｎｓが３以上であれば、ループ回数設定部５２は、解探索条件データベース３３に記憶されているループ回数情報５００から、ループ回数Ｋ（Ｎｓ）を１に設定する。ステップＳ７０に続くステップＳ５は、図２のステップＳ５と同じである。
【０１５１】
ステップＳ５に続くステップＳ７１において、カウンタ成否判定部４７は、カウンタｎの値とループ回数Ｋ（Ｎｓ）とを比較し、カウンタｎの値がループ回数Ｋ（Ｎｓ）に等しいか否かを判定する。カウンタｎの値がループ回数Ｋ（Ｎｓ）に等しければ（ステップＳ６でＹｅｓ）、カウンタ成否判定部４７は、現在設定されている引当組合せ解を最適解と判定して、図７の処理は終了する。一方、カウンタｎの値がループ回数Ｋ（Ｎｓ）に等しくなければ（ステップＳ６でＮｏ）、処理はステップＳ７に進む。ステップＳ７〜Ｓ１０は、図２のステップＳ７〜Ｓ１０と同じである。ステップＳ１０が終了すると、処理はステップＳ７１に戻る。
【０１５２】
以上説明されたように、第２実施形態では、探索回数Ｎｓが１回目のときは、受注オーダー数Ｎに応じて、全体探索処理のループ回数Ｋ（Ｎｓ）を定めている。これによって、全体探索処理のループ回数Ｋ（Ｎｓ）を、受注オーダー数Ｎに応じた適切な値に設定することができる。
【０１５３】
探索回数Ｎｓが２回目以降のときは、全体探索処理のループ回数を増加させても、引当組合せ解の更新される頻度が低いということが経験的に判明している。そこで、第２実施形態では、探索回数Ｎｓが２回目のときは、受注オーダー数Ｎに関係なく、全体探索処理のループ回数Ｋ（Ｎｓ）を５に定め、探索回数Ｎｓが３回目以降のときは、受注オーダー数Ｎに関係なく、全体探索処理のループ回数Ｋ（Ｎｓ）を１に定めている。その結果、第２実施形態によれば、引当組合せ解の計算精度を低下させることなく、全体探索処理の時間が無駄に長くなるのを防ぐことができる。
【０１５４】
また、第２実施形態では、ステップＳ６５（図６）において、解探索処理の開始時からの経過時間が所定時間を超えているか否かを判定し、所定時間が経過していれば、解探索処理を新たに開始しない。これによって、解探索処理の実行時間が過剰に長くなるのを防ぐことができる。
【０１５５】
＜実施形態の変形例＞
上記第１実施形態においては、全体探索処理ではカウンタｎの値がループ数設定値Ｋになるまで、局所探索処理ではカウンタｎの値がループ数設定値Ｌになるまで、それぞれ引当組合せ解を模索する場合を説明したが、これに限られない。全体探索処理及び局所探索処理では、それぞれ、評価値が所定の数値以上となるまで引当組合せ解を模索してもよいし、所定時間となるまでループを繰り返すように設定することもできる。
【０１５６】
上記第１、第２実施形態においては、上記第１引当組合せ解及び第２引当組合せ解における引当数の設定の順序は、優先度が高い受注オーダーから順番に在庫品ロットの引当数を設定していたが、優先度が高い在庫品ロットから順番に受注オーダーに引き当てる引当数を設定してもよい。
【０１５７】
上記第２実施形態のループ回数情報５００（図５）におけるループ回数Ｋ（Ｎｓ）は一例であり、これに限られない。例えば、探索回数Ｎｓが１のときのループ回数Ｋ（Ｎｓ）は、受注オーダー数Ｎの１０％に設定してもよい。この場合、小数点以下は、四捨五入してもよい。
【０１５８】
上記第２実施形態では、ステップＳ６４（図６）の判定に用いる所定時間は、解探索条件データベース３３に記憶されているが、これに限られない。例えば、入力部１１を用いてユーザが所定時間を所望の時間に設定できるようにしてもよい。
【０１５９】
＜その他＞
本発明を表現するために、上述において図面を参照しながら実施形態を通して本発明を適切且つ十分に説明したが、当業者であれば上述の実施形態を変更および／または改良することは容易に為し得ることであると認識すべきである。したがって、当業者が実施する変更形態または改良形態が、請求の範囲に記載された請求項の権利範囲を離脱するレベルのものでない限り、当該変更形態または当該改良形態は、当該請求項の権利範囲に包括されると解釈される。
【符号の説明】
【０１６０】
１１  入力部
１２  出力部
１３  記憶部
１４  制御処理部
３１  製品情報データベース
３２  在庫品情報データベース
３３  解探索条件データベース
４１  制御部
４２  第１引当組合せ解作成部
４３  第２引当組合せ解作成部
４４  評価値比較部
４５  引当組合せ解設定部
４６  カウンタ部
４７  カウンタ成否判定部
４８  仮引当組合せ解作成部
４９  引当組合せ解更新部
５０  局所変更解作成部
５１  時間判定部
５２  ループ回数設定部
【図１】
2018026097.tif 000008
【図２】
2018026097.tif 000009
【図３】
2018026097.tif 000010
【図４】
2018026097.tif 000011
【図５】
2018026097.tif 000012
【図６】
2018026097.tif 000013
【図７】
2018026097.tif 000014