アイテム配分システム及び方法
【目的】多種類の商品を複数の小売店に適切に配分すること。
【解決手段】アイテム配分システムは、p種類のアイテムの全部又は一部を、第1ないし第qの受取手段に配分するアイテム配分システムであって、各アイテムの総数と各受取手段が受け取るアイテム数とが記憶された記憶手段と、初期条件を読み出して設定する初期条件設定手段と、水平方向の構成比と、垂直方向の構成比とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比を計算する構成比計算手段と、各成分amnに按分する按分手段と、前記按分手段によって各成分amnに按分された数値の過剰分及び過小分を調整する調整手段と、を含む。
【解決手段】アイテム配分システムは、p種類のアイテムの全部又は一部を、第1ないし第qの受取手段に配分するアイテム配分システムであって、各アイテムの総数と各受取手段が受け取るアイテム数とが記憶された記憶手段と、初期条件を読み出して設定する初期条件設定手段と、水平方向の構成比と、垂直方向の構成比とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比を計算する構成比計算手段と、各成分amnに按分する按分手段と、前記按分手段によって各成分amnに按分された数値の過剰分及び過小分を調整する調整手段と、を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、広くは、商品配分システム及び方法に関し、更に詳しくは、多種類の商品を複数の小売店に適切に配分するシステム及び方法に関する。更に、本発明は、多種類の物品を保管能力に応じて特定の倉庫又は1つの倉庫の特定の格納場所に配分するシステム及び方法や、多くの人員をそれぞれの役割及び適性に応じて様々な部署に配分するシステム及び方法など、多くの分野に応用する可能性を有している。
【背景技術】
【0002】
小売業において、多種類の商品を扱う企業が、多数の店舗を展開している例を考えよう。現在では、このような例は非常に多く、すぐに、スーパーマーケット、コンビニエンスストア、100円ショップ、洋品店、書店、CDショップ、携帯電話販売店、ドラッグストアなどの典型的な例が考えられる。これらの例から明らかなように、配分すべき商品の種類は膨大であり、配分可能な商品の数も商品ごとに異なる。また、店舗の規模もそれぞれに異なっている。このような場合、どの店舗にどの商品をいくつ配分したらよいのかを決定するのは、困難な問題である。
【発明の開示】
【0003】
本発明の目的は、従来は解決が困難であったこのアイテム配分問題を解決することである。なお、本発明が適用して配分されるアイテムは、上述したように、商品などの物には限定されず、特定の能力を有する人間を特定の職務の担当と決定する場合なども含む広い概念である。
【0004】
本発明によると、mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムが提供される。このアイテム配分システムは、各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段と、前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分amnに按分する按分手段と、前記按分手段によって各成分amnに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、を備えている。
【0005】
また、本発明によると、mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムが提供される。このアイテム配分システムは、各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段と、前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分amnに按分する按分手段と、前記按分手段によって各成分amnに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、を備えている。
【0006】
更に、本発明によるアイテム配分システムにおいて、前記調整手段は、前記過剰分及び過小分の調整の順序を予め設定するランキング処理手段と、前記按分手段によって按分された各成分amnの各行及び各列の総和が前記初期条件設定手段によって予め設定されている初期条件を超える場合には、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって予め設定されている初期条件の範囲までの各成分amnを1とし、前記総和を超える成分からは0とする基本調整手段と、垂直方向の成分の総和が前記初期条件設定手段によって設定されたVn未満である列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定された各成分Vnと等しくなるまで各成分amnに1を加算する加算処理手段と、前記マトリクスの水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている行に含まれるq個の成分において、前記ランキング処理手段によって設定された順序に従い、各成分amnから1を減算する過剰分緩和手段と、垂直方向の成分の総和が前記初期条件設定手段によって設定されたVnを超えている列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定されたVnと等しくなるまで各成分amnから1を減算し、すべての列における垂直成分の総和を前記初期条件設定手段によって設定されたVnと等しくする減算処理手段と、水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている第1の行と、水平方向の成分の総和が前記初期条件設定手段によって設定されたTm未満である第2の行とを特定し、第1の行の成分から1を減算し第2の行の成分に1を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定手段によって設定されたTm以下となるまで継続するスワップ処理手段と、を含みうる。
【0007】
以上では、本発明をアイテム配分システムとして把握したが、本発明を、特許請求の範囲の請求項4ないし請求項6に記載されたアイテム配分方法として把握することも可能であるし、更に、請求項7及び請求項8に記載されたように、請求項4ないし請求項6のいずれかの請求項に記載されたアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラムが記憶されたコンピュータ可読な記憶媒体、又は、そのようなコンピュータ・プログラム自体として把握することも可能である。
【発明を実施するための最良の形態】
【0008】
1.具体例を用いた説明:
以下では、本発明を、「12種類の商品の在庫を、20店舗に配分する」という処理を例に用いて説明する。本発明のパーソナル・コンピュータなどにおける処理を示すため、コンピュータのディスプレイ上に、縦軸(Y軸)に在庫を、横軸(X軸)に店舗をとったマトリクスを考える。そのようなマトリクスの例が、図1に示されている。なお、ここで在庫とは、配分される商品の現在数を意味する。縦軸には12種類の商品があり、横軸には20店舗があるから、このマトリクスを構成するセルの数は、12X20=240である。図1に示されているように、商品(アイテム)は、Item_01からItem_12まで合計400点の在庫がある。これらの在庫について、1号店から20号店まで、50点、45点、40点、・・・、5点というように合計の投入指示数を設定する。すると、本発明による商品配分システムの動作により、各アイテムについて、各店舗に配分する数量が自動的に決定される。
【0009】
詳細は後述するが、本発明では、合計で400点の在庫を、まず最初に、縦の構成比と横の構成比とに従って按分して各セルの値を決定する。次に、縦数値(在庫)の多い順、横数値(投入指示数)の多い順にそれぞれの順位を決定し、その順位に従って各セルの値を調整し、縦計及び横計を合わせる端数処理を行う。以上は、在庫数の合計と投入指示数の合計とが等しい場合であるが、本発明は、在庫の全部ではなく一部のみを投入する場合、すなわち、在庫数合計≧投入指示数合計の場合にも用いることができる。
【0010】
本発明による例1の場合の処理では、第1に、在庫が多いアイテムは各店においても多く配分されること、第2に、各店舗においてなるべくたくさんのアイテムが配分されることの2点を基本方針とする。その上で、(1)初期処理、(2)基本調整、(3)投入指示数合わせ(加算)、(4)過剰分の緩和、(5)投入指示数合わせ(減算)、(6)スワップ処理(アイテム間の在庫数合わせ)という6つの処理を行う。
【0011】
(1)初期処理:
最初に、初期処理について説明する。初期処理では、入力処理、構成比による按分、ランキング処理という3つの処理が行われる。
【0012】
(1−1)入力処理:
入力処理では、図1に示されているように、計算の元データとなる数値が入力データとしてX軸及びY軸に入力される。その際、X軸には店舗別に投入指示数が入力され、Y軸にはアイテム別の在庫数が入力される。この例では、12種類のアイテムを20店舗に配分することを考えているのであるが、12種類のアイテムの合計は400であるとする。アイテム1からアイテム12まで、それぞれのアイテムの数は図1の縦軸に示されている通りであり、それぞれの店舗に配分されるアイテムの総数は図1の横軸に示されている通りである。この例の場合、すべてのアイテムがいずれかの店舗に配分されることを想定しているので、X軸合計=Y軸合計=400となる。
【0013】
(1−2)構成比による按分:
最初に、各セルにおける数値の全体の合計に対する構成比を計算し、その比率を用いて在庫の全体を各セルに按分する。この例の場合、小数点以下は切り上げて整数とした。
【0014】
実際には、X軸構成比=店舗投入指示数÷在庫総数とY軸構成比=在庫数÷在庫総数とを計算し、(X軸構成比)×(Y軸構成比)=セルの構成比を計算する。具体例を用いて計算を実行してみると、1号店とアイテム1(Item_01)との交点におけるセルの構成比は、(店舗投入指示数÷在庫総数)×(在庫数÷在庫総数)=(50÷400)×(120÷400)=0.125×0.3=3.75%となる。そして、このセルに配分される値は、在庫数総数×セルの構成比であるから、400×3.75%=15となる。以上の計算において、セルの値を算出する時に生じる小数点以下は切り上げている。切り上げとしている理由は、各店舗においてなるべくたくさんのアイテムを配分するためである。図2には、以上の計算をすべてのセルに対して行い、得られた数値をすべてのセルに配分した状態が示されている。図2の右下に示されているように、配分されたアイテム数が10以上、配分されたアイテム数が4から9、配分されたアイテムが2から3のセルには、3段階の濃度でドットが付されている。配分されたアイテムが1のセルにはドットは付されていない。
【0015】
(1−3)ランキング処理:
次に、X軸及びY軸のそれぞれに対しランキング処理をする。ランキング処理の結果として得られる順位は、後述するプロセスにおいて、各セルの加算や減算処理を行なう時の順番として使用される。X軸のランキング処理では、投入指示数の大きい順に順位が付される。同着の場合は処理の早い方を上位とする。Y軸のランキング処理では、在庫数の大きい順に順位が付され、同着の場合は処理の早い方を上位とする。図3には、X軸の上側及びY軸の左側にランキングが付された様子が示されている。
【0016】
(2)基本調整:
次は、基本調整である。これまでの処理の結果、構成比に従ってセルの値が埋まっているが、X軸及びY軸においてセルの個数が入力値より大きい場合には、すべてのセルにおいて小数点以下の切り上げ処理により1以上の数値が配分されているので、合計が入力値を上回る。これに該当する列または行について、ランキング順に入力値順位まではセルに1を配分し、その他は0を配分する調整を最初に行なう。
【0017】
(2−1)投入指示数<アイテム数の場合:
構成比による按分を行った際に、小数点以下を切り上げる処理を行っているため、現時点では、図2及び図3に示されているように、すべてのセルに最低でも1が配分されており、アイテム数が12なので各店舗に配分されている投入数は、理論的には、最低でも12である(実際には、図2及び図3に示されているように、18号店から20号店では最低でも13になっている)。しかし、投入指示数が5や10のように12よりも小さな店舗には余分に配分されていることになり、投入指示数に合わせる処理が必要となる。投入指示数がアイテム数である12に満たない店舗を検索すると、この例の場合には、10号店、11号店、13号店、17号店から20号店の7店舗が該当する。これら7つの店舗に対しては、在庫ランクの高い順に、投入指示数分まではセルに1を配分し、それ以外のセルには0を配分する。例えば、20号店の場合、アイテム1からアイテム5までには1を配分し、アイテム6からアイテム12までには0を配分する。以上の調整を行った結果が図4に示されている。図4において、太い点線で囲まれているのが、以上の処理がなされた箇所である。
【0018】
(2−2)在庫数<店舗数の場合:
図4に示された処理では、列方向すなわち縦方向の合計を考察したのであるが、行方向すなわち横方向の合計を考察して、在庫についても同様の調整を行なう。図5において、太い点線で囲まれているのが今回の処理の対象となる箇所である。店舗数である20よりも配分可能な数が少ないアイテムに着目すると、この例の場合、アイテム6からアイテム12である。これらのアイテムについては、投入指示数ランクの高い順に在庫数分まではセルに1を配分し、それ以外のセルには0を配分する。しかし、注意すべきは、図4での処理で店舗投入数を調整した時に「0」にしたセルには「1」を入れないことである。具体的には、アイテム12の場合、投入指示数ランクの高い方から1号店、2号店、3号店、15号店、4号店には1を配分し、それ以外の店舗には0を配分する。
【0019】
(3)投入指示数合わせ(加算):
次に、当初に想定されていた投入指示数よりもこの段階までの計算結果の方が少ない店舗に対して加算処理を行う。具体的には、在庫の多いアイテムの順に、店舗投入数=投入指示数となるまで、セルに1を加算する。具体的には、以下で詳述するが、店舗投入数<投入指示数となっている店舗を特定する、在庫数ランク1位のアイテムのセルを特定する、該当セルに1を加算する、まだ店舗投入数<投入指示数であれば次の在庫数ランクのアイテムに移り1を加算する、店舗投入数=投入指示数となるまで以上の処理を繰り返す、店舗投入数=投入指示数となったら次の投入が足りない店舗へ移り同様の加算処理を行なう、という手順で処理が進行する。
【0020】
(3−1)投入指示数合わせ(加算1):
以上の処理の結果である現在の店舗投入数(縦計)が投入指示数に満たない店舗に対して加算処理を行い、指示数に一致させる。図5に示されている現在までの配分数を参照すると、現時点までに1号店には49点が配分されており、投入指示数より1だけ不足していることがわかる。他にも不足している店舗はあるが、投入指示数の多い店舗の順に処理を行うので、1号店に対して最初に加算を行う。よって、アイテム1に1を加算すると、セルの値は15から16に変更され、図6に示されているように、投入が指示された50点が1号店に配分されたことになる。
【0021】
(3−2)投入指示数合わせ(加算2):
同様に、図6に示されている現在までの配分数を参照すると、現時点までに10号店には7点が配分されており、投入指示数より3だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、以上の結果として、図7に示されているように、投入が指示された10点が10号店に配分されたことになる。
【0022】
(3−3)投入指示数合わせ(加算3):
同様に、図7に示されている現在までの配分数を参照すると、現時点までに11号店には7点が配分されており、投入指示数より3だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、以上の結果として、図8に示されているように、投入が指示された10点が11号店に配分されたことになる。
【0023】
(3−4)投入指示数合わせ(加算4):
同様に、図8に示されている現在までの配分数を参照すると、現時点までに13号店には5点が配分されており、投入指示数より5だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、アイテム4に1を加算するとセルの値は1から2に変更され、アイテム5に1を加算するとセルの値は1から2に変更され、以上の結果として、図9に示されているように、投入が指示された10点が13号店に配分されたことになる。
【0024】
(3−5)投入指示数合わせ(加算5):
同様に、図9に示されている現在までの配分数を参照すると、現時点までに17号店には5点が配分されており、投入指示数より5だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、アイテム4に1を加算するとセルの値は1から2に変更され、アイテム5に1を加算するとセルの値は1から2に変更され、以上の結果として、図10に示されているように、投入が指示された10点が17号店に配分されたことになる。
【0025】
(4)過剰分の緩和:
ここまでの処理で、投入指示数に対し計算結果の店舗投入数が足りない店舗に加算処理をして数合わせが済んだので、次は逆に投入が指示されている数量を超えて配分がなされている店舗に対して減算処理を行うのであるが、その前にセルの歯抜け緩和のための処理を行う。
【0026】
この過剰分緩和処理は、上述した(3)の加算処理とは逆に減算処理を行う前段階の処理である。過剰分緩和処理がなされない場合には、店舗投入数>投入指示数の店舗に対して各セルから1を減算すると0になってしまうセルが頻発し、マトリクス全体を見ると歯抜けの箇所が多くなる可能性がある。しかし、大前提として既に述べたように、本発明における商品配分での基本方針は、第1に、在庫が多いアイテムは各店においても多く配分されること、第2に、各店舗においてなるべくたくさんのアイテムが配分されることの2点であった。後者の「各店舗においてなるべくたくさんのアイテムが配分されること」という条件は、「欠番が生じる店舗を可能な限り少なくする」と言い換えることが可能であり、多種類の商品を多くの店舗に配分する際に要求される極めて自然な条件といえるだろう。セルの歯抜け緩和のための処理が必要なのは、この条件を満たすためである。
【0027】
実際には、店舗投入数>投入指示数の店舗において、在庫オーバーしているアイテムがあるのならば、そのアイテムについて前もって1を減算して、在庫オーバー分だけ店舗投入数の過剰分を緩和しておく。具体的な処理としては、在庫数ランクの低い順に在庫オーバーしているアイテムを特定する、そのアイテム特定後に店舗投入数>投入指示数となっている店舗のセルを特定する、そのセルの値が1より大きければ1だけ減算する、という手順で処理がなされる。店舗投入数を優先的に揃えるためであるから、アイテム特定後は店舗の減算処理は優先的に行なう。従って、途中で在庫オーバーではなくなる場合があっても、減算処理は継続される。
【0028】
なお、この過剰分の緩和処理は、在庫オーバー、投入オーバーの過剰分を少し減らして緩和しているに留まる。上述の通り、この処理の後で、店舗投入数の過剰店舗に対して完全な数合わせのための減算処理を行なう。
【0029】
(4−1)過剰分の緩和(減算1):
在庫オーバーしているアイテムを在庫数ランクの低い順に特定し、店舗投入数(縦計)が投入指示数を超えている店舗に対し減算処理をして過剰分を緩和する。この時点までの処理結果が示されている図10を参照すると、アイテム5は配分可能な在庫が20であるにもかかわらず、この時点までに30が配分され、過剰分が10である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、2号店セルで1を減算してセルの値を3から2に変更し、4号店セルで1を減算してセルの値を2から1に変更し、6号店セルで1を減算してセルの値を2から1に変更し、15号店セルで1を減算してセルの値を2から1に変更する。この減算の結果として配分済の数量は30から26に変更されたので、過剰分は10から6に減少した。
【0030】
(4−2)過剰分の緩和(減算2):
この時点までの処理の結果が示された図11を参照して、次に在庫数ランクが低い順で見ていくと、アイテム4は配分可能な在庫が40であるにもかかわらず、この時点までに47が配分され、過剰分が7である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、4号店セルで1を減算してセルの値を3から2に変更し、5号店セルで1を減算してセルの値を2から1に変更し、6号店セルで1を減算してセルの値を3から2に変更し、7号店セルで1を減算してセルの値を2から1に変更し、8号店セルで1を減算してセルの値を2から1に変更し、9号店セルで1を減算してセルの値を2から1に変更し、12号店セルで1を減算してセルの値を2から1に変更し、14号店セルで1を減算してセルの値を2から1に変更し、15号店セルで1を減算してセルの値を4から3に変更し、16号店セルで1を減算してセルの値を2から1に変更する。この減算の結果として配分済の数量は47から37に変更されたので、7だけ過剰だったのが、逆に3だけ不足となるが、先に述べたように、店舗投入数の減算を優先する。この不足分は、後の在庫スワップ処理で調整される。
【0031】
(4−3)過剰分の緩和(減算3):
この時点までの処理の結果が示された図12を参照して、次に在庫数ランクが低い順に見ていくと、アイテム3は配分可能な在庫が70であるにもかかわらず、この時点までに77が配分され、過剰分が7である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、4号店セルで1を減算してセルの値を5から4に変更し、5号店セルで1を減算してセルの値を4から3に変更し、6号店セルで1を減算してセルの値を5から4に変更し、7号店セルで1を減算してセルの値を4から3に変更し、15号店セルで1を減算してセルの値を7から6に変更する。この減算の結果として配分済の数量は77から72に変更されたので、過剰分は、7から2に減少した。
【0032】
(5)投入指示数合わせ(減算):
既に述べた(3)での加算処理とは逆に、投入指示数に対し計算結果の店舗投入数がオーバーしている店舗に減算処理を行う。在庫の少ないアイテム順に、店舗投入数=投入指示数となるまで、セルから1を減算する処理を行う。実際には、在庫数ランク最下位のアイテムのセルを特定する、店舗投入数>投入指示数となっている店舗を特定する、そのセルの値が1より大きければ1を減算する、次の在庫数ランクのアイテムに移り上記処理を実行する、店舗投入数=投入指示数となるまで繰り返す(1より大きいセルでの減算調整が出来なくなった場合は1以上の条件で上記処理を繰り返す)、という手順で処理が進行する。
【0033】
(5−1)投入指示数合わせ(減算1):
ここまでの処理の結果である現在の店舗投入数(縦計)が投入指示数を超えている店舗に対して減算処理を行い、指示数に一致させる。図13に示されている現在までの配分数を参照すると、在庫数ランクが最下位のアイテムから検索していき、店舗投入数>投入指示数の店舗でセルの値が1より大きく減算可能となるアイテムはアイテム4である。店舗投入数>投入指示数の店舗は、4号店、5号店、6号店である。このアイテム4について4号店セルから1を減算するとセルの値は2から1に変更され、店舗投入数は27から26に変更される。次に、6号店セルから1を減算するとセルの値は2から1に変更され、店舗投入数は26から25に変更され、6号店については、投入指示数に一致する。
【0034】
(5−2)投入指示数合わせ(減算2)
次に、図14に示されている現在までの配分数を参照すると、次に減算可能なアイテムはアイテム3である。このアイテム3について4号店セルから1を減算するとセルの値は4から3に変更され、店舗投入数は26から25に変更され、投入指示数に一致する。次に、5号店セルから1を減算するとセルの値は3から2に変更され、店舗投入数は21から20に変更され、投入指示数に一致する。
【0035】
以上の処理の結果は図15に示されているが、1号店から20号店まで、すべての店舗に関して、店舗に配分されたアイテム総数が当初に設定された投入指示数と一致したことになる。
【0036】
(6)スワップ処理:
この段階までに行われた処理の結果、すべての店舗について、配分されたアイテム総数が当初に設定された投入指示数と一致したので、X軸方向の数合わせが完了した。この段階以降の処理は、Y軸方向の数合わせを目的とする。X軸方向に関しては、各店舗で店舗投入数=投入指示数となっているので、いったん得られたこの関係を崩さないように、アイテム間で在庫数の入れ替えを行う。
【0037】
実際には、全アイテムに対し在庫数オーバーをしているかどうかをチェックし、在庫オーバーしている場合には次の処理を実行する。まず、(a)投入数ランク1位(多い順)の店舗を特定する、次に、(b)在庫ランクの高い順に検索し、在庫不足(計算結果が在庫数に満たない)アイテムを特定する、そして、(c)該当店舗の在庫オーバーのアイテムのセルから1を減算し、在庫不足アイテムのセルに1を加算する(ただし、減算されるセルが0の場合はスキップ)、更に、(d)まだ在庫オーバーしていれば次の投入ランクの店舗に移り(b)及び(c)の処理を実行する、(e)以上の処理を、計算結果(横計)≦在庫数となるまで繰り返す、という手順で処理が進行する。
【0038】
(6−1)アイテム間のスワップ処理(1)
在庫がオーバーしている場合、投入数ランク順に店舗を特定し、その中で在庫不足のアイテムへのスワップ処理を行なう。具体的には、この時点までの処理の結果が示されている図15を参照すると、アイテム5は配分された数が6だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、1号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム1であり、不足分は1である。従って、図16に示されているように、アイテム5とアイテム1との間で、アイテムを1つだけ移動させるスワップを行う。
【0039】
(6−2)アイテム間のスワップ処理(2):
この時点までの処理の結果が示されている図16を参照すると、アイテム5は配分された数が5だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、2号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は5である。従って、図17に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0040】
(6−3)アイテム間のスワップ処理(3):
この時点までの処理の結果が示されている図17を参照すると、アイテム5は配分された数が4だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、3号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は4である。従って、図18に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0041】
(6−4)アイテム間のスワップ処理(4):
この時点までの処理の結果が示されている図18を参照すると、アイテム5は配分された数が3だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、15号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は3である。従って、図19に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0042】
(6−5)アイテム間のスワップ処理(5):
この時点までの処理の結果が示されている図19を参照すると、アイテム5は配分された数が2だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、4号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は2である。従って、図20に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0043】
(6−6)アイテム間のスワップ処理(6):
この時点までの処理の結果が示されている図20を参照すると、アイテム5は配分された数が1だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、6号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は1である。従って、図21に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0044】
以上の処理により在庫オーバーのアイテムがなくなり、スワップ処理が終了する。この結果として、図22に示されているように、X軸・Y軸の計算結果がそれぞれの入力値と完全に一致している。以上のような処理方法に従ってマトリクスへの分解を行った結果として、最初に述べた(1)在庫が多いアイテムは各店においても多く配分される、(2)各店舗においてなるべくたくさんのアイテムが配分される、という基本方針を満足した態様で数値の配分が実現できた。
【0045】
上で述べた処理では、2つ目の基本方針に従うため、なるべくたくさんのアイテムが配分されるようにするように、端数処理の際にセル値の切り上げをした。しかし、これ以外の処理も可能である。例えば、切り上げでなく四捨五入をすると、セルの値が0になる個数が多くなるが、構成比の影響をより強くすることができる。また、切り捨て処理を行うと、更に構成比の影響を強くした結果が得られる。このように、端数処理の仕方によって、マトリクス内で異なる数値分布が得られる。
【0046】
更に他の方法として、在庫数を合わせてから店舗間で投入数のスワップ処理をすることが可能であるし、数の合わせ方についても、処理の順番に応じて多数の異なる方法が得られる。従って、本発明を応用する目的に応じて、端数処理について、「切り上げ」、「切り捨て」、「四捨五入」の中のいずれかを採用し、X軸及びY軸のどちらか一方の軸についての数合わせをしてから他方の軸についてスワップ処理をすることも可能である。このように、本発明に従って様々なアイテムを配分する際には、目的に応じた多種多様なマトリクスへの分解が可能となる。
【0047】
しかし、いずれの処理においても共通していることは、X軸及びY軸のそれぞれに並べられた数字配列を、それぞれの軸の構成比に応じてマトリクスへの基本的な按分を最初に行い、次に、「切り上げ」、「切り捨て」、「四捨五入」のいずれかを用いて端数処理を行った後で、X軸及びY軸の数値ランキングに従ってそれぞれの軸の数合わせを行なう点である。
【0048】
従来、X軸に並んだ数値とY軸に並んだ数値とを、マトリクスにおける縦計及び横計が一致するようにセルの値を決めていくことは困難であったが、本発明による処理を実行することにより、従来技術における困難が解消される。本発明による処理は、Y軸合計≧X軸のすべての範囲で可能であり、Y軸に並んだ各数値の範囲内で、構成比に従ってX軸の数値合わせが可能である。もちろん、軸が逆の場合にも同様である。
【0049】
以上では、「12種類の商品の在庫を、20店舗に配分する」という例で説明したが、他の技術分野においても本発明による処理を用いることが可能である。例えば、小売業では店舗等のロケーションに対する発注及び出荷配分全般に応用可能であり、対象ロケーションが数百以上ある場合などは特に有用である。また、製造業、卸業等では、倉庫の指定格納個所へのキャパシティに応じた割り当てにも応用できる。製品の容量を加味すればキャパシティ管理も可能となる。また、専門分野や役割に応じた人員の配置にも応用可能である。
【0050】
2.数式を用いた一般的な説明:
次に、本発明によるアイテム配分に関する発明者の基本アイデアを説明するため、以上で具体例を用いて例示的に述べた処理を、若干の数式を用いて抽象的に再度説明する。本発明におけるマトリクスは、非負である整数を縦横に矩形状に並べた数表であって、線形代数における行列とは異なる。しかし、本発明におけるマトリクスを表現するには、線形代数で行列について用いられる記号を用いるのが便利であり、当業者であればきわめて容易に理解することができ、誤解も生じないはずである。
【0051】
まず、p個の行(X軸方向)とq個の列(Y軸方向)とによって構成されるp行q列のマトリクスAを考える。p行q列のマトリクスとは、横方向にq個の数字を並べた行が第1行から第p行まであり、縦方向にp個の数字を並べた列が第1列から第q列まであるものを意味する。マトリクスAの第m行第n列の要素(成分とも称する)を、amnで表す。要素に着目するならば、p×q個の成分amnで構成されるマトリクスAを(amn)で表す。ここで、同じ行の要素つまりマトリクスにおける横方向の数値の和を考え、第1行目の要素の総和a11+a12+・・・+a1q=H1、第2行目の要素の総和a21+a22+・・・+a2q=H2、・・・、第p行目の要素の総和ap1+ap2+・・・+apq=Hpとする。同様に、同じ列の要素つまり縦方向の数値の和を考え、第1列目の要素の総和a11+a21+・・・+ap1=V1、第2列目の要素の総和a12+a22+・・・+ap2=V2、・・・、第q列目の要素の総和a1q+a2q+・・・+apq=Vqとする。
【0052】
以上の行列記号の意味を確認しておきたい。マトリクスがp行q列であるというのは、p種類のアイテムをq個の店舗に配分する問題を考察することを意味する。このマトリクスのm行n列の要素amnは、m番目のアイテムがn番目の店舗に配分される数を意味する。第1行目の要素の総和a11+a12+・・・+a1q=H1とは、q個の店舗に配分される1番目のアイテムの総数であり、第1列目の要素の総和a11+a21+・・・+ap1=V1とは、1番目の店舗に配分されるp種類のアイテムの総数である。これらの記号を用いると、本発明は、在庫として存在しているアイテムのすべてを配分する場合には、マトリクスA=(amn)について、H1、H2、・・・、HpとV1、V2、・・・、Vqとが与えられた場合に、マトリクスAのすべての非負整数成分amnを決定するシステム及び方法ということになる。
【0053】
なお、既に簡単に触れたことであるが、本発明は、在庫として存在するアイテムの全体を各店舗に配分するだけではなく、在庫総数の一部だけを各店舗に配分する場合にも適用できる。1年分の在庫総数の中から1月に各店舗に配分する数量を決定する場合などがこの一部配分の例である。例えば、在庫が全部で1万点あるときに、その中の1千点だけを配分する場合である。このように在庫総数の一部だけを配分する場合には、それぞれのアイテムの在庫の中に、店舗に配分されない部分が存在することになる。つまり、第1番目のアイテムの在庫がT1であるとすると、T1の中で各店舗に配分されるのはH1だけであり、T1−H1(≠0)は配分されずに残る。第2番目のアイテムから第p番目のアイテムについても同様である。このように配分されないアイテムが存在する場合も含むように定義し直すと、本発明は、マトリクスA=(amn)について、T1、T2、・・・、TpとV1、V2、・・・、Vqとが与えられた場合に、マトリクスAのすべての非負整数成分amnを決定するシステム及び方法である。ただし、T1、T2、・・・、Tpは、Tm≧Hm(mは1からpまでの整数)を満たす非負整数である。
【0054】
(1)初期処理:
(1−1)入力処理:
まず、初期処理として、入力処理を行う。入力処理とは、図1を参照して既に述べたように、計算の元データとなる数値を入力データとしてX軸及びY軸に入力することである。つまり、本発明によって各アイテムの各店舗への配分数を決定する前提となる所与の数値が入力される。上述の記号を用いると、第1番目のアイテムの在庫総数であるT1から第p番目のアイテムの在庫総数であるTpまでを入力し、第1番目の店舗への投入指示数であるV1から第q番目の店舗への投入指示数であるVqまでを入力する。ここで、店舗数が50、在庫総数が21600点、アイテム数が12の例が示されている図23を参照すると、在庫総数として、T1=3000、T2=2900、・・・、T12=800を入力し、投入指示数として、V1=120、V2=120、・・・、V50=6を入力することになる。図23に示された表の左上に、矢印付きで在庫及び投入指示数として示されている通りである。
【0055】
(1−2)構成比による按分:
次は、構成比による按分である。まず、各セルにおける数値の在庫合計に対する構成比を計算し、その比率を用いて在庫の全体を各セルに按分する。例えば、a11つまり1号店へのアイテム1の投入指示数について考察する。a11の場合には、(X軸構成比)=(在庫総数の中での1号店への投入指示数の比率)=(1号店への投入指示数)/(在庫総数)=V1/(T1+T2+・・・+Tp)、(Y軸構成比)=(在庫総数の中でのアイテム1の在庫数の比率)=(アイテム1の在庫数)/(在庫総数)=T1/(T1+T2+・・・+Tp)であるから、セルa11の構成比は、これらの構成比の積を計算して、(V1/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))である。同様に、例えば、a12の場合には、(X軸構成比)=V2/(T1+T2+・・・+Tp)、(Y軸構成比)=T1/(T1+T2+・・・+Tp)であるから、セルa12の構成比は、(V2/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))である。従って、一般的には、アイテムmをn号店に投入する数であるamnの構成比は、(X軸構成比)=Vn/(T1+T2+・・・+Tp)、(Y軸構成比)=Tm/(T1+T2+・・・+Tp)であるから、セルamnの構成比は、(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))である。
【0056】
このように計算したセル構成比を用いて、各セルに按分される数値を計算する。a11の場合には、(在庫総数)×(セル構成比)=(T1+T2+・・・+Tp)×(V1/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))=V1・T1/(T1+T2+・・・+Tp)となる。また、例えば、a12の場合には、(T1+T2+・・・+Tp)×(V2/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))=V2・T1/(T1+T2+・・・+Tp)となる。従って、一般的に、構成比に応じてセルamnに按分される数値は、Vn・Tm/(T1+T2+・・・+Tp)である。これらの計算を実行することにより、マトリクスのすべてのセルに按分されるべきアイテムの数量が確定する。
【0057】
ただし、既に述べたように、本発明においてマトリクスの各セルに配分される数値は、アイテムの個数に相当するのであるから、非負である整数でなければならない。しかし、例えば、セルamnに按分されるVn・Tm/(T1+T2+・・・+Tp)は整数値をとるとは限らない。よって、小数点以下の数値の処理が必要になるのであるが、処理方法としては、少なくとも3つの選択肢がある。すなわち、切り上げ、四捨五入、切り捨ての3つである。もちろん、これら3つの選択肢以外に、特殊な処理をすることも可能であろう。しかし、これら3つ以外の処理(例えば、四捨五入を逆転させた四入五捨など)はそれほど一般的とは言えないので、ここでは考察しない。
【0058】
以下の説明では、既に行った具体例でなされていたように、切り上げ処理の場合を考察する。代表的な処理として切り上げ処理を行う理由は、按分の段階ではどのセルにもゼロは配置されず、最小の場合でも1が配分されるようにするためである。本発明による配分がすべて終了した時点では結果的に0となるセルが生じるとしても、例えば洋品店の例で考えてみると、各店舗になるべくたくさんのアイテムが配分されるようにする、つまり、特定のサイズが配分されていないなどの欠番は可能な限り回避する、という実質的な理由に基づいている。しかし、例えば、多くの小規模な店舗において欠番が生じたとしても、集客力の大きな大規模な店舗に配分を集中化するというのであれば、四捨五入や切り捨ての方が適切である可能性がある。本発明では、アイテムの配分が実行される個別の状況において最適となるように、切り上げ、四捨五入、切り捨ての3つから、更には、これら以外の処理を選択することが可能である。
【0059】
参考のため、図24及び図25に、四捨五入及び切り捨てを採用した場合の本発明による配分結果が示されている。
【0060】
また、図26には、本発明によるアイテム配分システムを用い、切り上げ処理を採用した場合に、12種類のアイテムの在庫総数が2000であり、この在庫総数のすべてを50店舗に配分した結果が示されている。
【0061】
(1−3)ランキング処理:
次は、ランキング処理である。本発明のランキング処理とは、後述するプロセスにおいて各セルの加算や減算処理を行なう際の順序を決定する処理を意味する。上述の具体例では、在庫数の大きい順、投入指示数の大きい順に順位を付し、同順位の場合は先に処理すべき順に順位を決定した。このように、降べき順のランキングを決定するのが通常であるが、実際の具体的事情に応じ、これ以外のランキング決定も可能である。
【0062】
以上の処理によってマトリクスへの数値の一応の配分がなされたのであるが、小数点以下の処理(切り上げ、四捨五入、切り捨てなど)を行っているため、この段階では、水平方向に関するa11+a12+・・・+a1q=H1≦T1、a21+a22+・・・+a2q=H2≦T2、・・・、ap1+ap2+・・・+apq=Hp≦Tp、また、垂直方向に関するa11+a21+・・・+ap1=V1、a12+a22+・・・+ap2=V2、・・・、a1q+a2q+・・・+apq=Vqという関係が必ずしも満たされていない。以下の処理では、個々のセルの数値を修正することにより、水平方向及び垂直方向の総和が当初の条件を満足するように処理を行う。
【0063】
(2)基本調整:
まず、基本調整である。これまでの処理の結果では、すべてのセルにおいて小数点以下の切り上げ処理がなされているため、最小でも1が配分されており、その結果として、合計が入力値を上回る。これに該当する列または行について、ランキング順に入力値順位まではセルに1を配分し、その他は0を配分する調整を最初に行なう。
(2−1)投入指示数<アイテム数である店舗の場合:
最初に、縦方向について、投入指示数<アイテム数の場合を考察する。ここで考察しているマトリクスはp行q列であることに注意したい。つまり、このマトリクスはp行を有しているのであるが、例えばn番目の列において、p>投入指示数Vnという関係が成立する場合である。上述の理由により、この段階ではすべてのセルに最低でも1が配分されていることにより、この時点でのVn(n番目の列が有するp個のセルにおける数値の垂直方向の総和)が実際の投入指示数Vnを超えた状態が生じる可能性がある。この場合には、在庫数ランキング順位が最上位のセルから順に投入指示数Vn番目のセルまでには1を配分し、投入指示数Vn+1番目以降のセルには0を配分する。
【0064】
(2−2)在庫数<店舗数の場合:
横方向についても同様の処理を行うために、在庫数<店舗数の場合を考察する。考察しているマトリクスはq列を有しているのであるが、例えばm番目の行において、q>在庫数Tmという関係が成立する場合である。上述の理由により、すべてのセルに最低でも1が配分されていることにより、この時点でのHm(m番目の列が有するq個のセルにおける数値の水平方向の総和)が実際の在庫数Tmを超えた状態が生じる可能性がある。この場合には、投入指示数ランキング順位が最上位のセルから順に在庫数Tm番目のセルまでには1を配分し、在庫数Tm+1番目以降のセルには0を配分する。しかし、注意すべきは、(2−1)で「0」にしたセルには、調整した投入数を崩さないために「1」を入れないことである。
【0065】
(3)投入指示数合わせ(加算):
次に、当初に想定されていた投入指示数よりもこの段階までの計算結果として生じている数値の方が少ない列を特定し、その列の中のセルにおいて加算処理を行う。
【0066】
例えばn番目の列において、以上の処理の結果である現在の店舗投入数(縦方向の総和Vn)が当初に設定された投入指示数(Vn)未満である場合には、そのn列に含まれるp個のセルにおいて、店舗投入数(縦方向の総和Vn)=投入指示数Vnとなるまで、先に設定されているランキング順に、1を加算する処理を行う。
【0067】
n番目の列についてこの加算処理が終了したら、別の列についても同様の処理を行う。
【0068】
(4)過剰分の緩和:
以上の処理により、投入指示数に対し計算結果の店舗投入数が足りない店舗に加算処理をして数合わせが済んだ。次には、逆に投入が指示されている数量を超えて配分がなされている店舗に対して減算処理を行うのであるが、その前にセルの歯抜け緩和のための処理を行う。
【0069】
この過剰分緩和処理は、既に述べたように、次の段階で減算処理を行う前段階の処理であり、マトリクス全体において0となるセルの数を最小化するための処理である。0となるセルの数を最小化するというのは、「各店舗においてなるべくたくさんのアイテムが配分される」すなわち「欠番が生じる店舗を可能な限り少なくする」ためである。
【0070】
(5)投入指示数合わせ(減算):
既に述べた(3)での加算処理とは逆に、投入指示数に対し計算結果の店舗投入数がオーバーしている店舗、換言すると、この時点までの処理により、当初の配分予定数を超えて、配分がなされているセルにおいて減算処理を行う。
【0071】
例えばn番目の列において、以上の処理の結果である現在の店舗投入数(縦方向の総和Vn)が当初に設定された投入指示数(Vn)を超えている場合には、そのn列に含まれるp個のセルにおいて、店舗投入数(縦方向の総和Vn)=投入指示数Vnとなるまで、先に設定されているランキング順に、1を減算する処理を行う。
【0072】
n番目の列についてこの減算処理が終了したら、別の列についても同様の処理を行う。
【0073】
(6)スワップ処理:
以上の処理により、すべての店舗について、配分されたアイテム総数が当初に設定された投入指示数と一致したので、X軸方向の数合わせが完了した。換言すると、V1からVqについては、当初予定された数値と現在の数値とが一致している。この関係を維持しながら、T1からTpについても当初予定された数値を現在の数値が超えないように、同一の列における2つのセルの間で、一方から1を減算し他方に1を加算するという方法のスワップ処理を行う。すなわち、一方のセルから他方のセルへ数値を1だけ移動させる。すべての行について現在のH1からHpの値が最初に設定したT1からTpの値と一致する、もしくはそれより小さくなるまで、先に決定されているランキングの順に、このスワップ処理を順に実行する。ここで、現在のH1からHpの値が最初に設定したT1からTpの値よりも小さくなる場合を含めているのは、上述したように、(在庫総数≧投入指示数の総数)という一般的な条件において、本発明による配分を考察しているからである。
【0074】
3.ハードウェア:
本発明によるマトリクスの中の複数のセルへの数値の配分は、上述した各処理に対応するステップをコンピュータに実行させる命令セットから構成されるソフトウェアによって実現される。以下では、ソフトウェアによる情報処理がハードウェア資源をどのように用いて具体的に実現されるのか、また、ソフトウェアがハードウェア資源とどのように協働して本発明の所期の目的が達成されるのか、について説明する。
【0075】
図27は、本発明によるマトリクスの中の複数のセルへの数値配分を実行するソフトウェアが動作する典型的なコンピュータ・ハードウェアを図解するブロック図である。本発明が行う情報処理は、抽象的には、マトリクスの中の複数のセルへ数値を配分することであるが、より具体的には、複数種類が存在する複数のアイテム(例えば、衣料品)の複数の受取手段(例えば、店舗)への配分と表現することも可能である。本発明によるアイテム配分を実行するソフトウェアによって動作するコンピュータ11の概要が図27に示されている。コンピュータ11は、バス12を介して相互に接続されたプロセッサ13とメモリ14と記憶装置15と出力インターフェース16と入力インターフェース17とから構成される。そして、出力インターフェース16にはディスプレイ20が接続され、入力インターフェース17にはキーボード18やマウス19が接続されている。
【0076】
本発明によるアイテム配分システムを構成するそれぞれの手段に所定の処理を実行させる命令セットから構成されるコンピュータ・プログラムは、記憶装置15に記憶されている。本発明によるアイテム配分のための情報処理が実行される際には、所定の命令が、バス12を介してメモリ14に転送される。メモリ14に読み出された命令は、プロセッサ13によって解釈され実行される。このように、本発明によるアイテム配分システムを構成する初期条件設定手段と構成比計算手段と按分手段と調整手段とは、更に、調整手段に含まれるランキング処理手段と加算処理手段と過剰分緩和手段と減算処理手段とスワップ処理手段とは、プロセッサ13がメモリ14にロードされた命令を解釈して実行する機能として実現される。メモリ14は、プロセッサ13によって実行される命令を、その結果と共に保持する。プロセッサ13は、メモリ14からフェッチすることによって、本発明によるアイテム配分を構成するそれぞれの段階における処理を行う命令を実行する。プロセッサ13は、パーソナル・コンピュータやワークステーションの場合にはマイクロプロセッサであり、専用のASICでもありうる。キーボード18やマウス19の入力装置と入力インターフェース17とを介して、コンピュータ11への入力がなされ、出力装置であるディスプレイ20と出力インターフェース16とを介して、コンピュータ11からの出力がなされる。なお、図27のコンピュータ11は、スタンドアロンの単独のコンピュータとして図解されているが、ネットワークを構成する複数のコンピュータが別々に本発明を構成する特定の機能を担当することもありうる。そのような複数のコンピュータによってネットワークが構成されている場合については、この技術分野の当業者であれば必要な修正を容易に理解することができるので、詳細を述べることは割愛する。
【0077】
本発明によるアイテム配分システムは、上述のように、記憶手段と、初期条件設定手段と、構成比計算手段と、按分手段と、調整手段と、を備えている。調整手段は、更に、ランキング処理手段と、基本調整手段と、加算処理手段と、過剰分緩和手段と、減算処理手段と、スワップ処理手段と、を含む。これらの手段が、本発明を構成するそれぞれのデータ処理を行う。図27に示されているブロック図に即して考察すると、それぞれのデータ処理は、記憶装置15に記憶されておりメモリ14に読み出されプロセッサ13によって解釈され所定の処理をコンピュータ11に実行させる命令セットから構成されるソフトウェアによって実現される。
【0078】
この技術分野の当業者であれば理解するように、上述の各手段によって実行されるそれぞれのデータ処理は、対応する命令で構成されるコンピュータ・プログラムによって、コンピュータ11上で実行される。これらの手段は、図27のプロセッサ13の枠の中に記載されているように、そのようなコンピュータ・プログラムを実行するコンピュータ・ハードウェアの中に埋め込まれた形式で存在することが可能であるし、あるいは、様々なコンピュータ可読媒体に記憶されることもありうる。コンピュータ可読媒体は、特定の情報処理システムにおいて実際に用いる際には復号可能な符号化された形式を有する。この出願において、ソフトウェア又はコンピュータ・プログラムとは、情報処理能力を有するコンピュータ・ハードウェアに特定の機能を実行させる命令セットの任意のプログラミング言語による表現を意味する。
【0079】
図27に示されているのはあくまで一例であり、本発明は、図27に図解されている特定のアーキテクチャに限定されることはない。本発明によるアイテム配分システムを構成する手段が組み入れられるハードウェアの構成は、個々の実装によって変動する。このように、本発明によるアイテム配分システム及び方法は、ハードウェアとソフトウェアとの組合せとして実現される。ハードウェアとソフトウェアとの典型的な組合せは、メモリにロードされプロセッサによって解釈され実行されるとコンピュータを制御して本発明を構成する手段及びステップを実行するコンピュータ・プログラムがインストールされたコンピュータ・システムである。
【0080】
4.システムの動作について:
図28には、本発明によるアイテム配分システムの動作の概略を示す流れ図が示されている。
【図面の簡単な説明】
【0081】
【図1】コンピュータのディスプレイ上において、縦軸(Y軸)に在庫を、横軸(X軸)に店舗をとったマトリクスの例である。この図1では、本発明による配分されるアイテム別の在庫数と配分される店舗別の投入指示数が入力されている。
【図2】構成比による按分計算をマトリクスのすべてのセルに対して行い、得られた数値をすべてのセルに配分した状態を示す図である。
【図3】ランキング処理の結果として得られた順位(ランキング)がX軸の上側及びY軸の左側に付された図である。
【図4】投入指示数がアイテム数よりも小さい場合に基本調整がなされた後の状態を示す図である。
【図5】在庫数が店舗数よりも小さい場合に基本調整がなされた後の状態を示す図である。
【図6】投入指示数合わせのための第1の加算処理がなされた後の状態を示す図である。
【図7】投入指示数合わせのための第2の加算処理がなされた後の状態を示す図である。
【図8】投入指示数合わせのための第3の加算処理がなされた後の状態を示す図である。
【図9】投入指示数合わせのための第4の加算処理がなされた後の状態を示す図である。
【図10】投入指示数合わせのための第5の加算処理がなされた後の状態を示す図である。
【図11】過剰分の緩和のための第1の減算処理がなされた後の状態を示す図である。
【図12】過剰分の緩和のための第2の減算処理がなされた後の状態を示す図である。
【図13】過剰分の緩和のための第3の減算処理がなされた後の状態を示す図である。
【図14】投入指示数合わせのための第1の減算処理がなされた後の状態を示す図である。
【図15】投入指示数合わせのための第2の減算処理がなされた後の状態を示す図である。
【図16】アイテム間で第1のスワップ処理がなされた後の状態を示す図である。
【図17】アイテム間で第2のスワップ処理がなされた後の状態を示す図である。
【図18】アイテム間で第3のスワップ処理がなされた後の状態を示す図である。
【図19】アイテム間で第4のスワップ処理がなされた後の状態を示す図である。
【図20】アイテム間で第5のスワップ処理がなされた後の状態を示す図である。
【図21】アイテム間で第6のスワップ処理がなされた後の状態を示す図である。
【図22】必要なすべてのスワップ処理が終了し、本発明によるアイテム配分が完了した状態を示す図である。
【図23】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に切り上げ処理を行った場合である。
【図24】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に四捨五入処理を行った場合である。
【図25】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に切り捨て処理を行った場合である。
【図26】本発明によるアイテム配分システムを用い、切り上げ処理を採用した場合に、12種類のアイテムの在庫総数が2000であり、この在庫総数のすべてを50店舗に配分した結果が示されている。
【図27】本発明による数値配分を実現するコンピュータ・ハードウェアの概略を示すブロック図である。
【図28】本発明によるアイテム配分の各段階を構成する情報処理を示す流れ図である。
【技術分野】
【0001】
本発明は、広くは、商品配分システム及び方法に関し、更に詳しくは、多種類の商品を複数の小売店に適切に配分するシステム及び方法に関する。更に、本発明は、多種類の物品を保管能力に応じて特定の倉庫又は1つの倉庫の特定の格納場所に配分するシステム及び方法や、多くの人員をそれぞれの役割及び適性に応じて様々な部署に配分するシステム及び方法など、多くの分野に応用する可能性を有している。
【背景技術】
【0002】
小売業において、多種類の商品を扱う企業が、多数の店舗を展開している例を考えよう。現在では、このような例は非常に多く、すぐに、スーパーマーケット、コンビニエンスストア、100円ショップ、洋品店、書店、CDショップ、携帯電話販売店、ドラッグストアなどの典型的な例が考えられる。これらの例から明らかなように、配分すべき商品の種類は膨大であり、配分可能な商品の数も商品ごとに異なる。また、店舗の規模もそれぞれに異なっている。このような場合、どの店舗にどの商品をいくつ配分したらよいのかを決定するのは、困難な問題である。
【発明の開示】
【0003】
本発明の目的は、従来は解決が困難であったこのアイテム配分問題を解決することである。なお、本発明が適用して配分されるアイテムは、上述したように、商品などの物には限定されず、特定の能力を有する人間を特定の職務の担当と決定する場合なども含む広い概念である。
【0004】
本発明によると、mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムが提供される。このアイテム配分システムは、各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段と、前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分amnに按分する按分手段と、前記按分手段によって各成分amnに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、を備えている。
【0005】
また、本発明によると、mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムが提供される。このアイテム配分システムは、各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段と、前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分amnに按分する按分手段と、前記按分手段によって各成分amnに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、を備えている。
【0006】
更に、本発明によるアイテム配分システムにおいて、前記調整手段は、前記過剰分及び過小分の調整の順序を予め設定するランキング処理手段と、前記按分手段によって按分された各成分amnの各行及び各列の総和が前記初期条件設定手段によって予め設定されている初期条件を超える場合には、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって予め設定されている初期条件の範囲までの各成分amnを1とし、前記総和を超える成分からは0とする基本調整手段と、垂直方向の成分の総和が前記初期条件設定手段によって設定されたVn未満である列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定された各成分Vnと等しくなるまで各成分amnに1を加算する加算処理手段と、前記マトリクスの水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている行に含まれるq個の成分において、前記ランキング処理手段によって設定された順序に従い、各成分amnから1を減算する過剰分緩和手段と、垂直方向の成分の総和が前記初期条件設定手段によって設定されたVnを超えている列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定されたVnと等しくなるまで各成分amnから1を減算し、すべての列における垂直成分の総和を前記初期条件設定手段によって設定されたVnと等しくする減算処理手段と、水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている第1の行と、水平方向の成分の総和が前記初期条件設定手段によって設定されたTm未満である第2の行とを特定し、第1の行の成分から1を減算し第2の行の成分に1を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定手段によって設定されたTm以下となるまで継続するスワップ処理手段と、を含みうる。
【0007】
以上では、本発明をアイテム配分システムとして把握したが、本発明を、特許請求の範囲の請求項4ないし請求項6に記載されたアイテム配分方法として把握することも可能であるし、更に、請求項7及び請求項8に記載されたように、請求項4ないし請求項6のいずれかの請求項に記載されたアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラムが記憶されたコンピュータ可読な記憶媒体、又は、そのようなコンピュータ・プログラム自体として把握することも可能である。
【発明を実施するための最良の形態】
【0008】
1.具体例を用いた説明:
以下では、本発明を、「12種類の商品の在庫を、20店舗に配分する」という処理を例に用いて説明する。本発明のパーソナル・コンピュータなどにおける処理を示すため、コンピュータのディスプレイ上に、縦軸(Y軸)に在庫を、横軸(X軸)に店舗をとったマトリクスを考える。そのようなマトリクスの例が、図1に示されている。なお、ここで在庫とは、配分される商品の現在数を意味する。縦軸には12種類の商品があり、横軸には20店舗があるから、このマトリクスを構成するセルの数は、12X20=240である。図1に示されているように、商品(アイテム)は、Item_01からItem_12まで合計400点の在庫がある。これらの在庫について、1号店から20号店まで、50点、45点、40点、・・・、5点というように合計の投入指示数を設定する。すると、本発明による商品配分システムの動作により、各アイテムについて、各店舗に配分する数量が自動的に決定される。
【0009】
詳細は後述するが、本発明では、合計で400点の在庫を、まず最初に、縦の構成比と横の構成比とに従って按分して各セルの値を決定する。次に、縦数値(在庫)の多い順、横数値(投入指示数)の多い順にそれぞれの順位を決定し、その順位に従って各セルの値を調整し、縦計及び横計を合わせる端数処理を行う。以上は、在庫数の合計と投入指示数の合計とが等しい場合であるが、本発明は、在庫の全部ではなく一部のみを投入する場合、すなわち、在庫数合計≧投入指示数合計の場合にも用いることができる。
【0010】
本発明による例1の場合の処理では、第1に、在庫が多いアイテムは各店においても多く配分されること、第2に、各店舗においてなるべくたくさんのアイテムが配分されることの2点を基本方針とする。その上で、(1)初期処理、(2)基本調整、(3)投入指示数合わせ(加算)、(4)過剰分の緩和、(5)投入指示数合わせ(減算)、(6)スワップ処理(アイテム間の在庫数合わせ)という6つの処理を行う。
【0011】
(1)初期処理:
最初に、初期処理について説明する。初期処理では、入力処理、構成比による按分、ランキング処理という3つの処理が行われる。
【0012】
(1−1)入力処理:
入力処理では、図1に示されているように、計算の元データとなる数値が入力データとしてX軸及びY軸に入力される。その際、X軸には店舗別に投入指示数が入力され、Y軸にはアイテム別の在庫数が入力される。この例では、12種類のアイテムを20店舗に配分することを考えているのであるが、12種類のアイテムの合計は400であるとする。アイテム1からアイテム12まで、それぞれのアイテムの数は図1の縦軸に示されている通りであり、それぞれの店舗に配分されるアイテムの総数は図1の横軸に示されている通りである。この例の場合、すべてのアイテムがいずれかの店舗に配分されることを想定しているので、X軸合計=Y軸合計=400となる。
【0013】
(1−2)構成比による按分:
最初に、各セルにおける数値の全体の合計に対する構成比を計算し、その比率を用いて在庫の全体を各セルに按分する。この例の場合、小数点以下は切り上げて整数とした。
【0014】
実際には、X軸構成比=店舗投入指示数÷在庫総数とY軸構成比=在庫数÷在庫総数とを計算し、(X軸構成比)×(Y軸構成比)=セルの構成比を計算する。具体例を用いて計算を実行してみると、1号店とアイテム1(Item_01)との交点におけるセルの構成比は、(店舗投入指示数÷在庫総数)×(在庫数÷在庫総数)=(50÷400)×(120÷400)=0.125×0.3=3.75%となる。そして、このセルに配分される値は、在庫数総数×セルの構成比であるから、400×3.75%=15となる。以上の計算において、セルの値を算出する時に生じる小数点以下は切り上げている。切り上げとしている理由は、各店舗においてなるべくたくさんのアイテムを配分するためである。図2には、以上の計算をすべてのセルに対して行い、得られた数値をすべてのセルに配分した状態が示されている。図2の右下に示されているように、配分されたアイテム数が10以上、配分されたアイテム数が4から9、配分されたアイテムが2から3のセルには、3段階の濃度でドットが付されている。配分されたアイテムが1のセルにはドットは付されていない。
【0015】
(1−3)ランキング処理:
次に、X軸及びY軸のそれぞれに対しランキング処理をする。ランキング処理の結果として得られる順位は、後述するプロセスにおいて、各セルの加算や減算処理を行なう時の順番として使用される。X軸のランキング処理では、投入指示数の大きい順に順位が付される。同着の場合は処理の早い方を上位とする。Y軸のランキング処理では、在庫数の大きい順に順位が付され、同着の場合は処理の早い方を上位とする。図3には、X軸の上側及びY軸の左側にランキングが付された様子が示されている。
【0016】
(2)基本調整:
次は、基本調整である。これまでの処理の結果、構成比に従ってセルの値が埋まっているが、X軸及びY軸においてセルの個数が入力値より大きい場合には、すべてのセルにおいて小数点以下の切り上げ処理により1以上の数値が配分されているので、合計が入力値を上回る。これに該当する列または行について、ランキング順に入力値順位まではセルに1を配分し、その他は0を配分する調整を最初に行なう。
【0017】
(2−1)投入指示数<アイテム数の場合:
構成比による按分を行った際に、小数点以下を切り上げる処理を行っているため、現時点では、図2及び図3に示されているように、すべてのセルに最低でも1が配分されており、アイテム数が12なので各店舗に配分されている投入数は、理論的には、最低でも12である(実際には、図2及び図3に示されているように、18号店から20号店では最低でも13になっている)。しかし、投入指示数が5や10のように12よりも小さな店舗には余分に配分されていることになり、投入指示数に合わせる処理が必要となる。投入指示数がアイテム数である12に満たない店舗を検索すると、この例の場合には、10号店、11号店、13号店、17号店から20号店の7店舗が該当する。これら7つの店舗に対しては、在庫ランクの高い順に、投入指示数分まではセルに1を配分し、それ以外のセルには0を配分する。例えば、20号店の場合、アイテム1からアイテム5までには1を配分し、アイテム6からアイテム12までには0を配分する。以上の調整を行った結果が図4に示されている。図4において、太い点線で囲まれているのが、以上の処理がなされた箇所である。
【0018】
(2−2)在庫数<店舗数の場合:
図4に示された処理では、列方向すなわち縦方向の合計を考察したのであるが、行方向すなわち横方向の合計を考察して、在庫についても同様の調整を行なう。図5において、太い点線で囲まれているのが今回の処理の対象となる箇所である。店舗数である20よりも配分可能な数が少ないアイテムに着目すると、この例の場合、アイテム6からアイテム12である。これらのアイテムについては、投入指示数ランクの高い順に在庫数分まではセルに1を配分し、それ以外のセルには0を配分する。しかし、注意すべきは、図4での処理で店舗投入数を調整した時に「0」にしたセルには「1」を入れないことである。具体的には、アイテム12の場合、投入指示数ランクの高い方から1号店、2号店、3号店、15号店、4号店には1を配分し、それ以外の店舗には0を配分する。
【0019】
(3)投入指示数合わせ(加算):
次に、当初に想定されていた投入指示数よりもこの段階までの計算結果の方が少ない店舗に対して加算処理を行う。具体的には、在庫の多いアイテムの順に、店舗投入数=投入指示数となるまで、セルに1を加算する。具体的には、以下で詳述するが、店舗投入数<投入指示数となっている店舗を特定する、在庫数ランク1位のアイテムのセルを特定する、該当セルに1を加算する、まだ店舗投入数<投入指示数であれば次の在庫数ランクのアイテムに移り1を加算する、店舗投入数=投入指示数となるまで以上の処理を繰り返す、店舗投入数=投入指示数となったら次の投入が足りない店舗へ移り同様の加算処理を行なう、という手順で処理が進行する。
【0020】
(3−1)投入指示数合わせ(加算1):
以上の処理の結果である現在の店舗投入数(縦計)が投入指示数に満たない店舗に対して加算処理を行い、指示数に一致させる。図5に示されている現在までの配分数を参照すると、現時点までに1号店には49点が配分されており、投入指示数より1だけ不足していることがわかる。他にも不足している店舗はあるが、投入指示数の多い店舗の順に処理を行うので、1号店に対して最初に加算を行う。よって、アイテム1に1を加算すると、セルの値は15から16に変更され、図6に示されているように、投入が指示された50点が1号店に配分されたことになる。
【0021】
(3−2)投入指示数合わせ(加算2):
同様に、図6に示されている現在までの配分数を参照すると、現時点までに10号店には7点が配分されており、投入指示数より3だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、以上の結果として、図7に示されているように、投入が指示された10点が10号店に配分されたことになる。
【0022】
(3−3)投入指示数合わせ(加算3):
同様に、図7に示されている現在までの配分数を参照すると、現時点までに11号店には7点が配分されており、投入指示数より3だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、以上の結果として、図8に示されているように、投入が指示された10点が11号店に配分されたことになる。
【0023】
(3−4)投入指示数合わせ(加算4):
同様に、図8に示されている現在までの配分数を参照すると、現時点までに13号店には5点が配分されており、投入指示数より5だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、アイテム4に1を加算するとセルの値は1から2に変更され、アイテム5に1を加算するとセルの値は1から2に変更され、以上の結果として、図9に示されているように、投入が指示された10点が13号店に配分されたことになる。
【0024】
(3−5)投入指示数合わせ(加算5):
同様に、図9に示されている現在までの配分数を参照すると、現時点までに17号店には5点が配分されており、投入指示数より5だけ不足していることがわかる。よって、アイテム1に1を加算するとセルの値は1から2に変更され、アイテム2に1を加算するとセルの値は1から2に変更され、アイテム3に1を加算するとセルの値は1から2に変更され、アイテム4に1を加算するとセルの値は1から2に変更され、アイテム5に1を加算するとセルの値は1から2に変更され、以上の結果として、図10に示されているように、投入が指示された10点が17号店に配分されたことになる。
【0025】
(4)過剰分の緩和:
ここまでの処理で、投入指示数に対し計算結果の店舗投入数が足りない店舗に加算処理をして数合わせが済んだので、次は逆に投入が指示されている数量を超えて配分がなされている店舗に対して減算処理を行うのであるが、その前にセルの歯抜け緩和のための処理を行う。
【0026】
この過剰分緩和処理は、上述した(3)の加算処理とは逆に減算処理を行う前段階の処理である。過剰分緩和処理がなされない場合には、店舗投入数>投入指示数の店舗に対して各セルから1を減算すると0になってしまうセルが頻発し、マトリクス全体を見ると歯抜けの箇所が多くなる可能性がある。しかし、大前提として既に述べたように、本発明における商品配分での基本方針は、第1に、在庫が多いアイテムは各店においても多く配分されること、第2に、各店舗においてなるべくたくさんのアイテムが配分されることの2点であった。後者の「各店舗においてなるべくたくさんのアイテムが配分されること」という条件は、「欠番が生じる店舗を可能な限り少なくする」と言い換えることが可能であり、多種類の商品を多くの店舗に配分する際に要求される極めて自然な条件といえるだろう。セルの歯抜け緩和のための処理が必要なのは、この条件を満たすためである。
【0027】
実際には、店舗投入数>投入指示数の店舗において、在庫オーバーしているアイテムがあるのならば、そのアイテムについて前もって1を減算して、在庫オーバー分だけ店舗投入数の過剰分を緩和しておく。具体的な処理としては、在庫数ランクの低い順に在庫オーバーしているアイテムを特定する、そのアイテム特定後に店舗投入数>投入指示数となっている店舗のセルを特定する、そのセルの値が1より大きければ1だけ減算する、という手順で処理がなされる。店舗投入数を優先的に揃えるためであるから、アイテム特定後は店舗の減算処理は優先的に行なう。従って、途中で在庫オーバーではなくなる場合があっても、減算処理は継続される。
【0028】
なお、この過剰分の緩和処理は、在庫オーバー、投入オーバーの過剰分を少し減らして緩和しているに留まる。上述の通り、この処理の後で、店舗投入数の過剰店舗に対して完全な数合わせのための減算処理を行なう。
【0029】
(4−1)過剰分の緩和(減算1):
在庫オーバーしているアイテムを在庫数ランクの低い順に特定し、店舗投入数(縦計)が投入指示数を超えている店舗に対し減算処理をして過剰分を緩和する。この時点までの処理結果が示されている図10を参照すると、アイテム5は配分可能な在庫が20であるにもかかわらず、この時点までに30が配分され、過剰分が10である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、2号店セルで1を減算してセルの値を3から2に変更し、4号店セルで1を減算してセルの値を2から1に変更し、6号店セルで1を減算してセルの値を2から1に変更し、15号店セルで1を減算してセルの値を2から1に変更する。この減算の結果として配分済の数量は30から26に変更されたので、過剰分は10から6に減少した。
【0030】
(4−2)過剰分の緩和(減算2):
この時点までの処理の結果が示された図11を参照して、次に在庫数ランクが低い順で見ていくと、アイテム4は配分可能な在庫が40であるにもかかわらず、この時点までに47が配分され、過剰分が7である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、4号店セルで1を減算してセルの値を3から2に変更し、5号店セルで1を減算してセルの値を2から1に変更し、6号店セルで1を減算してセルの値を3から2に変更し、7号店セルで1を減算してセルの値を2から1に変更し、8号店セルで1を減算してセルの値を2から1に変更し、9号店セルで1を減算してセルの値を2から1に変更し、12号店セルで1を減算してセルの値を2から1に変更し、14号店セルで1を減算してセルの値を2から1に変更し、15号店セルで1を減算してセルの値を4から3に変更し、16号店セルで1を減算してセルの値を2から1に変更する。この減算の結果として配分済の数量は47から37に変更されたので、7だけ過剰だったのが、逆に3だけ不足となるが、先に述べたように、店舗投入数の減算を優先する。この不足分は、後の在庫スワップ処理で調整される。
【0031】
(4−3)過剰分の緩和(減算3):
この時点までの処理の結果が示された図12を参照して、次に在庫数ランクが低い順に見ていくと、アイテム3は配分可能な在庫が70であるにもかかわらず、この時点までに77が配分され、過剰分が7である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、4号店セルで1を減算してセルの値を5から4に変更し、5号店セルで1を減算してセルの値を4から3に変更し、6号店セルで1を減算してセルの値を5から4に変更し、7号店セルで1を減算してセルの値を4から3に変更し、15号店セルで1を減算してセルの値を7から6に変更する。この減算の結果として配分済の数量は77から72に変更されたので、過剰分は、7から2に減少した。
【0032】
(5)投入指示数合わせ(減算):
既に述べた(3)での加算処理とは逆に、投入指示数に対し計算結果の店舗投入数がオーバーしている店舗に減算処理を行う。在庫の少ないアイテム順に、店舗投入数=投入指示数となるまで、セルから1を減算する処理を行う。実際には、在庫数ランク最下位のアイテムのセルを特定する、店舗投入数>投入指示数となっている店舗を特定する、そのセルの値が1より大きければ1を減算する、次の在庫数ランクのアイテムに移り上記処理を実行する、店舗投入数=投入指示数となるまで繰り返す(1より大きいセルでの減算調整が出来なくなった場合は1以上の条件で上記処理を繰り返す)、という手順で処理が進行する。
【0033】
(5−1)投入指示数合わせ(減算1):
ここまでの処理の結果である現在の店舗投入数(縦計)が投入指示数を超えている店舗に対して減算処理を行い、指示数に一致させる。図13に示されている現在までの配分数を参照すると、在庫数ランクが最下位のアイテムから検索していき、店舗投入数>投入指示数の店舗でセルの値が1より大きく減算可能となるアイテムはアイテム4である。店舗投入数>投入指示数の店舗は、4号店、5号店、6号店である。このアイテム4について4号店セルから1を減算するとセルの値は2から1に変更され、店舗投入数は27から26に変更される。次に、6号店セルから1を減算するとセルの値は2から1に変更され、店舗投入数は26から25に変更され、6号店については、投入指示数に一致する。
【0034】
(5−2)投入指示数合わせ(減算2)
次に、図14に示されている現在までの配分数を参照すると、次に減算可能なアイテムはアイテム3である。このアイテム3について4号店セルから1を減算するとセルの値は4から3に変更され、店舗投入数は26から25に変更され、投入指示数に一致する。次に、5号店セルから1を減算するとセルの値は3から2に変更され、店舗投入数は21から20に変更され、投入指示数に一致する。
【0035】
以上の処理の結果は図15に示されているが、1号店から20号店まで、すべての店舗に関して、店舗に配分されたアイテム総数が当初に設定された投入指示数と一致したことになる。
【0036】
(6)スワップ処理:
この段階までに行われた処理の結果、すべての店舗について、配分されたアイテム総数が当初に設定された投入指示数と一致したので、X軸方向の数合わせが完了した。この段階以降の処理は、Y軸方向の数合わせを目的とする。X軸方向に関しては、各店舗で店舗投入数=投入指示数となっているので、いったん得られたこの関係を崩さないように、アイテム間で在庫数の入れ替えを行う。
【0037】
実際には、全アイテムに対し在庫数オーバーをしているかどうかをチェックし、在庫オーバーしている場合には次の処理を実行する。まず、(a)投入数ランク1位(多い順)の店舗を特定する、次に、(b)在庫ランクの高い順に検索し、在庫不足(計算結果が在庫数に満たない)アイテムを特定する、そして、(c)該当店舗の在庫オーバーのアイテムのセルから1を減算し、在庫不足アイテムのセルに1を加算する(ただし、減算されるセルが0の場合はスキップ)、更に、(d)まだ在庫オーバーしていれば次の投入ランクの店舗に移り(b)及び(c)の処理を実行する、(e)以上の処理を、計算結果(横計)≦在庫数となるまで繰り返す、という手順で処理が進行する。
【0038】
(6−1)アイテム間のスワップ処理(1)
在庫がオーバーしている場合、投入数ランク順に店舗を特定し、その中で在庫不足のアイテムへのスワップ処理を行なう。具体的には、この時点までの処理の結果が示されている図15を参照すると、アイテム5は配分された数が6だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、1号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム1であり、不足分は1である。従って、図16に示されているように、アイテム5とアイテム1との間で、アイテムを1つだけ移動させるスワップを行う。
【0039】
(6−2)アイテム間のスワップ処理(2):
この時点までの処理の結果が示されている図16を参照すると、アイテム5は配分された数が5だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、2号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は5である。従って、図17に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0040】
(6−3)アイテム間のスワップ処理(3):
この時点までの処理の結果が示されている図17を参照すると、アイテム5は配分された数が4だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、3号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は4である。従って、図18に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0041】
(6−4)アイテム間のスワップ処理(4):
この時点までの処理の結果が示されている図18を参照すると、アイテム5は配分された数が3だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、15号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は3である。従って、図19に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0042】
(6−5)アイテム間のスワップ処理(5):
この時点までの処理の結果が示されている図19を参照すると、アイテム5は配分された数が2だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、4号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は2である。従って、図20に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0043】
(6−6)アイテム間のスワップ処理(6):
この時点までの処理の結果が示されている図20を参照すると、アイテム5は配分された数が1だけ過剰である。アイテム5について、投入数ランクで店舗を特定すると、6号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム4であり、不足分は1である。従って、図21に示されているように、アイテム5とアイテム4との間で、アイテムを1だけ移動させるスワップを行う。
【0044】
以上の処理により在庫オーバーのアイテムがなくなり、スワップ処理が終了する。この結果として、図22に示されているように、X軸・Y軸の計算結果がそれぞれの入力値と完全に一致している。以上のような処理方法に従ってマトリクスへの分解を行った結果として、最初に述べた(1)在庫が多いアイテムは各店においても多く配分される、(2)各店舗においてなるべくたくさんのアイテムが配分される、という基本方針を満足した態様で数値の配分が実現できた。
【0045】
上で述べた処理では、2つ目の基本方針に従うため、なるべくたくさんのアイテムが配分されるようにするように、端数処理の際にセル値の切り上げをした。しかし、これ以外の処理も可能である。例えば、切り上げでなく四捨五入をすると、セルの値が0になる個数が多くなるが、構成比の影響をより強くすることができる。また、切り捨て処理を行うと、更に構成比の影響を強くした結果が得られる。このように、端数処理の仕方によって、マトリクス内で異なる数値分布が得られる。
【0046】
更に他の方法として、在庫数を合わせてから店舗間で投入数のスワップ処理をすることが可能であるし、数の合わせ方についても、処理の順番に応じて多数の異なる方法が得られる。従って、本発明を応用する目的に応じて、端数処理について、「切り上げ」、「切り捨て」、「四捨五入」の中のいずれかを採用し、X軸及びY軸のどちらか一方の軸についての数合わせをしてから他方の軸についてスワップ処理をすることも可能である。このように、本発明に従って様々なアイテムを配分する際には、目的に応じた多種多様なマトリクスへの分解が可能となる。
【0047】
しかし、いずれの処理においても共通していることは、X軸及びY軸のそれぞれに並べられた数字配列を、それぞれの軸の構成比に応じてマトリクスへの基本的な按分を最初に行い、次に、「切り上げ」、「切り捨て」、「四捨五入」のいずれかを用いて端数処理を行った後で、X軸及びY軸の数値ランキングに従ってそれぞれの軸の数合わせを行なう点である。
【0048】
従来、X軸に並んだ数値とY軸に並んだ数値とを、マトリクスにおける縦計及び横計が一致するようにセルの値を決めていくことは困難であったが、本発明による処理を実行することにより、従来技術における困難が解消される。本発明による処理は、Y軸合計≧X軸のすべての範囲で可能であり、Y軸に並んだ各数値の範囲内で、構成比に従ってX軸の数値合わせが可能である。もちろん、軸が逆の場合にも同様である。
【0049】
以上では、「12種類の商品の在庫を、20店舗に配分する」という例で説明したが、他の技術分野においても本発明による処理を用いることが可能である。例えば、小売業では店舗等のロケーションに対する発注及び出荷配分全般に応用可能であり、対象ロケーションが数百以上ある場合などは特に有用である。また、製造業、卸業等では、倉庫の指定格納個所へのキャパシティに応じた割り当てにも応用できる。製品の容量を加味すればキャパシティ管理も可能となる。また、専門分野や役割に応じた人員の配置にも応用可能である。
【0050】
2.数式を用いた一般的な説明:
次に、本発明によるアイテム配分に関する発明者の基本アイデアを説明するため、以上で具体例を用いて例示的に述べた処理を、若干の数式を用いて抽象的に再度説明する。本発明におけるマトリクスは、非負である整数を縦横に矩形状に並べた数表であって、線形代数における行列とは異なる。しかし、本発明におけるマトリクスを表現するには、線形代数で行列について用いられる記号を用いるのが便利であり、当業者であればきわめて容易に理解することができ、誤解も生じないはずである。
【0051】
まず、p個の行(X軸方向)とq個の列(Y軸方向)とによって構成されるp行q列のマトリクスAを考える。p行q列のマトリクスとは、横方向にq個の数字を並べた行が第1行から第p行まであり、縦方向にp個の数字を並べた列が第1列から第q列まであるものを意味する。マトリクスAの第m行第n列の要素(成分とも称する)を、amnで表す。要素に着目するならば、p×q個の成分amnで構成されるマトリクスAを(amn)で表す。ここで、同じ行の要素つまりマトリクスにおける横方向の数値の和を考え、第1行目の要素の総和a11+a12+・・・+a1q=H1、第2行目の要素の総和a21+a22+・・・+a2q=H2、・・・、第p行目の要素の総和ap1+ap2+・・・+apq=Hpとする。同様に、同じ列の要素つまり縦方向の数値の和を考え、第1列目の要素の総和a11+a21+・・・+ap1=V1、第2列目の要素の総和a12+a22+・・・+ap2=V2、・・・、第q列目の要素の総和a1q+a2q+・・・+apq=Vqとする。
【0052】
以上の行列記号の意味を確認しておきたい。マトリクスがp行q列であるというのは、p種類のアイテムをq個の店舗に配分する問題を考察することを意味する。このマトリクスのm行n列の要素amnは、m番目のアイテムがn番目の店舗に配分される数を意味する。第1行目の要素の総和a11+a12+・・・+a1q=H1とは、q個の店舗に配分される1番目のアイテムの総数であり、第1列目の要素の総和a11+a21+・・・+ap1=V1とは、1番目の店舗に配分されるp種類のアイテムの総数である。これらの記号を用いると、本発明は、在庫として存在しているアイテムのすべてを配分する場合には、マトリクスA=(amn)について、H1、H2、・・・、HpとV1、V2、・・・、Vqとが与えられた場合に、マトリクスAのすべての非負整数成分amnを決定するシステム及び方法ということになる。
【0053】
なお、既に簡単に触れたことであるが、本発明は、在庫として存在するアイテムの全体を各店舗に配分するだけではなく、在庫総数の一部だけを各店舗に配分する場合にも適用できる。1年分の在庫総数の中から1月に各店舗に配分する数量を決定する場合などがこの一部配分の例である。例えば、在庫が全部で1万点あるときに、その中の1千点だけを配分する場合である。このように在庫総数の一部だけを配分する場合には、それぞれのアイテムの在庫の中に、店舗に配分されない部分が存在することになる。つまり、第1番目のアイテムの在庫がT1であるとすると、T1の中で各店舗に配分されるのはH1だけであり、T1−H1(≠0)は配分されずに残る。第2番目のアイテムから第p番目のアイテムについても同様である。このように配分されないアイテムが存在する場合も含むように定義し直すと、本発明は、マトリクスA=(amn)について、T1、T2、・・・、TpとV1、V2、・・・、Vqとが与えられた場合に、マトリクスAのすべての非負整数成分amnを決定するシステム及び方法である。ただし、T1、T2、・・・、Tpは、Tm≧Hm(mは1からpまでの整数)を満たす非負整数である。
【0054】
(1)初期処理:
(1−1)入力処理:
まず、初期処理として、入力処理を行う。入力処理とは、図1を参照して既に述べたように、計算の元データとなる数値を入力データとしてX軸及びY軸に入力することである。つまり、本発明によって各アイテムの各店舗への配分数を決定する前提となる所与の数値が入力される。上述の記号を用いると、第1番目のアイテムの在庫総数であるT1から第p番目のアイテムの在庫総数であるTpまでを入力し、第1番目の店舗への投入指示数であるV1から第q番目の店舗への投入指示数であるVqまでを入力する。ここで、店舗数が50、在庫総数が21600点、アイテム数が12の例が示されている図23を参照すると、在庫総数として、T1=3000、T2=2900、・・・、T12=800を入力し、投入指示数として、V1=120、V2=120、・・・、V50=6を入力することになる。図23に示された表の左上に、矢印付きで在庫及び投入指示数として示されている通りである。
【0055】
(1−2)構成比による按分:
次は、構成比による按分である。まず、各セルにおける数値の在庫合計に対する構成比を計算し、その比率を用いて在庫の全体を各セルに按分する。例えば、a11つまり1号店へのアイテム1の投入指示数について考察する。a11の場合には、(X軸構成比)=(在庫総数の中での1号店への投入指示数の比率)=(1号店への投入指示数)/(在庫総数)=V1/(T1+T2+・・・+Tp)、(Y軸構成比)=(在庫総数の中でのアイテム1の在庫数の比率)=(アイテム1の在庫数)/(在庫総数)=T1/(T1+T2+・・・+Tp)であるから、セルa11の構成比は、これらの構成比の積を計算して、(V1/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))である。同様に、例えば、a12の場合には、(X軸構成比)=V2/(T1+T2+・・・+Tp)、(Y軸構成比)=T1/(T1+T2+・・・+Tp)であるから、セルa12の構成比は、(V2/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))である。従って、一般的には、アイテムmをn号店に投入する数であるamnの構成比は、(X軸構成比)=Vn/(T1+T2+・・・+Tp)、(Y軸構成比)=Tm/(T1+T2+・・・+Tp)であるから、セルamnの構成比は、(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))である。
【0056】
このように計算したセル構成比を用いて、各セルに按分される数値を計算する。a11の場合には、(在庫総数)×(セル構成比)=(T1+T2+・・・+Tp)×(V1/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))=V1・T1/(T1+T2+・・・+Tp)となる。また、例えば、a12の場合には、(T1+T2+・・・+Tp)×(V2/(T1+T2+・・・+Tp))×(T1/(T1+T2+・・・+Tp))=V2・T1/(T1+T2+・・・+Tp)となる。従って、一般的に、構成比に応じてセルamnに按分される数値は、Vn・Tm/(T1+T2+・・・+Tp)である。これらの計算を実行することにより、マトリクスのすべてのセルに按分されるべきアイテムの数量が確定する。
【0057】
ただし、既に述べたように、本発明においてマトリクスの各セルに配分される数値は、アイテムの個数に相当するのであるから、非負である整数でなければならない。しかし、例えば、セルamnに按分されるVn・Tm/(T1+T2+・・・+Tp)は整数値をとるとは限らない。よって、小数点以下の数値の処理が必要になるのであるが、処理方法としては、少なくとも3つの選択肢がある。すなわち、切り上げ、四捨五入、切り捨ての3つである。もちろん、これら3つの選択肢以外に、特殊な処理をすることも可能であろう。しかし、これら3つ以外の処理(例えば、四捨五入を逆転させた四入五捨など)はそれほど一般的とは言えないので、ここでは考察しない。
【0058】
以下の説明では、既に行った具体例でなされていたように、切り上げ処理の場合を考察する。代表的な処理として切り上げ処理を行う理由は、按分の段階ではどのセルにもゼロは配置されず、最小の場合でも1が配分されるようにするためである。本発明による配分がすべて終了した時点では結果的に0となるセルが生じるとしても、例えば洋品店の例で考えてみると、各店舗になるべくたくさんのアイテムが配分されるようにする、つまり、特定のサイズが配分されていないなどの欠番は可能な限り回避する、という実質的な理由に基づいている。しかし、例えば、多くの小規模な店舗において欠番が生じたとしても、集客力の大きな大規模な店舗に配分を集中化するというのであれば、四捨五入や切り捨ての方が適切である可能性がある。本発明では、アイテムの配分が実行される個別の状況において最適となるように、切り上げ、四捨五入、切り捨ての3つから、更には、これら以外の処理を選択することが可能である。
【0059】
参考のため、図24及び図25に、四捨五入及び切り捨てを採用した場合の本発明による配分結果が示されている。
【0060】
また、図26には、本発明によるアイテム配分システムを用い、切り上げ処理を採用した場合に、12種類のアイテムの在庫総数が2000であり、この在庫総数のすべてを50店舗に配分した結果が示されている。
【0061】
(1−3)ランキング処理:
次は、ランキング処理である。本発明のランキング処理とは、後述するプロセスにおいて各セルの加算や減算処理を行なう際の順序を決定する処理を意味する。上述の具体例では、在庫数の大きい順、投入指示数の大きい順に順位を付し、同順位の場合は先に処理すべき順に順位を決定した。このように、降べき順のランキングを決定するのが通常であるが、実際の具体的事情に応じ、これ以外のランキング決定も可能である。
【0062】
以上の処理によってマトリクスへの数値の一応の配分がなされたのであるが、小数点以下の処理(切り上げ、四捨五入、切り捨てなど)を行っているため、この段階では、水平方向に関するa11+a12+・・・+a1q=H1≦T1、a21+a22+・・・+a2q=H2≦T2、・・・、ap1+ap2+・・・+apq=Hp≦Tp、また、垂直方向に関するa11+a21+・・・+ap1=V1、a12+a22+・・・+ap2=V2、・・・、a1q+a2q+・・・+apq=Vqという関係が必ずしも満たされていない。以下の処理では、個々のセルの数値を修正することにより、水平方向及び垂直方向の総和が当初の条件を満足するように処理を行う。
【0063】
(2)基本調整:
まず、基本調整である。これまでの処理の結果では、すべてのセルにおいて小数点以下の切り上げ処理がなされているため、最小でも1が配分されており、その結果として、合計が入力値を上回る。これに該当する列または行について、ランキング順に入力値順位まではセルに1を配分し、その他は0を配分する調整を最初に行なう。
(2−1)投入指示数<アイテム数である店舗の場合:
最初に、縦方向について、投入指示数<アイテム数の場合を考察する。ここで考察しているマトリクスはp行q列であることに注意したい。つまり、このマトリクスはp行を有しているのであるが、例えばn番目の列において、p>投入指示数Vnという関係が成立する場合である。上述の理由により、この段階ではすべてのセルに最低でも1が配分されていることにより、この時点でのVn(n番目の列が有するp個のセルにおける数値の垂直方向の総和)が実際の投入指示数Vnを超えた状態が生じる可能性がある。この場合には、在庫数ランキング順位が最上位のセルから順に投入指示数Vn番目のセルまでには1を配分し、投入指示数Vn+1番目以降のセルには0を配分する。
【0064】
(2−2)在庫数<店舗数の場合:
横方向についても同様の処理を行うために、在庫数<店舗数の場合を考察する。考察しているマトリクスはq列を有しているのであるが、例えばm番目の行において、q>在庫数Tmという関係が成立する場合である。上述の理由により、すべてのセルに最低でも1が配分されていることにより、この時点でのHm(m番目の列が有するq個のセルにおける数値の水平方向の総和)が実際の在庫数Tmを超えた状態が生じる可能性がある。この場合には、投入指示数ランキング順位が最上位のセルから順に在庫数Tm番目のセルまでには1を配分し、在庫数Tm+1番目以降のセルには0を配分する。しかし、注意すべきは、(2−1)で「0」にしたセルには、調整した投入数を崩さないために「1」を入れないことである。
【0065】
(3)投入指示数合わせ(加算):
次に、当初に想定されていた投入指示数よりもこの段階までの計算結果として生じている数値の方が少ない列を特定し、その列の中のセルにおいて加算処理を行う。
【0066】
例えばn番目の列において、以上の処理の結果である現在の店舗投入数(縦方向の総和Vn)が当初に設定された投入指示数(Vn)未満である場合には、そのn列に含まれるp個のセルにおいて、店舗投入数(縦方向の総和Vn)=投入指示数Vnとなるまで、先に設定されているランキング順に、1を加算する処理を行う。
【0067】
n番目の列についてこの加算処理が終了したら、別の列についても同様の処理を行う。
【0068】
(4)過剰分の緩和:
以上の処理により、投入指示数に対し計算結果の店舗投入数が足りない店舗に加算処理をして数合わせが済んだ。次には、逆に投入が指示されている数量を超えて配分がなされている店舗に対して減算処理を行うのであるが、その前にセルの歯抜け緩和のための処理を行う。
【0069】
この過剰分緩和処理は、既に述べたように、次の段階で減算処理を行う前段階の処理であり、マトリクス全体において0となるセルの数を最小化するための処理である。0となるセルの数を最小化するというのは、「各店舗においてなるべくたくさんのアイテムが配分される」すなわち「欠番が生じる店舗を可能な限り少なくする」ためである。
【0070】
(5)投入指示数合わせ(減算):
既に述べた(3)での加算処理とは逆に、投入指示数に対し計算結果の店舗投入数がオーバーしている店舗、換言すると、この時点までの処理により、当初の配分予定数を超えて、配分がなされているセルにおいて減算処理を行う。
【0071】
例えばn番目の列において、以上の処理の結果である現在の店舗投入数(縦方向の総和Vn)が当初に設定された投入指示数(Vn)を超えている場合には、そのn列に含まれるp個のセルにおいて、店舗投入数(縦方向の総和Vn)=投入指示数Vnとなるまで、先に設定されているランキング順に、1を減算する処理を行う。
【0072】
n番目の列についてこの減算処理が終了したら、別の列についても同様の処理を行う。
【0073】
(6)スワップ処理:
以上の処理により、すべての店舗について、配分されたアイテム総数が当初に設定された投入指示数と一致したので、X軸方向の数合わせが完了した。換言すると、V1からVqについては、当初予定された数値と現在の数値とが一致している。この関係を維持しながら、T1からTpについても当初予定された数値を現在の数値が超えないように、同一の列における2つのセルの間で、一方から1を減算し他方に1を加算するという方法のスワップ処理を行う。すなわち、一方のセルから他方のセルへ数値を1だけ移動させる。すべての行について現在のH1からHpの値が最初に設定したT1からTpの値と一致する、もしくはそれより小さくなるまで、先に決定されているランキングの順に、このスワップ処理を順に実行する。ここで、現在のH1からHpの値が最初に設定したT1からTpの値よりも小さくなる場合を含めているのは、上述したように、(在庫総数≧投入指示数の総数)という一般的な条件において、本発明による配分を考察しているからである。
【0074】
3.ハードウェア:
本発明によるマトリクスの中の複数のセルへの数値の配分は、上述した各処理に対応するステップをコンピュータに実行させる命令セットから構成されるソフトウェアによって実現される。以下では、ソフトウェアによる情報処理がハードウェア資源をどのように用いて具体的に実現されるのか、また、ソフトウェアがハードウェア資源とどのように協働して本発明の所期の目的が達成されるのか、について説明する。
【0075】
図27は、本発明によるマトリクスの中の複数のセルへの数値配分を実行するソフトウェアが動作する典型的なコンピュータ・ハードウェアを図解するブロック図である。本発明が行う情報処理は、抽象的には、マトリクスの中の複数のセルへ数値を配分することであるが、より具体的には、複数種類が存在する複数のアイテム(例えば、衣料品)の複数の受取手段(例えば、店舗)への配分と表現することも可能である。本発明によるアイテム配分を実行するソフトウェアによって動作するコンピュータ11の概要が図27に示されている。コンピュータ11は、バス12を介して相互に接続されたプロセッサ13とメモリ14と記憶装置15と出力インターフェース16と入力インターフェース17とから構成される。そして、出力インターフェース16にはディスプレイ20が接続され、入力インターフェース17にはキーボード18やマウス19が接続されている。
【0076】
本発明によるアイテム配分システムを構成するそれぞれの手段に所定の処理を実行させる命令セットから構成されるコンピュータ・プログラムは、記憶装置15に記憶されている。本発明によるアイテム配分のための情報処理が実行される際には、所定の命令が、バス12を介してメモリ14に転送される。メモリ14に読み出された命令は、プロセッサ13によって解釈され実行される。このように、本発明によるアイテム配分システムを構成する初期条件設定手段と構成比計算手段と按分手段と調整手段とは、更に、調整手段に含まれるランキング処理手段と加算処理手段と過剰分緩和手段と減算処理手段とスワップ処理手段とは、プロセッサ13がメモリ14にロードされた命令を解釈して実行する機能として実現される。メモリ14は、プロセッサ13によって実行される命令を、その結果と共に保持する。プロセッサ13は、メモリ14からフェッチすることによって、本発明によるアイテム配分を構成するそれぞれの段階における処理を行う命令を実行する。プロセッサ13は、パーソナル・コンピュータやワークステーションの場合にはマイクロプロセッサであり、専用のASICでもありうる。キーボード18やマウス19の入力装置と入力インターフェース17とを介して、コンピュータ11への入力がなされ、出力装置であるディスプレイ20と出力インターフェース16とを介して、コンピュータ11からの出力がなされる。なお、図27のコンピュータ11は、スタンドアロンの単独のコンピュータとして図解されているが、ネットワークを構成する複数のコンピュータが別々に本発明を構成する特定の機能を担当することもありうる。そのような複数のコンピュータによってネットワークが構成されている場合については、この技術分野の当業者であれば必要な修正を容易に理解することができるので、詳細を述べることは割愛する。
【0077】
本発明によるアイテム配分システムは、上述のように、記憶手段と、初期条件設定手段と、構成比計算手段と、按分手段と、調整手段と、を備えている。調整手段は、更に、ランキング処理手段と、基本調整手段と、加算処理手段と、過剰分緩和手段と、減算処理手段と、スワップ処理手段と、を含む。これらの手段が、本発明を構成するそれぞれのデータ処理を行う。図27に示されているブロック図に即して考察すると、それぞれのデータ処理は、記憶装置15に記憶されておりメモリ14に読み出されプロセッサ13によって解釈され所定の処理をコンピュータ11に実行させる命令セットから構成されるソフトウェアによって実現される。
【0078】
この技術分野の当業者であれば理解するように、上述の各手段によって実行されるそれぞれのデータ処理は、対応する命令で構成されるコンピュータ・プログラムによって、コンピュータ11上で実行される。これらの手段は、図27のプロセッサ13の枠の中に記載されているように、そのようなコンピュータ・プログラムを実行するコンピュータ・ハードウェアの中に埋め込まれた形式で存在することが可能であるし、あるいは、様々なコンピュータ可読媒体に記憶されることもありうる。コンピュータ可読媒体は、特定の情報処理システムにおいて実際に用いる際には復号可能な符号化された形式を有する。この出願において、ソフトウェア又はコンピュータ・プログラムとは、情報処理能力を有するコンピュータ・ハードウェアに特定の機能を実行させる命令セットの任意のプログラミング言語による表現を意味する。
【0079】
図27に示されているのはあくまで一例であり、本発明は、図27に図解されている特定のアーキテクチャに限定されることはない。本発明によるアイテム配分システムを構成する手段が組み入れられるハードウェアの構成は、個々の実装によって変動する。このように、本発明によるアイテム配分システム及び方法は、ハードウェアとソフトウェアとの組合せとして実現される。ハードウェアとソフトウェアとの典型的な組合せは、メモリにロードされプロセッサによって解釈され実行されるとコンピュータを制御して本発明を構成する手段及びステップを実行するコンピュータ・プログラムがインストールされたコンピュータ・システムである。
【0080】
4.システムの動作について:
図28には、本発明によるアイテム配分システムの動作の概略を示す流れ図が示されている。
【図面の簡単な説明】
【0081】
【図1】コンピュータのディスプレイ上において、縦軸(Y軸)に在庫を、横軸(X軸)に店舗をとったマトリクスの例である。この図1では、本発明による配分されるアイテム別の在庫数と配分される店舗別の投入指示数が入力されている。
【図2】構成比による按分計算をマトリクスのすべてのセルに対して行い、得られた数値をすべてのセルに配分した状態を示す図である。
【図3】ランキング処理の結果として得られた順位(ランキング)がX軸の上側及びY軸の左側に付された図である。
【図4】投入指示数がアイテム数よりも小さい場合に基本調整がなされた後の状態を示す図である。
【図5】在庫数が店舗数よりも小さい場合に基本調整がなされた後の状態を示す図である。
【図6】投入指示数合わせのための第1の加算処理がなされた後の状態を示す図である。
【図7】投入指示数合わせのための第2の加算処理がなされた後の状態を示す図である。
【図8】投入指示数合わせのための第3の加算処理がなされた後の状態を示す図である。
【図9】投入指示数合わせのための第4の加算処理がなされた後の状態を示す図である。
【図10】投入指示数合わせのための第5の加算処理がなされた後の状態を示す図である。
【図11】過剰分の緩和のための第1の減算処理がなされた後の状態を示す図である。
【図12】過剰分の緩和のための第2の減算処理がなされた後の状態を示す図である。
【図13】過剰分の緩和のための第3の減算処理がなされた後の状態を示す図である。
【図14】投入指示数合わせのための第1の減算処理がなされた後の状態を示す図である。
【図15】投入指示数合わせのための第2の減算処理がなされた後の状態を示す図である。
【図16】アイテム間で第1のスワップ処理がなされた後の状態を示す図である。
【図17】アイテム間で第2のスワップ処理がなされた後の状態を示す図である。
【図18】アイテム間で第3のスワップ処理がなされた後の状態を示す図である。
【図19】アイテム間で第4のスワップ処理がなされた後の状態を示す図である。
【図20】アイテム間で第5のスワップ処理がなされた後の状態を示す図である。
【図21】アイテム間で第6のスワップ処理がなされた後の状態を示す図である。
【図22】必要なすべてのスワップ処理が終了し、本発明によるアイテム配分が完了した状態を示す図である。
【図23】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に切り上げ処理を行った場合である。
【図24】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に四捨五入処理を行った場合である。
【図25】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に切り捨て処理を行った場合である。
【図26】本発明によるアイテム配分システムを用い、切り上げ処理を採用した場合に、12種類のアイテムの在庫総数が2000であり、この在庫総数のすべてを50店舗に配分した結果が示されている。
【図27】本発明による数値配分を実現するコンピュータ・ハードウェアの概略を示すブロック図である。
【図28】本発明によるアイテム配分の各段階を構成する情報処理を示す流れ図である。
【特許請求の範囲】
【請求項1】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムであって、
各アイテムの総数T1ないしTpと各受取手段が受け取る数V1ないしVqとが記憶された記憶手段と、
前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、
前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、
各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分amnに按分する按分手段と、
前記按分手段によって各成分amnに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、
を備えていることを特徴とするアイテム配分システム。
【請求項2】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムであって、
各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段と、
前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、
前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、
各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分amnに按分する按分手段と、
前記按分手段によって各成分amnに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、
を備えていることを特徴とするアイテム配分システム。
【請求項3】
請求項2記載のアイテム配分システムにおいて、前記調整手段は、
前記過剰分及び過小分の調整の順序を予め設定するランキング処理手段と、
前記按分手段によって按分された各成分amnの各行及び各列の総和が前記初期条件設定手段によって予め設定されている初期条件を超える場合には、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって予め設定されている初期条件の範囲までの各成分amnを1とし、前記総和を超える成分からは0とする基本調整手段と、
垂直方向の成分の総和が前記初期条件設定手段によって設定されたVn未満である列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定された各成分Vnと等しくなるまで各成分amnに1を加算する加算処理手段と、
前記マトリクスの水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている行に含まれるq個の成分において、前記ランキング処理手段によって設定された順序に従い、各成分amnから1を減算する過剰分緩和手段と、
垂直方向の成分の総和が前記初期条件設定手段によって設定されたVnを超えている列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定されたVnと等しくなるまで各成分amnから1を減算し、すべての列における垂直成分の総和を前記初期条件設定手段によって設定されたVnと等しくする減算処理手段と、
水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている第1の行と、水平方向の成分の総和が前記初期条件設定手段によって設定されたTm未満である第2の行とを特定し、第1の行の成分から1を減算し第2の行の成分に1を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定手段によって設定されたTm以下となるまで継続するスワップ処理手段と、
を含むことを特徴とするアイテム配分システム。
【請求項4】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分方法であって、
各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定するステップであって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定ステップと、
前記初期条件設定ステップによって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算ステップと、
各成分amnに関し、前記構成比計算ステップによって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分amnに按分する按分ステップと、
前記按分ステップによって各成分amnに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定ステップによって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項5】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分方法であって、
各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定するステップであって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定ステップと、
前記初期条件設定ステップによって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算ステップと、
各成分amnに関し、前記構成比計算ステップによって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分amnに按分する按分ステップと、
前記按分ステップによって各成分amnに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件を設定するステップによって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項6】
請求項5記載のアイテム配分方法において、前記調整ステップは、
前記過剰分及び過小分の調整の順序を予め設定するランキング処理ステップと、
前記按分ステップによって按分された各成分amnの各行及び各列の総和が前記初期条件設定ステップによって予め設定されている初期条件を超える場合には、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって予め設定されている初期条件の範囲までの各成分amnを1とし、前記総和を超える成分からは0とする基本調整ステップと、
垂直方向の成分の総和が前記初期条件設定ステップによって設定されたVn未満である列に含まれるp個の成分において、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって設定された各成分Vnと等しくなるまで各成分amnに1を加算する加算処理ステップと、
前記マトリクスの水平方向の成分の総和が前記初期条件設定ステップによって設定されたTmを超えている行に含まれるq個の成分において、前記ランキング処理ステップによって設定された順序に従い、各成分amnから1を減算する過剰分緩和ステップと、
垂直方向の成分の総和が前記初期条件設定ステップによって設定されたVnを超えている列に含まれるp個の成分において、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって設定されたVnと等しくなるまで各成分amnから1を減算し、すべての列における垂直成分の総和を前記初期条件設定ステップによって設定されたVnと等しくする減算処理ステップと、
水平方向の成分の総和が前記初期条件設定ステップによって設定されたTmを超えている第1の行と、水平方向の成分の総和が前記初期条件設定ステップによって設定されたTm未満である第2の行とを特定し、第1の行の成分から1を減算し第2の行の成分に1を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定ステップによって設定されたTm以下となるまで継続するスワップ処理ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項7】
請求項4ないし請求項6のいずれかの請求項に記載のアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラムが記憶されているコンピュータ可読な記憶媒体。
【請求項8】
請求項4ないし請求項6のいずれかの請求項に記載のアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラム。
【請求項1】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムであって、
各アイテムの総数T1ないしTpと各受取手段が受け取る数V1ないしVqとが記憶された記憶手段と、
前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、
前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、
各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分amnに按分する按分手段と、
前記按分手段によって各成分amnに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、
を備えていることを特徴とするアイテム配分システム。
【請求項2】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分システムであって、
各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段と、
前記記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定手段と、
前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算手段と、
各成分amnに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分amnに按分する按分手段と、
前記按分手段によって各成分amnに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、
を備えていることを特徴とするアイテム配分システム。
【請求項3】
請求項2記載のアイテム配分システムにおいて、前記調整手段は、
前記過剰分及び過小分の調整の順序を予め設定するランキング処理手段と、
前記按分手段によって按分された各成分amnの各行及び各列の総和が前記初期条件設定手段によって予め設定されている初期条件を超える場合には、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって予め設定されている初期条件の範囲までの各成分amnを1とし、前記総和を超える成分からは0とする基本調整手段と、
垂直方向の成分の総和が前記初期条件設定手段によって設定されたVn未満である列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定された各成分Vnと等しくなるまで各成分amnに1を加算する加算処理手段と、
前記マトリクスの水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている行に含まれるq個の成分において、前記ランキング処理手段によって設定された順序に従い、各成分amnから1を減算する過剰分緩和手段と、
垂直方向の成分の総和が前記初期条件設定手段によって設定されたVnを超えている列に含まれるp個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定されたVnと等しくなるまで各成分amnから1を減算し、すべての列における垂直成分の総和を前記初期条件設定手段によって設定されたVnと等しくする減算処理手段と、
水平方向の成分の総和が前記初期条件設定手段によって設定されたTmを超えている第1の行と、水平方向の成分の総和が前記初期条件設定手段によって設定されたTm未満である第2の行とを特定し、第1の行の成分から1を減算し第2の行の成分に1を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定手段によって設定されたTm以下となるまで継続するスワップ処理手段と、
を含むことを特徴とするアイテム配分システム。
【請求項4】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分方法であって、
各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定するステップであって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定ステップと、
前記初期条件設定ステップによって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算ステップと、
各成分amnに関し、前記構成比計算ステップによって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分amnに按分する按分ステップと、
前記按分ステップによって各成分amnに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定ステップによって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項5】
mを1からpまでの正の整数、nを1からqまでの正の整数として、p行q列のマトリクス(amn)のpq個の非負整数成分amnをコンピュータを用いて決定することによって、T1個の第1のアイテムからTp個の第pのアイテムまでのp種類のアイテムの全部又は一部を、p種類の合計でV1個のアイテムを受け取る第1の受取手段からp種類の合計でVq個のアイテムを受け取る第qの受取手段までに配分するアイテム配分方法であって、
各アイテムの総数T1ないしTpと各受取手段が受け取るアイテム数V1ないしVqとが記憶された記憶手段に記憶されている前記第1ないし第pのアイテムのそれぞれの総数であるT1ないしTpと、前記第1ないし第qの受取手段がそれぞれ受け取るV1ないしVqとの初期条件を読み出して設定するステップであって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、T1≧a11+a12+・・・+a1q、T2≧a21+a22+・・・+a2q、・・・、Tp≧ap1+ap2+・・・+apqであり、V1=a11+a21+・・・+ap1、V2=a12+a22+・・・+ap2、・・・、Vq=a1q+a2q+・・・+apq)が成立する、初期条件設定ステップと、
前記初期条件設定ステップによって設定された初期条件を用いて、前記マトリクスの第m行第n列の成分amnに関し、水平方向の構成比Vn/(T1+T2+・・・+Tp)と、垂直方向の構成比Tm/(T1+T2+・・・+Tp)とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分amnの構成比(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))を計算する構成比計算ステップと、
各成分amnに関し、前記構成比計算ステップによって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積(Vn/(T1+T2+・・・+Tp))×(Tm/(T1+T2+・・・+Tp))・(T1+T2+・・・+Tp)=Vn・Tm/(T1+T2+・・・+Tp)を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分amnに按分する按分ステップと、
前記按分ステップによって各成分amnに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件を設定するステップによって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項6】
請求項5記載のアイテム配分方法において、前記調整ステップは、
前記過剰分及び過小分の調整の順序を予め設定するランキング処理ステップと、
前記按分ステップによって按分された各成分amnの各行及び各列の総和が前記初期条件設定ステップによって予め設定されている初期条件を超える場合には、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって予め設定されている初期条件の範囲までの各成分amnを1とし、前記総和を超える成分からは0とする基本調整ステップと、
垂直方向の成分の総和が前記初期条件設定ステップによって設定されたVn未満である列に含まれるp個の成分において、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって設定された各成分Vnと等しくなるまで各成分amnに1を加算する加算処理ステップと、
前記マトリクスの水平方向の成分の総和が前記初期条件設定ステップによって設定されたTmを超えている行に含まれるq個の成分において、前記ランキング処理ステップによって設定された順序に従い、各成分amnから1を減算する過剰分緩和ステップと、
垂直方向の成分の総和が前記初期条件設定ステップによって設定されたVnを超えている列に含まれるp個の成分において、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって設定されたVnと等しくなるまで各成分amnから1を減算し、すべての列における垂直成分の総和を前記初期条件設定ステップによって設定されたVnと等しくする減算処理ステップと、
水平方向の成分の総和が前記初期条件設定ステップによって設定されたTmを超えている第1の行と、水平方向の成分の総和が前記初期条件設定ステップによって設定されたTm未満である第2の行とを特定し、第1の行の成分から1を減算し第2の行の成分に1を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定ステップによって設定されたTm以下となるまで継続するスワップ処理ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項7】
請求項4ないし請求項6のいずれかの請求項に記載のアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラムが記憶されているコンピュータ可読な記憶媒体。
【請求項8】
請求項4ないし請求項6のいずれかの請求項に記載のアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラム。
【図27】
【図28】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図28】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2008−276486(P2008−276486A)
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願番号】特願2007−118945(P2007−118945)
【出願日】平成19年4月27日(2007.4.27)
【特許番号】特許第4035557号(P4035557)
【特許公報発行日】平成20年1月23日(2008.1.23)
【出願人】(501488376)株式会社 ジーンズメイト (1)
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願日】平成19年4月27日(2007.4.27)
【特許番号】特許第4035557号(P4035557)
【特許公報発行日】平成20年1月23日(2008.1.23)
【出願人】(501488376)株式会社 ジーンズメイト (1)
[ Back to top ]