(57)【要約】【目的】多種類の商品を複数の小売店に適切に配分すること。【解決手段】アイテム配分システムは、ｐ種類のアイテムの全部又は一部を、第１ないし第ｑの受取手段に配分するアイテム配分システムであって、各アイテムの総数と各受取手段が受け取るアイテム数とが記憶された記憶手段と、初期条件を読み出して設定する初期条件設定手段と、水平方向の構成比と、垂直方向の構成比とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比を計算する構成比計算手段と、各成分ａｍｎに按分する按分手段と、前記按分手段によって各成分ａｍｎに按分された数値の過剰分及び過小分を調整する調整手段と、を含む。【選択図】図２８
2008276486.tif 000002
【特許請求の範囲】
【請求項１】
ｍを１からｐまでの正の整数、ｎを１からｑまでの正の整数として、ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎをコンピュータを用いて決定することによって、Ｔ１個の第１のアイテムからＴｐ個の第ｐのアイテムまでのｐ種類のアイテムの全部又は一部を、ｐ種類の合計でＶ１個のアイテムを受け取る第１の受取手段からｐ種類の合計でＶｑ個のアイテムを受け取る第ｑの受取手段までに配分するアイテム配分システムであって、
各アイテムの総数Ｔ１ないしＴｐと各受取手段が受け取る数Ｖ１ないしＶｑとが記憶された記憶手段と、
前記記憶手段に記憶されている前記第１ないし第ｐのアイテムのそれぞれの総数であるＴ１ないしＴｐと、前記第１ないし第ｑの受取手段がそれぞれ受け取るＶ１ないしＶｑとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、Ｔ１≧ａ１１＋ａ１２＋・・・＋ａ１ｑ、Ｔ２≧ａ２１＋ａ２２＋・・・＋ａ２ｑ、・・・、Ｔｐ≧ａｐ１＋ａｐ２＋・・・＋ａｐｑであり、Ｖ１＝ａ１１＋ａ２１＋・・・＋ａｐ１、Ｖ２＝ａ１２＋ａ２２＋・・・＋ａｐ２、・・・、Ｖｑ＝ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ）が成立する、初期条件設定手段と、
前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第ｍ行第ｎ列の成分ａｍｎに関し、水平方向の構成比Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）と、垂直方向の構成比Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））を計算する構成比計算手段と、
各成分ａｍｎに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））・（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）＝Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分ａｍｎに按分する按分手段と、
前記按分手段によって各成分ａｍｎに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、
を備えていることを特徴とするアイテム配分システム。
【請求項２】
ｍを１からｐまでの正の整数、ｎを１からｑまでの正の整数として、ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎをコンピュータを用いて決定することによって、Ｔ１個の第１のアイテムからＴｐ個の第ｐのアイテムまでのｐ種類のアイテムの全部又は一部を、ｐ種類の合計でＶ１個のアイテムを受け取る第１の受取手段からｐ種類の合計でＶｑ個のアイテムを受け取る第ｑの受取手段までに配分するアイテム配分システムであって、
各アイテムの総数Ｔ１ないしＴｐと各受取手段が受け取るアイテム数Ｖ１ないしＶｑとが記憶された記憶手段と、
前記記憶手段に記憶されている前記第１ないし第ｐのアイテムのそれぞれの総数であるＴ１ないしＴｐと、前記第１ないし第ｑの受取手段がそれぞれ受け取るＶ１ないしＶｑとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、Ｔ１≧ａ１１＋ａ１２＋・・・＋ａ１ｑ、Ｔ２≧ａ２１＋ａ２２＋・・・＋ａ２ｑ、・・・、Ｔｐ≧ａｐ１＋ａｐ２＋・・・＋ａｐｑであり、Ｖ１＝ａ１１＋ａ２１＋・・・＋ａｐ１、Ｖ２＝ａ１２＋ａ２２＋・・・＋ａｐ２、・・・、Ｖｑ＝ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ）が成立する、初期条件設定手段と、
前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第ｍ行第ｎ列の成分ａｍｎに関し、水平方向の構成比Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）と、垂直方向の構成比Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））を計算する構成比計算手段と、
各成分ａｍｎに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））・（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）＝Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分ａｍｎに按分する按分手段と、
前記按分手段によって各成分ａｍｎに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、
を備えていることを特徴とするアイテム配分システム。
【請求項３】
請求項２記載のアイテム配分システムにおいて、前記調整手段は、
前記過剰分及び過小分の調整の順序を予め設定するランキング処理手段と、
前記按分手段によって按分された各成分ａｍｎの各行及び各列の総和が前記初期条件設定手段によって予め設定されている初期条件を超える場合には、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって予め設定されている初期条件の範囲までの各成分ａｍｎを１とし、前記総和を超える成分からは０とする基本調整手段と、
垂直方向の成分の総和が前記初期条件設定手段によって設定されたＶｎ未満である列に含まれるｐ個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定された各成分Ｖｎと等しくなるまで各成分ａｍｎに１を加算する加算処理手段と、
前記マトリクスの水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍを超えている行に含まれるｑ個の成分において、前記ランキング処理手段によって設定された順序に従い、各成分ａｍｎから１を減算する過剰分緩和手段と、
垂直方向の成分の総和が前記初期条件設定手段によって設定されたＶｎを超えている列に含まれるｐ個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定されたＶｎと等しくなるまで各成分ａｍｎから１を減算し、すべての列における垂直成分の総和を前記初期条件設定手段によって設定されたＶｎと等しくする減算処理手段と、
水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍを超えている第１の行と、水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍ未満である第２の行とを特定し、第１の行の成分から１を減算し第２の行の成分に１を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍ以下となるまで継続するスワップ処理手段と、
を含むことを特徴とするアイテム配分システム。
【請求項４】
ｍを１からｐまでの正の整数、ｎを１からｑまでの正の整数として、ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎをコンピュータを用いて決定することによって、Ｔ１個の第１のアイテムからＴｐ個の第ｐのアイテムまでのｐ種類のアイテムの全部又は一部を、ｐ種類の合計でＶ１個のアイテムを受け取る第１の受取手段からｐ種類の合計でＶｑ個のアイテムを受け取る第ｑの受取手段までに配分するアイテム配分方法であって、
各アイテムの総数Ｔ１ないしＴｐと各受取手段が受け取るアイテム数Ｖ１ないしＶｑとが記憶された記憶手段に記憶されている前記第１ないし第ｐのアイテムのそれぞれの総数であるＴ１ないしＴｐと、前記第１ないし第ｑの受取手段がそれぞれ受け取るＶ１ないしＶｑとの初期条件を読み出して設定するステップであって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、Ｔ１≧ａ１１＋ａ１２＋・・・＋ａ１ｑ、Ｔ２≧ａ２１＋ａ２２＋・・・＋ａ２ｑ、・・・、Ｔｐ≧ａｐ１＋ａｐ２＋・・・＋ａｐｑであり、Ｖ１＝ａ１１＋ａ２１＋・・・＋ａｐ１、Ｖ２＝ａ１２＋ａ２２＋・・・＋ａｐ２、・・・、Ｖｑ＝ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ）が成立する、初期条件設定ステップと、
前記初期条件設定ステップによって設定された初期条件を用いて、前記マトリクスの第ｍ行第ｎ列の成分ａｍｎに関し、水平方向の構成比Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）と、垂直方向の構成比Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））を計算する構成比計算ステップと、
各成分ａｍｎに関し、前記構成比計算ステップによって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））・（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）＝Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分ａｍｎに按分する按分ステップと、
前記按分ステップによって各成分ａｍｎに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定ステップによって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項５】
ｍを１からｐまでの正の整数、ｎを１からｑまでの正の整数として、ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎをコンピュータを用いて決定することによって、Ｔ１個の第１のアイテムからＴｐ個の第ｐのアイテムまでのｐ種類のアイテムの全部又は一部を、ｐ種類の合計でＶ１個のアイテムを受け取る第１の受取手段からｐ種類の合計でＶｑ個のアイテムを受け取る第ｑの受取手段までに配分するアイテム配分方法であって、
各アイテムの総数Ｔ１ないしＴｐと各受取手段が受け取るアイテム数Ｖ１ないしＶｑとが記憶された記憶手段に記憶されている前記第１ないし第ｐのアイテムのそれぞれの総数であるＴ１ないしＴｐと、前記第１ないし第ｑの受取手段がそれぞれ受け取るＶ１ないしＶｑとの初期条件を読み出して設定するステップであって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、Ｔ１≧ａ１１＋ａ１２＋・・・＋ａ１ｑ、Ｔ２≧ａ２１＋ａ２２＋・・・＋ａ２ｑ、・・・、Ｔｐ≧ａｐ１＋ａｐ２＋・・・＋ａｐｑであり、Ｖ１＝ａ１１＋ａ２１＋・・・＋ａｐ１、Ｖ２＝ａ１２＋ａ２２＋・・・＋ａｐ２、・・・、Ｖｑ＝ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ）が成立する、初期条件設定ステップと、
前記初期条件設定ステップによって設定された初期条件を用いて、前記マトリクスの第ｍ行第ｎ列の成分ａｍｎに関し、水平方向の構成比Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）と、垂直方向の構成比Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））を計算する構成比計算ステップと、
各成分ａｍｎに関し、前記構成比計算ステップによって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））・（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）＝Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分ａｍｎに按分する按分ステップと、
前記按分ステップによって各成分ａｍｎに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件を設定するステップによって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項６】
請求項５記載のアイテム配分方法において、前記調整ステップは、
前記過剰分及び過小分の調整の順序を予め設定するランキング処理ステップと、
前記按分ステップによって按分された各成分ａｍｎの各行及び各列の総和が前記初期条件設定ステップによって予め設定されている初期条件を超える場合には、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって予め設定されている初期条件の範囲までの各成分ａｍｎを１とし、前記総和を超える成分からは０とする基本調整ステップと、
垂直方向の成分の総和が前記初期条件設定ステップによって設定されたＶｎ未満である列に含まれるｐ個の成分において、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって設定された各成分Ｖｎと等しくなるまで各成分ａｍｎに１を加算する加算処理ステップと、
前記マトリクスの水平方向の成分の総和が前記初期条件設定ステップによって設定されたＴｍを超えている行に含まれるｑ個の成分において、前記ランキング処理ステップによって設定された順序に従い、各成分ａｍｎから１を減算する過剰分緩和ステップと、
垂直方向の成分の総和が前記初期条件設定ステップによって設定されたＶｎを超えている列に含まれるｐ個の成分において、前記ランキング処理ステップによって設定された順序に従い、前記初期条件設定ステップによって設定されたＶｎと等しくなるまで各成分ａｍｎから１を減算し、すべての列における垂直成分の総和を前記初期条件設定ステップによって設定されたＶｎと等しくする減算処理ステップと、
水平方向の成分の総和が前記初期条件設定ステップによって設定されたＴｍを超えている第１の行と、水平方向の成分の総和が前記初期条件設定ステップによって設定されたＴｍ未満である第２の行とを特定し、第１の行の成分から１を減算し第２の行の成分に１を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定ステップによって設定されたＴｍ以下となるまで継続するスワップ処理ステップと、
を含むことを特徴とするアイテム配分方法。
【請求項７】
請求項４ないし請求項６のいずれかの請求項に記載のアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラムが記憶されているコンピュータ可読な記憶媒体。
【請求項８】
請求項４ないし請求項６のいずれかの請求項に記載のアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くは、商品配分システム及び方法に関し、更に詳しくは、多種類の商品を複数の小売店に適切に配分するシステム及び方法に関する。更に、本発明は、多種類の物品を保管能力に応じて特定の倉庫又は１つの倉庫の特定の格納場所に配分するシステム及び方法や、多くの人員をそれぞれの役割及び適性に応じて様々な部署に配分するシステム及び方法など、多くの分野に応用する可能性を有している。
【背景技術】
【０００２】
小売業において、多種類の商品を扱う企業が、多数の店舗を展開している例を考えよう。現在では、このような例は非常に多く、すぐに、スーパーマーケット、コンビニエンスストア、１００円ショップ、洋品店、書店、ＣＤショップ、携帯電話販売店、ドラッグストアなどの典型的な例が考えられる。これらの例から明らかなように、配分すべき商品の種類は膨大であり、配分可能な商品の数も商品ごとに異なる。また、店舗の規模もそれぞれに異なっている。このような場合、どの店舗にどの商品をいくつ配分したらよいのかを決定するのは、困難な問題である。
【発明の開示】
【０００３】
本発明の目的は、従来は解決が困難であったこのアイテム配分問題を解決することである。なお、本発明が適用して配分されるアイテムは、上述したように、商品などの物には限定されず、特定の能力を有する人間を特定の職務の担当と決定する場合なども含む広い概念である。
【０００４】
本発明によると、ｍを１からｐまでの正の整数、ｎを１からｑまでの正の整数として、ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎをコンピュータを用いて決定することによって、Ｔ１個の第１のアイテムからＴｐ個の第ｐのアイテムまでのｐ種類のアイテムの全部又は一部を、ｐ種類の合計でＶ１個のアイテムを受け取る第１の受取手段からｐ種類の合計でＶｑ個のアイテムを受け取る第ｑの受取手段までに配分するアイテム配分システムが提供される。このアイテム配分システムは、各アイテムの総数Ｔ１ないしＴｐと各受取手段が受け取るアイテム数Ｖ１ないしＶｑとが記憶された記憶手段と、前記記憶手段に記憶されている前記第１ないし第ｐのアイテムのそれぞれの総数であるＴ１ないしＴｐと、前記第１ないし第ｑの受取手段がそれぞれ受け取るＶ１ないしＶｑとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、Ｔ１≧ａ１１＋ａ１２＋・・・＋ａ１ｑ、Ｔ２≧ａ２１＋ａ２２＋・・・＋ａ２ｑ、・・・、Ｔｐ≧ａｐ１＋ａｐ２＋・・・＋ａｐｑであり、Ｖ１＝ａ１１＋ａ２１＋・・・＋ａｐ１、Ｖ２＝ａ１２＋ａ２２＋・・・＋ａｐ２、・・・、Ｖｑ＝ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ）が成立する、初期条件設定手段と、前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第ｍ行第ｎ列の成分ａｍｎに関し、水平方向の構成比Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）と、垂直方向の構成比Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））を計算する構成比計算手段と、各成分ａｍｎに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））・（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）＝Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）を計算して、計算の結果として得られる数値の小数点以下を処理し、整数にした上で各成分ａｍｎに按分する按分手段と、前記按分手段によって各成分ａｍｎに按分された数値において小数点以下を処理した結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、を備えている。
【０００５】
また、本発明によると、ｍを１からｐまでの正の整数、ｎを１からｑまでの正の整数として、ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎをコンピュータを用いて決定することによって、Ｔ１個の第１のアイテムからＴｐ個の第ｐのアイテムまでのｐ種類のアイテムの全部又は一部を、ｐ種類の合計でＶ１個のアイテムを受け取る第１の受取手段からｐ種類の合計でＶｑ個のアイテムを受け取る第ｑの受取手段までに配分するアイテム配分システムが提供される。このアイテム配分システムは、各アイテムの総数Ｔ１ないしＴｐと各受取手段が受け取るアイテム数Ｖ１ないしＶｑとが記憶された記憶手段と、前記記憶手段に記憶されている前記第１ないし第ｐのアイテムのそれぞれの総数であるＴ１ないしＴｐと、前記第１ないし第ｑの受取手段がそれぞれ受け取るＶ１ないしＶｑとの初期条件を読み出して設定する初期条件設定手段であって、ただし、前記初期条件と前記マトリクスの非負整数成分との間には、Ｔ１≧ａ１１＋ａ１２＋・・・＋ａ１ｑ、Ｔ２≧ａ２１＋ａ２２＋・・・＋ａ２ｑ、・・・、Ｔｐ≧ａｐ１＋ａｐ２＋・・・＋ａｐｑであり、Ｖ１＝ａ１１＋ａ２１＋・・・＋ａｐ１、Ｖ２＝ａ１２＋ａ２２＋・・・＋ａｐ２、・・・、Ｖｑ＝ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ）が成立する、初期条件設定手段と、前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第ｍ行第ｎ列の成分ａｍｎに関し、水平方向の構成比Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）と、垂直方向の構成比Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））を計算する構成比計算手段と、各成分ａｍｎに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積と各アイテムの総数との積（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））・（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）＝Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分ａｍｎに按分する按分手段と、前記按分手段によって各成分ａｍｎに按分された数値において小数点以下を切り上げた結果として生じた過剰分及び過小分を調整し、前記初期条件設定手段によって設定された初期条件と前記マトリクスの非負整数成分との間の関係を満足するようにする調整手段と、を備えている。
【０００６】
更に、本発明によるアイテム配分システムにおいて、前記調整手段は、前記過剰分及び過小分の調整の順序を予め設定するランキング処理手段と、前記按分手段によって按分された各成分ａｍｎの各行及び各列の総和が前記初期条件設定手段によって予め設定されている初期条件を超える場合には、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって予め設定されている初期条件の範囲までの各成分ａｍｎを１とし、前記総和を超える成分からは０とする基本調整手段と、垂直方向の成分の総和が前記初期条件設定手段によって設定されたＶｎ未満である列に含まれるｐ個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定された各成分Ｖｎと等しくなるまで各成分ａｍｎに１を加算する加算処理手段と、前記マトリクスの水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍを超えている行に含まれるｑ個の成分において、前記ランキング処理手段によって設定された順序に従い、各成分ａｍｎから１を減算する過剰分緩和手段と、垂直方向の成分の総和が前記初期条件設定手段によって設定されたＶｎを超えている列に含まれるｐ個の成分において、前記ランキング処理手段によって設定された順序に従い、前記初期条件設定手段によって設定されたＶｎと等しくなるまで各成分ａｍｎから１を減算し、すべての列における垂直成分の総和を前記初期条件設定手段によって設定されたＶｎと等しくする減算処理手段と、水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍを超えている第１の行と、水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍ未満である第２の行とを特定し、第１の行の成分から１を減算し第２の行の成分に１を加算する処理を、すべての行における水平方向の成分の総和が前記初期条件設定手段によって設定されたＴｍ以下となるまで継続するスワップ処理手段と、を含みうる。
【０００７】
以上では、本発明をアイテム配分システムとして把握したが、本発明を、特許請求の範囲の請求項４ないし請求項６に記載されたアイテム配分方法として把握することも可能であるし、更に、請求項７及び請求項８に記載されたように、請求項４ないし請求項６のいずれかの請求項に記載されたアイテム配分方法に含まれる各ステップをコンピュータに実行させるコンピュータ・プログラムが記憶されたコンピュータ可読な記憶媒体、又は、そのようなコンピュータ・プログラム自体として把握することも可能である。
【発明を実施するための最良の形態】
【０００８】
１．具体例を用いた説明：
以下では、本発明を、「１２種類の商品の在庫を、２０店舗に配分する」という処理を例に用いて説明する。本発明のパーソナル・コンピュータなどにおける処理を示すため、コンピュータのディスプレイ上に、縦軸（Ｙ軸）に在庫を、横軸（Ｘ軸）に店舗をとったマトリクスを考える。そのようなマトリクスの例が、図１に示されている。なお、ここで在庫とは、配分される商品の現在数を意味する。縦軸には１２種類の商品があり、横軸には２０店舗があるから、このマトリクスを構成するセルの数は、１２Ｘ２０＝２４０である。図１に示されているように、商品（アイテム）は、Ｉｔｅｍ＿０１からＩｔｅｍ＿１２まで合計４００点の在庫がある。これらの在庫について、１号店から２０号店まで、５０点、４５点、４０点、・・・、５点というように合計の投入指示数を設定する。すると、本発明による商品配分システムの動作により、各アイテムについて、各店舗に配分する数量が自動的に決定される。
【０００９】
詳細は後述するが、本発明では、合計で４００点の在庫を、まず最初に、縦の構成比と横の構成比とに従って按分して各セルの値を決定する。次に、縦数値（在庫）の多い順、横数値(投入指示数)の多い順にそれぞれの順位を決定し、その順位に従って各セルの値を調整し、縦計及び横計を合わせる端数処理を行う。以上は、在庫数の合計と投入指示数の合計とが等しい場合であるが、本発明は、在庫の全部ではなく一部のみを投入する場合、すなわち、在庫数合計≧投入指示数合計の場合にも用いることができる。
【００１０】
本発明による例１の場合の処理では、第１に、在庫が多いアイテムは各店においても多く配分されること、第２に、各店舗においてなるべくたくさんのアイテムが配分されることの２点を基本方針とする。その上で、（１）初期処理、（２）基本調整、（３）投入指示数合わせ（加算）、（４）過剰分の緩和、（５）投入指示数合わせ（減算）、（６）スワップ処理（アイテム間の在庫数合わせ）という６つの処理を行う。
【００１１】
（１）初期処理：
最初に、初期処理について説明する。初期処理では、入力処理、構成比による按分、ランキング処理という３つの処理が行われる。
【００１２】
（１−１）入力処理：
入力処理では、図１に示されているように、計算の元データとなる数値が入力データとしてＸ軸及びＹ軸に入力される。その際、Ｘ軸には店舗別に投入指示数が入力され、Ｙ軸にはアイテム別の在庫数が入力される。この例では、１２種類のアイテムを２０店舗に配分することを考えているのであるが、１２種類のアイテムの合計は４００であるとする。アイテム１からアイテム１２まで、それぞれのアイテムの数は図１の縦軸に示されている通りであり、それぞれの店舗に配分されるアイテムの総数は図１の横軸に示されている通りである。この例の場合、すべてのアイテムがいずれかの店舗に配分されることを想定しているので、Ｘ軸合計＝Ｙ軸合計＝４００となる。
【００１３】
（１−２）構成比による按分：
最初に、各セルにおける数値の全体の合計に対する構成比を計算し、その比率を用いて在庫の全体を各セルに按分する。この例の場合、小数点以下は切り上げて整数とした。
【００１４】
実際には、Ｘ軸構成比＝店舗投入指示数÷在庫総数とＹ軸構成比＝在庫数÷在庫総数とを計算し、（Ｘ軸構成比）×（Ｙ軸構成比）＝セルの構成比を計算する。具体例を用いて計算を実行してみると、１号店とアイテム１（Ｉｔｅｍ＿０１）との交点におけるセルの構成比は、（店舗投入指示数÷在庫総数）×（在庫数÷在庫総数）＝(５０÷４００)×(１２０÷４００)＝０.１２５×０.３＝３.７５％となる。そして、このセルに配分される値は、在庫数総数×セルの構成比であるから、４００×３.７５％＝１５となる。以上の計算において、セルの値を算出する時に生じる小数点以下は切り上げている。切り上げとしている理由は、各店舗においてなるべくたくさんのアイテムを配分するためである。図２には、以上の計算をすべてのセルに対して行い、得られた数値をすべてのセルに配分した状態が示されている。図２の右下に示されているように、配分されたアイテム数が１０以上、配分されたアイテム数が４から９、配分されたアイテムが２から３のセルには、３段階の濃度でドットが付されている。配分されたアイテムが１のセルにはドットは付されていない。
【００１５】
（１−３）ランキング処理：
次に、Ｘ軸及びＹ軸のそれぞれに対しランキング処理をする。ランキング処理の結果として得られる順位は、後述するプロセスにおいて、各セルの加算や減算処理を行なう時の順番として使用される。Ｘ軸のランキング処理では、投入指示数の大きい順に順位が付される。同着の場合は処理の早い方を上位とする。Ｙ軸のランキング処理では、在庫数の大きい順に順位が付され、同着の場合は処理の早い方を上位とする。図３には、Ｘ軸の上側及びＹ軸の左側にランキングが付された様子が示されている。
【００１６】
（２）基本調整：
次は、基本調整である。これまでの処理の結果、構成比に従ってセルの値が埋まっているが、Ｘ軸及びＹ軸においてセルの個数が入力値より大きい場合には、すべてのセルにおいて小数点以下の切り上げ処理により１以上の数値が配分されているので、合計が入力値を上回る。これに該当する列または行について、ランキング順に入力値順位まではセルに１を配分し、その他は０を配分する調整を最初に行なう。
【００１７】
（２−１）投入指示数＜アイテム数の場合：
構成比による按分を行った際に、小数点以下を切り上げる処理を行っているため、現時点では、図２及び図３に示されているように、すべてのセルに最低でも１が配分されており、アイテム数が１２なので各店舗に配分されている投入数は、理論的には、最低でも１２である（実際には、図２及び図３に示されているように、１８号店から２０号店では最低でも１３になっている）。しかし、投入指示数が５や１０のように１２よりも小さな店舗には余分に配分されていることになり、投入指示数に合わせる処理が必要となる。投入指示数がアイテム数である１２に満たない店舗を検索すると、この例の場合には、１０号店、１１号店、１３号店、１７号店から２０号店の７店舗が該当する。これら７つの店舗に対しては、在庫ランクの高い順に、投入指示数分まではセルに１を配分し、それ以外のセルには０を配分する。例えば、２０号店の場合、アイテム１からアイテム５までには１を配分し、アイテム６からアイテム１２までには０を配分する。以上の調整を行った結果が図４に示されている。図４において、太い点線で囲まれているのが、以上の処理がなされた箇所である。
【００１８】
（２−２）在庫数＜店舗数の場合：
図４に示された処理では、列方向すなわち縦方向の合計を考察したのであるが、行方向すなわち横方向の合計を考察して、在庫についても同様の調整を行なう。図５において、太い点線で囲まれているのが今回の処理の対象となる箇所である。店舗数である２０よりも配分可能な数が少ないアイテムに着目すると、この例の場合、アイテム６からアイテム１２である。これらのアイテムについては、投入指示数ランクの高い順に在庫数分まではセルに１を配分し、それ以外のセルには０を配分する。しかし、注意すべきは、図４での処理で店舗投入数を調整した時に「０」にしたセルには「１」を入れないことである。具体的には、アイテム１２の場合、投入指示数ランクの高い方から１号店、２号店、３号店、１５号店、４号店には１を配分し、それ以外の店舗には０を配分する。
【００１９】
（３）投入指示数合わせ（加算）：
次に、当初に想定されていた投入指示数よりもこの段階までの計算結果の方が少ない店舗に対して加算処理を行う。具体的には、在庫の多いアイテムの順に、店舗投入数＝投入指示数となるまで、セルに１を加算する。具体的には、以下で詳述するが、店舗投入数＜投入指示数となっている店舗を特定する、在庫数ランク１位のアイテムのセルを特定する、該当セルに１を加算する、まだ店舗投入数＜投入指示数であれば次の在庫数ランクのアイテムに移り１を加算する、店舗投入数＝投入指示数となるまで以上の処理を繰り返す、店舗投入数＝投入指示数となったら次の投入が足りない店舗へ移り同様の加算処理を行なう、という手順で処理が進行する。
【００２０】
（３−１）投入指示数合わせ（加算１）：
以上の処理の結果である現在の店舗投入数（縦計）が投入指示数に満たない店舗に対して加算処理を行い、指示数に一致させる。図５に示されている現在までの配分数を参照すると、現時点までに１号店には４９点が配分されており、投入指示数より１だけ不足していることがわかる。他にも不足している店舗はあるが、投入指示数の多い店舗の順に処理を行うので、１号店に対して最初に加算を行う。よって、アイテム１に１を加算すると、セルの値は１５から１６に変更され、図６に示されているように、投入が指示された５０点が１号店に配分されたことになる。
【００２１】
（３−２）投入指示数合わせ（加算２）：
同様に、図６に示されている現在までの配分数を参照すると、現時点までに１０号店には７点が配分されており、投入指示数より３だけ不足していることがわかる。よって、アイテム１に１を加算するとセルの値は１から２に変更され、アイテム２に１を加算するとセルの値は１から２に変更され、アイテム３に１を加算するとセルの値は１から２に変更され、以上の結果として、図７に示されているように、投入が指示された１０点が１０号店に配分されたことになる。
【００２２】
（３−３）投入指示数合わせ（加算３）：
同様に、図７に示されている現在までの配分数を参照すると、現時点までに１１号店には７点が配分されており、投入指示数より３だけ不足していることがわかる。よって、アイテム１に１を加算するとセルの値は１から２に変更され、アイテム２に１を加算するとセルの値は１から２に変更され、アイテム３に１を加算するとセルの値は１から２に変更され、以上の結果として、図８に示されているように、投入が指示された１０点が１１号店に配分されたことになる。
【００２３】
（３−４）投入指示数合わせ（加算４）：
同様に、図８に示されている現在までの配分数を参照すると、現時点までに１３号店には５点が配分されており、投入指示数より５だけ不足していることがわかる。よって、アイテム１に１を加算するとセルの値は１から２に変更され、アイテム２に１を加算するとセルの値は１から２に変更され、アイテム３に１を加算するとセルの値は１から２に変更され、アイテム４に１を加算するとセルの値は１から２に変更され、アイテム５に１を加算するとセルの値は１から２に変更され、以上の結果として、図９に示されているように、投入が指示された１０点が１３号店に配分されたことになる。
【００２４】
（３−５）投入指示数合わせ（加算５）：
同様に、図９に示されている現在までの配分数を参照すると、現時点までに１７号店には５点が配分されており、投入指示数より５だけ不足していることがわかる。よって、アイテム１に１を加算するとセルの値は１から２に変更され、アイテム２に１を加算するとセルの値は１から２に変更され、アイテム３に１を加算するとセルの値は１から２に変更され、アイテム４に１を加算するとセルの値は１から２に変更され、アイテム５に１を加算するとセルの値は１から２に変更され、以上の結果として、図１０に示されているように、投入が指示された１０点が１７号店に配分されたことになる。
【００２５】
（４）過剰分の緩和：
ここまでの処理で、投入指示数に対し計算結果の店舗投入数が足りない店舗に加算処理をして数合わせが済んだので、次は逆に投入が指示されている数量を超えて配分がなされている店舗に対して減算処理を行うのであるが、その前にセルの歯抜け緩和のための処理を行う。
【００２６】
この過剰分緩和処理は、上述した（３）の加算処理とは逆に減算処理を行う前段階の処理である。過剰分緩和処理がなされない場合には、店舗投入数＞投入指示数の店舗に対して各セルから１を減算すると０になってしまうセルが頻発し、マトリクス全体を見ると歯抜けの箇所が多くなる可能性がある。しかし、大前提として既に述べたように、本発明における商品配分での基本方針は、第１に、在庫が多いアイテムは各店においても多く配分されること、第２に、各店舗においてなるべくたくさんのアイテムが配分されることの２点であった。後者の「各店舗においてなるべくたくさんのアイテムが配分されること」という条件は、「欠番が生じる店舗を可能な限り少なくする」と言い換えることが可能であり、多種類の商品を多くの店舗に配分する際に要求される極めて自然な条件といえるだろう。セルの歯抜け緩和のための処理が必要なのは、この条件を満たすためである。
【００２７】
実際には、店舗投入数＞投入指示数の店舗において、在庫オーバーしているアイテムがあるのならば、そのアイテムについて前もって１を減算して、在庫オーバー分だけ店舗投入数の過剰分を緩和しておく。具体的な処理としては、在庫数ランクの低い順に在庫オーバーしているアイテムを特定する、そのアイテム特定後に店舗投入数＞投入指示数となっている店舗のセルを特定する、そのセルの値が１より大きければ１だけ減算する、という手順で処理がなされる。店舗投入数を優先的に揃えるためであるから、アイテム特定後は店舗の減算処理は優先的に行なう。従って、途中で在庫オーバーではなくなる場合があっても、減算処理は継続される。
【００２８】
なお、この過剰分の緩和処理は、在庫オーバー、投入オーバーの過剰分を少し減らして緩和しているに留まる。上述の通り、この処理の後で、店舗投入数の過剰店舗に対して完全な数合わせのための減算処理を行なう。
【００２９】
（４−１）過剰分の緩和（減算１）：
在庫オーバーしているアイテムを在庫数ランクの低い順に特定し、店舗投入数（縦計）が投入指示数を超えている店舗に対し減算処理をして過剰分を緩和する。この時点までの処理結果が示されている図１０を参照すると、アイテム５は配分可能な在庫が２０であるにもかかわらず、この時点までに３０が配分され、過剰分が１０である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、２号店セルで１を減算してセルの値を３から２に変更し、４号店セルで１を減算してセルの値を２から１に変更し、６号店セルで１を減算してセルの値を２から１に変更し、１５号店セルで１を減算してセルの値を２から１に変更する。この減算の結果として配分済の数量は３０から２６に変更されたので、過剰分は１０から６に減少した。
【００３０】
（４−２）過剰分の緩和（減算２）：
この時点までの処理の結果が示された図１１を参照して、次に在庫数ランクが低い順で見ていくと、アイテム４は配分可能な在庫が４０であるにもかかわらず、この時点までに４７が配分され、過剰分が７である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、４号店セルで１を減算してセルの値を３から２に変更し、５号店セルで１を減算してセルの値を２から１に変更し、６号店セルで１を減算してセルの値を３から２に変更し、７号店セルで１を減算してセルの値を２から１に変更し、８号店セルで１を減算してセルの値を２から１に変更し、９号店セルで１を減算してセルの値を２から１に変更し、１２号店セルで１を減算してセルの値を２から１に変更し、１４号店セルで１を減算してセルの値を２から１に変更し、１５号店セルで１を減算してセルの値を４から３に変更し、１６号店セルで１を減算してセルの値を２から１に変更する。この減算の結果として配分済の数量は４７から３７に変更されたので、７だけ過剰だったのが、逆に３だけ不足となるが、先に述べたように、店舗投入数の減算を優先する。この不足分は、後の在庫スワップ処理で調整される。
【００３１】
（４−３）過剰分の緩和（減算３）：
この時点までの処理の結果が示された図１２を参照して、次に在庫数ランクが低い順に見ていくと、アイテム３は配分可能な在庫が７０であるにもかかわらず、この時点までに７７が配分され、過剰分が７である。従って、投入オーバーしている店舗のセルの減算処理を行う。具体的には、４号店セルで１を減算してセルの値を５から４に変更し、５号店セルで１を減算してセルの値を４から３に変更し、６号店セルで１を減算してセルの値を５から４に変更し、７号店セルで１を減算してセルの値を４から３に変更し、１５号店セルで１を減算してセルの値を７から６に変更する。この減算の結果として配分済の数量は７７から７２に変更されたので、過剰分は、７から２に減少した。
【００３２】
（５）投入指示数合わせ（減算）：
既に述べた（３）での加算処理とは逆に、投入指示数に対し計算結果の店舗投入数がオーバーしている店舗に減算処理を行う。在庫の少ないアイテム順に、店舗投入数＝投入指示数となるまで、セルから１を減算する処理を行う。実際には、在庫数ランク最下位のアイテムのセルを特定する、店舗投入数＞投入指示数となっている店舗を特定する、そのセルの値が１より大きければ１を減算する、次の在庫数ランクのアイテムに移り上記処理を実行する、店舗投入数＝投入指示数となるまで繰り返す（１より大きいセルでの減算調整が出来なくなった場合は１以上の条件で上記処理を繰り返す）、という手順で処理が進行する。
【００３３】
（５−１）投入指示数合わせ（減算１）：
ここまでの処理の結果である現在の店舗投入数（縦計）が投入指示数を超えている店舗に対して減算処理を行い、指示数に一致させる。図１３に示されている現在までの配分数を参照すると、在庫数ランクが最下位のアイテムから検索していき、店舗投入数＞投入指示数の店舗でセルの値が１より大きく減算可能となるアイテムはアイテム４である。店舗投入数＞投入指示数の店舗は、４号店、５号店、６号店である。このアイテム４について４号店セルから１を減算するとセルの値は２から１に変更され、店舗投入数は２７から２６に変更される。次に、６号店セルから１を減算するとセルの値は２から１に変更され、店舗投入数は２６から２５に変更され、６号店については、投入指示数に一致する。
【００３４】
（５−２）投入指示数合わせ（減算２）
次に、図１４に示されている現在までの配分数を参照すると、次に減算可能なアイテムはアイテム３である。このアイテム３について４号店セルから１を減算するとセルの値は４から３に変更され、店舗投入数は２６から２５に変更され、投入指示数に一致する。次に、５号店セルから１を減算するとセルの値は３から２に変更され、店舗投入数は２１から２０に変更され、投入指示数に一致する。
【００３５】
以上の処理の結果は図１５に示されているが、１号店から２０号店まで、すべての店舗に関して、店舗に配分されたアイテム総数が当初に設定された投入指示数と一致したことになる。
【００３６】
（６）スワップ処理：
この段階までに行われた処理の結果、すべての店舗について、配分されたアイテム総数が当初に設定された投入指示数と一致したので、Ｘ軸方向の数合わせが完了した。この段階以降の処理は、Ｙ軸方向の数合わせを目的とする。Ｘ軸方向に関しては、各店舗で店舗投入数＝投入指示数となっているので、いったん得られたこの関係を崩さないように、アイテム間で在庫数の入れ替えを行う。
【００３７】
実際には、全アイテムに対し在庫数オーバーをしているかどうかをチェックし、在庫オーバーしている場合には次の処理を実行する。まず、（ａ）投入数ランク１位（多い順）の店舗を特定する、次に、（ｂ）在庫ランクの高い順に検索し、在庫不足（計算結果が在庫数に満たない）アイテムを特定する、そして、（ｃ）該当店舗の在庫オーバーのアイテムのセルから１を減算し、在庫不足アイテムのセルに１を加算する（ただし、減算されるセルが０の場合はスキップ）、更に、（ｄ）まだ在庫オーバーしていれば次の投入ランクの店舗に移り（ｂ）及び（ｃ）の処理を実行する、（ｅ）以上の処理を、計算結果（横計）≦在庫数となるまで繰り返す、という手順で処理が進行する。
【００３８】
（６−１）アイテム間のスワップ処理（１）
在庫がオーバーしている場合、投入数ランク順に店舗を特定し、その中で在庫不足のアイテムへのスワップ処理を行なう。具体的には、この時点までの処理の結果が示されている図１５を参照すると、アイテム５は配分された数が６だけ過剰である。アイテム５について、投入数ランクで店舗を特定すると、１号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム１であり、不足分は１である。従って、図１６に示されているように、アイテム５とアイテム１との間で、アイテムを１つだけ移動させるスワップを行う。
【００３９】
（６−２）アイテム間のスワップ処理（２）：
この時点までの処理の結果が示されている図１６を参照すると、アイテム５は配分された数が５だけ過剰である。アイテム５について、投入数ランクで店舗を特定すると、２号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム４であり、不足分は５である。従って、図１７に示されているように、アイテム５とアイテム４との間で、アイテムを１だけ移動させるスワップを行う。
【００４０】
（６−３）アイテム間のスワップ処理（３）：
この時点までの処理の結果が示されている図１７を参照すると、アイテム５は配分された数が４だけ過剰である。アイテム５について、投入数ランクで店舗を特定すると、３号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム４であり、不足分は４である。従って、図１８に示されているように、アイテム５とアイテム４との間で、アイテムを１だけ移動させるスワップを行う。
【００４１】
（６−４）アイテム間のスワップ処理（４）：
この時点までの処理の結果が示されている図１８を参照すると、アイテム５は配分された数が３だけ過剰である。アイテム５について、投入数ランクで店舗を特定すると、１５号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム４であり、不足分は３である。従って、図１９に示されているように、アイテム５とアイテム４との間で、アイテムを１だけ移動させるスワップを行う。
【００４２】
（６−５）アイテム間のスワップ処理（５）：
この時点までの処理の結果が示されている図１９を参照すると、アイテム５は配分された数が２だけ過剰である。アイテム５について、投入数ランクで店舗を特定すると、４号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム４であり、不足分は２である。従って、図２０に示されているように、アイテム５とアイテム４との間で、アイテムを１だけ移動させるスワップを行う。
【００４３】
（６−６）アイテム間のスワップ処理（６）：
この時点までの処理の結果が示されている図２０を参照すると、アイテム５は配分された数が１だけ過剰である。アイテム５について、投入数ランクで店舗を特定すると、６号店が該当する。次に在庫が不足しているアイテムを探すと、アイテム４であり、不足分は１である。従って、図２１に示されているように、アイテム５とアイテム４との間で、アイテムを１だけ移動させるスワップを行う。
【００４４】
以上の処理により在庫オーバーのアイテムがなくなり、スワップ処理が終了する。この結果として、図２２に示されているように、Ｘ軸・Ｙ軸の計算結果がそれぞれの入力値と完全に一致している。以上のような処理方法に従ってマトリクスへの分解を行った結果として、最初に述べた（１）在庫が多いアイテムは各店においても多く配分される、（２）各店舗においてなるべくたくさんのアイテムが配分される、という基本方針を満足した態様で数値の配分が実現できた。
【００４５】
上で述べた処理では、２つ目の基本方針に従うため、なるべくたくさんのアイテムが配分されるようにするように、端数処理の際にセル値の切り上げをした。しかし、これ以外の処理も可能である。例えば、切り上げでなく四捨五入をすると、セルの値が０になる個数が多くなるが、構成比の影響をより強くすることができる。また、切り捨て処理を行うと、更に構成比の影響を強くした結果が得られる。このように、端数処理の仕方によって、マトリクス内で異なる数値分布が得られる。
【００４６】
更に他の方法として、在庫数を合わせてから店舗間で投入数のスワップ処理をすることが可能であるし、数の合わせ方についても、処理の順番に応じて多数の異なる方法が得られる。従って、本発明を応用する目的に応じて、端数処理について、「切り上げ」、「切り捨て」、「四捨五入」の中のいずれかを採用し、Ｘ軸及びＹ軸のどちらか一方の軸についての数合わせをしてから他方の軸についてスワップ処理をすることも可能である。このように、本発明に従って様々なアイテムを配分する際には、目的に応じた多種多様なマトリクスへの分解が可能となる。
【００４７】
しかし、いずれの処理においても共通していることは、Ｘ軸及びＹ軸のそれぞれに並べられた数字配列を、それぞれの軸の構成比に応じてマトリクスへの基本的な按分を最初に行い、次に、「切り上げ」、「切り捨て」、「四捨五入」のいずれかを用いて端数処理を行った後で、Ｘ軸及びＹ軸の数値ランキングに従ってそれぞれの軸の数合わせを行なう点である。
【００４８】
従来、Ｘ軸に並んだ数値とＹ軸に並んだ数値とを、マトリクスにおける縦計及び横計が一致するようにセルの値を決めていくことは困難であったが、本発明による処理を実行することにより、従来技術における困難が解消される。本発明による処理は、Ｙ軸合計≧Ｘ軸のすべての範囲で可能であり、Ｙ軸に並んだ各数値の範囲内で、構成比に従ってＸ軸の数値合わせが可能である。もちろん、軸が逆の場合にも同様である。
【００４９】
以上では、「１２種類の商品の在庫を、２０店舗に配分する」という例で説明したが、他の技術分野においても本発明による処理を用いることが可能である。例えば、小売業では店舗等のロケーションに対する発注及び出荷配分全般に応用可能であり、対象ロケーションが数百以上ある場合などは特に有用である。また、製造業、卸業等では、倉庫の指定格納個所へのキャパシティに応じた割り当てにも応用できる。製品の容量を加味すればキャパシティ管理も可能となる。また、専門分野や役割に応じた人員の配置にも応用可能である。
【００５０】
２．数式を用いた一般的な説明：
次に、本発明によるアイテム配分に関する発明者の基本アイデアを説明するため、以上で具体例を用いて例示的に述べた処理を、若干の数式を用いて抽象的に再度説明する。本発明におけるマトリクスは、非負である整数を縦横に矩形状に並べた数表であって、線形代数における行列とは異なる。しかし、本発明におけるマトリクスを表現するには、線形代数で行列について用いられる記号を用いるのが便利であり、当業者であればきわめて容易に理解することができ、誤解も生じないはずである。
【００５１】
まず、ｐ個の行（Ｘ軸方向）とｑ個の列（Ｙ軸方向）とによって構成されるｐ行ｑ列のマトリクスＡを考える。ｐ行ｑ列のマトリクスとは、横方向にｑ個の数字を並べた行が第１行から第ｐ行まであり、縦方向にｐ個の数字を並べた列が第１列から第ｑ列まであるものを意味する。マトリクスＡの第ｍ行第ｎ列の要素（成分とも称する）を、ａｍｎで表す。要素に着目するならば、ｐ×ｑ個の成分ａｍｎで構成されるマトリクスＡを（ａｍｎ）で表す。ここで、同じ行の要素つまりマトリクスにおける横方向の数値の和を考え、第１行目の要素の総和ａ１１＋ａ１２＋・・・＋ａ１ｑ＝Ｈ１、第２行目の要素の総和ａ２１＋ａ２２＋・・・＋ａ２ｑ＝Ｈ２、・・・、第ｐ行目の要素の総和ａｐ１＋ａｐ２＋・・・＋ａｐｑ＝Ｈｐとする。同様に、同じ列の要素つまり縦方向の数値の和を考え、第１列目の要素の総和ａ１１＋ａ２１＋・・・＋ａｐ１＝Ｖ１、第２列目の要素の総和ａ１２＋ａ２２＋・・・＋ａｐ２＝Ｖ２、・・・、第ｑ列目の要素の総和ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ＝Ｖｑとする。
【００５２】
以上の行列記号の意味を確認しておきたい。マトリクスがｐ行ｑ列であるというのは、ｐ種類のアイテムをｑ個の店舗に配分する問題を考察することを意味する。このマトリクスのｍ行ｎ列の要素ａｍｎは、ｍ番目のアイテムがｎ番目の店舗に配分される数を意味する。第１行目の要素の総和ａ１１＋ａ１２＋・・・＋ａ１ｑ＝Ｈ１とは、ｑ個の店舗に配分される１番目のアイテムの総数であり、第１列目の要素の総和ａ１１＋ａ２１＋・・・＋ａｐ１＝Ｖ１とは、１番目の店舗に配分されるｐ種類のアイテムの総数である。これらの記号を用いると、本発明は、在庫として存在しているアイテムのすべてを配分する場合には、マトリクスＡ＝（ａｍｎ）について、Ｈ１、Ｈ２、・・・、ＨｐとＶ１、Ｖ２、・・・、Ｖｑとが与えられた場合に、マトリクスＡのすべての非負整数成分ａｍｎを決定するシステム及び方法ということになる。
【００５３】
なお、既に簡単に触れたことであるが、本発明は、在庫として存在するアイテムの全体を各店舗に配分するだけではなく、在庫総数の一部だけを各店舗に配分する場合にも適用できる。１年分の在庫総数の中から１月に各店舗に配分する数量を決定する場合などがこの一部配分の例である。例えば、在庫が全部で１万点あるときに、その中の１千点だけを配分する場合である。このように在庫総数の一部だけを配分する場合には、それぞれのアイテムの在庫の中に、店舗に配分されない部分が存在することになる。つまり、第１番目のアイテムの在庫がＴ１であるとすると、Ｔ１の中で各店舗に配分されるのはＨ１だけであり、Ｔ１−Ｈ１（≠０）は配分されずに残る。第２番目のアイテムから第ｐ番目のアイテムについても同様である。このように配分されないアイテムが存在する場合も含むように定義し直すと、本発明は、マトリクスＡ＝（ａｍｎ）について、Ｔ１、Ｔ２、・・・、ＴｐとＶ１、Ｖ２、・・・、Ｖｑとが与えられた場合に、マトリクスＡのすべての非負整数成分ａｍｎを決定するシステム及び方法である。ただし、Ｔ１、Ｔ２、・・・、Ｔｐは、Ｔｍ≧Ｈｍ（ｍは１からｐまでの整数）を満たす非負整数である。
【００５４】
（１）初期処理：
（１−１）入力処理：
まず、初期処理として、入力処理を行う。入力処理とは、図１を参照して既に述べたように、計算の元データとなる数値を入力データとしてＸ軸及びＹ軸に入力することである。つまり、本発明によって各アイテムの各店舗への配分数を決定する前提となる所与の数値が入力される。上述の記号を用いると、第１番目のアイテムの在庫総数であるＴ１から第ｐ番目のアイテムの在庫総数であるＴｐまでを入力し、第１番目の店舗への投入指示数であるＶ１から第ｑ番目の店舗への投入指示数であるＶｑまでを入力する。ここで、店舗数が５０、在庫総数が２１６００点、アイテム数が１２の例が示されている図２３を参照すると、在庫総数として、Ｔ１＝３０００、Ｔ２＝２９００、・・・、Ｔ１２＝８００を入力し、投入指示数として、Ｖ１＝１２０、Ｖ２＝１２０、・・・、Ｖ５０＝６を入力することになる。図２３に示された表の左上に、矢印付きで在庫及び投入指示数として示されている通りである。
【００５５】
（１−２）構成比による按分：
次は、構成比による按分である。まず、各セルにおける数値の在庫合計に対する構成比を計算し、その比率を用いて在庫の全体を各セルに按分する。例えば、ａ１１つまり１号店へのアイテム１の投入指示数について考察する。ａ１１の場合には、（Ｘ軸構成比）＝（在庫総数の中での１号店への投入指示数の比率）＝（１号店への投入指示数）／（在庫総数）＝Ｖ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）、（Ｙ軸構成比）＝（在庫総数の中でのアイテム１の在庫数の比率）＝（アイテム１の在庫数）／（在庫総数）＝Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）であるから、セルａ１１の構成比は、これらの構成比の積を計算して、（Ｖ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））である。同様に、例えば、ａ１２の場合には、（Ｘ軸構成比）＝Ｖ２／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）、（Ｙ軸構成比）＝Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）であるから、セルａ１２の構成比は、（Ｖ２／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））である。従って、一般的には、アイテムｍをｎ号店に投入する数であるａｍｎの構成比は、（Ｘ軸構成比）＝Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）、（Ｙ軸構成比）＝Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）であるから、セルａｍｎの構成比は、（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））である。
【００５６】
このように計算したセル構成比を用いて、各セルに按分される数値を計算する。ａ１１の場合には、（在庫総数）×（セル構成比）＝（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）×（Ｖ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））＝Ｖ１・Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）となる。また、例えば、ａ１２の場合には、（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）×（Ｖ２／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））＝Ｖ２・Ｔ１／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）となる。従って、一般的に、構成比に応じてセルａｍｎに按分される数値は、Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）である。これらの計算を実行することにより、マトリクスのすべてのセルに按分されるべきアイテムの数量が確定する。
【００５７】
ただし、既に述べたように、本発明においてマトリクスの各セルに配分される数値は、アイテムの個数に相当するのであるから、非負である整数でなければならない。しかし、例えば、セルａｍｎに按分されるＶｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）は整数値をとるとは限らない。よって、小数点以下の数値の処理が必要になるのであるが、処理方法としては、少なくとも３つの選択肢がある。すなわち、切り上げ、四捨五入、切り捨ての３つである。もちろん、これら３つの選択肢以外に、特殊な処理をすることも可能であろう。しかし、これら３つ以外の処理（例えば、四捨五入を逆転させた四入五捨など）はそれほど一般的とは言えないので、ここでは考察しない。
【００５８】
以下の説明では、既に行った具体例でなされていたように、切り上げ処理の場合を考察する。代表的な処理として切り上げ処理を行う理由は、按分の段階ではどのセルにもゼロは配置されず、最小の場合でも１が配分されるようにするためである。本発明による配分がすべて終了した時点では結果的に０となるセルが生じるとしても、例えば洋品店の例で考えてみると、各店舗になるべくたくさんのアイテムが配分されるようにする、つまり、特定のサイズが配分されていないなどの欠番は可能な限り回避する、という実質的な理由に基づいている。しかし、例えば、多くの小規模な店舗において欠番が生じたとしても、集客力の大きな大規模な店舗に配分を集中化するというのであれば、四捨五入や切り捨ての方が適切である可能性がある。本発明では、アイテムの配分が実行される個別の状況において最適となるように、切り上げ、四捨五入、切り捨ての３つから、更には、これら以外の処理を選択することが可能である。
【００５９】
参考のため、図２４及び図２５に、四捨五入及び切り捨てを採用した場合の本発明による配分結果が示されている。
【００６０】
また、図２６には、本発明によるアイテム配分システムを用い、切り上げ処理を採用した場合に、１２種類のアイテムの在庫総数が２０００であり、この在庫総数のすべてを５０店舗に配分した結果が示されている。
【００６１】
（１−３）ランキング処理：
次は、ランキング処理である。本発明のランキング処理とは、後述するプロセスにおいて各セルの加算や減算処理を行なう際の順序を決定する処理を意味する。上述の具体例では、在庫数の大きい順、投入指示数の大きい順に順位を付し、同順位の場合は先に処理すべき順に順位を決定した。このように、降べき順のランキングを決定するのが通常であるが、実際の具体的事情に応じ、これ以外のランキング決定も可能である。
【００６２】
以上の処理によってマトリクスへの数値の一応の配分がなされたのであるが、小数点以下の処理（切り上げ、四捨五入、切り捨てなど）を行っているため、この段階では、水平方向に関するａ１１＋ａ１２＋・・・＋ａ１ｑ＝Ｈ１≦Ｔ１、ａ２１＋ａ２２＋・・・＋ａ２ｑ＝Ｈ２≦Ｔ２、・・・、ａｐ１＋ａｐ２＋・・・＋ａｐｑ＝Ｈｐ≦Ｔｐ、また、垂直方向に関するａ１１＋ａ２１＋・・・＋ａｐ１＝Ｖ１、ａ１２＋ａ２２＋・・・＋ａｐ２＝Ｖ２、・・・、ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑ＝Ｖｑという関係が必ずしも満たされていない。以下の処理では、個々のセルの数値を修正することにより、水平方向及び垂直方向の総和が当初の条件を満足するように処理を行う。
【００６３】
（２）基本調整：
まず、基本調整である。これまでの処理の結果では、すべてのセルにおいて小数点以下の切り上げ処理がなされているため、最小でも１が配分されており、その結果として、合計が入力値を上回る。これに該当する列または行について、ランキング順に入力値順位まではセルに１を配分し、その他は０を配分する調整を最初に行なう。
（２−１）投入指示数＜アイテム数である店舗の場合：
最初に、縦方向について、投入指示数＜アイテム数の場合を考察する。ここで考察しているマトリクスはｐ行ｑ列であることに注意したい。つまり、このマトリクスはｐ行を有しているのであるが、例えばｎ番目の列において、ｐ＞投入指示数Ｖｎという関係が成立する場合である。上述の理由により、この段階ではすべてのセルに最低でも１が配分されていることにより、この時点でのＶｎ（ｎ番目の列が有するｐ個のセルにおける数値の垂直方向の総和）が実際の投入指示数Ｖｎを超えた状態が生じる可能性がある。この場合には、在庫数ランキング順位が最上位のセルから順に投入指示数Ｖｎ番目のセルまでには１を配分し、投入指示数Ｖｎ＋１番目以降のセルには０を配分する。
【００６４】
（２−２）在庫数＜店舗数の場合：
横方向についても同様の処理を行うために、在庫数＜店舗数の場合を考察する。考察しているマトリクスはｑ列を有しているのであるが、例えばｍ番目の行において、ｑ＞在庫数Ｔｍという関係が成立する場合である。上述の理由により、すべてのセルに最低でも１が配分されていることにより、この時点でのＨｍ（ｍ番目の列が有するｑ個のセルにおける数値の水平方向の総和）が実際の在庫数Ｔｍを超えた状態が生じる可能性がある。この場合には、投入指示数ランキング順位が最上位のセルから順に在庫数Ｔｍ番目のセルまでには１を配分し、在庫数Ｔｍ＋１番目以降のセルには０を配分する。しかし、注意すべきは、（２−１）で「０」にしたセルには、調整した投入数を崩さないために「１」を入れないことである。
【００６５】
（３）投入指示数合わせ（加算）：
次に、当初に想定されていた投入指示数よりもこの段階までの計算結果として生じている数値の方が少ない列を特定し、その列の中のセルにおいて加算処理を行う。
【００６６】
例えばｎ番目の列において、以上の処理の結果である現在の店舗投入数（縦方向の総和Ｖｎ）が当初に設定された投入指示数（Ｖｎ）未満である場合には、そのｎ列に含まれるｐ個のセルにおいて、店舗投入数（縦方向の総和Ｖｎ）＝投入指示数Ｖｎとなるまで、先に設定されているランキング順に、１を加算する処理を行う。
【００６７】
ｎ番目の列についてこの加算処理が終了したら、別の列についても同様の処理を行う。
【００６８】
（４）過剰分の緩和：
以上の処理により、投入指示数に対し計算結果の店舗投入数が足りない店舗に加算処理をして数合わせが済んだ。次には、逆に投入が指示されている数量を超えて配分がなされている店舗に対して減算処理を行うのであるが、その前にセルの歯抜け緩和のための処理を行う。
【００６９】
この過剰分緩和処理は、既に述べたように、次の段階で減算処理を行う前段階の処理であり、マトリクス全体において０となるセルの数を最小化するための処理である。０となるセルの数を最小化するというのは、「各店舗においてなるべくたくさんのアイテムが配分される」すなわち「欠番が生じる店舗を可能な限り少なくする」ためである。
【００７０】
（５）投入指示数合わせ（減算）：
既に述べた（３）での加算処理とは逆に、投入指示数に対し計算結果の店舗投入数がオーバーしている店舗、換言すると、この時点までの処理により、当初の配分予定数を超えて、配分がなされているセルにおいて減算処理を行う。
【００７１】
例えばｎ番目の列において、以上の処理の結果である現在の店舗投入数（縦方向の総和Ｖｎ）が当初に設定された投入指示数（Ｖｎ）を超えている場合には、そのｎ列に含まれるｐ個のセルにおいて、店舗投入数（縦方向の総和Ｖｎ）＝投入指示数Ｖｎとなるまで、先に設定されているランキング順に、１を減算する処理を行う。
【００７２】
ｎ番目の列についてこの減算処理が終了したら、別の列についても同様の処理を行う。
【００７３】
（６）スワップ処理：
以上の処理により、すべての店舗について、配分されたアイテム総数が当初に設定された投入指示数と一致したので、Ｘ軸方向の数合わせが完了した。換言すると、Ｖ１からＶｑについては、当初予定された数値と現在の数値とが一致している。この関係を維持しながら、Ｔ１からＴｐについても当初予定された数値を現在の数値が超えないように、同一の列における２つのセルの間で、一方から１を減算し他方に１を加算するという方法のスワップ処理を行う。すなわち、一方のセルから他方のセルへ数値を１だけ移動させる。すべての行について現在のＨ１からＨｐの値が最初に設定したＴ１からＴｐの値と一致する、もしくはそれより小さくなるまで、先に決定されているランキングの順に、このスワップ処理を順に実行する。ここで、現在のＨ１からＨｐの値が最初に設定したＴ１からＴｐの値よりも小さくなる場合を含めているのは、上述したように、（在庫総数≧投入指示数の総数）という一般的な条件において、本発明による配分を考察しているからである。
【００７４】
３．ハードウェア：
本発明によるマトリクスの中の複数のセルへの数値の配分は、上述した各処理に対応するステップをコンピュータに実行させる命令セットから構成されるソフトウェアによって実現される。以下では、ソフトウェアによる情報処理がハードウェア資源をどのように用いて具体的に実現されるのか、また、ソフトウェアがハードウェア資源とどのように協働して本発明の所期の目的が達成されるのか、について説明する。
【００７５】
図２７は、本発明によるマトリクスの中の複数のセルへの数値配分を実行するソフトウェアが動作する典型的なコンピュータ・ハードウェアを図解するブロック図である。本発明が行う情報処理は、抽象的には、マトリクスの中の複数のセルへ数値を配分することであるが、より具体的には、複数種類が存在する複数のアイテム（例えば、衣料品）の複数の受取手段（例えば、店舗）への配分と表現することも可能である。本発明によるアイテム配分を実行するソフトウェアによって動作するコンピュータ１１の概要が図２７に示されている。コンピュータ１１は、バス１２を介して相互に接続されたプロセッサ１３とメモリ１４と記憶装置１５と出力インターフェース１６と入力インターフェース１７とから構成される。そして、出力インターフェース１６にはディスプレイ２０が接続され、入力インターフェース１７にはキーボード１８やマウス１９が接続されている。
【００７６】
本発明によるアイテム配分システムを構成するそれぞれの手段に所定の処理を実行させる命令セットから構成されるコンピュータ・プログラムは、記憶装置１５に記憶されている。本発明によるアイテム配分のための情報処理が実行される際には、所定の命令が、バス１２を介してメモリ１４に転送される。メモリ１４に読み出された命令は、プロセッサ１３によって解釈され実行される。このように、本発明によるアイテム配分システムを構成する初期条件設定手段と構成比計算手段と按分手段と調整手段とは、更に、調整手段に含まれるランキング処理手段と加算処理手段と過剰分緩和手段と減算処理手段とスワップ処理手段とは、プロセッサ１３がメモリ１４にロードされた命令を解釈して実行する機能として実現される。メモリ１４は、プロセッサ１３によって実行される命令を、その結果と共に保持する。プロセッサ１３は、メモリ１４からフェッチすることによって、本発明によるアイテム配分を構成するそれぞれの段階における処理を行う命令を実行する。プロセッサ１３は、パーソナル・コンピュータやワークステーションの場合にはマイクロプロセッサであり、専用のＡＳＩＣでもありうる。キーボード１８やマウス１９の入力装置と入力インターフェース１７とを介して、コンピュータ１１への入力がなされ、出力装置であるディスプレイ２０と出力インターフェース１６とを介して、コンピュータ１１からの出力がなされる。なお、図２７のコンピュータ１１は、スタンドアロンの単独のコンピュータとして図解されているが、ネットワークを構成する複数のコンピュータが別々に本発明を構成する特定の機能を担当することもありうる。そのような複数のコンピュータによってネットワークが構成されている場合については、この技術分野の当業者であれば必要な修正を容易に理解することができるので、詳細を述べることは割愛する。
【００７７】
本発明によるアイテム配分システムは、上述のように、記憶手段と、初期条件設定手段と、構成比計算手段と、按分手段と、調整手段と、を備えている。調整手段は、更に、ランキング処理手段と、基本調整手段と、加算処理手段と、過剰分緩和手段と、減算処理手段と、スワップ処理手段と、を含む。これらの手段が、本発明を構成するそれぞれのデータ処理を行う。図２７に示されているブロック図に即して考察すると、それぞれのデータ処理は、記憶装置１５に記憶されておりメモリ１４に読み出されプロセッサ１３によって解釈され所定の処理をコンピュータ１１に実行させる命令セットから構成されるソフトウェアによって実現される。
【００７８】
この技術分野の当業者であれば理解するように、上述の各手段によって実行されるそれぞれのデータ処理は、対応する命令で構成されるコンピュータ・プログラムによって、コンピュータ１１上で実行される。これらの手段は、図２７のプロセッサ１３の枠の中に記載されているように、そのようなコンピュータ・プログラムを実行するコンピュータ・ハードウェアの中に埋め込まれた形式で存在することが可能であるし、あるいは、様々なコンピュータ可読媒体に記憶されることもありうる。コンピュータ可読媒体は、特定の情報処理システムにおいて実際に用いる際には復号可能な符号化された形式を有する。この出願において、ソフトウェア又はコンピュータ・プログラムとは、情報処理能力を有するコンピュータ・ハードウェアに特定の機能を実行させる命令セットの任意のプログラミング言語による表現を意味する。
【００７９】
図２７に示されているのはあくまで一例であり、本発明は、図２７に図解されている特定のアーキテクチャに限定されることはない。本発明によるアイテム配分システムを構成する手段が組み入れられるハードウェアの構成は、個々の実装によって変動する。このように、本発明によるアイテム配分システム及び方法は、ハードウェアとソフトウェアとの組合せとして実現される。ハードウェアとソフトウェアとの典型的な組合せは、メモリにロードされプロセッサによって解釈され実行されるとコンピュータを制御して本発明を構成する手段及びステップを実行するコンピュータ・プログラムがインストールされたコンピュータ・システムである。
【００８０】
４．システムの動作について：
図２８には、本発明によるアイテム配分システムの動作の概略を示す流れ図が示されている。
【図面の簡単な説明】
【００８１】
【図１】コンピュータのディスプレイ上において、縦軸（Ｙ軸）に在庫を、横軸（Ｘ軸）に店舗をとったマトリクスの例である。この図１では、本発明による配分されるアイテム別の在庫数と配分される店舗別の投入指示数が入力されている。
【図２】構成比による按分計算をマトリクスのすべてのセルに対して行い、得られた数値をすべてのセルに配分した状態を示す図である。
【図３】ランキング処理の結果として得られた順位（ランキング）がＸ軸の上側及びＹ軸の左側に付された図である。
【図４】投入指示数がアイテム数よりも小さい場合に基本調整がなされた後の状態を示す図である。
【図５】在庫数が店舗数よりも小さい場合に基本調整がなされた後の状態を示す図である。
【図６】投入指示数合わせのための第１の加算処理がなされた後の状態を示す図である。
【図７】投入指示数合わせのための第２の加算処理がなされた後の状態を示す図である。
【図８】投入指示数合わせのための第３の加算処理がなされた後の状態を示す図である。
【図９】投入指示数合わせのための第４の加算処理がなされた後の状態を示す図である。
【図１０】投入指示数合わせのための第５の加算処理がなされた後の状態を示す図である。
【図１１】過剰分の緩和のための第１の減算処理がなされた後の状態を示す図である。
【図１２】過剰分の緩和のための第２の減算処理がなされた後の状態を示す図である。
【図１３】過剰分の緩和のための第３の減算処理がなされた後の状態を示す図である。
【図１４】投入指示数合わせのための第１の減算処理がなされた後の状態を示す図である。
【図１５】投入指示数合わせのための第２の減算処理がなされた後の状態を示す図である。
【図１６】アイテム間で第１のスワップ処理がなされた後の状態を示す図である。
【図１７】アイテム間で第２のスワップ処理がなされた後の状態を示す図である。
【図１８】アイテム間で第３のスワップ処理がなされた後の状態を示す図である。
【図１９】アイテム間で第４のスワップ処理がなされた後の状態を示す図である。
【図２０】アイテム間で第５のスワップ処理がなされた後の状態を示す図である。
【図２１】アイテム間で第６のスワップ処理がなされた後の状態を示す図である。
【図２２】必要なすべてのスワップ処理が終了し、本発明によるアイテム配分が完了した状態を示す図である。
【図２３】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に切り上げ処理を行った場合である。
【図２４】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に四捨五入処理を行った場合である。
【図２５】本発明により、在庫総数の全部ではなく一部だけを各店舗に配分した場合の配分結果である。ただし、構成比による按分の際に切り捨て処理を行った場合である。
【図２６】本発明によるアイテム配分システムを用い、切り上げ処理を採用した場合に、１２種類のアイテムの在庫総数が２０００であり、この在庫総数のすべてを５０店舗に配分した結果が示されている。
【図２７】本発明による数値配分を実現するコンピュータ・ハードウェアの概略を示すブロック図である。
【図２８】本発明によるアイテム配分の各段階を構成する情報処理を示す流れ図である。
【図２７】
2008276486.tif 000003
【図２８】
2008276486.tif 000004
【図１】
2008276486.tif 000005
【図２】
2008276486.tif 000006
【図３】
2008276486.tif 000007
【図４】
2008276486.tif 000008
【図５】
2008276486.tif 000009
【図６】
2008276486.tif 000010
【図７】
2008276486.tif 000011
【図８】
2008276486.tif 000012
【図９】
2008276486.tif 000013
【図１０】
2008276486.tif 000014
【図１１】
2008276486.tif 000015
【図１２】
2008276486.tif 000016
【図１３】
2008276486.tif 000017
【図１４】
2008276486.tif 000018
【図１５】
2008276486.tif 000019
【図１６】
2008276486.tif 000020
【図１７】
2008276486.tif 000021
【図１８】
2008276486.tif 000022
【図１９】
2008276486.tif 000023
【図２０】
2008276486.tif 000024
【図２１】
2008276486.tif 000025
【図２２】
2008276486.tif 000026
【図２３】
2008276486.tif 000027
【図２４】
2008276486.tif 000028
【図２５】
2008276486.tif 000029
【図２６】
2008276486.tif 000030
【手続補正書】
【提出日】平成19年9月4日(2007.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ｍを１からｐまでの正の整数、ｎを１からｑまでの正の整数として、第ｍ行第ｎ列の成分が第ｎの受取手段に配分された第ｍのアイテムの数量であることを意味するｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎをコンピュータを用いて決定することによって、第１のアイテムの総数Ｔ１から第ｐのアイテムの総数Ｔｐまで（Ｔ１〜Ｔｐ）と第１の受取手段が受け取るｐ種類のアイテムの総数Ｖ１から第ｑの受取手段が受け取るｐ種類のアイテムの総数Ｖｑまで（Ｖ１〜Ｖｑ）とが入力されると、第１から第ｐまでのｐ種類のアイテムのそれぞれの全部又は一部が第１から第ｑまでのｑ個の受取手段のそれぞれに配分される数量を自動的に計算して決定するアイテム配分システムであって、
入力手段を介して入力されたｐ種類のアイテムのそれぞれの総数Ｔ１ないしＴｐ及びｑ個の受取手段のそれぞれが受け取るｐ種類のアイテムの総数Ｖ１ないしＶｑを記憶し、更に、決定されるｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎと入力され記憶されたＴ１〜Ｔｐ及びＶ１〜Ｖｑとの間で成立する関係Ｔ１≧ａ１１＋ａ１２＋・・・＋ａ１ｑ，Ｔ２≧ａ２１＋ａ２２＋・・・＋ａ２ｑ，・・・，Ｔｐ≧ａｐ１＋ａｐ２＋・・・＋ａｐｑであり、Ｖ１＝ａ１１＋ａ２１＋・・・＋ａｐ１，Ｖ２＝ａ１２＋ａ２２＋・・・＋ａｐ２，・・・，Ｖｑ＝ａ１ｑ＋ａ２ｑ＋・・・＋ａｐｑを、決定されるｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎが満足すべき条件として記憶する記憶手段と、
前記記憶手段に記憶されているＴ１〜Ｔｐ及びＶ１〜Ｖｑを読み出し、初期条件として設定する初期条件設定手段と、
前記初期条件設定手段によって設定された初期条件を用いて、前記マトリクスの第ｍ行第ｎ列の成分ａｍｎに関し、水平方向の構成比Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）と、垂直方向の構成比Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）とを計算し、計算された水平方向の構成比と垂直方向の構成比との積である成分ａｍｎの構成比（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））を計算する構成比計算手段と、
各成分ａｍｎに関し、前記構成比計算手段によって計算された水平方向の構成比と垂直方向の構成比との積とアイテムの総数との積（Ｖｎ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））×（Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ））・（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）＝Ｖｎ・Ｔｍ／（Ｔ１＋Ｔ２＋・・・＋Ｔｐ）を計算して、計算の結果として得られる数値の小数点以下を切り上げ処理し、整数にした上で各成分ａｍｎに按分する按分手段と、
前記按分手段によって各成分ａｍｎに按分された数値において小数点以下を切り上げた結果を、前記記憶手段に記憶されているａｍｎが満足すべき条件を満たすように過剰分及び過小分として調整する調整手段と、
を備えており、前記調整手段は、
前記過剰分及び過小分を調整する順序を前記マトリクスの行及び列のそれぞれにおいて予め設定するランキング処理手段と、
前記記憶手段に記憶されているａｍｎが満足すべき条件を参照し、前記按分手段によって按分された各成分ａｍｎの各行及び各列の総和が前記初期条件を超える場合には、前記ランキング処理手段によって設定された順序に従い、前記初期条件の範囲までの各成分ａｍｎを１とし、前記総和を超える成分からは０とする基本調整手段と、
前記記憶手段に記憶されているａｍｎが満足すべき条件を参照し、垂直方向の成分の総和がＶｎ未満である列に含まれるｐ個の成分において、前記ランキング処理手段によって設定された順序に従い、Ｖｎと等しくなるまで各成分ａｍｎに１を加算する加算処理手段と、
前記記憶手段に記憶されているａｍｎが満足すべき条件を参照し、前記マトリクスの水平方向の成分の総和がＴｍを超えている行に含まれるｑ個の成分において、前記ランキング処理手段によって設定された順序に従い、各成分ａｍｎから１を減算する過剰分緩和手段と、
前記記憶手段に記憶されているａｍｎが満足すべき条件を参照し、垂直方向の成分の総和がＶｎを超えている列に含まれるｐ個の成分において、前記ランキング処理手段によって設定された順序に従い、Ｖｎと等しくなるまで各成分ａｍｎから１を減算し、すべての列における垂直成分の総和をＶｎと等しくする減算処理手段と、
前記記憶手段に記憶されているａｍｎが満足すべき条件を参照し、水平方向の成分の総和がＴｍを超えている第１の行と、水平方向の成分の総和がＴｍ未満である第２の行とを特定し、第１の行の成分から１を減算し第２の行の成分に１を加算する処理を、すべての行における水平方向の成分の総和がＴｍ以下となるまで継続するスワップ処理手段と、
を含み、よって、前記按分手段により各成分ａｍｎに按分された数値において小数点以下を切り上げた結果を、前記記憶手段に記憶されているａｍｎが満足すべき条件を満たすように調整し、前記ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎを最終的に決定することによって、入力されたＴ１〜Ｔｐ及びＶ１〜Ｖｑに応答して、ｑ個の受取手段のそれぞれに配分されるｐ種類のアイテムのそれぞれの全部又は一部であるアイテム数が、前記ｐ行ｑ列のマトリクス（ａｍｎ）のｐｑ個の非負整数成分ａｍｎとして出力手段に表示されることを特徴とするアイテム配分システム。
【請求項２】
コンピュータを請求項１に記載のアイテム配分システムに含まれる各手段として機能させるためのコンピュータ・プログラムが記憶されているコンピュータ可読な記憶媒体。
【請求項３】
コンピュータを請求項１に記載のアイテム配分システムに含まれる各手段として機能させるためのコンピュータ・プログラム。