(57)【特許請求の範囲】
【請求項１】
有価物群を構成する個々の有価物の金額を表す情報を含み記憶手段に記憶された有価物情報群に基づいて、前記有価物群から合計金額が上限値以下で有価物の組み合わせ数が最小又は最大となる有価物の組み合わせを求める有価物組み合わせ装置であって、
前記有価物情報群から組み合わせ対象の単一の有価物の情報を抽出し、有価物の組み合わせを表す要素として、有価物の特定の組み合わせにおける有価物の合計金額及を表す金額情報び有価物の組み合せ数を表す組み合わせ数情報を含む情報を複数登録可能なテーブルに前記要素が未登録か否かを判断すると共に、前記テーブルに前記要素が登録されている場合は、前記テーブルに登録されている前記要素の中に、前記合計金額が前記有価物情報群から抽出した情報が表す組み合わせ対象の単一の有価物の金額と同一又は差が所定値以下の同額要素が存在しているか否を更に判断し、前記テーブルに前記要素が未登録の場合、及び、前記テーブルに登録されている前記要素の中に前記同額要素が存在していない場合には、前記合計金額情報として前記組み合わせ対象の単一の有価物の金額を、前記組み合せ数情報として１を各々設定した前記組み合わせ対象の単一の有価物の情報を、前記テーブルの要素として前記テーブルに登録し、前記テーブルに登録されている要素の中に前記同額要素が存在しているときには、前記組み合わせ対象の単一の有価物における有価物の組み合わせ数を１とし、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を行う第１のテーブル操作手段と、
前記テーブルに前記要素が既に登録されている場合に、既登録の特定要素が表す有価物の組み合わせに前記組み合わせ対象の単一の有価物を更に加えた組み合わせを表す仮想要素における有価物の合計金額を演算し、前記テーブルに登録されている前記要素の中に、合計金額が前記演算した合計金額と同一又は差が所定値以下の同額要素が存在しているか否か判断し、前記テーブルに登録されている前記要素の中に前記同額要素が存在していないときには、前記仮想要素の情報を前記テーブルの要素として登録し、前記同額要素が存在しているときには、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を、前記テーブルに既に登録されている各要素を前記特定要素として各々行う第２のテーブル操作手段と、
前記第１及び第２のテーブル操作手段による処理を、前記有価物情報群から金額の降順又は昇順に有価物の情報を１つずつ取り出しながら繰り返させる制御手段と、
前記テーブルの全要素の中から合計金額が上限値以下で最大かつ組み合わせ数が最小又は最大の最適要素を抽出し、有価物の最適な組み合わせとして、抽出した最適要素に対応する有価物の組み合わせを出力する出力手段と、
を備えたことを特徴とする有価物組み合わせ装置。
【請求項２】
前記テーブルには、合計金額の上限値以下の金額範囲を複数に分割したときの各々の金額範囲に対応する複数のクラスが設けられ、個々のクラスには、対応する金額範囲の上限値以下の合計金額の要素のみが登録可能とされており、
前記第１及び第２のテーブル操作手段は、前記有価物情報群より抽出された組み合わせ対象の単一の有価物又は前記仮想要素について、登録可能なクラスに既登録の要素が有るか否かを判定し、前記既登録の要素が存在しない場合には前記組み合わせ対象の単一の有価物の情報又は前記仮想要素を前記クラスの要素として登録し、前記既登録の要素が存在している場合には、前記組み合わせ対象の単一の有価物の金額又は前記仮想要素の合計金額と前記既登録の要素の合計金額のうちの大きい方の金額に対応する情報を前記テーブルの前記クラスの要素として登録することを、前記組み合わせ対象の単一の有価物又は前記仮想要素を登録可能な全てのクラスに対して各々行うことを特徴とする請求項１記載の有価物組み合わせ装置。
【請求項３】
前記第１及び第２のテーブル操作手段は、前記組み合わせ対象の単一の有価物又は前記仮想要素が登録可能なクラスに存在している既登録の要素の合計金額が、前記組み合わせ対象の単一の有価物の金額又は前記仮想要素の合計金額と同一又は差が所定値以下である場合に、該要素を前記同額要素とし、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物又は前記仮想要素と前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの前記クラスの要素として登録し、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物又は前記仮想要素と前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの前記クラスの要素として登録することを特徴とする請求項２記載の有価物組み合わせ装置。
【請求項４】
前記第１及び第２のテーブル操作手段は、前記組み合わせ対象の単一の有価物の金額又は前記仮想要素の合計金額を、前記テーブルに既に登録されている要素に付加されている金額情報が表す合計金額と比較することで、前記同額要素が存在しているか否かを判定することを特徴とする請求項１乃至請求項３の何れか１項記載の有価物組み合わせ装置。
【請求項５】
前記第１及び第２のテーブル操作手段は、前記組み合わせ対象の単一の有価物又は前記仮想要素における有価物の組み合わせ数を、前記同額要素に付加されている組み合わせ数情報が表す組み合わせ数と比較することで、前記有価物の組み合わせ数の大小関係を判断することを特徴とする請求項１乃至請求項３の何れか１項記載の有価物組み合わせ装置。
【請求項６】
前記有価物組み合わせ装置は、合計金額が上限値以下で有価物の組み合わせ数が最小となる有価物の組み合わせを求める装置であり、
前記第１及び第２のテーブル操作手段は、前記同額要素が存在しているときに、前記同額要素における有価物の組み合わせ数が、前記組み合わせ対象の単一の有価物又は前記仮想要素における有価物の組み合わせ数以下の場合には、前記組み合わせ対象の単一の有価物又は前記仮想要素と前記同額要素のうち前記同額要素のみを前記テーブルの要素とし、前記組み合わせ対象の単一の有価物又は前記仮想要素における有価物の組み合わせ数が、前記同額要素における有価物の組み合わせ数よりも少ない場合には、前記同額要素に代えて前記組み合わせ対象の単一の有価物又は前記仮想要素の情報を前記テーブルの要素とし、
前記出力手段は、前記最適要素として、前記テーブルの全要素の中から合計金額が上限値以下で最大かつ組み合わせ数が最小の要素を抽出することを特徴とする請求項１乃至請求項３の何れか１項記載の有価物組み合わせ装置。
【請求項７】
前記第１及び第２のテーブル操作手段は、前記テーブルに登録する要素に、前記最後に組み合わせた有価物を表す有価物識別情報を付加すると共に、前記テーブルに存在している前記同額要素が、前記同額要素に他の有価物を更に加えた組み合わせを表す子要素が前記テーブルに存在している要素である場合には、前記組み合わせ対象の単一の有価物又は前記仮想要素と前記同額要素のうち前記組み合わせ対象の単一の有価物又は前記仮想要素を前記テーブルの要素とするときにも、前記同額要素を前記テーブルから削除せずに残し、
前記出力手段は、前記テーブルから抽出した前記最適要素に付加されている有価物識別情報に基づき、前記最適要素が表す有価物の組み合わせにおいて最後に組み合わせた有価物を判断し記憶すると共に、前記最適要素の基となった親要素を判断して前記テーブルから抽出することを繰り返すことで、抽出した最適要素に対応する有価物の組み合わせを判断することを特徴とする請求項１乃至請求項３の何れか１項記載の有価物組み合わせ装置。
【請求項８】
前記第２のテーブル操作手段は、特定要素が表す有価物の組み合わせに組み合わせ対象の有価物を更に加えた組み合わせを表す仮想要素を前記テーブルに登録する際に、前記仮想要素の基となった親要素としての前記特定要素を、子要素が存在している要素として記憶しておくことで、前記同額要素が、前記子要素が存在している要素であるか否か判断することを特徴とする請求項７記載の有価物組み合わせ装置。
【請求項９】
前記制御手段は、金額が上限値以下の有価物の情報のみを前記有価物情報群から取り出し、
前記第２のテーブル操作手段は、合計金額が上限値を越える仮想要素の情報を前記テーブルへの登録対象から除外することを特徴とする請求項１乃至請求項３の何れか１項記載の有価物組み合わせ装置。
【請求項１０】
前記有価物は商業手形であり、前記出力手段によって出力された組み合わせに従って組み合わされた商業手形群は、有担保コール取引における担保として用いられることを特徴とする請求項１乃至請求項３の何れか１項記載の有価物組み合わせ装置。
【請求項１１】
コンピュータを、有価物群を構成する個々の有価物の金額を表す情報を含み記憶手段に記憶された有価物情報群に基づいて、前記有価物群から合計金額が上限値以下で有価物の組み合わせ数が最小又は最大となる有価物の組み合わせを求める有価物組み合わせ装置として機能させるためのプログラムであって、
前記コンピュータを、
前記有価物情報群から組み合わせ対象の単一の有価物の情報を抽出し、有価物の組み合わせを表す要素として、有価物の特定の組み合わせにおける有価物の合計金額及を表す金額情報び有価物の組み合せ数を表す組み合わせ数情報を含む情報を複数登録可能なテーブルに前記要素が未登録か否かを判断すると共に、前記テーブルに前記要素が登録されている場合は、前記テーブルに登録されている前記要素の中に、前記合計金額が前記有価物情報群から抽出した情報が表す組み合わせ対象の単一の有価物の金額と同一又は差が所定値以下の同額要素が存在しているか否を更に判断し、前記テーブルに前記要素が未登録の場合、及び、前記テーブルに登録されている前記要素の中に前記同額要素が存在していない場合には、前記合計金額情報として前記組み合わせ対象の単一の有価物の金額を、前記組み合せ数情報として１を各々設定した前記組み合わせ対象の単一の有価物の情報を、前記テーブルの要素として前記テーブルに登録し、前記テーブルに登録されている要素の中に前記同額要素が存在しているときには、前記組み合わせ対象の単一の有価物における有価物の組み合わせ数を１とし、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を行う第１のテーブル操作手段、
前記テーブルに前記要素が既に登録されている場合に、既登録の特定要素が表す有価物の組み合わせに前記組み合わせ対象の単一の有価物を更に加えた組み合わせを表す仮想要素における有価物の合計金額を演算し、前記テーブルに登録されている前記要素の中に、合計金額が前記演算した合計金額と同一又は差が所定値以下の同額要素が存在しているか否か判断し、前記テーブルに登録されている前記要素の中に前記同額要素が存在していないときには、前記仮想要素の情報を前記テーブルの要素として登録し、前記同額要素が存在しているときには、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を、前記テーブルに既に登録されている各要素を前記特定要素として各々行う第２のテーブル操作手段、
前記第１及び第２のテーブル操作手段による処理を、前記有価物情報群から金額の降順又は昇順に有価物の情報を１つずつ取り出しながら繰り返させる制御手段、
及び、前記テーブルの全要素の中から合計金額が上限値以下で最大かつ組み合わせ数が最小又は最大の最適要素を抽出し、有価物の最適な組み合わせとして、抽出した最適要素に対応する有価物の組み合わせを出力する出力手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は有価物組み合わせ装置及びプログラムに係り、特に、複数の有価物を含む有価物群から、合計金額が上限値以下で有価物の組み合わせ数が最小又は最大となる有価物の組み合わせを求める有価物組み合わせ装置、及び、コンピュータを前記有価物組み合わせ装置として機能させるためのプログラムに関する。
【０００２】
【従来の技術】
銀行等の金融機関では日々の資金の過不足をコール取引によって最終的に調整している。コール取引は、短資会社を介して金融機関同士がごく短期（原則として１ヶ月未満）の資金の貸借を行う取引であり、特に、担保付のコール取引である有担保コール取引は安全性が高く、頻繁に実施されている。有担保コール取引における担保としては、例えば国債が用いられるが、金融機関が保有している多数の商業手形の中から適当な商業手形を選択・組み合わせて担保として用いることも多い。
【０００３】
有担保コール取引の担保として用いるための商業手形を選択して組み合わせる作業は、現在、人手で行っているのが実情であるが、有担保コール取引の担保として用いる商業手形の組み合わせに対しては、
(1)合計金額が必要な担保金額にほぼ等しいこと
(2)組み合わせる商業手形の数がなるべく少ないこと
等の条件があり、場合によっては、
(3)組み合わせる商業手形の期日がなるべく先の日付であること
等の条件も加わるため、有担保コール取引の担保として用いることを目的として、金融機関が保有している多数（例えば数百〜数千件程度）の商業手形の中から適当な商業手形を選択・組み合わせることは、熟練と経験を要しかつ長い時間がかかる煩雑な作業であった。
【０００４】
上記のように、複数の条件を満足する商業手形の組み合わせを求めることは、組み合わせ最適化問題（膨大な数の組み合わせの中から与えられた条件を満足する最適な組み合わせを求める問題）に類似しており、組み合わせ最適化問題の解法については従来より種々のアルゴリズムが提案されている（例えば特許文献１や特許文献２等を参照）。
【０００５】
【特許文献１】
特開平８−５０５７１号公報
【特許文献１】
特開平１１−２１２９４８号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、有担保コール取引の担保として利用可能な商業手形の組み合わせを、組み合わせ最適化問題を解くためのアルゴリズムを適用して求めたとしても、条件を満足する商業手形の組み合わせを得るまでに時間がかかるという問題がある。すなわち、有担保コール取引は相手先との約定から決済が極短時間（例えば数十分程度）で行われる取引であるため、処理の迅速性に対する要求水準が極めて高い。このため、有担保コール取引の担保として利用可能な商業手形の組み合わせを非常に短い時間（例えば数秒〜数分程度）で導出できる技術の確立が求められていた。
【０００７】
本発明は上記事実を考慮して成されたもので、条件を満足する有価物の適切な組み合わせを短時間で求めることができる有価物組み合わせ装置及びプログラムを得ることが目的である。
【０００８】
【課題を解決するための手段】
組み合わせ最適化問題を解くためのアルゴリズムは最適解を求めることが最優先であり、最適解を求めるためには考え得る全ての組み合わせを評価する必要があるため、何れのアルゴリズムを適用したとしても、組み合わせを求める対象物の数が多くなるに従って処理時間は指数関数的に増大する。これに対し、金融機関等で行われている商業手形等の有価物の組み合わせを求める作業は、前述のように迅速性が強く要求される一方で、求めた解（有価物の組み合わせ）は最適解であることが望ましいものの、求めた解が近似解であっても、必要に応じて人手により修正を加えることで業務上支障のないことが殆どである。本願発明者は上記事実に着目して本発明を成すに至った。
【０００９】
上記に基づき請求項１記載の発明に係る有価物組み合わせ装置は、有価物群を構成する個々の有価物の金額を表す情報を含み記憶手段に記憶された有価物情報群に基づいて、前記有価物群から合計金額が上限値以下で有価物の組み合わせ数が最小又は最大となる有価物の組み合わせを求める有価物組み合わせ装置であって、前記有価物情報群から組み合わせ対象の単一の有価物の情報を抽出し、有価物の組み合わせを表す要素として、有価物の特定の組み合わせにおける有価物の合計金額及を表す金額情報び有価物の組み合せ数を表す組み合わせ数情報を含む情報を複数登録可能なテーブルに前記要素が未登録か否かを判断すると共に、前記テーブルに前記要素が登録されている場合は、前記テーブルに登録されている前記要素の中に、前記合計金額が前記有価物情報群から抽出した情報が表す組み合わせ対象の単一の有価物の金額と同一又は差が所定値以下の同額要素が存在しているか否を更に判断し、前記テーブルに前記要素が未登録の場合、及び、前記テーブルに登録されている前記要素の中に前記同額要素が存在していない場合には、前記合計金額情報として前記組み合わせ対象の単一の有価物の金額を、前記組み合せ数情報として１を各々設定した前記組み合わせ対象の単一の有価物の情報を、前記テーブルの要素として前記テーブルに登録し、前記テーブルに登録されている要素の中に前記同額要素が存在しているときには、前記組み合わせ対象の単一の有価物における有価物の組み合わせ数を１とし、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を行う第１のテーブル操作手段と、前記テーブルに前記要素が既に登録されている場合に、既登録の特定要素が表す有価物の組み合わせに前記組み合わせ対象の単一の有価物を更に加えた組み合わせを表す仮想要素における有価物の合計金額を演算し、前記テーブルに登録されている前記要素の中に、合計金額が前記演算した合計金額と同一又は差が所定値以下の同額要素が存在しているか否か判断し、前記テーブルに登録されている前記要素の中に前記同額要素が存在していないときには、前記仮想要素の情報を前記テーブルの要素として登録し、前記同額要素が存在しているときには、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を、前記テーブルに既に登録されている各要素を前記特定要素として各々行う第２のテーブル操作手段と、前記第１及び第２のテーブル操作手段による処理を、前記有価物情報群から金額の降順又は昇順に有価物の情報を１つずつ取り出しながら繰り返させる制御手段と、前記テーブルの全要素の中から合計金額が上限値以下で最大かつ組み合わせ数が最小又は最大の最適要素を抽出し、有価物の最適な組み合わせとして、抽出した最適要素に対応する有価物の組み合わせを出力する出力手段と、を備えたことを特徴としている。
【００１０】
請求項１記載の発明では、有価物の組み合わせに対する条件として「合計金額が上限値以下で有価物の組み合わせ数が最小又は最大」が与えられている。請求項１記載の発明に係る第１のテーブル操作手段は、有価物情報群から組み合わせ対象の単一の有価物の情報を抽出し、有価物の組み合わせを表す要素として、有価物の特定の組み合わせにおける有価物の合計金額及を表す金額情報び有価物の組み合せ数を表す組み合わせ数情報を含む情報を複数登録可能なテーブルに前記要素が未登録か否かを判断すると共に、テーブルに要素が登録されている場合は、テーブルに登録されている要素の中に、合計金額が有価物情報群から抽出した情報が表す組み合わせ対象の単一の有価物の金額と同一又は差が所定値以下の同額要素が存在しているか否を更に判断する。そして、テーブルに前記要素が未登録の場合、及び、テーブルに登録されている要素の中に同額要素が存在していない場合には、合計金額として組み合わせ対象の単一の有価物の金額を、前記有価物の組み合せ数として１を各々設定した前記組み合わせ対象の単一の有価物の情報を、テーブルの要素としてテーブルに登録し、テーブルに登録されている要素の中に同額要素が存在しているときには、組み合わせ対象の単一の有価物における有価物の組み合わせ数を１とし、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、組み合わせ対象の単一の有価物及び同額要素のうち有価物の組み合わせ数がより小さい方の情報をテーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、組み合わせ対象の単一の有価物及び同額要素のうち有価物の組み合わせ数がより大きい方の情報をテーブルの要素とする処理を行う。
【００１１】
また、請求項１記載の発明に係る第２のテーブル操作手段は、テーブルに要素が既に登録されている場合に、既登録の特定要素が表す有価物の組み合わせに組み合わせ対象の単一の有価物を更に加えた組み合わせを表す仮想要素における有価物の合計金額を演算し、テーブルに登録されている要素の中に、合計金額が前記演算した合計金額と同一又は差が所定値以下の同額要素が存在しているか否か判断する。そして、テーブルに登録されている要素の中に前記同額要素が存在していないときには、仮想要素の情報をテーブルの要素として登録し、同額要素が存在しているときには、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、仮想要素及び同額要素のうち有価物の組み合わせ数がより小さい方の情報をテーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、仮想要素及び同額要素のうち有価物の組み合わせ数がより大きい方の情報をテーブルの要素とする処理を、テーブルに既に登録されている各要素を特定要素として各々行う
【００１２】
そして請求項１記載の発明に係る制御手段は、第１及び第２のテーブル操作手段による処理を、有価物情報群から金額の降順（条件が「組み合わせ数：最小」の場合）又は昇順（条件が「組み合わせ数：最大」の場合）に有価物の情報を１つずつ取り出しながら繰り返させ、請求項１記載の発明に係る出力手段は、テーブルの全要素の中から合計金額が上限値以下で最大かつ組み合わせ数が最小又は最大の最適要素を抽出し、有価物の最適な組み合わせとして、抽出した最適要素に対応する有価物の組み合わせを出力する。
【００１３】
請求項１記載の発明において、テーブルに登録される情報は、解となり得る有価物の組み合わせを表す要素の集合であり、有価物の組み合わせの最適解を求めるのであれば有価物の全ての組み合わせに対応する要素を登録する必要があるが、第１及び第２のテーブル操作手段では、上述したように、解に大きな影響を及ぼさないと推定される冗長な要素の対（金額（合計金額）が同一又は略同一である組み合わせ対象の有価物と同額要素、合計金額が同一又は略同一である仮想要素と同額要素）の一方をテーブルから除外しているので、有価物群を構成する有価物の数に比してテーブルに登録される要素の数（処理対象とする有価物の組み合わせの数）を抑制することができ、特に有価物群が多数の有価物で構成されている場合に、有価物群を構成する有価物の数の増大に伴って、処理対象とする有価物の組み合わせの数が指数関数的に増大することを顕著に抑制することができる。
【００１４】
従って、請求項１記載の発明によれば、条件（合計金額が上限値以下で有価物の組み合わせ数が最小又は最大）を満足する有価物の適切な組み合わせを短時間で求めることができる。
【００１５】
請求項２記載の発明は、請求項１記載の発明において、前記テーブルには、合計金額の上限値以下の金額範囲を複数に分割したときの各々の金額範囲に対応する複数のクラスが設けられ、個々のクラスには、対応する金額範囲の上限値以下の合計金額の要素のみが登録可能とされており、前記第１及び第２のテーブル操作手段は、前記有価物情報群より抽出された組み合わせ対象の単一の有価物又は前記仮想要素について、登録可能なクラスに既登録の要素が有るか否かを判定し、前記既登録の要素が存在しない場合には前記組み合わせ対象の単一の有価物の情報又は前記仮想要素を前記クラスの要素として登録し、前記既登録の要素が存在している場合には、前記組み合わせ対象の単一の有価物の金額又は前記仮想要素の合計金額と前記既登録の要素の合計金額のうちの大きい方の金額に対応する情報をテーブルの前記クラスの要素として登録することを、組み合わせ対象の単一の有価物又は仮想要素を登録可能な全てのクラスに対して各々行うことを特徴としている。
【００１６】
請求項２記載の発明では、テーブルに、合計金額の上限値以下の金額範囲を複数に分割したときの各々の金額範囲に対応する複数のクラスが設けられており、個々のクラスには、対応する金額範囲の上限値以下の合計金額の要素のみが登録可能とされている。
【００１７】
また、請求項２記載の発明に係る第１及び第２のテーブル操作手段は、有価物情報群より抽出された組み合わせ対象の単一の有価物又は仮想要素について、登録可能なクラスに既登録の要素が有るか否かを判定し、既登録の要素が存在しない場合には組み合わせ対象の単一の有価物の情報又は仮想要素を前記クラスの要素として登録する。一方、登録可能なクラスに既登録の要素が存在している場合には、組み合わせ対象の単一の有価物の金額又は仮想要素の合計金額と既登録の要素の合計金額のうちの大きい方の金額に対応する情報をテーブルの前記クラスの要素として登録する。そして、請求項２記載の発明に係る第１及び第２のテーブル操作手段は、上記の処理を、組み合わせ対象の単一の有価物又は仮想要素を登録可能な全てのクラスに対して各々行う。
【００１８】
これにより、テーブルに登録される要素が、各クラス毎に単一の要素に制限される（後述する請求項７記載の発明を適用したとしても、各クラス毎にごく少数の要素に制限される）ので、請求項２記載の発明によれば、条件を満足する有価物の適切な組み合わせをより短時間で求めることができる。
【００１９】
なお、請求項２記載の発明において、組み合わせ対象の単一の有価物又は仮想要素が登録可能なクラスに存在している既登録の要素の合計金額が、組み合わせ対象の単一の有価物の金額又は仮想要素の合計金額と同一又は差が所定値以下である場合には、第１及び第２のテーブル操作手段は、例えば請求項３に記載したように、前記既登録の要素を同額要素とし、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、組み合わせ対象の単一の有価物又は仮想要素と同額要素のうち有価物の組み合わせ数がより小さい方の情報をテーブルの前記クラスの要素として登録し、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、組み合わせ対象の単一の有価物又は仮想要素と同額要素のうち有価物の組み合わせ数がより大きい方の情報をテーブルの前記クラスの要素として登録するようにすればよい。
【００２０】
また、請求項１乃至請求項３の何れかに記載の発明において、第１及び第２のテーブル操作手段は、例えば請求項４に記載したように、組み合わせ対象の単一の有価物の金額又は仮想要素の合計金額を、テーブルに既に登録されている要素に付加されている金額情報が表す合計金額と比較することで、同額要素が存在しているか否かを判定することが好ましい。
【００２１】
テーブルに登録する要素には、該要素が表す有価物の組み合わせにおける個々の有価物の金額を情報として付加することも可能であるが、上記のように、テーブルに登録する要素に付加した金額情報を利用することで、仮想要素の合計金額の演算及び同額要素が存在しているか否かの判定を短時間で行うことができる。
【００２２】
また、請求項１乃至請求項３の何れかに記載の発明において、第１及び第２のテーブル操作手段は、例えば請求項５に記載したように、組み合わせ対象の単一の有価物又は仮想要素における有価物の組み合わせ数を、同額要素に付加されている組み合わせ数情報が表す組み合わせ数と比較することで、有価物の組み合わせ数の大小関係を判断することが好ましい。
【００２３】
テーブルに登録する要素には、該要素が表す有価物の組み合わせにおける個々の有価物を特定する情報を付加することも可能であるが、上記のように、テーブルに登録する要素に付加した組み合わせ数情報を利用することで、仮想要素における有価物の組み合わせ数の演算及び有価物の組み合わせ数の大小関係の判断を短時間で行うことができる。
【００２４】
また、請求項１乃至請求項３の何れかに記載の発明において、合計金額が上限値以下で有価物の組み合わせ数が最小となる有価物の組み合わせを求めることは、例えば請求項６に記載したように、第１及び第２のテーブル操作手段を、同額要素が存在しているときに、同額要素における有価物の組み合わせ数が、組み合わせ対象の単一の有価物又は仮想要素における有価物の組み合わせ数以下の場合には、組み合わせ対象の単一の有価物又は仮想要素と同額要素のうち同額要素のみをテーブルの要素とし、組み合わせ対象の単一の有価物又は仮想要素における有価物の組み合わせ数が、同額要素における有価物の組み合わせ数よりも少ない場合には、同額要素に代えて組み合わせ対象の単一の有価物又は仮想要素の情報をテーブルの要素とするように構成すると共に、出力手段を、最適要素として、テーブルの全要素の中から合計金額が上限値以下で最大かつ組み合わせ数が最小の要素を抽出するように構成することで実現できる。
【００２５】
また、請求項１乃至請求項３の何れかに記載の発明において、テーブルに登録する要素には、該要素が表す有価物の組み合わせにおける個々の有価物を特定する情報を付加してもよいが、例えば請求項７に記載したように、第１及び第２のテーブル操作手段が、テーブルに登録する要素に、最後に組み合わせた有価物を表す有価物識別情報を付加する。この場合、出力手段は、例えば請求項７に記載したように、テーブルから抽出した最適要素に付加されている有価物識別情報に基づき、最適要素が表す有価物の組み合わせにおいて最後に組み合わせた有価物を判断し記憶すると共に、最適要素の基となった親要素を判断してテーブルから抽出することを繰り返すことで、抽出した最適要素に対応する有価物の組み合わせを判断することができる。
【００２６】
但し、この態様では他の要素（子要素）の基となった親要素がテーブルに登録されている必要がある。これは、請求項７に記載したように、第１及び第２のテーブル操作手段が、テーブルに存在している同額要素が、同額要素に他の有価物を更に加えた組み合わせを表す子要素がテーブルに存在している要素である場合には、組み合わせ対象の単一の有価物又は仮想要素と同額要素のうち組み合わせ対象の単一の有価物又は仮想要素をテーブルの要素とするときにも、同額要素をテーブルから削除せずに残すことで実現できる。
【００２７】
請求項７記載の発明は、処理が若干複雑になるという欠点があるものの、テーブルに登録する個々の要素に付加する情報量が抑制されるので、テーブルを記憶するための記憶容量を小さくすることができる。
【００２８】
なお、請求項７記載の発明において、同額要素が子要素が存在している要素であるか否かを判断することは、例えば請求項８に記載したように、第２のテーブル操作手段が、特定要素が表す有価物の組み合わせに組み合わせ対象の有価物を更に加えた組み合わせを表す仮想要素をテーブルに登録する際に、仮想要素の基となった親要素としての特定要素を、子要素が存在している要素として記憶しておくことで実現することができる。
【００２９】
また、請求項１乃至請求項３の何れかに記載の発明において、制御手段は、例えば請求項９に記載したように、金額が上限値以下の有価物の情報のみを有価物情報群から取り出し、第２のテーブル操作手段は、合計金額が上限値を越える仮想要素をテーブルへの登録対象から除外することが好ましい。これにより、処理対象とする有価物の数及びテーブルに登録される要素の数を更に絞り込むことができ、処理時間を更に短縮することができる。
【００３０】
また、請求項１乃至請求項３の何れかに記載の発明における有価物としては、例えば請求項１０に記載の商業手形を適用することができる。この場合、出力手段によって出力された組み合わせに従って組み合わされた商業手形群は、例えば有担保コール取引における担保として用いることができる。なお、上記の有価物は融通手形であってもよい。また本発明は、例えば証券化における原資産プール、流動集合動産担保（在庫担保、債権担保）およびクレジット・デリバティブにおける信用リスク移転対象資産（プロテクションの対象）の組成等、証券化を目的として資産の組み合わせを求める場合や、集合動産担保として扱う物件の組み合わせを求め場合にも適用可能であることは言うまでもない。
【００３１】
請求項１１記載の発明に係るプログラムは、コンピュータを、有価物群を構成する個々の有価物の金額を表す情報を含み記憶手段に記憶された有価物情報群に基づいて、前記有価物群から合計金額が上限値以下で有価物の組み合わせ数が最小又は最大となる有価物の組み合わせを求める有価物組み合わせ装置として機能させるためのプログラムであって、前記コンピュータを、前記有価物情報群から組み合わせ対象の単一の有価物の情報を抽出し、有価物の組み合わせを表す要素として、有価物の特定の組み合わせにおける有価物の合計金額及を表す金額情報び有価物の組み合せ数を表す組み合わせ数情報を含む情報を複数登録可能なテーブルに前記要素が未登録か否かを判断すると共に、前記テーブルに前記要素が登録されている場合は、前記テーブルに登録されている前記要素の中に、前記合計金額が前記有価物情報群から抽出した情報が表す組み合わせ対象の単一の有価物の金額と同一又は差が所定値以下の同額要素が存在しているか否を更に判断し、前記テーブルに前記要素が未登録の場合、及び、前記テーブルに登録されている前記要素の中に前記同額要素が存在していない場合には、前記合計金額情報として前記組み合わせ対象の単一の有価物の金額を、前記組み合せ数情報として１を各々設定した前記組み合わせ対象の単一の有価物の情報を、前記テーブルの要素として前記テーブルに登録し、前記テーブルに登録されている要素の中に前記同額要素が存在しているときには、前記組み合わせ対象の単一の有価物における有価物の組み合わせ数を１とし、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記組み合わせ対象の単一の有価物及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を行う第１のテーブル操作手段と、前記テーブルに前記要素が既に登録されている場合に、既登録の特定要素が表す有価物の組み合わせに前記組み合わせ対象の単一の有価物を更に加えた組み合わせを表す仮想要素における有価物の合計金額を演算し、前記テーブルに登録されている前記要素の中に、合計金額が前記演算した合計金額と同一又は差が所定値以下の同額要素が存在しているか否か判断し、前記テーブルに登録されている前記要素の中に前記同額要素が存在していないときには、前記仮想要素の情報を前記テーブルの要素として登録し、前記同額要素が存在しているときには、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより小さい方の情報を前記テーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、前記仮想要素及び前記同額要素のうち有価物の組み合わせ数がより大きい方の情報を前記テーブルの要素とする処理を、前記テーブルに既に登録されている各要素を前記特定要素として各々行う第２のテーブル操作手段、前記第１及び第２のテーブル操作手段による処理を、前記有価物情報群から金額の降順又は昇順に有価物の情報を１つずつ取り出しながら繰り返させる制御手段、及び、前記テーブルの全要素の中から合計金額が上限値以下で最大かつ組み合わせ数が最小又は最大の最適要素を抽出し、有価物の最適な組み合わせとして、抽出した最適要素に対応する有価物の組み合わせを出力する出力手段として機能させることを特徴としている。
【００３２】
請求項１１記載の発明に係るプログラムは、コンピュータを、第１のテーブル操作手段、第２のテーブル操作手段、制御手段及び出力手段として機能させるためのプログラムであるので、コンピュータが請求項１１記載の発明に係るプログラムを実行することにより、コンピュータが請求項１に記載の有価物組み合わせ装置として機能することになり、請求項１記載の発明と同様に、条件を満足する有価物の適切な組み合わせを短時間で求めることができる。
【００３３】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図１には、金融機関に設置されたコンピュータ・システムのうち、金融機関の各種業務の１つである有担保コール取引業務に関連する部分のみをコンピュータ・システム１０として示している。なお、金融機関に設置された実際のコンピュータ・システムは、図１に示した構成に加えて、他の業務に関連する多数台のコンピュータを含んで構成されている。
【００３４】
本実施形態に係るコンピュータ・システム１０は、金融機関のうち商業手形を取り扱う部署に設置された端末装置１２と、有担保コール取引を行う部署に設置された端末装置１３と、前記部署における商業手形取扱業務を支援する処理を行うホスト・コンピュータ１４と、金融機関が保有している商業手形群から、有担保コール取引における担保として利用可能な商業手形を選択して組み合わせる業務を支援する処理（担保組み合わせ処理）を行うサーバ・コンピュータ１６（以下、単にサーバ１６と称する）と、ホスト・コンピュータ１４及びサーバ１６を相互に接続するイントラネット１８と、を含んで構成されている。
【００３５】
ホスト・コンピュータ１４は汎用の大型コンピュータから成り、ＣＰＵ１４Ａ、ＲＯＭ１４Ｂ、ＲＡＭ１４Ｃ、入出力ポート１４Ｄを備え、これらはアドレスバス、データバス、制御バス等のバス１４Ｅを介して互いに接続されている。入出力ポート１４Ｄには、各種の入出力機器として、イントラネット１８に接続された通信制御装置（例えばルータ）２０、ディスプレイ２２、マウス２４、キーボード２６、ＨＤＤ２８が各々接続されている。なお、端末装置１２は通信回線を介してホスト・コンピュータ１４の通信制御装置２０に接続されている。
【００３６】
また、サーバ１６は汎用の大型コンピュータもしくはワークステーション等から成り、ＣＰＵ１６Ａ、ＲＯＭ１６Ｂ、ＲＡＭ１６Ｃ、入出力ポート１６Ｄを備え、これらがアドレスバス、データバス、制御バス等のバス１６Ｅを介して互いに接続されて構成されている。入出力ポート１６Ｄには、各種の入出力機器として、イントラネット１８及び端末装置１３に接続された通信制御装置（例えばルータ）４０、ディスプレイ４２、マウス４４、キーボード４６、プリンタ４７、ＨＤＤ４８、ＣＤ−ＲＯＭからの情報の読み出しを行うＣＤ−ＲＯＭドライブ５０が各々接続されている。
【００３７】
サーバ１６には、担保組み合わせ処理をサーバ１６のＣＰＵ１６Ａによって実行するための担保組み合わせプログラムがＨＤＤ４８に予めインストールされている。担保組み合わせプログラムは、請求項１１に記載のプログラムに対応しており、ＣＰＵ１６Ａが担保組み合わせプログラムを実行することで、サーバ１６は請求項１に記載の有価物組合せ装置として機能する。
【００３８】
担保組み合わせプログラムをサーバ１６にインストール（移入）するには幾つかの方法があるが、例えば担保組み合わせプログラムをセットアッププログラムと共にＣＤ−ＲＯＭ５６に記録しておき、ＣＤ−ＲＯＭ５６をサーバ１６のＣＤ−ＲＯＭドライブ５０にセットし、ＣＰＵ１６Ａに対して前記セットアッププログラムの実行を指示すれば、ＣＤ−ＲＯＭ５６から担保組み合わせプログラムが順に読み出され、読み出された担保組み合わせプログラムがＨＤＤ４８に順に書き込まれることで、担保組み合わせプログラムのインストールが行われる。
【００３９】
次に本実施形態の作用として、まずホスト・コンピュータ１４で行われる処理について説明する。ホスト・コンピュータ１４のＨＤＤ２８には、金融機関が保有している個々の商業手形に関する様々な情報を記憶するための商業手形データベース（ＤＢ）が記憶されている。商業手形取扱部署（金融機関の営業店及び事務センタ）における商業手形取扱業務は端末装置１２を用いて行われる。
【００４０】
すなわち、割引依頼人によって商業手形が持ち込まれて金融機関に対し割引依頼がされると、商業手形取扱部署は、持ち込まれた商業手形に関する各種の情報（例えば実行日、取引種類、店舗識別情報、取引先（割引依頼人）識別情報、取引番号、貸出残高（手形残高）、利率、決済期日、手形交換所、取引銀行、支払人（手形振出人）識別情報等）を端末装置１２を介して入力する。端末装置１２を介して入力された情報はホスト・コンピュータ１４へ送信され、ホスト・コンピュータ１４は端末装置１２から受信した情報をＨＤＤ２８の商業手形ＤＢに登録する。
【００４１】
また、商業手形取扱部署では、金融機関が保有している特定の商業手形が決済されたり、手形振出人の破綻やそれ以外の事情により割引依頼人によって買戻されたり、或いは前記特定の商業手形にデフォルトが発生した等のように、金融機関が割引を実行して保有している特定の商業手形に何らかの異動が発生した場合にも、前記特定の商業手形についての異動内容を表す情報を端末装置１２を介して入力する。この情報もホスト・コンピュータ１４へ送信され、ホスト・コンピュータ１４は、ＨＤＤ２８の商業手形ＤＢに登録されている情報を端末装置１２から受信した情報に応じて変更する。このように、商業手形ＤＢに登録されている情報は、商業手形取扱部署が行う商業手形取扱業務にリンクして適宜更新される。
【００４２】
一方、サーバ１６のＨＤＤ４８には担保ＤＢが記憶されており、この担保ＤＢには、ホスト・コンピュータ１４のＨＤＤ２８の商業手形ＤＢに情報が記憶されている多数の商業手形のうち、有担保コール取引における担保として利用可能な商業手形の情報（担保組み合わせ処理の実行に必要な一部の情報（例えば金額や期日等))のみが記憶されている。担保ＤＢに記憶されている情報は、商業手形ＤＢに記憶されている情報がホスト・コンピュータ１４からサーバ１６へ定期的に転送されることで、商業手形ＤＢに記憶されている情報と同期（一致）される。なお、以下では担保ＤＢに情報が記憶されている商業手形を、便宜上「担保」と称する。
【００４３】
なお、有担保コール取引部署における業務も端末１３を用いて行われる。有担保コール取引部署の業務の遂行に伴い、有担保取引に係る各種の情報が端末装置１３を介してサーバ１６へ送信されるが、サーバ１６のＨＤＤ４８には有担保コール取引ＤＢが記憶されており、有担保取引に係る各種の情報（例えば個々の有担保コール取引における取引金額等を表す取引情報）は有担保コール取引ＤＢに格納される。
【００４４】
次に、実施を予定している有担保コール取引の担保として用いるために、担保ＤＢに情報が記憶されている多数の担保から、適切な担保の組み合わせ（組み合わせた担保の合計金額が目標額に一致し担保の組み合わせ数がなるべく少ない組み合わせ）を求めることを目的としてサーバ１６で実行される担保組み合わせ処理について、図２のフローチャートを参照して説明する。なお、担保組み合わせ処理は、端末装置１３からの有担保コール取引の入力操作により自動的に起動され、ＨＤＤ２８にインストールされている担保組み合わせプログラムをサーバ１６のＣＰＵ１６Ａが実行することで実現される。この担保組み合わせ処理により、以下で説明するように、取引情報とそれに使用される最適な担保の情報が紐付けされる。
【００４５】
ステップ１００では、ＨＤＤ４８に記憶されている担保ＤＢから、金額が目標金額ｂ以下の担保の情報を全て抽出する。なお、目標金額ｂは実施を予定している有担保コール取引における取引予定額と同額であってもよいし、取引予定額に所定の割増掛目を乗じた金額であってもよい。ステップ１０２では、ステップ１００で抽出した担保の情報を金額の降順にソートする。なお、以下ではステップ１０２のソートを経た担保の情報の配列を集合Ａと称する。
【００４６】
なお、担保の組み合わせに対して「期日がなるべく先の担保を用いる」という条件もある場合には、ステップ１０２において、
金額（降順）→期日（降順）
の優先順位でソートを行えばよい。また、金額が少額（例えば５千万円）の担保については、少額の担保を予め複数個組み合わせて単一の「ロット」として取り扱うことがあるが、担保の組み合わせに対して「なるべくロットを用いる」という条件もある場合には、ステップ１０２において、
金額（降順）→期日（降順）→（ロット→個別担保）
の優先順位でソートを行えばよい。
【００４７】
ステップ１０４では集合Ａの要素（担保）の数を計数し、計数結果を変数ｎに代入する。また、ステップ１０６では変数ｈに１を代入すると共に、削除対象から除外する要素を記憶するための表Ｔw2（詳細は後述）をクリアする。また、ステップ１０８では集合Ａの担保の情報の配列において、ｈ番目に位置している担保ａ(ｈ)の情報を取り出す。このときはｈ＝１であるので、先頭に位置している担保、すなわち金額が最大の担保の情報が取り出されることになる。次のステップ１１０では変数ｈの値が１以下か否か判定する。
【００４８】
ステップ１１０の判定を最初に実行するときは変数ｈが１であるので、判定が肯定されてステップ１１２へ移行する。本実施形態では、解となり得る担保の組み合わせを表す列（要素）を登録するための表（テーブル）として、例として図４にも示すように、個々の列毎に「合計金額」、「合計件数」、「最後に対象とした担保」の各情報を登録する領域が設けられた表Ｔを用いており、ステップ１１２では「合計金額」として担保ａ(ｈ)の金額を、「合計件数」として１を、「最後に対象とした担保」として担保ａ(ｈ)を特定する情報を各々設定した列を生成し、生成した列のみを登録した表Ｔを作成する。なお、表Ｔは本発明に係るテーブルに対応している。
【００４９】
次のステップ１１８では、変数ｈの値を１だけインクリメントしてステップ１０８に戻り、集合Ａからｈ番目の担保ａ(ｈ)の情報を取り出す。変数ｈの値を一度インクリメントした以降はステップ１１０の判定が否定されるので、ステップ１１４へ移行して要素追加処理を行う。次のステップ１１６では、変数ｈの値が変数ｎの値（集合Ａの要素（担保）の数）よりも小さいか否か判定する。判定が肯定された場合には前述のステップ１１８へ移行する。従って、先のステップ１１２で表Ｔを一旦作成した以降は、先のステップ１０２におけるソート結果に対応する順序で集合Ａから担保ａ(ｈ)の情報を順に取り出しながら、ステップ１１４の要素追加処理が繰り返し実行されることになる。なお、上述したステップ１００〜ステップ１１８（但しステップ１１４を除く）は本発明に係る制御手段（詳しくは請求項９に記載の制御手段）に対応している。
【００５０】
以下、要素追加処理について図３を参照しながら説明する。ステップ１５０では、表Ｔに追加する列を登録するための表Ｔw1及び表Ｔから削除すべき列を登録するための表Ｔw3を各々クリアする。ステップ１５２では、「合計金額」として担保ａ(ｈ)の金額を、「合計件数」として１を、「最後に対象とした担保」として担保ａ(ｈ)を特定する情報を設定した列Ｌ(ｖ)を生成する。
【００５１】
ステップ１５４では、生成した列Ｌ(ｖ)の「合計金額」をキーにして表Ｔを検索し、表Ｔに「合計金額」として列Ｌ(ｖ)の「合計金額」と同一の金額が設定されている列Ｌ(ｙ)が有るか否か判定する。判定が否定された場合にはステップ１６０へ移行し、列Ｌ(ｖ)を表Ｔに追加するために列Ｌ(ｖ)を表Ｔw1に追加し、ステップ１６２へ移行する。また、ステップ１５４の判定が肯定された場合はステップ１５６へ移行し、列Ｌ(ｖ)の「合計件数」が列Ｌ(ｙ)の「合計件数」以上か否か判定する。
【００５２】
本実施形態では、担保の組み合わせに対する条件に「担保の組み合わせ数がなるべく少ない」という条件が含まれているので、列Ｌ(ｖ)と列Ｌ(ｙ)の「合計金額」と同一であれば、条件により合致した担保の組み合わせが生成される可能性の高い方の列、すなわち「合計件数」が少ない方の列のみを表Ｔに登録し、他方の列を表Ｔに登録しなくても、最終的に得られる担保の組み合わせが影響を受ける可能性は低く、表Ｔの列数の増大が抑制されることで処理時間を短縮することができる。
【００５３】
このため、ステップ１５６の判定が肯定された場合には何ら処理を行うことなくステップ１６２へ移行する。この場合、前述のステップ１６０が実行されないので、列Ｌ(ｖ)は表Ｔw1に追加されず、表Ｔに追加されないことになる。一方、ステップ１５６の判定が否定された場合には、列Ｌ(ｙ)に代えて列Ｌ(ｖ)を表Ｔに登録するために、ステップ１５８で列Ｌ(ｙ)を表Ｔw3に追加し、次のステップ１６０で列Ｌ(ｖ)を表Ｔw1に追加する。なお、上述したステップ１５２〜ステップ１６０は本発明に係る第１のテーブル操作手段（詳しくは請求項４〜請求項７に記載の第１のテーブル操作手段）に対応している。
【００５４】
次のステップ１６２では、変数ｍに表Ｔの現在の列数を代入すると共に、変数ｊに１を代入する。ステップ１６４では変数ｊの値が変数ｍの値以下か否か判定する。判定が肯定された場合にはステップ１６６へ移行し、表Ｔから列Ｌ(ｊ)の情報を取り出す。またステップ１６８では、「合計金額」として列Ｌ(ｊ)の「合計金額」と担保ａ(ｈ)の金額の和を、「合計件数」として列Ｌ(ｊ)の「合計件数」に１を加えた値を、「最後に対象とした担保」として担保ａ(ｈ)を特定する情報を各々設定した列Ｌ(ｘ)を生成する。なお、列Ｌ(ｘ)は、列Ｌ(ｊ)が表す担保の組み合わせに担保ａ(ｈ)を更に加えた組み合わせを表しており、本発明に係る仮想要素に対応している。
【００５５】
ステップ１７０では生成した列Ｌ(ｘ)の「合計金額」が目標金額ｂよりも大きいか否か判定する。判定が否定された場合はステップ１７２へ移行し、列Ｌ(ｘ)の「合計金額」をキーにして表Ｔを検索することで、表Ｔに「合計金額」として列Ｌ(ｖ)の「合計金額」と同一の金額が設定されている列Ｌ(ｙ)が有るか否か判定する。判定が否定された場合にはステップ１７８へ移行し、列Ｌ(ｘ)を表Ｔに追加するために列Ｌ(ｖ)を表Ｔw1に追加する。また、表Ｔに追加する列Ｌ(ｘ)は列Ｌ(ｊ)を親として生成した列であるので、列Ｌ(ｊ)が表Ｔから削除されることを防止するために、次のステップ１８０で列Ｌ(ｊ)を表Ｔw2に追加した後にステップ１８２へ移行する。
【００５６】
また、ステップ１７２の判定が肯定された場合はステップ１７４へ移行し、列Ｌ(ｘ)の「合計件数」が列Ｌ(ｙ)の「合計件数」以上か否か判定する。先にも述べたように、列Ｌ(ｘ)と列Ｌ(ｙ)の「合計金額」と同一であれば、「担保の組み合わせ数がなるべく少ない」という条件により合致した担保の組み合わせが生成される可能性の高い方の列、すなわち「合計件数」が少ない方の列のみを表Ｔに登録し、他方の列を表Ｔに登録しなくても、最終的に得られる担保の組み合わせが影響を受ける可能性は低く、表Ｔの列数の増大が抑制されることで処理時間を短縮できる。
【００５７】
このため、ステップ１７４の判定が肯定された場合には何ら処理を行うことなくステップ１８２へ移行する。この場合、前述のステップ１７８，１８０が実行されないので、列Ｌ(ｘ)は表Ｔw1に追加されず、表Ｔに追加されないことになる。一方、ステップ１７４の判定が否定された場合には、列Ｌ(ｙ)に代えて列Ｌ(ｘ)を表Ｔに登録するために、ステップ１７６で列Ｌ(ｙ)を削除対象として表Ｔw3に追加すると共に、次のステップ１６０で列Ｌ(ｘ)を表Ｔw1に追加し、更にステップ１８０で列Ｌ(ｘ)の親である列Ｌ(ｊ)を表Ｔw2に追加する。
【００５８】
ステップ１８２では、変数ｊを１だけインクリメントした後にステップ１６４に戻る。これにより、ステップ１６４の判定が否定されるか、又はステップ１７０の判定が肯定される迄の間、ステップ１６４〜ステップ１８２が繰り返されることになる。なお、上述したステップ１６２〜ステップ１８２は本発明に係る第２のテーブル操作手段（詳しくは請求項４〜請求項９に記載の第２のテーブル操作手段）に対応している。ステップ１６４の判定が否定されるか、又はステップ１７０の判定が肯定されるとステップ１８４へ移行し、表Ｔw3に存在しておりかつ表Ｔw2に存在していない列を表Ｔから削除する。また、ステップ１８６では表Ｔと表Ｔw1を結合し、結合後の表の各列を「合計金額」の降順にソートすることで表Ｔを更新し、要素追加処理を終了する。
【００５９】
集合Ａから担保ａ(ｈ)を順次取り出しながら図４の要素追加処理を繰り返し実行した場合の表Ｔの更新について、実例を挙げて更に説明する。図４には、金額２０億円の担保No.1、金額９億円の担保No.2、金額９億円の担保No.3、金額８億円の担保No.4、金額７億円の担保No.5、金額５億円の担保No.6の６個の担保（図４（Ａ）参照）から、合計３０億円の担保の組み合わせを求める場合の処理経過が示されている。
【００６０】
まず、図４（Ｂ）に示すように、集合Ａから金額が最大の担保No.1が取り出され、担保No.1単独に対応する列（合計金額＝２０億円（担保No.1単独の金額）、合計件数＝１、最後に対象とした担保＝担保No.1を特定する情報が設定された列）のみが登録された表Ｔが作成される。
【００６１】
次に、集合Ａから担保No.2が取り出される。このとき表Ｔ（図４（Ｂ）参照）には合計金額が担保No.2と同一の列は存在していないので、図４（Ｃ）に示すように、担保No.2単独に対応する列（合計金額＝９億円（担保No.2単独の金額）、合計件数＝１、最後に対象とした担保＝担保No.2を特定する情報が設定された列）が表Ｔw1に登録される。また、表Ｔには担保No.1単独に対応する列が既に登録されているので、列Ｌ(ｘ)として、担保No.1と担保No.2の組み合わせに対応する列（合計金額＝２９億円（担保No.1,No.2の合計金額）、合計件数＝２、最後に対象とした担保＝担保No.2を特定する情報が設定された列）も生成される。表Ｔには合計金額が２９億円の列も存在していないので、担保No.1＋No.2の列が表Ｔw1に登録される（図４（Ｃ）参照）。また、担保No.1＋No.2の列の元となった担保No.1の列が表Ｔw2に登録される。そして、図４（Ｃ）に示す表Ｔw1が図４（Ｂ）に示す表Ｔと合成されてソートされることで、図４（Ｄ）に示す表Ｔが生成される。
【００６２】
続いて、集合Ａから担保No.3が取り出される。このとき表Ｔ（図４（Ｄ）参照）には合計金額が担保No.3と同一の列が既に存在している（担保No.2単独の列）ので、図４（Ｅ）に破線で示すように、担保No.3単独の列（＝９億円の列）は表Ｔw1には登録されない。また、列Ｌ(ｘ)として、担保No.2＋No.3の列（＝１８億円）、担保No.1＋No.3の列（＝２９億円）、担保No.1＋No.2＋No.3（＝３８億円）の列が各々生成されるが、担保No.1＋No.3の列については合計金額が同一の列（担保No.1＋No.2の列）が表Ｔに既に存在しており、該列と「合計件数」も同一であるので、先に登録されている担保No.1＋No.2の列が優先され、担保No.1＋No.3の列は図４（Ｅ）に破線で示すように表Ｔw1には登録されない。また、担保No.1＋No.2＋No.3の列は合計金額が目標金額（＝３０億円）を超えているので、図４（Ｅ）に破線で示すように表Ｔw1には登録されない。従って、表Ｔw1には担保No.2＋No.3の列のみが登録され、該列の元となった担保No.2の列が表Ｔw2に登録される。そして、図４（Ｅ）に示す表Ｔw1が図４（Ｄ）に示す表Ｔと合成されてソートされることで、図４（Ｆ）に示す表Ｔが生成される。
【００６３】
次に、集合Ａから担保No.4が取り出される。このとき表Ｔ（図４（Ｆ）参照）には合計金額が担保No.4（＝８億円）と同一の列が存在していないので、図４（Ｇ）に示すように担保No.4単独の列が表Ｔw1に登録される。また、列Ｌ(ｘ)として、担保No.2＋No.4の列（＝１７億円）、担保No.2＋No.3＋No.4の列（＝２６億円）、担保No.1＋No.4の列（＝２８億円）、担保No.1＋No.2＋No.4の列（＝３７億円）が各々生成されるが、担保No.1＋No.2＋No.4の列は「合計金額」が目標金額（＝３０億円）を超えているので、図４（Ｇ）に破線で示すように表Ｔw1には登録されない。従って、表Ｔw1には担保No.4単独の列、担保No.2＋No.4の列、担保No.2＋No.3＋No.4の列、担保No.1＋No.4の列が登録され、表Ｔw2には、担保No.2＋No.3＋No.4の列の元となった担保No.2＋No.3の列が追加登録される。そして、図４（Ｇ）に示す表Ｔw1が図４（Ｆ）に示す表Ｔと合成されてソートされることで、図４（Ｈ）に示す表Ｔが生成される。
【００６４】
続いて、集合Ａから担保No.5が取り出される。このとき表Ｔ（図４（Ｈ）参照）には合計金額が担保No.5（＝７億円）と同一の列が存在していないので、図４（Ｊ）に示すように担保No.5単独の列が表Ｔw1に登録される。また、列Ｌ(ｘ)として、No.4＋No.5（＝１５億円）、No.2＋No.5（＝１６億円）、No.2＋No.4＋No.5（＝２４億円）、No.2＋No.3＋No.5（＝２５億円）、No.1＋No.5（＝２７億円）、No.1＋No.4＋No.5（＝３５億円）、及びNo.1＋No.2＋No.5（＝３６億円）の各列が各々生成される。このうち、担保No.1＋No.4＋No.5の列及び担保No.1＋No.2＋No.5の列は合計金額が目標金額（＝３０億円）を超えているので、図４（Ｊ）に破線で示すように表Ｔw1には登録されない。従って、表Ｔw1には担保No.5単独の列、担保No.4＋No.5の列、担保No.2＋No.5の列、担保No.2＋No.4＋No.5の列、担保No.2＋No.3＋No.5の列、及び担保No.1＋No.5の列が登録され、表Ｔw2には担保No.4＋No.5の列の列の元となった担保No.4の列、及び担保No.2＋No.4＋No.5の列の列の元となった担保No.2＋No.4の列が追加登録される。そして、図４（Ｊ）に示す表Ｔw1が図４（Ｈ）に示す表Ｔと合成されてソートされることで、図４（Ｋ）に示す表Ｔが生成される。
【００６５】
更に、集合Ａから担保No.6が取り出される。このとき表Ｔ（図４（Ｋ）参照）には合計金額が担保No.6と同一の列が存在していないので、図４（Ｍ）に示すように担保No.6単独の列が表Ｔw1に登録される。また、列Ｌ(ｘ)として、No.5＋No.6（＝１２億円）、No.4＋No.6（＝１３億円）、No.4＋No.5＋No.6（＝２０億円）、No.2＋No.4＋No.6（＝２２億円）、No.2＋No.3＋No.6（＝２３億円）、No.1＋No.6（＝２５億円）、No.2＋No.4＋No.5＋No.6（＝２９億円）、No.2＋No.3＋No.5＋No.6（＝３０億円）、No.1＋No.5＋No.6（＝３２億円）、No.1＋No.4＋No.6（＝３３億円）、No.1＋No.2＋No.6（＝３４億円）の各列が各々生成される。このうち、担保No.1＋No.5＋No.6の列、担保No.1＋No.4＋No.6の列及び担保No.1＋No.2＋No.6の列は合計金額が目標金額（＝３０億円）を超えているので、図４（Ｊ）に破線で示すように表Ｔw1には登録されない。
【００６６】
また、担保No.4＋No.5＋No.6（＝２０億円）の列及び担保No.2＋No.4＋No.5＋No.6（＝２９億円）の列については、合計金額が同一の列が各々表Ｔに既に登録されており、該列よりも合計件数が大であるので、既に登録されている列が優先され、担保No.4＋No.5＋No.6の列及び担保No.2＋No.4＋No.5＋No.6の列は、図４（Ｍ）に破線で示すように表Ｔw1には登録されない。従って、表Ｔw1には担保No.6単独の列、担保No.5＋No.6の列、担保No.4＋No.6の列、担保No.2＋No.4＋No.6の列、担保No.2＋No.3＋No.6の列、担保No.1＋No.6の列、担保No.2＋No.3＋No.5＋No.6の列が登録され、表Ｔw2には、担保No.5＋No.6の列の元となった担保No.5の列、担保No.4＋No.6の列の元となった担保の列No.4、及び、担保No.2＋No.3＋No.5＋No.6の元となった担保No.2＋No.3＋No.5の列が追加登録される。そして、図４（Ｍ）に示す表Ｔw1が図４（Ｈ）に示す表Ｔと合成されてソートされることで、図４（Ｎ）に示す表Ｔが生成される。
【００６７】
なお、図４（Ｋ）に示す表Ｔのうち合計金額＝２５億円、合計件数＝３、最後に対象とした担保＝No.5の列（担保No.2＋No.3＋No.5の列）は、図４（Ｍ）に示す表Ｔw1に合計金額が同一で合計件数がより少ない列（合計金額＝２５億円、合計件数＝２、最後に対象とした担保＝No.6の列）が登録されることから、削除対象の列として表Ｔw3に登録されるが、上述のように、この列は担保No.2＋No.3＋No.5＋No.6の元となった列であり表Ｔw2にも登録されるので、表Ｔから削除されずに残ることになる。
【００６８】
上述した要素追加処理が繰り返し実行され、変数ｈの値が変数ｎの値に等しくなると、図２のステップ１１６の判定が否定されてステップ１２０へ移行し、まず最適組み合わせ集合Ｂをクリアする。次のステップ１２２では、表Ｔから「合計金額」が最大で「合計件数」が最小の列を抽出する。次のステップ１２４では、ステップ１２２で抽出した列の「最後に対象とした担保」に設定されている担保（便宜上、担保ｘと称する)を最適組み合わせ集合Ｂに追加する。
【００６９】
ステップ１２６では、ステップ１２２（又は後述するステップ１３０）で抽出した列の「合計件数」が１か否か判定する。判定が肯定された場合には担保組み合わせ処理を終了するが、判定が否定された場合にはステップ１２８へ移行し、抽出した列の「合計金額」から担保ｘの金額を減じた金額を金額ｐに代入すると共に、抽出した列の「合計件数」から１を減じた値を件数ｑに代入する。そしてステップ１３０では、表Ｔから「合計金額」が金額ｐに等しくかつ「合計件数」が件数ｑに等しい列を抽出してステップ１２４に戻る。従って、ステップ１２６の判定が肯定される迄の間、ステップ１２４〜ステップ１３０が繰り返され、最適組み合わせ集合Ｂに担保の最適な組み合わせが格納されることになる。なお、上述したステップ１２０〜ステップ１３０は本発明に係る出力手段（詳しくは請求項６，７に記載の出力手段）に対応している。
【００７０】
すなわち、例えば表Ｔが図４（Ｎ）に示す内容であった場合、まずステップ１２２で表Ｔの最終列（「合計金額」＝３０億円、「合計件数」＝４、「最後に対象とした担保」＝No.6の列）が抽出され、ステップ１２４で担保No.6が最適組み合わせ集合Ｂに追加された後に、ステップ１２８で金額ｐ＝３０億円−５億円（担保No.6の金額）＝２５億円、件数ｑ＝４−１＝３が演算され、図４（Ｎ）に破線の矢印で示すように、「合計金額」＝２５億円、「合計件数」＝３、「最後に対象とした担保」＝No.5の列がステップ１３０で抽出され、ステップ１２４で担保No.5が最適組み合わせ集合Ｂに追加される。
【００７１】
次に、ステップ１２８で金額ｐ＝２５億円−７億円（担保No.5の金額）＝１８億円、件数ｑ＝３−１＝２が演算され、図４（Ｎ）に破線の矢印で示すように、「合計金額」＝１８億円、「合計件数」＝２、「最後に対象とした担保」＝No.3の列がステップ１３０で抽出され、ステップ１２４で担保No.3が最適組み合わせ集合Ｂに追加される。
【００７２】
続いて、ステップ１２８で金額ｐ＝１８億円−９億円（担保No.3の金額）＝９億円、件数ｑ＝２−１＝１が演算され、図４（Ｎ）に破線の矢印で示すように、「合計金額」＝９億円、「合計件数」＝１、「最後に対象とした担保」＝No.2の列がステップ１３０で抽出され、ステップ１２４で担保No.2が最適組み合わせ集合Ｂに追加された後に、ステップ１２６の判定が肯定されて担保組み合わせ処理が終了される。
【００７３】
これにより、担保組み合わせ処理が終了した時点で、最適組み合わせ集合Ｂには担保の最適な組み合わせ（「合計金額」が目標金額ｂ以下の最大金額で、「合計件数」がなるべく少ない組み合わせ）である担保No.2,No.3,No.5,No.6の情報が格納されていることになり、最適組み合わせ集合Ｂに格納されている情報を読み出すことで、条件を満足する担保の最適な組み合わせを認識することができる。
【００７４】
上述したように、図２、３に示した処理では、表Ｔに登録しようとしている列と合計金額が同一の列が表Ｔに存在していた場合、合計件数が多い方の列が他の列の「親」である場合を除き、合計件数が少ない方の列のみを表Ｔに登録しているので、集合Ａの要素（担保）の数に比して表Ｔの列数の増大を抑制することができ、条件を満足する担保の最適な組み合わせを短時間で求めることができる。
【００７５】
次に、担保組み合わせ処理の他のアルゴリズムについて、図５のフローチャートを参照して説明する。ステップ２００では、金額０〜目標金額ｂの金額範囲を一定金額毎に分割したときの分割金額を各々上限金額Ｃi（ｉ＝1,2,…、但しＣiの最大値＝目標金額ｂ）とする複数の列（「合計金額」「合計件数」及び「最後に対象とした担保」の各領域を設けた列）から成る表Ｔ(０)を生成し、生成した表Ｔ(０)の各列のうち、「合計金額」及び「合計件数」に０を、「最後に対象とした担保」に情報が未設定であることを表す情報を各々設定することで、表Ｔ(０)を初期設定する。例として図７（Ａ）には、目標金額ｂ＝３０億円とし、０〜３０億円の金額範囲を１億円毎に分割したときの表Ｔの一例を示す。
【００７６】
ステップ２０２では、ＨＤＤ４８に記憶されている担保ＤＢから、金額が目標金額ｂ以下の担保の情報を全て抽出し、抽出した担保の情報を金額の降順にソートすることで集合Ａを生成する。なお、図２の担保組み合わせ処理と同様に、担保の組み合わせに対する条件に応じて、金額（降順）→期日（降順）でソートしてもよいし、金額（降順）→期日（降順）→（ロット→個別担保）でソートしてもよい。
【００７７】
ステップ２０４では集合Ａの要素（担保）の数を計数し、計数結果を変数ｎに代入する。また、ステップ２０６では変数ｈに１を代入すると共に、更新フラグに０を代入する。次のステップ２０８では集合Ａの担保の情報の配列において、ｈ番目に位置している担保ａ(ｈ)の情報を取り出す。このときはｈ＝１であるので、配列の先頭に位置している担保、すなわち金額が最大の担保の情報が取り出される。
【００７８】
次のステップ２１０では、更新フラグが０で、かつ集合Ａから今回取り出した担保ａ(ｈ)の金額が集合Ａから前回取り出した担保ａ(ｈ−１)と同じか否か判定する。判定が否定された場合にはステップ２１２へ移行し、ステップ２１２で更新フラグに０を代入する。また、次のステップ２１４では要素追加処理を行う。以下、この要素追加処理について、図６のフローチャートを参照しながら説明する。
【００７９】
ステップ２５０では現在の表Ｔをメモリ上の別の領域に表Ｔ(ｈ)としてコピーする。また、ステップ２５２では変数ｉに表Ｔ(ｈ)の列数ｉmaxを代入し、次のステップ２５４では表Ｔ(ｈ)から上限金額Ｃiの列の情報を読み込む。なお、ステップ２５２で変数ｉに表Ｔ(ｈ)の列数ｉmaxが代入されているので、このときはＣi＝ｂであり、Ｃi＝ｂの列の情報が読み込まれる。
【００８０】
ステップ２５６では、先のステップ２０８で取り出した担保ａ(ｈ)の金額が上限金額Ｃi以下か否か判定する。判定が肯定された場合にはステップ２５８へ移行し、上限金額Ｃiの列の「合計金額」に担保ａ(ｈ)の金額を加算した金額（なお、金額Ｃiの列の「合計金額」＞０の場合、上記の「加算した金額」は本発明に係る「仮想要素の合計金額」に相当する）が上限金額Ｃi以下か否か判定する。判定が肯定された場合はステップ２６０へ移行し、表Ｔ(ｊ)に対し、上限金額Ｃiの列の「合計金額」に担保ａ(ｈ)の金額を加算し、上限金額Ｃiの列の「合計件数」に１を加算し、上限金額Ｃiの列の「最終対象担保」として担保ａ(ｈ)を特定する情報を設定する。これにより、表Ｔ(ｊ)のうち上限金額Ｃiの列に設定されている情報が、元の情報が表す担保の組み合わせに担保ａ(ｈ)を加えた組み合わせを表す情報へ更新される（上限金額Ｃiの列が初期設定後、何ら情報が設定されていなかった場合は、担保ａ(ｈ)単独に相当する情報へ更新される）ことになる。ステップ２６０の処理を行うと、次のステップ２６２で更新フラグに１を代入し、ステップ２８０へ移行する。
【００８１】
なお、上限金額Ｃiの列が初期設定後、何ら情報が設定されていなかった場合のステップ２５４〜ステップ２６２の処理は、本発明に係る第１のテーブル操作手段（詳しくは請求項２，請求項３に記載の第１のテーブル操作手段）に対応しており、上限金額Ｃiの列に既に情報が設定されていた場合のステップ２５４〜ステップ２６２の処理は、本発明に係る第２のテーブル操作手段（詳しくは請求項２，請求項３に記載の第２のテーブル操作手段）に対応している。
【００８２】
また、ステップ２５８の判定が否定された場合にはステップ２６４へ移行し、上限金額Ｃk≦(上限金額Ｃi−担保ａ(ｈ)の金額)＜上限金額Ｃ(k+1）を満足する列ｋを認識する。そしてステップ２６６では、上限金額Ｃkの列の「合計金額」に担保ａ(ｈ)の金額を加算した金額（なお、金額Ｃkの列の「合計金額」＞０の場合、上記の「加算した金額」は本発明に係る「仮想要素の合計金額」に相当する）が、上限金額Ｃiの列の「合計金額」よりも小さいか否か判定する。判定が肯定された場合には何ら処理を行うことなくステップ２８０へ移行する。
【００８３】
また、ステップ２６６の判定が否定された場合にはステップ２６８へ移行し、上限金額Ｃkの列の「合計金額」に担保ａ(ｈ)の金額を加算した金額が、上限金額Ｃiの列の「合計金額」よりも大きいか否か判定する。判定が肯定された場合にはステップ２７０へ移行し、表Ｔ(ｊ)に対し、上限金額Ｃkの列の「合計金額」に担保ａ(ｈ)の金額を加算した金額を上限金額Ｃiの列の「合計金額」に設定し、上限金額Ｃkの列の「合計件数」に１を加算した値を上限金額Ｃiの列の「合計件数」に設定し、上限金額Ｃiの「最終対象担保」に担保ａ(ｈ)を特定する情報を設定する。これにより、表Ｔ(ｊ)のうち上限金額Ｃiの列に設定されている情報が、上限金額Ｃkの列に設定されている情報が表す担保の組み合わせに担保ａ(ｈ)を加えた組み合わせを表す情報へ更新されることになる。ステップ２７０の処理を行うと、次のステップ２７２で更新フラグに１を代入し、ステップ２８０へ移行する。
【００８４】
また、ステップ２６８の判定が否定された場合（上限金額Ｃkの列の「合計金額」に担保ａ(ｈ)の金額を加算した金額が、上限金額Ｃiの列の「合計金額」に等しい場合）にはステップ２７４へ移行し、上限金額Ｃkの列の「合計件数」に１を加算した値（なお、金額Ｃkの列の「合計件数」＞０の場合、上記の「１を加算した値」は本発明に係る「仮想要素における有価物の組み合わせ数」に相当する）が上限金額Ｃiの列の「合計件数」以上か否か判定する。判定が肯定された場合には何ら処理を行うことなくステップ２８０へ移行する。
【００８５】
一方、ステップ２７４の判定が否定された場合にはステップ２７６へ移行し、表Ｔ(ｊ)に対し、上限金額Ｃkの列の「合計金額」に１を加算した値を上限金額Ｃiの列の「合計件数」に設定すると共に、上限金額Ｃiの列の「最終対象担保」に担保ａ(ｈ)を特定する情報を設定する。これにより、表Ｔ(ｊ)のうち上限金額Ｃiの列に設定されている情報が、上限金額Ｃkの列に設定されている情報が表す担保の組み合わせに担保ａ(ｈ)を加えた組み合わせを表す情報へ更新されることになる。また、ステップ２７８で更新フラグに１を代入する。
【００８６】
次のステップ２８０では変数ｉを１だけデクリメントしてステップ２５４に戻る。従って、ステップ２５６の判定が肯定されている間は、処理対象とする上限金額Ｃiの列（ステップ２５４で情報を読み込む列）を上限金額Ｃiの降順に順次切り替えながら、ステップ２５４〜ステップ２８０が繰り返される。なお、上述したステップ２６４〜ステップ２８０も本発明に係る第２のテーブル操作手段（詳しくは請求項２，請求項３に記載の第２のテーブル操作手段）に対応している。
【００８７】
ステップ２５６の判定が否定されるとステップ２８２へ移行し、更新フラグが１か否か判定する。判定が肯定された場合には、ステップ２８４へ移行して表Ｔ(ｈ)を保存し、判定が否定された場合はステップ２８６で表Ｔ(ｈ)を破棄する。更新フラグは表Ｔ(ｊ)が更新された場合に１が代入されるので、表Ｔ(ｈ)が更新された場合にのみ更新後の表Ｔ(ｊ)が保存され、更新されていない場合には今回の要素追加処理を行う以前に作成された表Ｔ（ステップ２５０で表Ｔ(ｈ)としてコピーされた表Ｔ）のみが保存される。
【００８８】
ステップ２８４又はステップ２８６の処理を行うと、担保組み合わせ処理（図５）のステップ２１６へ移行し、変数ｈの値が変数ｎの値よりも大きくなったか否か判定する。判定が肯定された場合にはステップ２１８へ移行し、変数ｈの値を１だけインクリメントしてステップ２０８に戻る。これにより、ステップ２０２におけるソート結果に対応する順序で集合Ａから担保ａ(ｈ)の情報を順に取り出しながら、図６の要素追加処理が繰り返し実行され、各回の要素追加処理で表Ｔ(ｊ)が更新される毎に更新された表Ｔ(ｊ)が保存されることになる。なお、上述したステップ２００〜ステップ２１８は本発明に係る制御手段（詳しくは請求項９に記載の制御手段）に対応している。
【００８９】
なお、集合Ａから取り出した担保ａ(ｈ)の金額が、前回取り出した担保ａ(ｈ−１)の金額と同一であり、担保ａ(ｈ−１)に対する要素追加処理の結果、更新フラグに１が代入されなかった（表Ｔ(ｊ)の更新が行われなかった）場合には、集合Ａから今回取り出した担保ａ(ｈ)に対して要素追加処理を行ったとしても表Ｔ(ｊ)が更新される可能性はないと判断できる。この場合には、ステップ２１０の判定が肯定されることで、ステップ２１４の要素追加処理の実行がスキップされる。
【００９０】
集合Ａから担保ａ(ｈ)を順次取り出しながら図６の要素追加処理を繰り返し実行した場合の表Ｔの更新について、実例を挙げて更に説明する。図７には、先に説明した図４と同様に、金額２０億円の担保No.1、金額９億円の担保No.2、金額９億円の担保No.3、金額８億円の担保No.4、金額７億円の担保No.5、金額５億円の担保No.6の６個の担保（図４（Ａ）参照）から、合計３０億円の担保の組み合わせを求める場合の処理経過が示されている。
【００９１】
まず、集合Ａから金額が最大の担保No.1（金額＝２０億円）が取り出される。要素追加処理では、上限金額Ｃiが担保No.1の金額以上の列（Ｃi＝２０億円〜３０億円の各列）についてステップ２５６の判定が各々肯定される。また、表Ｔの各列はこのとき初期設定された状態（合計金額＝０）であるので、Ｃi＝２０億円〜３０億円の各列についてステップ２５８の判定が各々肯定され、図７（Ａ）に示すように、担保No.1単独に相当する情報（合計金額＝２０億円（担保No.1単独の金額）、合計件数＝１、最後に対象とした担保＝担保No.1を特定する情報）が各々設定される。
【００９２】
次に、集合Ａから担保No.2（金額＝９億円）が取り出される。上限金額Ｃiが担保No.2の金額以上の列は上限金額Ｃi＝９億円〜３０億円の各列であるが、このうち上限金額Ｃi＝２０億円〜３０億円の各列には合計金額＝２０億円（担保No.1単独に相当する情報）が既に登録されているので、要素追加処理では、上限金額Ｃi＝９億円〜１９億円の各列と、上限金額Ｃiが、既設定の合計金額２０億円に担保No.2の金額９億円を加算した２９億円以上である上限金額Ｃi＝２９億円、３０億円の列についてのみステップ２５８の判定が肯定され、図７（Ｂ）に示すように、上限金額Ｃi＝９億円〜１９億円の各列には担保No.2単独に相当する情報（合計金額＝９億円（担保No.2単独の金額）、合計件数＝１、最後に対象とした担保＝担保No.2を特定する情報）が各々設定され、上限金額Ｃi＝２９億円、３０億円の列には既登録の担保No.1に担保No.2を加えた組み合わせに相当する情報（合計金額＝２９億円、合計件数＝２、最後に対象とした担保＝担保No.2を特定する情報）が各々設定される。
【００９３】
続いて、集合Ａから担保No.3（金額＝９億円）が取り出される。上限金額Ｃiが担保No.3の金額以上の列は上限金額Ｃi＝９億円〜３０億円の各列であるが、各列には既に情報が登録されているので、要素追加処理では、上限金額Ｃiの列の合計金額に担保No.3の金額を加算した金額が上限金額Ｃi以下である２つの列（上限金額Ｃi＝１８億円、１９億円の列）についてのみステップ２５８の判定が肯定され、図７（Ｃ）に示すように、前記２つの列についてのみ、既登録の担保No.2に担保No.3を加えた組み合わせに相当する情報（合計金額＝１８億円、合計件数＝２、最後に対象とした担保＝担保No.3を特定する情報）が各々設定される。
【００９４】
次に、集合Ａから担保No.4（＝８億円）が取り出される。要素追加処理では、上限金額Ｃiが担保No.4の金額以上であるＣi＝８億円の列、及び、上限金額Ｃiの列の合計金額に担保No.4の金額を加算した金額が上限金額Ｃi以下である２つの列（上限金額Ｃi＝１７億円、２８億円の列）についてステップ２５８の判定が肯定され、図７（Ｄ）に示すように、上限金額Ｃi＝８億円の列については、担保No.4単独に相当する情報（合計金額＝８億円、合計件数＝１、最後に対象とした担保＝担保No.4を特定する情報）が設定され、上限金額Ｃi＝１７億円の列については、既登録の担保No.2に担保No.4を加えた組み合わせに相当する情報（合計金額＝１７億円、合計件数＝２、最後に対象とした担保＝担保No.4を特定する情報）が設定され、上限金額Ｃi＝２８億円の列については、既登録の担保No.1に担保No.4を加えた組み合わせに相当する情報（合計金額＝２８億円、合計件数＝２、最後に対象とした担保＝担保No.4を特定する情報）が設定される。
【００９５】
また、要素追加処理のステップ２６４において、上限金額Ｃi＝２７億円の列は列ｋとして上限金額Ｃk＝１９億円の列が、上限金額Ｃi＝２６億円の列は列ｋとして上限金額Ｃk＝１８億円の列が各々認識されるが、何れの列も、上限金額Ｃkの列の合計金額に担保No.4の金額を加算した金額（＝２６億円）が、上限金額Ｃiの列の合計金額よりも大きいので、ステップ２６８の判定が肯定される。これにより、上限金額Ｃi＝２６億円、２７億円の列については、上限金額Ｃkの列に既登録の担保の組み合わせ（担保No.2＋No.3）に担保No.4を加えた組み合わせに相当する情報（合計金額＝２６億円、合計件数＝３、最後に対象とした担保＝担保No.4を特定する情報）が設定される。
【００９６】
続いて、集合Ａから担保No.5（＝７億円）が取り出される。要素追加処理では、上限金額Ｃiが担保No.5の金額以上であるＣi＝７億円の列、及び、上限金額Ｃiの列の合計金額に担保No.5の金額を加算した金額が上限金額Ｃi以下である上限金額Ｃi＝１６億円の列についてステップ２５８の判定が肯定され、図７（Ｅ）に示すように、上限金額Ｃi＝７億円の列については、担保No.5単独に相当する情報（合計金額＝７億円、合計件数＝１、最後に対象とした担保＝担保No.5を特定する情報）が設定され、上限金額Ｃi＝１６億円の列については、既登録の担保No.2に担保No.5を加えた組み合わせに相当する情報（合計金額＝１６億円、合計件数＝２、最後に対象とした担保＝担保No.5を特定する情報）が設定される。
【００９７】
また、要素追加処理のステップ２６４において、上限金額Ｃi＝２７億円の列は列ｋとして上限金額Ｃk＝２０億円の列が、上限金額Ｃi＝２５億円の列は列ｋとして上限金額Ｃk＝１８億円の列が、上限金額Ｃi＝２４億円の列は列ｋとして上限金額Ｃk＝１７億円の列が、上限金額Ｃi＝１５億円の列は列ｋとして上限金額Ｃk＝８億円の列が各々認識されるが、何れの列も、上限金額Ｃkの列の合計金額に担保No.5の金額を加算した金額が、上限金額Ｃiの列の合計金額よりも大きいので、ステップ２６８の判定が肯定される。
【００９８】
これにより、図７（Ｅ）に示すように、上限金額Ｃi＝２７億円の列については、上限金額Ｃk(＝２０億円)の列に既登録の担保の組み合わせ（担保No.1単独）に担保No.5を加えた組み合わせに相当する情報（合計金額＝２7億円、合計件数＝２、最後に対象とした担保＝担保No.5を特定する情報）が設定され、上限金額Ｃi＝２５億円の列については、上限金額Ｃk(＝１８億円)の列に既登録の担保の組み合わせ（担保No.2＋No.3）に担保No.5を加えた組み合わせに相当する情報（合計金額＝２５億円、合計件数＝３、最後に対象とした担保＝担保No.5を特定する情報）が設定され、上限金額Ｃi＝２４億円の列については、上限金額Ｃk(＝１７億円)の列に既登録の担保の組み合わせ（担保No.2＋No.4）に担保No.5を加えた組み合わせに相当する情報（合計金額＝２４億円、合計件数＝３、最後に対象とした担保＝担保No.5を特定する情報）が設定され、上限金額Ｃi＝１５億円の列については、上限金額Ｃk(＝８億円)の列に既登録の担保の組み合わせ（担保No.4単独）に担保No.5を加えた組み合わせに相当する情報（合計金額＝１５億円、合計件数＝３、最後に対象とした担保＝担保No.5を特定する情報）が設定される。
【００９９】
更に、集合Ａから担保No.6（＝５億円）が取り出される。要素追加処理では、上限金額Ｃiが担保No.6の金額以上であるＣi＝５億円、６億円の列、及び、上限金額Ｃiの列の合計金額に担保No.6の金額を加算した金額が上限金額Ｃi以下である上限金額Ｃi＝１４億円の列についてステップ２５８の判定が肯定され、図７（Ｆ）に示すように、上限金額Ｃi＝５億円、６億円の列については、担保No.6単独に相当する情報（合計金額＝５億円、合計件数＝１、最後に対象とした担保＝担保No.6を特定する情報）が設定され、上限金額Ｃi＝１４億円の列については、既登録の担保No.2に担保No.6を加えた組み合わせに相当する情報（合計金額＝１４億円、合計件数＝２、最後に対象とした担保＝担保No.6を特定する情報）が設定される。
【０１００】
また、要素追加処理のステップ２６４において、上限金額Ｃi＝３０億円の列は列ｋとして上限金額Ｃk＝２５億円の列が、上限金額Ｃi＝２５億円の列は列ｋとして上限金額Ｃk＝２０億円の列が、上限金額Ｃi＝２３億円の列は列ｋとして上限金額Ｃk＝１８億円の列が、上限金額Ｃi＝２２億円の列は列ｋとして上限金額Ｃk＝１７億円の列が、上限金額Ｃi＝２１億円の列は列ｋとして上限金額Ｃk＝１６億円の列が、上限金額Ｃi＝１３億円の列は列ｋとして上限金額Ｃk＝８億円の列が、上限金額Ｃi＝１２億円の列は列ｋとして上限金額Ｃk＝７億円の列が各々認識される。このうち上限金額Ｃi＝２５億円の列を除く各列は、上限金額Ｃkの列の合計金額に担保No.6の金額を加算した金額が、上限金額Ｃiの列の合計金額よりも大きいので、ステップ２６８の判定が肯定される。
【０１０１】
これにより、図７（Ｆ）に示すように、上限金額Ｃi＝３０億円の列については、上限金額Ｃk(＝２５億円)の列に既登録の担保の組み合わせ（担保No.2＋No.3＋No.5）に担保No.6を加えた組み合わせに相当する情報（合計金額＝３０億円、合計件数＝４、最後に対象とした担保＝担保No.6を特定する情報）が設定され、上限金額Ｃi＝２３億円の列については、上限金額Ｃk(＝１８億円)の列に既登録の担保の組み合わせ（担保No.2＋No.3）に担保No.6を加えた組み合わせに相当する情報（合計金額＝２３億円、合計件数＝３、最後に対象とした担保＝担保No.6を特定する情報）が設定され、上限金額Ｃi＝２２億円の列については、上限金額Ｃk(＝１７億円)の列に既登録の担保の組み合わせ（担保No.2＋No.4）に担保No.6を加えた組み合わせに相当する情報（合計金額＝２２億円、合計件数＝３、最後に対象とした担保＝担保No.6を特定する情報）が設定される。
【０１０２】
また、図７（Ｆ）に示すように、上限金額Ｃi＝２１億円の列については、上限金額Ｃk(＝１６億円)の列に既登録の担保の組み合わせ（担保No.2＋No.5）に担保No.6を加えた組み合わせに相当する情報（合計金額＝２１億円、合計件数＝３、最後に対象とした担保＝担保No.6を特定する情報）が設定され、上限金額Ｃi＝１３億円の列については、上限金額Ｃk(＝８億円)の列に既登録の担保の組み合わせ（担保No.4単独）に担保No.6を加えた組み合わせに相当する情報（合計金額＝１３億円、合計件数＝２、最後に対象とした担保＝担保No.6を特定する情報）が設定され、上限金額Ｃi＝１２億円の列については、上限金額Ｃk(＝７億円)の列に既登録の担保の組み合わせ（担保No.5単独）に担保No.6を加えた組み合わせに相当する情報（合計金額＝１２億円、合計件数＝２、最後に対象とした担保＝担保No.6を特定する情報）が設定される。
【０１０３】
また、上限金額Ｃi＝２５億円の列については、上限金額Ｃk＝２０億円の列の合計金額に担保No.6の金額を加算した金額が、上限金額Ｃiの列の合計金額と等しいものの、上限金額Ｃk＝２０億円の列の合計件数に１を加算した値が上限金額Ｃi＝２５億円の列の合計件数よりも小さいので、ステップ２７４の判定が肯定される。これにより、図７（Ｆ）に示すように、上限金額Ｃi＝２５億円の列については、上限金額Ｃk(＝２０億円)の列に既登録の担保の組み合わせ（担保No.2＋No.3＋No.5）に担保No.6を加えた組み合わせに相当する情報（合計金額＝２５億円、合計件数＝４、最後に対象とした担保＝担保No.6を特定する情報）が設定される。
【０１０４】
上述した処理が行われることで変数ｈの値が変数ｎの値に等しくなると、図５のステップ２１６の判定が否定されてステップ２２０へ移行し、最適組み合わせ集合Ｂをクリアする。ステップ２２２では、最後に作成・保存した表における、上限金額Ｃi＝ｂの列の情報を抽出する。ステップ２２４では、ステップ２２２で抽出した情報の「最後に対象とした担保」に設定されている担保（担保ｘと称する)を最適組み合わせ集合Ｂに追加する。
【０１０５】
ステップ２２６では、ステップ２２２（又は後述するステップ２３０）で抽出した情報の「合計件数」が１か否か判定する。判定が肯定された場合には担保組み合わせ処理を終了するが、判定が否定された場合にはステップ２２８へ移行し、抽出した情報の「合計金額」から担保ｘの金額を減じた金額を金額ｐに代入すると共に、抽出した列の「合計件数」から１を減じた値を件数ｑに代入する。そしてステップ２３０では、担保ｘを取り出した表の１つ前に作成・保存された表から「合計金額」が金額ｐに等しくかつ「合計件数」が件数ｑに等しい列の情報を抽出してステップ２２４に戻る（図７も参照）。
【０１０６】
従って、ステップ１２６の判定が肯定される迄の間、ステップ１２４〜ステップ１３０が繰り返され、図２の担保組み合わせ処理と同様に、最適組み合わせ集合Ｂに担保の最適な組み合わせが格納されることになり、最適組み合わせ集合Ｂに格納されている情報を読み出すことで、条件を満足する担保の最適な組み合わせを認識することができる。なお、上述したステップ２２０〜ステップ２３０は本発明に係る出力手段（詳しくは請求項６に記載の出力手段）に対応している。
【０１０７】
上述したように、図５、６に示した処理では、金額０〜目標金額ｂの金額範囲を一定金額毎に分割したときの分割金額を各々上限金額Ｃi（ｉ＝1,2,…、但しＣiの最大値＝目標金額ｂ）とする複数の列から成る表Ｔを用い、各列に、上限金額Ｃi以下かつ最大の合計金額で、合計件数が最小の担保の組み合わせを表す情報のみを登録しているので、集合Ａの要素（担保）の数に拘わらず表Ｔの列数が増大することはなく、条件を満足する担保の最適な組み合わせを極めて短時間で求めることができる。
【０１０８】
但し、図５、６に示した処理では解の精度が不足している（解としての担保の組み合わせの合計金額が目標金額ｂに足りていない）場合が生じ得る。例えば図８に示すように、金額２０億円の担保No.1、金額９億円の担保No.2、金額９億円の担保No.3、金額８億円の担保No.4、金額７．１億円の担保No.5、金額４．９億円の担保No.6の６個の担保から、合計３０億円の担保の組み合わせを求める場合、担保No.1〜No.4迄の処理結果（図８（Ａ）〜（Ｄ))は図７に示した処理結果（図７（Ａ）〜（Ｄ))と同じである。
【０１０９】
しかし、集合Ａから担保No.5（＝７．１億円）を取り出した際に、上限金額Ｃi＝２５億円の列は列ｋとして上限金額Ｃk＝１７億円の列が認識され、上限金額Ｃk＝１７億円の列の合計金額（＝１７億円）に担保No.5の金額を加算した金額が、上限金額Ｃiの列の合計金額（＝２０億円）よりも大きいので、図８（Ｅ）に示すように、上限金額Ｃi＝２５億円の列については、上限金額Ｃk(＝１７億円)の列に既に登録されている担保の組み合わせに担保No.5を加えた組み合わせに相当する情報（合計金額＝２４．１億円、合計件数＝３、最後に対象とした担保＝担保No.5を特定する情報）が設定される。
【０１１０】
図８の例における最適解は担保No.2＋No.3＋No.5＋No.6の組み合わせ（＝３０億円）であるが、図８（Ｅ）に示す時点で、担保No.2＋No.3＋No.5の組み合わせ（＝２５．１億円）が表Ｔに登録されていないため、上記最適解を得ることができず、図８の例では担保No.1＋No.2の組み合わせ（＝２９億円＜目標金額ｂ）しか求まらないことになる。仮に、表Ｔに上限金額Ｃi＝２５．１億円の列が存在していれば、担保No.2＋No.3＋No.5の組み合わせ（＝２５．１億円）が表Ｔに登録され、この組み合わせに担保No.6を加えた最適解が得られるため、最適解が求まらない原因は、表Ｔの各列における上限金額の中間に相当する金額の担保が存在しているためであると理解できる。
【０１１１】
解の精度を向上させる対策としては、例えば金額０〜目標金額ｂの金額範囲を分割する際の分割数（金額範囲の刻み幅）を小さくすることが考えられる。これにより、解として得られる担保の組み合わせの合計金額と目標金額ｂとの差を小さくすることができる。但し、金額範囲の刻み幅を小さくすると処理時間は大幅に増加する。本願発明者が実施した実験によれば、目標金額ｂ＝４０００億円、集合Ａの担保の数ｎ＝３０００件という条件で図５、６に示した処理を実行した場合、金額範囲の刻み幅を１０億円とすれば約１３秒で処理が終了するものの、金額範囲の刻み幅を１億円とした場合には処理時間が約１９分と大幅に増大することが明らかになっている。このように、解の精度と処理時間はトレードオフの関係にあるため、金額０〜目標金額ｂの金額範囲を分割する際の分割数（金額範囲の刻み幅）は、解の精度に対する要求水準と処理時間に対する要求水準を勘案して定める必要がある。
【０１１２】
解としての担保の組み合わせの合計金額が目標金額ｂに足りていない場合の他の対策としては、目標金額ｂ−担保の組み合わせの合計金額＝ｄとし、集合Ａに残存している担保から金額がｄ以下かつ最大の担保を抽出し、担保の組み合わせに加えることを一定回数繰り返す後処理を行うことが考えられる。この後処理を行うことで、解としての担保の組み合わせの精度を向上させることができる。
【０１１３】
なお、図２，３に示した処理は、図５，６に示した処理に比較して表Ｔの規模が大きく（列数が多く）なるため処理時間も増大するが、処理時間に対する要求水準が非常に高い等の場合には、予め処理時間の上限を定め、処理時間が上限に達した時点で処理を打ち切り、打ち切った時点での合計金額が最大かつ合計件数が最小の担保の組み合わせを近似解とするようにしてもよい。
【０１１４】
また、上記では合計件数（組み合わせ数）がなるべく小さい組み合わせを求める例を説明したが、本発明はこれに限定されるものではなく、合計件数（組み合わせ数）がなるべく大きい組み合わせを求める場合にも適用可能であることは言うまでもない。
【０１１５】
【発明の効果】
以上説明したように本発明は、テーブルに要素が未登録の場合及びテーブルに登録されている要素の中に有価物情報群より抽出された組み合わせ対象の単一の有価物の金額と合計金額が同一又は差が所定値以下の同額要素が存在していない場合には、組み合わせ対象の有価物の情報をテーブルの要素として登録し、同額要素が存在しているときには、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、組み合わせ対象の単一の有価物及び同額要素のうち有価物の組み合わせ数がより小さい方の情報をテーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、組み合わせ対象の単一の有価物及び同額要素のうち有価物の組み合わせ数がより大きい方の情報をテーブルの要素とする処理を行う第１のテーブル操作手段、及び、テーブルに要素が既に登録されている場合に、既登録の特定要素が表す有価物の組み合わせに組み合わせ対象の有価物を更に加えた組み合わせを表す仮想要素と合計金額が同一又は差が所定値以下の同額要素がテーブルに存在していないときには、仮想要素の情報をテーブルの要素として登録し、同額要素が存在しているときには、有価物の組み合わせ数が最小となる有価物の組み合わせを求める場合は、仮想要素及び同額要素のうち有価物の組み合わせ数がより小さい方の情報をテーブルの要素とし、有価物の組み合わせ数が最大となる有価物の組み合わせを求める場合は、仮想要素及び同額要素のうち有価物の組み合わせ数がより大きい方の情報をテーブルの要素とする処理を、テーブルに既に登録されている各要素を前記特定要素として各々行う第２のテーブル操作手段による処理を、有価物情報群から金額の降順又は昇順に有価物の情報を１つずつ取り出しながら繰り返させ、テーブルの中から合計金額が上限値以下で最大かつ組み合わせ数が最小又は最大の最適要素を抽出し、有価物の最適な組み合わせとして、抽出した最適要素に対応する有価物の組み合わせを出力するようにしたので、条件を満足する有価物の適切な組み合わせを短時間で求めることができる、という優れた効果を有する。
【図面の簡単な説明】
【図１】  本実施形態に係るコンピュータ・システムの概略構成を示すブロック図である。
【図２】  担保組み合わせ処理の一例の内容を示すフローチャートである。
【図３】  図２の担保組み合わせ処理のサブルーチンとしての要素追加処理の内容を示すフローチャートである。
【図４】  図２，３の処理による処理経過の一例を説明する説明図である。
【図５】  担保組み合わせ処理の他の例の内容を示すフローチャートである。
【図６】  図５の担保組み合わせ処理のサブルーチンとしての要素追加処理の内容を示すフローチャートである。
【図７】  図５，６の処理による処理経過の一例を説明する説明図である。
【図８】  解の精度が不足している例を説明する説明図である。
【符号の説明】
１０    コンピュータ・システム
１４    ホスト・コンピュータ
１６    サーバ
１６Ａ  ＣＰＵ
１６Ｃ  ＲＡＭ
４８    ＨＤＤ
５６    ＣＤ−ＲＯＭ
【図１】
0004223822.tif 000002
【図２】
0004223822.tif 000003
【図３】
0004223822.tif 000004
【図４】
0004223822.tif 000005
【図５】
0004223822.tif 000006
【図６】
0004223822.tif 000007
【図７】
0004223822.tif 000008
【図８】
0004223822.tif 000009