(57)【特許請求の範囲】
【請求項１】
Ｊ（Ｊは２以上の整数）の種類毎に第１の指標値P1と第２の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、
機器の種類毎に、P1及びP2を記憶する機器記憶手段と、
初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、
1乃至ｊ番目（ｊは１乃至J−１のいずれかの整数）の種類の機器の台数であるn(1)からｎ（ｊ）を記憶する探索範囲記憶手段と、
Nを入力して、
n(ｊ＋1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とｊ＋1番目の種類の機器のみで充足集合を構成したときのｊ＋1番目の種類の機器の最小台数p(ｊ＋1)以下の所定値（ｊ＋１）まで順次増加させながら、
n(ｊ＋１)を前記探索範囲記憶手段に格納して、
N及び１乃至ｊ＋1番目の種類の機器のP1及びP2から、1乃至ｊ＋１番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からｎ（ｊ＋１）である充足集合の集まりである探索範囲(ｊ＋1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、
前記下限値が前記暫定解より小さい場合、
前記探索範囲(ｊ＋1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、
前記下限値が前記暫定解より大きい場合、前記探索範囲(ｊ＋1)の探索を行わない
探索実行手段と、
前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段と
を含む構成管理装置。
【請求項２】
前記機器記憶手段は、各種類の機器の最大台数q(j)（1≦j≦J）を、機器の種類と対応付けて記憶し、
前記探索実行手段は、p(j)と前記機器記憶手段から入力したq(j)（1≦j≦J）のいずれか小さい方を、p(j)以下の前記所定値（ｊ）とする
請求項１に記載の構成管理装置。
【請求項３】
前記探索実行手段は、
前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j＜J)番目の種類の機器の、P1の合計を算出し、算出した前記合計をNから引いた残存必要値を算出し、
j+1番目からJ番目の種類の機器の中で前記指標比が最も大きい機器（機器X）のP1で前記残存必要値を割った実数値である緩和台数を算出し、
それぞれn(1)からn(j)の台数の1からj番目の種類の機器のP2の合計と、前記機器XのP2に前記緩和台数を掛けた値を足した値を、前記探索範囲(j)の前記下限値とする
請求項１に記載の構成管理装置。
【請求項４】
前記探索実行手段は、
前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j＜J)番目の種類の機器の、P1の合計を算出して既定必要値とし、P2の合計を算出して暫定下限値とし、Nから前記既定必要値を引いた値を残存必要値とし、
前記指標比が大きい順に、j+1番目からJ番目の機器の種類から、機器の種類を順次選択しながら、
選択した種類の機器（S番目の種類）の、前記機器記憶手段に記憶されている最大台数q(S)分のP1の合計を算出し、
前記合計が前記残存必要値より小さい場合、前記合計を前記既定必要値に加算し、前記を前記残存必要値から減算し、q(S)台のS番目の種類の機器のP2の合計を前記暫定下限値に加算し、
前記合計が前記残存必要値以上の場合、S番目の種類の機器のP1で前記残存必要値を割った実数値である緩和台数を算出し、前記緩和台数分のS番目の種類の機器のP2の合計を前記暫定下限値に加算して、
前記探索範囲（ｊ）の前記下限値にする
請求項２に記載の構成管理装置。
【請求項５】
Ｊ（Ｊは２以上の整数）の種類毎に第１の指標値P1と第２の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、
機器の種類毎に、P1及びP2を機器記憶手段に記憶し、
初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を暫定解記憶手段に記憶し、
1乃至ｊ番目（ｊは１乃至J−１のいずれかの整数）の種類の機器の台数であるn(1)からｎ（ｊ）を探索範囲記憶手段に記憶し、
Nを入力して、
n(ｊ＋1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とｊ＋1番目の種類の機器のみで充足集合を構成したときのｊ＋1番目の種類の機器の最小台数p(ｊ＋1)以下の所定値（ｊ＋１）まで順次増加させながら、
n(ｊ＋１)を前記探索範囲記憶手段に格納して、
N及び１乃至ｊ＋1番目の種類の機器のP1及びP2から、1乃至ｊ＋１番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からｎ（ｊ＋１）である充足集合の集まりである探索範囲(ｊ＋1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、
前記下限値が前記暫定解より小さい場合、
前記探索範囲(ｊ＋1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、
前記下限値が前記暫定解より大きい場合、前記探索範囲(ｊ＋1)の探索を行わず、
前記探索の実行後、前記暫定集合を最小集合として出力する
構成管理方法。
【請求項６】
各種類の機器の最大台数q(j)（1≦j≦J）を、機器の種類と対応付けて前記機器記憶手段に記憶し、
p(j)と前記機器記憶手段から入力したq(j)（1≦j≦J）のいずれか小さい方を、p(j)以下の前記所定値（ｊ）とする
請求項５に記載の構成管理方法。
【請求項７】
Ｊ（Ｊは２以上の整数）の種類毎に第１の指標値P1と第２の指標値P2に関連付けられる機器で構成され、P1の合計が必要値N以上である機器の集合が充足集合、P2の合計の充足集合中の最小値が最小合計である場合に、
コンピュータを、
機器の種類毎に、P1及びP2を記憶する機器記憶手段と、
初期値が前記最小合計以上の値である暫定解と、P2の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、
1乃至ｊ番目（ｊは１乃至J−１のいずれかの整数）の種類の機器の台数であるn(1)からｎ（ｊ）を記憶する探索範囲記憶手段と、
Nを入力して、
n(ｊ＋1)を、0から、それぞれn(1)からn(j)台の1乃至j番目の種類の機器とｊ＋1番目の種類の機器のみで充足集合を構成したときのｊ＋1番目の種類の機器の最小台数p(ｊ＋1)以下の所定値（ｊ＋１）まで順次増加させながら、
n(ｊ＋１)を前記探索範囲記憶手段に格納して、
N及び１乃至ｊ＋1番目の種類の機器のP1及びP2から、1乃至ｊ＋１番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているn(1)からｎ（ｊ＋１）である充足集合の集まりである探索範囲(ｊ＋1)に含まれる集合のP2の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、
前記下限値が前記暫定解より小さい場合、
前記探索範囲(ｊ＋1)から、P2の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のP2の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、
前記下限値が前記暫定解より大きい場合、前記探索範囲(ｊ＋1)の探索を行わない
探索実行手段と、
前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段と
して動作させる構成管理プログラム。
【請求項８】
各種類の機器の最大台数q(j)（1≦j≦J）を、機器の種類と対応付けて記憶する前記機器記憶手段と、
p(j)と前記機器記憶手段から入力したq(j)（1≦j≦J）のいずれか小さい方を、p(j)以下の前記所定値（ｊ）とする前記探索実行手段と
して動作させる請求項７に記載の構成管理プログラム。
【請求項９】
コンピュータを、
前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j＜J)番目の種類の機器の、P1の合計を算出し、算出した前記合計をNから引いた残存必要値を算出し、
j+1番目からJ番目の種類の機器の中で前記指標比が最も大きい機器（機器X）のP1で前記残存必要値を割った実数値である緩和台数を算出し、
それぞれn(1)からn(j)の台数の1からj番目の種類の機器のP2の合計と、前記機器XのP2に前記緩和台数を掛けた値を足した値を、前記探索範囲(j)の前記下限値とする前記探索実行手段と
して動作させる請求項７に記載の構成管理プログラム。
【請求項１０】
コンピュータを、
前記機器記憶手段が記憶するP1をP2で割った指標比を機器の種類毎に算出し、
前記探索範囲記憶手段が記憶するそれぞれn(1)からn(j)の台数の1からj(1≦j＜J)番目の種類の機器の、P1の合計を算出して既定必要値とし、P2の合計を算出して暫定下限値とし、Nから前記既定必要値を引いた値を残存必要値とし、
前記指標比が大きい順に、j+1番目からJ番目の機器の種類から、機器の種類を順次選択しながら、
選択した種類の機器（S番目の種類）の、前記機器記憶手段に記憶されている最大台数q(S)分のP1の合計を算出し、
前記合計が前記残存必要値より小さい場合、前記合計を前記既定必要値に加算し、前記を前記残存必要値から減算し、q(S)台のS番目の種類の機器のP2の合計を前記暫定下限値に加算し、
前記合計が前記残存必要値以上の場合、S番目の種類の機器のP1で前記残存必要値を割った実数値である緩和台数を算出し、前記緩和台数分のS番目の種類の機器のP2の合計を前記暫定下限値に加算して、
前記探索範囲（ｊ）の前記下限値にする前記探索実行手段と
して動作させる請求項８に記載の構成管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器の組み合わせを導出する構成管理装置、構成管理方法、及び構成管理プログラムに関し、特に、所定の条件を満たす機器の組み合わせを導出する構成管理装置、構成管理方法、及び構成管理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、性能要件及び価格要件を所定の誤差の範囲で満たす構成を提案対象の構成として出力するシステム提案方法及びシステム提案装置が記載されている。本文献によれば、システム提案装置のシステム構成定義部が、性能評価対象システムの構成要素、構成要素の接続関係、アプリケーションの挙動、各資源の仕様及びパラメタ、性能要件、価格要件を受け付ける。構成要素としては、たとえばデータベース管理システムやサーバ側アプリケーション、クライアント側アプリケーションがある。構成要素の接続関係は、構成要素がどのようにネットワーク接続されているかを示す。アプリケーションの挙動は、例えば、処理のステップ数や、ＤＢ（Ｄａｔａｂａｓｅ）検索関数及びＤＢ更新関数の発行回数である。各資源の仕様及びパラメタは、コンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）数やＭＩＰＳ（Ｍｉｌｌｉｏｎ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）値、ディスクのシーク時間、データベース管理システムの設定パラメタ等である。システムの性能は、応答時間である。性能要件は、例えば応答時間５秒のような、システム提案装置が構成を出力するシステムの性能を表す値である。価格要件は、例えば１０００万円のような、システム提案装置が構成を出力するシステムの価格を表す値である。
本文献のシステム提案装置の最適構成算出部は、前記性能評価対象システムの構成要素、構成要素の接続関係、アプリケーションの挙動、各資源の仕様及びパラメタを組み合わせた構成を策定し、各構成に対する応答時間を性能シミュレータによって算出する。また、最適構成算出部は、策定した各構成のハードウェア及びソフトウェアの合計価格を算出する。算出した各構成の応答時間と合計価格を基に、最適構成算出部は、性能要件と価格要件を所定の誤差範囲で満たす構成を出力する。これにより、性能要件と価格要件を満たす構成を短時間で出力することができる。
特許文献２には、予め設定された条件に合致する構成要素（部品）を抽出してシステムの構成を決定し、システムの構成を出力するシステム構築機構が記載されている。部品は、例えば、ＣＰＵやメモリ、ディスクである。部品を抽出するための条件は、ＣＰＵのクロック数や個数、メモリの容量、ディスクの容量等のシステム仕様や、予算や納入日などのユーザ要件である。本文献のシステム構築機構は、抽出機能と判定機能を含む。
抽出機能は、部品諸元表から、システム仕様を満たすＣＰＵやメモリ、ディスクなどの部品を抽出する。判定機能は、抽出機能が抽出した部品から、ユーザ要件のうちの納入期限以前に納入することができない部品を除く。また、判定機能は、採用すると価格の制限を満たさなくなる部品を除く。システム構築機構は、除かれなかった部品の情報を出力する。
特許文献３には、トランザクションの処理時間が所定の応答時間を超える確率が所定の値以下であるシステム構成で、価格が最小になるものを算出する構成導出方法及び構成導出装置が記載されている。特許文献３の構成導出装置は、性能を表す関数である性能関数が制約条件を満たし、かつ、目的関数としての価格関数を最小にするシステム構成を、ラグランジュの未定乗数法により求める。性能関数及び価格関数は、システム構成データを変数とする関数である。制約条件は、性能保証対象のジョブ実行時に、トランザクションの処理時間が、応答時間Ａ以上である確率がＢ以下であることである。システム構成パラメータは、ＣＰＵ性能Ｓ、ＣＰＵ数ＮＣＰＵ、全メモリ容量Ｍ、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理速度Ｉ、同時実行可能ジョブ数ＮＪである。
特許文献３の構成導出装置は、ＣＰＵ数を１から増設可能な最大ＣＰＵ数まで１ずつ増加させながら、次の処理を繰り返す。特許文献３の構成導出装置は、まず、ＣＰＵ数ＮＣＰＵを固定した時の最適システムパラメータ（Ｓ、Ｍ、Ｉ）をラグランジュの未定乗数法により算出する。特許文献３の構成導出装置は、次に、計算で得られた最適システムパラメータに対する距離が最も小さい現実のシステムパラメータセットを、価格データから探索する。
特許文献３の構成導出装置は、ＣＰＵ数を１から増設可能な最大ＣＰＵ数まで１ずつ増加させて導出した各ＣＰＵ数における最適化されたシステム構成から、価格が最低になるシステム構成のパラメータセット（ＮＣＰＵ、Ｓ、Ｍ、Ｉ）を決定する。特許文献３の構成導出装置は、次に、算出したシステム変数（Ｓ、ＮＣＰＵ、Ｍ、Ｉ）に対して、同時実行可能ジョブ数ＮＪを算出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１８３４１６号公報
【特許文献２】特開２００２−０２０５６８号公報
【特許文献３】特開２００４−０３０２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のシステム提案装置は、システムの構成要素、各構成要素間の接続関係、アプリケーションの挙動、各資源の使用及びパラメタの指定をそれぞれ組み合わせた複数の構成を策定する。そして、本システム提案装置は、策定した全ての構成の応答時間及び価格を算出し、性能要件及び価格要件を所定の誤差の範囲で満たす構成を出力する。
従って、特許文献１の技術には、一定以上の性能を満たす最も安価な構成を出力することができないという問題があった。
特許文献２のシステム構築機構は、部品の種類毎に定められた条件を満たす部品を種類毎に抽出し、抽出した部品から種類毎に一つずつ選択した部品の合計価格が、所定の値以下になる部品の組み合わせを選択する。
特許文献２の技術には、２種類の指標を持つ複数種類の部品を組み合わせて、組み合わせに含まれる部品の一方の指標の合計値が所定値以上である組み合わせの中で、他方の指標の合計値が最小である組み合わせを選択することができないという問題があった。
特許文献３のシステム構成導出装置は、１から増設可能な最大ＣＰＵ数までの全てのＣＰＵ数について、最適システム構成パラメータを算出し、その中から価格が最低になるシステム構成パラメータセットを選択していた。
特許文献３の技術には、各ＣＰＵの性能が同一であることを前提としているという問題があった。
本発明の目的は、異なる２つの指標を持つ複数の種類の機器の組合せに対して、一方の指標の合計が所定値以上で、他方の指標の合計が最小となる機器の組み合わせを、少ない計算量で導出する構成管理装置を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の構成管理装置は、複数（Ｊ）の種類毎に第１の指標値Ｐ１と第２の指標値Ｐ２に関連付けられる機器で構成され、Ｐ１の合計が必要値Ｎ以上である機器の集合が充足集合、Ｐ２の合計の充足集合中の最小値が最小合計である場合に、機器の種類毎に、Ｐ１及びＰ２を記憶する機器記憶手段と、初期値が前記最小合計以上の値である暫定解と、Ｐ２の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、１乃至ｊ番目（ｊは１乃至Ｊ−１のいずれかの整数）の種類の機器の台数であるｎ（１）からｎ（ｊ）を記憶する探索範囲記憶手段と、Ｎを入力して、ｎ（ｊ＋１）を、０から、それぞれｎ（１）からｎ（ｊ）台の１乃至ｊ番目の種類の機器とｊ＋１番目の種類の機器のみで充足集合を構成したときのｊ＋１番目の種類の機器の最小台数ｐ（ｊ＋１）以下の所定値（ｊ＋１）まで順次増加させながら、ｎ（ｊ＋１）を前記探索範囲記憶手段に格納して、Ｎ及び１乃至ｊ＋１番目の種類の機器のＰ１及びＰ２から、１乃至ｊ＋１番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているｎ（１）からｎ（ｊ＋１）である充足集合の集まりである前記探索範囲（ｊ＋１）に含まれる集合のＰ２の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、前記下限値が前記暫定解より小さい場合、前記探索範囲（ｊ＋１）から、Ｐ２の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のＰ２の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、前記下限値が前記暫定解より大きい場合、前記探索範囲（ｊ＋１）の探索を行わない探索実行手段と、前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段とを含む。
本発明の構成管理方法は、複数（Ｊ）の種類毎に第１の指標値Ｐ１と第２の指標値Ｐ２に関連付けられる機器で構成され、Ｐ１の合計が必要値Ｎ以上である機器の集合が充足集合、Ｐ２の合計の充足集合中の最小値が最小合計である場合に、機器の種類毎に、Ｐ１及びＰ２を機器記憶手段に記憶し、初期値が前記最小合計以上の値である暫定解と、Ｐ２の合計が前記暫定解となる機器の集合である暫定集合を表す情報を暫定解記憶手段に記憶し、１乃至ｊ番目（ｊは１乃至Ｊ−１のいずれかの整数）の種類の機器の台数であるｎ（１）からｎ（ｊ）を探索範囲記憶手段に記憶し、Ｎを入力して、ｎ（ｊ＋１）を、０から、それぞれｎ（１）からｎ（ｊ）台の１乃至ｊ番目の種類の機器とｊ＋１番目の種類の機器のみで充足集合を構成したときのｊ＋１番目の種類の機器の最小台数ｐ（ｊ＋１）以下の所定値（ｊ＋１）まで順次増加させながら、ｎ（ｊ＋１）を前記探索範囲記憶手段に格納して、Ｎ及び１乃至ｊ＋１番目の種類の機器のＰ１及びＰ２から、１乃至ｊ＋１番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているｎ（１）からｎ（ｊ＋１）である充足集合の集まりである前記探索範囲（ｊ＋１）に含まれる集合のＰ２の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、前記下限値が前記暫定解より小さい場合、前記探索範囲（ｊ＋１）から、Ｐ２の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のＰ２の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、前記下限値が前記暫定解より大きい場合、前記探索範囲（ｊ＋１）の探索を行わず、前記探索の実行後、前記暫定集合を最小集合として出力する。
本発明の構成管理プログラムは、複数（Ｊ）の種類毎に第１の指標値Ｐ１と第２の指標値Ｐ２に関連付けられる機器で構成され、Ｐ１の合計が必要値Ｎ以上である機器の集合が充足集合、Ｐ２の合計の充足集合中の最小値が最小合計である場合に、コンピュータを、機器の種類毎に、Ｐ１及びＰ２を記憶する機器記憶手段と、初期値が前記最小合計以上の値である暫定解と、Ｐ２の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶手段と、１乃至ｊ番目（ｊは１乃至Ｊ−１のいずれかの整数）の種類の機器の台数であるｎ（１）からｎ（ｊ）を記憶する探索範囲記憶手段と、Ｎを入力して、ｎ（ｊ＋１）を、０から、それぞれｎ（１）からｎ（ｊ）台の１乃至ｊ番目の種類の機器とｊ＋１番目の種類の機器のみで充足集合を構成したときのｊ＋１番目の種類の機器の最小台数ｐ（ｊ＋１）以下の所定値（ｊ＋１）まで順次増加させながら、ｎ（ｊ＋１）を前記探索範囲記憶手段に格納して、Ｎ及び１乃至ｊ＋１番目の種類の機器のＰ１及びＰ２から、１乃至ｊ＋１番目の種類の機器の台数が、前記探索範囲記憶手段に格納されているｎ（１）からｎ（ｊ＋１）である充足集合の集まりである前記探索範囲（ｊ＋１）に含まれる集合のＰ２の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、前記下限値が前記暫定解より小さい場合、前記探索範囲（ｊ＋１）から、Ｐ２の合計が前記暫定解より小さい充足集合を抽出し、抽出した前記充足集合のＰ２の合計及び抽出した前記充足集合を表す情報を、暫定解及び暫定集合として前記暫定解記憶手段に格納し、前記下限値が前記暫定解より大きい場合、前記探索範囲（ｊ＋１）の探索を行わない探索実行手段と、前記探索実行手段による探索の実行後、前記暫定集合を最小集合として出力する出力手段として動作させる。
【発明の効果】
【０００６】
本発明には、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる２つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態の構成管理装置１の構成の例を表すブロック図である。
【図２】第１の実施形態の構成管理装置１が機器の指標を取得する動作の例を表すフローチャートである。
【図３】第１の実施形態の構成管理装置１の動作の例を表すフローチャートである。
【図４】第１の実施形態及び第１の実施形態の第２の変形例の構成管理装置１の探索の動作の例を表すフローチャートである。
【図５】機器情報の第１の例を表す図である。
【図６】指標比の例を表す図である
【図７】暫定解及び暫定集合の例を表す図である。
【図８】第１の実施形態の構成管理装置１による解の探索過程を図示した探索木の第１の例を表す図である。
【図９】第１の実施形態の第１の変形例の構成管理装置１が初期解を算出する動作の例を表すフローチャートである。
【図１０】第１の実施形態の第１の変形例の構成管理装置１の探索の動作の例を表すフローチャートである。
【図１１】第１の実施形態の第１及び第２の変形例の構成管理装置が下限値を算出する動作の例を表すフローチャートである。
【図１２】第１の実施形態の構成管理装置による解の探索過程を図示した探索木の第２の例を表す図である。
【図１３】機器情報の第２の例を表す図である。
【図１４】第１の実施形態の第２の変形例の構成管理装置１が初期解を算出する動作の例を表すフローチャートである。
【図１５】２の実施形態の構成管理装置１の構成の例を表すブロック図である。
【発明を実施するための形態】
【０００８】
次に、本発明の実施形態について図面を参照して詳細に説明する。
（第１の実施形態）
図１は本発明の第１の実施形態の構成管理装置１の構成を表すブロック図である。
図１を参照すると、本実施形態の構成管理装置１は、機器記憶部１０と、暫定解記憶部１１と、探索範囲記憶部１２と、探索実行部１３と、出力部１４を含む。構成管理装置１は、初期解算出部１５と、指標取得部１６を含んでいてもよい。また、構成管理装置１には、端末２が接続されている。構成管理装置１には、ファイル３１を含むサーバ３が接続されていてもよい。なお、サーバ３は存在せず、構成管理装置１がファイル３１を含んでいてもよい。
本実施形態の構成管理装置１は、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。機器記憶部１０と、暫定解記憶部１１と、探索範囲記憶部１２は、コンピュータが含むメモリやハードディスク装置により実現することができる。また、探索実行部１３と、出力部１４と、初期解算出部１５と、指標取得部１６は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。あるいは、機器記憶部１０と、暫定解記憶部１１と、探索範囲記憶部１２と、探索実行部１３と、出力部１４と、初期解算出部１５と、指標取得部１６の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
機器記憶部１０は、少なくとも２つの異なる指標を持つ複数の種類（Ｊ個の種類）の機器の、２つの指標を、種類毎に記憶する。機器は、例えばサーバなどの計算装置やＣＰＵ等である。２つの指標のうち、第１の指標（Ｐ１）は、例えば、機器の性能を表す指標である。性能を表す指標は、例えば、スループットや、ＭＩＰＳ値、ＦＬＯＰＳ（Ｆｌｏａｔｉｎｇ  ｐｏｉｎｔ  ｎｕｍｂｅｒ  Ｏｐｅｒａｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）値等の指標である。また、第１の指標は、例えば、信頼性や可用性等を表す指標であってもよい。２つの指標のうち、第２の指標（Ｐ２）は、例えば、機器のコストを表す指標である。コストを表す指標は、例えば、価格、消費電力、排熱量、重量、設置スペース等の、システムの構築や運用の費用に影響する指標である。また、第２の指標は、例えば、機器を構成する部品数などの値であってもよい。複数の機器に対するこれらの２つの指標は、それぞれの機器の２つの指標を合計した値である。
例えば、機器が計算装置であり、第１の指標が性能を表し、第２の指標が価格である場合、複数種類の機器から選択した１台以上の機器の集合で構成される計算機システムの性能は、集合に含まれる機器の、第１の指標の合計で表される。また、この計算機システムの価格は、集合に含まれる機器の、第２の指標の合計である。
以下の説明では、第１の指標の合計が所定値（必要値）を上回る機器の集合（充足集合）のうち、第２の指標の合計が最小となる集合が、最小集合である。最小集合に属する機器の第２の指標の合計が最小合計である。必要値は、例えば、ユーザが、端末２が備える図示しない入力手段を介して、機器構成装置１に入力した値であればよい。また、後述の探索実行部１３が、後述の探索を既に行った各充足集合の中で、第２の指標の合計が最小となる集合が暫定集合である。そして、暫定集合に属する機器の第２の指標の合計が暫定解である。
なお、本実施形態では、機器の集合が含みうる各種類の機器の台数に制限はない。一般に、機器の集合が含みうる各種類の機器の台数に制限を設けず、所定の条件下で最適な機器の組合せを導出する問題は、無制限問題と呼ばれる。例えば、複数種類の計算機から選択した１台以上の計算機で構成される情報処理システムを新たに導入する場合に、導入する各種類の機器の台数に制限がなければ、所定の性能を満たし、最もコストの安い計算機を導出する問題は、無制限問題である。
機器記憶部１０が記憶する各機器の第１の指標及び第２の指標は、予め与えられていればよい。あるいは、後述するように、指標取得部１６が、これらの指標をファイル３１から取得してもよい。また、例えば、ユーザが、端末２を介して、これらの指標を構成管理装置１に入力し、機器記憶部１０に記憶させてもよい。
初期解算出部１５は、例えば、それなりによい解を高い確率で求める手法（ヒューリスティクス）を使って、暫定解の初期値（初期解）を算出する。ヒューリスティクスは、必ず最小合計を算出する方法である必要はない。ヒューリスティクスは、第１の指標の合計が必要値を上回る機器の集合を、最小合計を必ず算出する方法よりおおむね短時間で抽出できる方法であればよい。ヒューリスティクスは必ず最小合計を算出する手法ではないので、初期解算出部１５が算出する暫定解の初期値は、最小合計以上の値である。初期解算出部１５が使うヒューリスティクスの例については後述する。一般的なヒューリスティクスの例として、遺伝的アルゴリズムや焼きなまし法、ニューラルネットを利用したアルゴリズムなどがある。
初期解算出部１５は、算出した暫定解の初期値と、対応する機器の集合（暫定集合の初期値）を表す情報を、暫定解記憶部１１に格納する。
暫定解記憶部１１は、暫定解と、暫定集合を表す情報を記憶する。暫定解記憶部１１が初期状態で記憶する暫定解と、暫定集合を表す情報は、前述のように、例えば初期解算出部１５が算出した暫定解の初期値と、暫定集合の初期値を表す情報であればよい。
暫定解記憶部１１は、初期状態で、初期解算出部１５が算出した暫定解の初期値を記憶せず、コンピュータ上で表現できる十分大きな値を、暫定解としてあらかじめ記憶していてもよい。この場合、暫定解記憶部１１は、初期状態では暫定解に対応する暫定集合を記憶していなくてよい。さらに、この場合、初期解算出部１５は存在しなくてもよい。ただし、この場合は、探索の効率が低下する可能性が高くなる。
探索範囲記憶部１２は、１からｊ番目（ｊは１以上Ｊ−１以下の整数）の種類の機器の台数である、ｎ（１）からｎ（ｊ）を記憶する。後述の探索実行部１３は、探索範囲記憶部１２に格納されている機器の台数を読み出し、読み出した機器の台数に基づき定めた機器の集合を探索の対象とすることができる。例えば、探索範囲記憶部１２に、１からｊ番目の種類の機器の台数であるｎ（１）からｎ（ｊ）が格納されている場合、探索実行部１３は、１からｊ番目の種類の機器の台数が、それぞれｎ（１）からｎ（ｊ）である機器の集合を探索の対象とすればよい。この場合、探索範囲記憶部１２が記憶するｎ（１）からｎ（ｊ）は、探索の対象となる機器の集合の集まりである探索範囲を表す。
探索実行部１３は、複数種類の機器で構成される機器の集合のうち、第１の指標の合計が必要値以上である集合（前述の充足集合）の集まりである探索範囲から、第２の指標の合計が暫定解以下となる機器の組合せを抽出する探索を行う。探索実行部１３は、探索の際、探索範囲を複数の探索範囲に分割する。そして、探索実行部１３は、分割した探索範囲毎に最小集合を含む可能性の有無を判定する。探索実行部１３は、判定の結果最小集合を含む可能性がない探索範囲を、探索の対象から除外する。探索については、本実施形態の動作の説明において詳細に述べる。探索実行部１３が、探索の対象から除外しなかった探索範囲全て対する探索を終了した後の暫定集合が、最小集合である。
出力部１４は、探索実行部１３による探索の終了後、暫定解記憶部１１が記憶する暫定集合を表す情報を、最小集合を表す情報として、端末２に出力する。
端末２は、出力部１４が出力する最小集合を表す情報を表示する。端末２による表示は、最小集合にどの種類の機器が何台含まれるか分かる形式であれば、どのような形式の表示であっても構わない。
指標取得部１６は、例えばサーバ３が記憶するファイル３１に含まれる各機器の第１の指標及び第２の指標を抽出し、機器記憶部１０に格納する。
サーバ３は、構成管理装置１と同一の装置であってもよく、例えばネットワークで通信可能に接続された他の装置であってもよい。
ファイル３１は、例えば、各機器のベンダがインタネット上で公開している、各機器の仕様が記載された１つ又は複数のウェブページを構成する１つ又は複数のファイルや、各機器の仕様を含むデータベースを構成するファイルである。
指標取得部１６は、例えば、端末２の図示しない入力部等を介した、ウェブページ等を特定するＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）等を指定したユーザの指示により、ファイル３１を取得する。指標取得部１６は、ファイル３１に含まれる各機器の第１の指標及び第２の指標を、例えば「性能」や「価格」、「消費電力」、「部品数」などの文字列をキーに抽出する。指標取得部１６は、抽出した各機器の第１の指標及び第２の指標を、機器記憶部１０に格納する。また、指標取得部１６は、端末２の図示しない入力部等を介した、データベースに対するクエリ等を指定した指示により、データベースから第１の指標及び第２の指標を取得してもよい。指標取得部１６は、ファイル３１から、指標を得るための情報（例えば機器のＣＰＵやクロック数等）を抽出してもよい。そして、指標取得部１６は、抽出した情報を元に、指標が格納されているデータベースから第１の指標及び第２の指標を取得してもよい。
なお、指標取得部１６、サーバ３及びファイル３１は、存在しなくてもよい。その場合、機器記憶部１０が、あらかじめ、少なくとも２つの異なる指標を持つ複数の種類（Ｊ個の種類）の機器の２つの指標を、種類毎に記憶していればよい。
次に、本実施形態の構成管理装置１の動作について、図面を参照して詳細に説明する。
図２は、本実施形態の構成管理装置１が機器の指標を取得する動作の例を表すフローチャートである。
図２を参照すると、指標取得部１６は、まず、例えば端末２の図示しない入力部を介した指示を受け、機器の種類毎の第１の指標及び第２の指標を含むファイル３１を取得する（ステップＳ６１）。
指標取得部１６は、次に、取得したファイル３１から、機器の種類毎の第１の指標及び第２の指標を抽出する（ステップＳ６２）。
指標抽出部１６は、抽出した機器の種類毎の第１の指標及び第２の指標を、機器の種類に対応付けて機器記憶部１０に格納する（ステップＳ６３）。
図３は、本実施形態の構成管理装置１が最小集合（解）を抽出する動作の例の全体を表すフローチャートである。
図３を参照すると、構成管理装置１の探索実行部１３が、まず、端末２の図示しない入力部などを介して、必要値Ｎを受信する（ステップＳ１）。
次に、初期解算出部１５が、例えば探索実行部１３から受信した必要値Ｎと、機器記憶部１０から受信した機器の種類各々の第１の指標及び第２の指標をもとに、ヒューリスティクスを使って暫定解の初期値を算出する（ステップＳ２）。初期解算出部１５は、暫定解に対応する暫定集合を表す情報と共に、暫定解記憶部１１に格納する。
本実施形態の初期解算出部１５が暫定解の初期値を算出するヒューリスティクスの例は、次の通りである。初期解算出部１５は、例えば、機器の種類毎に第２の指標に対する第１の指標の比（指標比）を算出すればよい。そして、初期解算出部１５は、指標比が最も大きい種類の機器のみで充足集合を構成した場合の機器の最小台数を算出すればよい。初期解算出部１５は、算出した最小台数の、指標比が最も大きい種類の機器で構成される集合を暫定集合の初期値にすればよい。そして、初期解算出部１５は、暫定集合の初期値の第２の指標の合計を暫定解の初期値にすればよい。なお、第１の指標が性能を表し、第２の指標がコストを表す場合、指標比はコストパフォーマンス（コスト性能比）を表す。
図５は、機器記憶部１０が記憶する機器情報（機器の種類毎の第１の指標及び第２の指標）の一例を表す図である。図５の例では、機器記憶部１０は、機種Ａから機種Ｃの３種類の機器の第１の指標及び第２の指標を記憶する。
初期解算出部１５はこれらの指標を機器記憶部１０から読み出し、機器の種類毎に指標比を算出する。
図６は、図５に示す機器情報の例から算出した指標比を表す図である。図６を参照すると、この場合、指標比が最も大きいのは機種Ｃであり、その指標比は０．８８である。
例えば、必要値Ｎが１５の場合、機種Ｃの第１の指標は７であり、１５／７は約２．１４なので、機種Ｃのみで必要値を満たすためには、３台の機種Ｃが必要である。３台の機種Ｃで構成される集合の第２の指標の合計は２４である。この場合、初期解算出部１５は、暫定解として２４を、暫定解記憶部１１に格納すればよい。そして、初期解算出部１５は、暫定集合として３台の機種Ｃで構成される集合を表す情報を、暫定解記憶部１１に格納すればよい。
図７は、暫定解が２４、暫定集合が３台の機種Ｃで構成される集合である場合の、暫定解記憶部１１が記憶する暫定解及び暫定集合を表す情報を表す図である。
次に、探索実行部１３が、複数種類の機器をあわせて１台以上含み、第１の指標の合計値が必要値Ｎ以上である集合から、第２の指標の合計が最小である最小集合を抽出する処理である探索を行う（ステップＳ３）。
探索実行部１３は、分枝限定法に基づいた探索を行う。詳細は図４の説明で述べるが、分枝限定法に基づく探索は、概略以下の通りである。
探索実行部１３は、機器の集合の集まりである探索範囲に対して網羅的に探索を行う前に、探索範囲を複数の探索範囲に分割する。そして、探索実行部１３は、分割した探索範囲に最小集合が含まれる可能性の有無の判定を行う。探索実行部１３は、探素範囲に含まれる機器の集合で、所定の一部の種類の機器の台数が同じ集合の集まりを、新たな探索範囲にすることで、探索範囲の分割を行えばよい。
前述のように、探索範囲記憶部１２がｎ（１）からｎ（ｊ）を記憶している場合、探索実行部１３は、探索実行部１３は、ｎ（１）からｎ（ｊ）を探索範囲記憶部１２から読み出せばよい。そして、探索実行部１３は、読み出したｎ（１）からｎ（ｊ）によって探索範囲を定めればよい。探索実行部１３は、１からｊ番目の種類の機器の台数がそれぞれｎ（１）からｎ（ｊ）である機器の集合の集まりを探索範囲（探索範囲（ｊ））にすればよい。
探索範囲記憶部１２がｎ（１）からｎ（ｊ）を記憶している場合にこのようにして定まる探索範囲（ｊ）に対して、探索実行部１３行う探索が、「探索（ｊ）」である。探索（ｊ）において、探索実行部１３は、探索範囲記憶部１２から読み出した、ｎ（１）からｎ（ｊ）によって定めた探索範囲（ｊ）を、複数の探索範囲に分割する。そして、探索実行部１３は、分割した探索範囲に最小集合が含まれる可能性の有無の判定を行う。探索実行部１３は、たとえば、探索範囲（ｊ）をｊ＋１番目の種類の機器の台数が同じ集合の集まりに分割すればよい。たとえば、探索範囲（ｊ）を分割して、ｊ＋１番目の種類の機器の台数ｎ（ｊ＋１）がある値である機器の集合を新たな探索範囲にする場合、探索実行部１３は、その値のであるｎ（ｊ＋１）を探索範囲記憶部１２に記憶させればよい。この場合に探索範囲記憶部１２が記憶するｎ（１）からｎ（ｊ＋１）で定まる探索範囲が探索範囲（ｊ＋１）である。また、探索範囲（ｊ＋１）に対して探索実行部１３が行う探索が、探索（ｊ＋１）である。
また、探索（０）は、探索範囲記憶部１２がいずれの種類の機器の台数も記憶していない場合の探索範囲に対して、探索実行部１３が行う探索である。探索範囲記憶部１２がいずれの種類の機器の台数も記憶していない場合の探索範囲は、探索範囲の初期値（探索範囲（０））である。探索範囲（０）については後述する。
探索実行部１３は、探索範囲に最小集合が含まれる可能性の有無の判定を、その探索範囲が含む機器の第２の指標の理論上の下限値と暫定解の比較によって行えばよい。探索実行部１３は、例えば緩和法を用いてこの下限値を算出すればよい。この下限値が暫定解より大きい場合、その探索範囲に、第２の指標の合計が暫定解より小さい値である集合が含まれる可能性はない。この場合、探索実行部１３は、その探索範囲を探索の対象から除外し（枝刈り、ｐｒｕｎｉｎｇ）、その探索範囲に対する探索を行わない。下限値が暫定解よりも小さい場合は、これらの集合に、第２の指標の合計が暫定解よる小さい値である集合が含まれる可能性がある。この場合、探索実行部１３は、これらの集合に対して探索を実行する。この、探索を行うか否かを判定する判定処理が、限定操作である。
探索実行部１３は、探索が必要と判定した探索範囲を、さらに複数の探索範囲に分割し、分割した各探索範囲で探索が必要か不要かを判定してもよい。探索実行部１３は、さらに分割した各探索範囲のうち、探索が必要と判定した探索範囲のみで探索を実行すればよい。
探索実行部１３は、第２の指標の合計が明らかに最小合計ではない充足集合を、探索範囲に含める必要はない。例えば、１番目の種類の機器のみで充足集合を構成した時の、機器の最小台数ｐ（１）より多くの台数の１番目の種類の機器を含む充足集合の、第２の指標の合計は、明らかに最小合計ではない。探索実行部１３は、このような集合を、探索範囲から除外しておけばよい。探索実行部１３は、例えば、１番目の種類の機器のみで充足集合を構成した時の機器の最小台数ｐ（１）を算出し、１番目の機器が０台以上ｐ（１）台以下である充足集合の集まりを、探索範囲の初期値（探索範囲（０））にすればよい。探索実行部１３が、１番目の種類の機器の第１の指標及び第２の指標を機器記憶部１０から読み出し、必要値Ｎと、読み出した第１の指標及び第２の指標をもとに、ｐ（１）を算出すればよい。なお、機器の種類の順番は任意の順番でよいが、指標比が大きい順または小さい順にすると探索効率が向上する場合がある。
ステップＳ３の処理については、図４の説明において詳細に述べる。
出力部１４は、探索実行部１３による探索の終了後、暫定解記憶部１１に格納されている暫定集合を表す情報を読み出し、端末２に対して出力する（ステップＳ４）。
例えば、暫定解記憶部１１に格納されている暫定解が２０であり、暫定集合を表す情報が、「機種Ａが１台、機種Ｂが１台、機種Ｃが１台」であることを表す情報であった場合、出力部１４は、暫定集合を表す情報を、例えば端末２に、所定の形式で出力すればよい。出力の形式は、例えば「（（Ａ，１），（Ｂ，１），（Ｃ，１））」のようなデータであっても、「機種Ａ：１台、機種Ｂ：１台、機種Ｃ：１台」のような文字列であってもよい。また、出力部１４は、暫定解を出力してもよい。
図４は、ステップＳ２の探索時の構成管理装置１の動作の例を表すフローチャートである。
図４を参照すると、探索実行部１３は、機器の種類の順番を表すｊ（ｊは１以上Ｊ−１以下のいずれかの整数）を与えられて探索の処理を開始する。
探索範囲記憶部１２は、探索の動作の開始時に、１乃至ｊ番目の種類の機器の台数（それぞれｎ（１）からｎ（ｊ））を記憶している。探索（ｊ）における探索の対象となる機器の集合は、１番目からｊ番目の機器の台数がそれぞれｎ（１）からｎ（ｊ）である機器の集合である。従って、探索（ｊ）における探索の対象となる機器の集合の集まりである探索範囲（ｊ）は、探索（ｊ）の動作の開始時に探索範囲記憶部１２が記憶している各種類の機器の台数ｎ（１）からｎ（ｊ）によって定まる。ただし、ｊが０である場合、探索範囲記憶部１２に機器の台数は格納されていない。
ｊが０である場合（ステップＳ１１、Ｎ）、探索範囲は初期値（探索範囲（０））である。図３のステップＳ３の探索（０）は、探索実行部１３が、探索範囲（０）に対して、図４に示す処理を行うことを意味する。
ｊが０より大きい場合（ステップＳ１１、Ｙ）、探索実行部１３は、探索範囲記憶部１２から、１番目からｊ−１番目の種類の機器の台数ｎ（１）からｎ（ｊ）を読み出す（ステップＳ１２）。この場合の探索範囲は、１番目からｊ番目の機器の台数がそれぞれｎ（１）からｎ（ｊ）である機器の集合の集まりである。
次に、探索実行部１３は、台数がそれぞれｎ（１）からｎ（ｊ）の１乃至ｊ番目の種類の機器とｊ＋１番目の機器で充足集合を構成する場合の、ｊ＋１番目の機器の最小台数ｐ（ｊ＋１）を算出する（ステップＳ１３）。探索実行部１３は、必要値Ｎと、ｎ（１）からｎ（ｊ）までの値と、機器記憶部１０から読み出した１乃至ｊ＋１番目の種類の機器の第１の指標から、ｐ（ｊ＋１）の算出を行えばよい。このように、ｎ（１）からｎ（ｊ）までの値に応じて、１乃至ｊ＋１番目の種類の機器のみで充足集合を構成する場合のｊ＋１番目の種類の機器の最小台数ｐ（ｊ＋１）を算出する方法が、「細かい方法」である。具体的には、探索実行部１３は、まず、それぞれｎ（１）からｎ（ｊ）台の１乃至ｊ番目の種類の機器の、第１の指標の合計を算出すればよい。次に探索実行部１３は、必要値Ｎと算出した第１の指標の合計の差を算出すればよい。探索実行部１３は、算出した差をｊ＋１番目の種類の機器の第１の指標の値で割り、小数点以下の端数を切り上げた値をｐ（ｊ＋１）にすればよい。探索実行部１３は、１番目からｊ番目の種類の機器の台数がそれぞれｎ（１）からｎ（ｊ）であり、ｊ＋１番目の種類の機器の台数がｐ（ｊ＋１）＋１台以上である集合を、探索の対象にする必要はない。
次に、探索実行部１３は、探索の対象となる集合が含むｊ＋１番目の種類の機器の最大台数ｒ（ｊ＋１）を算出する（ステップＳ１４）。
本実施形態では、各種類の機器の台数に制限はないので、探索実行部１３は、ｐ（ｊ＋１）をｒ（ｊ＋１）にすればよい。なお、集合が含むことができるｊ＋１種類の機器の台数に限りがある場合、探索実行部１３は、ｐ（ｊ＋１）とｊ＋１番目の種類の機器の最大台数のいずれか小さい方を、ｒ（ｊ＋１）にすればよい。この場合、ｒ（ｊ＋１）の値はｐ（ｊ＋１）以下である。集合が含むことができる機器の種類毎の台数に限りがある場合については、後述の変形例１及び変形例２において詳細に説明する。
あるいは、探索実行部１３は、ｊ＋１番目の機器のみで充足集合を構成した場合の機器の最小台数を算出し、ｒ（ｊ＋１）にしてもよい。このように、機器の集合を構成する１乃至ｊ番目の種類の機器の台数によらず、ｊ＋１番目の種類の機器のみで充足集合を構成した場合の最小台数を算出し、探索の対象とする機器の集合のｊ＋１番目の種類の機器の最大台数とする方法が、「荒い方法」である。荒い方法でｒ（ｊ＋１）を算出する場合、探索実行部１３は、必要値を各機種の第１の指標で割り、割り切れない場合は小数点以下を切り上げた値を、ｒ（ｊ＋１）にすればよい。なお、集合が含むことができるｊ＋１種類の機器の台数に限りがある場合、探索実行部１３は、ｊ＋１番目の機器のみで充足集合を構成した場合の機器の最小台数とｊ＋１番目の種類の機器の最大台数のいずれか小さい方を、ｒ（ｊ＋１）にすればよい。荒い方法でｒ（ｊ＋１）を算出する場合、探索実行部１３は、ステップＳ１３の処理を行わなくてよい。
前述の細かい方法でｒ（ｊ＋１）を算出する場合、１番目からｊ番目の種類の機器の台数によってｒ（ｊ＋１）の値は異なる。しかし、荒い方法でｒ（ｊ＋１）の算出を行う場合、１番目からｊ番目の種類の機器の台数によらずｒ（ｊ＋１）の値は一定である。例えば、必要値が１５である場合、ｊ＋１番目の種類の機器が前述の機種Ａであれば、ｒ（ｊ＋１）は、１５／３＝５なので、１番目からｊ番目の種類の機器の台数によらず５である。同様に、ｊ＋１番目の種類の機器が前述の機種Ｂであれば、ｒ（ｊ＋１）は、１５／５＝３なので、１番目からｊ番目の種類の機器の台数によらず３である。また、ｊ＋１番目の種類の機器が前述の機種Ｃであれば、ｒ（ｊ＋１）は、１５／７＝２．１４．．．なので、１番目からｊ番目の種類の機器の台数によらず３である。荒い方法で算出したｒ（ｊ＋１）は、細かい方法で算出したｒ（ｊ＋１）以上の値である。
ところで、探索実行部１３が探索の対象とする機器の集合を、探索木の形で図示することが可能である。探索実行部１３は、探索の対象となる機器の集合を、既存の任意の形式の探索木のデータとして表し、処理を行うこともできる。探索実行部１３は、探索時に、探索範囲を適宜探索木に展開し、例えば探索範囲記憶部１２に格納してもよい。
図８は、図５に示す機器の例における、探索木の例の一部を表す図である。図８の機種Ａ、機種Ｂ、機種Ｃが、それぞれ１乃至３番目の種類の機器に相当する。
図８の探索木において、円はノードを表し、ノード間を結ぶ線は枝を表す。この探索木は４つの階層をもち、最上部（第１階層）のノードが根ノード、最下層（第４階層）のノードが葉ノード、これらの間にあるノードが中間ノードである。
第２から第４の３つの階層は、１から３番目の種類の機器（順に、機種Ａ、機種Ｂ、機種Ｃ）に対応する。
最上部以外の各階層のノードに表記された数字は、対応する機種の台数を表している。そして、根ノードから葉ノードへと至る各経路が、機種の集合に対応している。たとえば、図５中の、根ノードから、機種Ａの台数０、機種Ｂの台数０、機種Ｃの台数３に至る経路は、３台の機種Ｃの集合を表す。以降の説明では、便宜上、「０台の機種Ａ」に対応するノードを（Ａ，０）と表記し、機器の集合を（（Ａ，０），（Ｂ，０），（Ｃ，３））のように表記する。
例えば、ノード（Ａ，０）に対応するのは、１番目の種類（機種Ａ）の台数ｎ（１）が０である機器の集合の集まりである。すなわち、ノード（Ａ，０）は、ｎ（１）＝０で表される探索範囲を表す。同様に、「０台の機種Ａ、０台の機種Ｂ」に対応するノード（（Ａ，０），（Ｂ，０））は、ｎ（１）＝０及びｎ（２）＝０で表され、１番目の種類（機種Ａ）の台数ｎ（１）が０、２番目の種類（機種Ｂ）の台数ｎ（２）が０である探索範囲を表す。
探索実行部１３の動作は、根ノードから最後（Ｊ番目）の種類の機器に相当する根ノードまで、各ノードの一段下層のノードを順次展開しながら、機器の集合に相当する根ノードから各葉ノードにいたる経路を、順次探索して最小集合を抽出することに相当する。例えば、図５の例の場合、探索実行部１３は、全てのノードを展開するのであれば、まず根ノードで一段下層のノードである（Ａ，０）から（Ａ，５）のノードを展開する。探索実行部１３は、次に、（Ａ，０）のノードで一段下層のノードである（（Ａ，０），（Ｂ，０））から（（Ａ，０），（Ｂ，３））を展開する。探索実行部１３は、ノード（（Ａ，０），（Ｂ，０））の一段下層のノードは葉ノードなので、一段下層のノードを展開して探索を行う。探索実行部１３は、同様に（（Ａ，０），（Ｂ，１））から（（Ａ，０），（Ｂ，３））の一段下層のノードを展開して探索を行う。探索実行部１３は、ノード（Ａ，０）を含む経路上の全てのノードの展開及び探索が終了すると、同様にノード（Ａ，１）を含む経路上の全てのノードの展開及び探索を行う。ただし、本実施形態の探索実行部１３は、以下で説明するように、全てのノードの展開及び探索を行う訳ではない。
探索実行部１３は、展開した各ノードにおいて、そのノードを通る経路全てに相当する機器の集合の集まりの、第２の指標の下限値を算出し、その下限値が暫定解を上回る場合は、そのノードを通る経路全てを探索の対象から除外する「枝刈り」を行う。探索実行部１３は、途中のノードで枝刈りを行わずに葉ノードを展開した場合に、葉ノードまでの経路に相当する機器の集合の第２の指標の合計を算出し、暫定解と比較する。探索実行部１３は、算出した第２の指標の合計が暫定解を下回った場合、その合計を新しい暫定解に、対応する機器の集合を新しい暫定集合にする。
以上の動作において、ステップＳ１４は、各ノードで、一段下層のノードを展開する際の、一段下層のノードへの枝の数を算出することに相当する。
各ノードから一段下層のノードへの枝の数が分岐係数である。種類毎の機器の台数は０台の場合もあるので、例えばｊ−１番目の機器に対応するノードにおける分岐係数は、そのノードに対応する１乃至ｊ−１番目の機器各々の台数から探索実行部１３が算出したｒ（ｊ）に１を加算した値である。
荒い方法で分岐係数を算出する場合、上位の各ノードから、１段下のノードに対応する機器の種類の分岐係数の数のノードが必ず分岐する。したがって、荒い方法で分岐係数を算出する場合、図５に示す各機器に対応する探索木では、機器の組合せ総数に対応する葉ノードの数は、各機種の分岐係数を積算した６×４×４＝９６である。
一方、細かい方法は、２番目以上の種類の機器に対応する、第３の階層以下のノードの分枝係数を、根ノードからそのノードまでの経路上のノードに対応する台数の対応する機器の第１の指標の合計と、必要値との差に基づき算出する方法である。
たとえば（Ａ，３）で表されるノードを通る経路に対応する集合の場合、そのノードに対応する３台の機種Ａの第１の指標の合計は９である。荒い方法で分岐計数を算出したこのノードの分岐係数は、２番目の機器の種類である機種Ｂの第１の指標が５なので、１５／５＝３（前述の荒い方法で算出した機種Ｂのｒ（ｊ））に１を加えた４である。しかし、ノード（Ａ，３）以降のノードの第２の指標の合計は、必要値１５とノード（Ａ，３）の第１の指標の合計９との差である、６以上であれば充分である。細かい方法で算出した（Ａ，３）で表されるノードの分岐係数は、６を機種Ｂの第１の指標である５で割った値の小数点以下を切り上げた値に、１を加えた値である３である。
細かい方法には、ノード毎に分岐係数を算出する必要があり、階層が多い場合（機器の種類が多い場合）組合せの総数を算出するのに多くの計算量が必要になるという特徴がある。細かい方法には、さらに、ノード数を削減し、探索効率を改善することができるという特徴がある。最小集合に対応する経路は、細かい方法で算出した分岐係数に基づく分岐のノード以外を通る可能性はない。従って、探索を行う必要があるのは、細かい方法で算出した分岐係数に基づき生成した分岐のノードを経由する経路だけである。
一方、荒い方法で算出する分岐係数は、細かい方法でノード毎に算出する分岐係数以上の値である。荒い方法は、ノード毎に分岐係数を算出する代わりに機器の種類毎に分岐係数を算出するので、分岐係数の算出のための計算量は、細かい方法より少なくなる。しかし、荒い方法で算出する分岐係数は、細かい方法でノード毎に算出した分岐係数以上の値になり、通常は細かい方法よりノード数が増え探索効率が悪い。
次に、探索実行部１３は、ｊ＋１番目の種類の機器の台数を表すｎ（ｊ＋１）を、０からｒ（ｊ＋１）まで順次増加させながら、以下の処理を行う（ステップＳ１５）。
まず、探索実行部１３は、ｊ＋１番目の種類の機器の台数を表すｎ（ｊ＋１）を、探索範囲記憶部１２に格納する（ステップＳ１６）。探索実行部１３は、例えばｎ（ｊ＋１）をｊ＋１と対応付けて格納するなど、ｎ（ｊ＋１）がｊ＋１番目の種類の機器の台数を表すことが判別可能な形で、ｎ（ｊ＋１）を探索範囲記憶部１２に格納すればよい。探索範囲記憶部１２に既に格納されている各種類の機器の台数と、ｎ（ｊ＋１）が探索範囲（探索範囲（ｊ＋１））を表す。
次に、探索実行部１３は、探索範囲記憶部１２に格納されているｎ（１）からｎ（ｊ＋１）が表す探索範囲（ｊ＋１）に含まれる集合の、第２の指標の合計値の下限値を算出する（ステップＳ１７）。
探索実行部１３は、前述のように、緩和法により下限値の算出を行えばよい。緩和法は、元の問題の制約を緩和して説きやすくした緩和問題に対する最適解を算出する方法である。緩和問題の最適解は、一般に、元の問題の最適解よりよい解である。例えば、元の問題が最小値を算出する問題である場合、その問題の緩和問題の最適解である最小値は、一般に、元の問題の解である最小値より小さい。従って、緩和問題の解は、元の問題の解の下限値になりうる。典型的な緩和問題は、たとえば、機器は１台単位で使用し、機器の台数は整数であるという制限がもとの問題に課されている場合に、その制限を緩和し、１台の機器を分割して使用することを可能にして、機器の台数が実数であることを許容した問題である。
本実施形態の探索実行部１３が下限値を算出する上での制約の緩和は、機器の台数は整数であるという制約を外し、実数の台数を許容することであってよい。ただし、機器の台数が整数でない場合も、第１の指標や第２の指標の合計は、台数が整数である場合と同様に、機器の種類毎のそれぞれの指標に、対応する種類の機器の台数を掛けた値である。
台数が実数である場合の、第１の指標の合計が所定値以上となる機器の集合の、第２の指標の合計の最小値は、第１の指標の合計が所定値となる、指標比が最も大きい種類の機器のみで構成される機器の集合の第２の指標の合計を算出することで得られる。第１の指標の合計が所定値以上となるいずれの機器の集合の第２の指標の合計も、この最小値を下回ることはない。
探索範囲（ｊ＋１）に含まれる集合の、１乃至ｊ＋１番目の種類の機器の台数は、それぞれｎ（１）台からｎ（ｊ＋１）台である。以下の説明で、それぞれｎ（１）台からｎ（ｊ＋１）台の１乃至ｊ＋１番目の種類の機器の、第１の指標の合計を、必要値から引いた値が、残存必要値である。また、ｊ＋２乃至Ｊ番目の種類の機器で、指標値が最も大きい機器の種類が機種Ｘである。
探索実行部１３は、探索範囲（ｊ＋１）に含まれ、１乃至ｊ＋１番目の種類の機器と、残りの種類で最も指標比の大きい種類の機器（機種Ｘ）で構成される充足集合の、機種Ｘの最小台数を、機種Ｘの台数が整数であるという制約を外して算出すればよい。探索実行部１３は、それぞれｎ（１）台からｎ（ｊ＋１）台の１乃至ｊ＋１番目の種類の機器と、算出した最小台数の機種Ｘの第２の指標の合計を、探索範囲（ｊ＋１）の第２の指標の合計の下限値にすればよい。
そのために、まず、探索実行部１３は、機器記憶部１０から、１乃至ｊ＋１番目の種類の機器の第１の指標を読み出せばよい。また、探索実行部１３は、探索範囲記憶部１２から、１乃至ｊ＋１番目の種類の機器の台数であるｎ（１）からｎ（ｊ＋１）を読み出せばよい。探索実行部１３は、機器記憶部１０から読み出した各種類の機器の第１の指標に、探索範囲記憶部１２から読み出した対応する種類の機器の台数を掛けた値を足し合わせればよい。探索実行部１３は、このようにして、それぞれｎ（１）台からｎ（ｊ＋１）台の１乃至ｊ＋１番目の種類の機器の第１の指標の合計を算出すればよい。
次に、探索実行部１３は、機器記憶部１０から、ｊ＋２乃至Ｊ番目の種類の機器の種類の各指標を読み出して、指標比を算出すればよい。あるいは、探索実行部１３は、各種類の機器の指標比を予め算出し、例えば機器記憶部１０に機器の種類に対応付けて格納しておいてもよい。そして、探索実行部１３は、指標比が最も大きい種類の機器の選択の際、ｊ＋２乃至Ｊ番目の種類の機器の指標比を、機器記憶部１０から読み出してもよい。探索実行部１３は、ｊ＋２乃至Ｊ番目の種類の機器で、指標比が最も大きい種類の機器を選択する。
探索実行部１３は、必要値と算出した第１の指標の合計との差を、指標比の最も大きい機器の種類の第１の指標で割った実数値（緩和台数）を算出する。
探索実行部１３は、それぞれｎ（１）台からｎ（ｊ＋１）台の１乃至ｊ＋１番目の種類の機器と、算出した実数値を台数としたｊ＋２番目の種類の機器の、第２の指標の合計を算出する。探索実行部１３は、算出した合計を、探索範囲（ｊ＋１）の第２の指標の合計の下限値にする。探索実行部１３は、算出した実数値をｊ＋２番目の種類の機器の第２の指標に掛けた値を、算出した実数値を台数としたｊ＋２番目の種類の機器の第２の指標の合計にすればよい。
例えば、図８の中間ノード（Ａ，０）では、必要値が１５である場合、機種Ａの台数は０なので、残存必要値は１５である。残りの機器の種類のうち、指標比が最も大きい機器の種類は機種Ｃである。台数が実数であることを許容した場合の、第１の指標の合計が１５となる機種Ｃの台数は、１５／７である。１５／７台の機種Ｃの、第２の指標の合計は１５／７×８≒１７．１４である。機種Ａの台数は０なので、これが中間ノード（Ａ，０）以降の探索によって得られる第２の指標の合計に関する下限値である。機種Ａを０台とした場合、第２の指標の合計に関して、１７．１４より小さな解を得ることは理論的に不可能である。従って、もし暫定解が、算出した下限値である１７．１４より小さい場合、中間ノード（Ａ，０）を経由する経路における各ノードの第２の指標の合計が暫定解を下回る可能性はない。この場合、探索実行部１３は、中間ノード（Ａ，０）を経由する経路の探索を行わない。一方、暫定解が算出した下限値である１７．１４より大きい場合、中間ノード（Ａ，０）を経由する経路のいずれかに、第２の指標の合計が暫定解を上回る経路が存在する可能性がある。この場合、探索実行部１３は、中間ノード（Ａ，０）を経由する経路の探索を行う。
次に、探索実行部１３は、暫定解記憶部１１から読み出した暫定解と、算出した探索範囲（ｊ＋１）の第２の指標の合計の下限値を比較する。
探索範囲が図８の中間ノード（Ａ，０）で表される場合、暫定解記憶部１１が記憶する暫定解が２４であれば、探索範囲の第２の指標の下限値は約１７．１４なので、下限値の方が暫定解より小さい。
比較の結果、暫定解が下限値を下回る場合（ステップＳ１８、Ｎ）、探索範囲（ｊ＋１）に、第２の指標の合計が暫定解を下回る充足集合が含まれる可能性はない。この場合、探索実行部１３は、探索範囲（ｊ＋１）では探索を行わず、ステップＳ１５に戻る。
例えば、探索範囲が、図８の中間ノード（Ａ，２）で表される場合、２台の機種Ａの第１の指標の合計は３×２＝６である。必要値が１５である場合、探索実行部１３が算出する残存必要値は９である。機種Ａの第２の指標は５、残りの機器の種類（機種Ｂ及び機種Ｃ）で最も指標比の大きい機種Ｃの第１の指標は７、第２の指標は８である。従って、探索実行部１３が算出する下限値は、約２０．２９（＝１０＋８×９／７）である。暫定解記憶部１１が記憶する暫定解が２０、対応する暫定集合が（（Ａ，１），（Ｂ，１），（Ｃ，１））で表される機器の集合である場合、探索実行部１３は、ステップＳ１８で、暫定解が下限値を下回ると判定する（ステップＳ１８、Ｎ）。この場合、ノード（Ａ，２）で表される探索範囲には最小集合は含まれる可能性がないので、探索実行部１３は、ノード（Ａ，２）で表される探索範囲に対する探索は行わない。探索実行部１３は、同様に、ノード（Ａ，３）、（Ａ，４）、（Ａ，５）の各々で表される探索範囲に対する探索も行わない。
比較の結果、暫定解が下限値を下回る場合（ステップＳ１８、Ｙ）、探索範囲（ｊ＋１）に、第２の指標の合計が暫定解を下回る充足集合が含まれる可能性がある。探索実行部１３は、探索範囲（ｊ＋１）で、最小集合の探索を行う。探索集合の探索方法は任意である。
探索実行部１３は、例えば、探索範囲（ｊ＋１）に含まれる全ての集合の第１の指標の合計を算出し、第１の指標の合計が必要値以上である場合、第２の指標の合計を算出して暫定解と比較することで、探索を行ってもよい。探索範囲（ｊ＋１）に含まれる全ての集合の生成において、探索実行部１３は、例えば、まず、ステップＳ１３と同様の処理によりｐ（ｊ＋２）を算出すればよい。探索実行部１３は、０からｐ（ｊ＋２）までの整数を、探索範囲（ｊ＋１）に含まれる集合の、ｊ＋２番目の種類の機器の台数にすればよい。探索実行部１３は、ｊ＋２番目の種類の機器の台数が０からｐ（ｊ＋２）までそれぞれの場合のｐ（ｊ＋３）を、ステップＳ１３と同様の処理により算出すればよい。探索実行部１３は、このようにステップＳ１３と同様の処理を、ｊ＋２乃至Ｊ番目の種類の機器の台数の全ての組合せを導出するまで順次行えばよい。このようにして、探索実行部１３は、探索範囲（ｊ＋１）に含まれる全ての集合を生成することができる。
また、探索実行部１３は、以下のように探索を行ってもよい。
探索実行部１３は、ｊがＪ−２より小さい場合（ステップＳ１９、Ｙ）、ｊを１増加させ、図４の探索の動作を再帰的に行う（ステップＳ２０）。すなわち、探索範囲（ｊ＋１）に第２の指標の合計が暫定解を下回る暫定集合が含まれる可能性がある場合、探索範囲記憶部１２に台数が格納されていない機器の種類が複数存在するなら、探索実行部１３は、以上で述べた処理と同様にして、探索範囲（ｊ＋１）を更に分割する。そして、探索実行部１３は、探索範囲（ｊ＋１）をｊ＋２番目の種類の機器の台数に応じて分割したそれぞれの探索範囲（ｊ＋２）に、第２の指標の合計が暫定解を下回る集合が含まれる可能性の有無を判定する。そして、探索実行部１３は、判定結果に応じて探索範囲（ｊ＋２）で探索を行う。このように、探索実行部１３は、ｊがＪ−２になるまでｊを１ずつ増加させながら、再帰的に図４の探索の動作を行えばよい。
例えば、探索範囲が前述の探索木の中間ノード（Ａ，０）で表される場合、下限値が暫定解より小さく、また、ｊは０でありＪは３であるので、ｊがＪ−２より小さい。従って、探索実行部１３は、ノード（Ａ，０）で表される探索範囲（１）に対して、図４の処理を最初から行えばよい。この場合、探索実行部１３は、ノード（Ａ，０）で表される探索範囲（１）を、２番目の機器の種類（機種Ｂ）の台数に応じて分割した、（（Ａ，０），（Ｂ，０）、（（Ａ，０），（Ｂ，１））、…で表される探索範囲（２）に対して、同様にステップＳ１７以降の処理を行えばよい。
探索実行部１３は、ｊがＪ−２である場合（ステップＳ１９、Ｎ）、探索範囲（ｊ＋１）で、第２の指標の合計が暫定解を下回る機器の集合が存在すれば、その集合の第２の指標の合計を新しい暫定解に、その集合を新しい暫定集合とする。新しい暫定解及び暫定集合が見つかった場合、探索実行部１３は、新しい暫定解と、新しい暫定解を表す情報を、暫定解記憶部１１に格納し、暫定解及び暫定集合の更新を行う（ステップＳ２１）。
探索範囲（ｊ＋１）は、ｊがＪ−２である場合、１番目乃至Ｊ−１番目の種類の機器の台数がそれぞれｎ（１）からｎ（Ｊ−１）である機器の集合の集まり（探索範囲（Ｊ−１））である。ステップＳ２１で、探索実行部１３は、まず、ステップＳ１３と同様にしてｐ（Ｊ）を算出し、ステップＳ１４と同様にしてｒ（Ｊ）を算出すればよい。
前述の細かい方法でｐ（Ｊ）を算出する場合、ｐ（Ｊ）は、探索範囲（Ｊ−１）に含まれる集合で、第２の指標の合計が最小となる充足集合の、Ｊ番目の種類の機器の台数である。また、本実施形態では機器の台数に制限は無いので、ｒ（Ｊ）はｐ（Ｊ）である。従って、探索実行部１３は、Ｊ番目の種類の機器の台数がｒ（Ｊ）である場合の第２の指標の合計を算出し、算出した第２の指標の合計を、暫定解記憶部１１から読み出した暫定解と比較すればよい。
一方、前述の荒い方法でｒ（Ｊ）を算出する場合、探索範囲（Ｊ−１）に含まれる充足集合における、Ｊ番目の種類の機器の最小値ｐ（Ｊ）は、ｒ（Ｊ）以下のいずれかの値である。この場合、探索実行部１３は、Ｊ番目の種類の機器の台数ｎ（Ｊ）を０から順次増加させながら、探索範囲（Ｊ−１）に含まれ、Ｊ番目の種類の機器の台数がｎ（Ｊ）である集合の、第１の指標の合計を算出する。探索実行部１３は、算出した第１の指標の合計を必要値と比較し、最初に第１の指標の合計が必要値を上回った集合の、第２の指標の合計を算出する。探索実行部１３は、算出した第２の指標の合計を、暫定解記憶部１１から読み出した暫定解と比較すればよい。なお、第１の指標の合計が必要値を上回らないまま、ｎ（Ｊ）がｒ（Ｊ）に達した場合、探索実行部１３は暫定解及び暫定集合の更新を行わず、ステップＳ２１の処理を終了すればよい。
比較の結果、算出した第２の指標の合計が暫定解を下回る場合、探索実行部１３は、算出した第２の指標の合計を新しい暫定解にすればよい。また、探索実行部１３は、探索範囲記憶部１２が記憶している、探索範囲（Ｊ−１）を表す１乃至Ｊ−１番目の種類の機器の台数であるｎ（１）からｎ（Ｊ−１）と、Ｊ番目の種類の機器の台数ｒ（Ｊ）で表される集合を、新しい暫定集合とすればよい。探索実行部１３は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部１１に格納する。
比較の結果、算出した第２の指標の合計が暫定解を上回る場合、探索実行部１３は暫定解及び暫定集合を表す情報の更新は行わず、ステップＳ２１の処理を終了する。
例えば、ステップＳ１９で、探索範囲が前述の探索木のノード（（Ａ，０），（Ｂ，１））で表される探索範囲（２）である場合、ｊ（＝１）はＪ−２（１）より小さくない（ステップＳ１９、Ｎ）ので、探索実行部１３は、ステップＳ２１の処理を行う。
探索実行部１３は、荒い方法でｒ（ｊ）の算出を行う場合、（（Ａ，０），（Ｂ，１），（Ｃ，０））、（（Ａ，０），（Ｂ，１），（Ｃ，１））で表される機器の集合の第１の指標の合計の算出及び必要値との比較を、順に行う。機器記憶部１０に格納されているこれらの機器の第１の指標及び第２の指標は、図５の例の通りである。従って、これらの機器の集合の第１の指標の合計は、必要値より小さい。探索実行部１３は、次に、（（Ａ，０），（Ｂ，１），（Ｃ，２））で表される機器の集合の第１の指標の合計を算出する。得られた合計である１９は、必要値である１５より大きいので、探索実行部１３は、この機器の集合の第２の指標の合計を算出する。暫定解記憶部１１に格納されている暫定解が２４の場合、算出した第２の指標の合計である２３は、暫定解より小さい。この場合、探索実行部１３は、算出した第２の指標の合計２３を新しい暫定解に、対応する（（Ａ，０），（Ｂ，１），（Ｃ，２））で表される機器の集合を新しい暫定集合にする。探索実行部１３は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部１１に格納する。
探索実行部１３による探索の終了後、上述の図３のステップＳ３の説明ように、出力部１４が、暫定解記憶部１１に格納されている暫定集合を表す情報を読み出し、端末２に対して出力すればよい。
以上で説明した本実施形態には、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる２つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
その理由は、探索実行部１３が、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部１３は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
（第１の実施形態の第１の変形例）
次に、本発明の第１の実施形態の、第１の変形例について説明する。
前述の第１の実施形態では機器の種類毎の台数に制限は無かったのに対し、本変形例の機器の種類毎の台数は、１台又は０台である（０１問題）。本変形例の構成管理装置１は、同じ種類の機器を２台以上含まない充足集合で、第２の指標の合計が最小となる集合を出力する。
まず、本変形例の構成管理装置１の構成について、図面を参照して詳細に説明する。
図１は、本変形例の構成管理装置１の構成を表す図である。本変形例の構成管理装置１の構成は、第１の実施形態の構成管理装置１の構成と同じである。したがって、構成に関する説明は省略する。
図３は、本変形例の構成管理装置１が最小集合を抽出する動作全体を動作の例を表すフローチャートである。
本変形例の構成管理装置１が最小集合を抽出する動作の例は、前述の第１の実施形態の構成管理装置１が最小集合を抽出する動作の例と、ステップＳ２における初期解の算出の方法と、ステップＳ３における探索の方法が異なる。
また、探索実行部１３は、１番目の機器が０台以上１台以下である充足集合の集まりを、探索範囲の初期値（探索範囲（０））にすればよい。
本変形例の構成管理装置１のその他の動作は、第１の実施形態の構成管理装置１の動作と同じなので、説明を省略する。
図９は、本変形例の構成管理装置１が初期解を算出する動作の例を表すフローチャートである。
図９を参照すると、初期解算出部１５は、機器記憶部１０から全ての機器の種類の第１の指標及び第２の指標を読み出す（ステップＳ３１）。
次に、初期解算出部１５は、全ての機器の種類の指標比を算出する（ステップＳ３２）。初期解算出部１５は、算出した指標比が大きい順に、機器の種類をソートしてもよい。
次に、初期解算出部１５は、未選択の機器の種類の中で、指標比が最も大きい機器の種類を１つ選択する（ステップＳ３３）。
初期解算出部１５は、例えば、暫定解記憶部１１に格納されている暫定集合の情報を読み出せばよい。初期解算出部１５は、読み出した暫定集合の情報に１台の選択した種類の機器の情報を追加する暫定集合の更新を行えばよい。初期解算出部１５は、更新を行った暫定集合の情報を暫定解記憶部１１に格納すればよい。初期解算出部１５は、暫定解記憶部１１に暫定集合の情報が格納されていない場合、１台の選択した種類の機器で構成される暫定集合の情報を生成すればよい。初期解算出部１５は、その暫定集合の情報を、暫定解記憶部１１に格納すればよい。
初期解算出部１５は、既に選択した機器の種類の、第１の指標の累計を算出する（ステップＳ３４）。
なお、初期解算出部１５は、ステップＳ３４の動作の実行時に、第２の指標の累計を算出してもよい。そして、初期解算出部１５は、算出した第２の指標の累計を、暫定解として暫定解記憶部１１に格納してもよい。初期解算出部１５は、例えば、暫定解記憶部１１から第２の指標の累計である暫定解を読み出せばよい。そして、初期解算出部１５は、読み出した暫定解にステップＳ３３で新しく選択した種類の機器の第２の指標を合算すればよい。そして、初期解算出部１５は、合算した暫定解を暫定解記憶部１１に格納すればよい。この場合、暫定解記憶部１１に暫定解が記憶されてなければ、ステップＳ３３で新しく選択した種類の機器の第２の指標を、暫定解として暫定解記憶部１１に格納すればよい。
初期解算出部１５は、選択済みの機器の種類の第１の指標の累計と必要値を比較する。初期解算出部１５は、第１の指標の合計が必要値以上である場合（ステップＳ３５、Ｙ）、暫定解の初期値となる、選択済みの機器の種類の第２の指標の累計を算出する（ステップＳ３６）。
初期解算出部１５は、算出した第２の指標の累計を、暫定解の初期値として暫定解記憶部１１に格納する（ステップＳ３７）。
なお、ステップＳ３４で、第２の指標の累計を暫定解として暫定解記憶部１１に格納している場合、ステップＳ３６では、選択済みの機器の種類の第２の指標の累計を暫定解の初期値として格納する必要はない。
第１の指標の累計が必要値以上でない場合（ステップＳ３５、Ｙ）、全ての機器の種類を選択されておらず、まだ選択されていない機器の種類が存在する場合（ステップＳ３８、Ｎ）、ステップＳ３３に戻る。
全ての機器の種類を選択されており、まだ選択されていない機器の種類が残っていない場合（ステップＳ３８、Ｙ）、初期解の算出の処理を終了する。この場合、機器の集合が機器記憶部１０に各指標が格納されている全ての機器を含んでいても、その集合の第１の指標の合計は必要値未満なので、充足集合は存在しない。
図１０は、本変形例の構成管理装置１の探索の詳細な動作の例を表すフローチャートである。
図１０と図４の第１の実施形態の探索の動作を表すフローチャートを比較すると、本変形例はステップＳ１３及びステップＳ１４を含まず、ステップＳ１５の代わりにステップＳ２２を含む点が異なる。本変形例では、各種類の機器の台数は最大１台なので、ｒ（ｊ＋１）は常に１である。従って、ｒ（ｊ＋１）を算出するためのステップＳ１３及びステップＳ１４は不要である。また、ステップＳ２２は、ｒ（ｊ＋１）が常に１である場合のステップＳ１５に相当する。
また、本変形例の構成管理装置１の動作は、第１の実施形態の構成管理装置１の動作と比較して、ステップＳ１７の緩和法によって下限値を算出する動作と、ステップＳ２１の暫定解及び暫定集合を更新する動作が異なる。その他の点は第１の実施形態の動作と同じであるので、説明を省略する。
図１１は、ステップＳ１７で、本変形例の構成管理装置１の探索実行部１３が下限値を算出する動作の例を表すフローチャートである。
図１１を参照すると、探索実行部１３は、機器記憶部１０から読み出した第１の指標及び第２の指標をもとに、１乃至ｊ＋１番目の機器の第１の指標の合計を算出する（ステップＳ４１）。
次に、探索実行部１３は、必要値Ｎから、算出した１乃至ｊ＋１番目の機器の第１の指標の合計を引いた残存必要値を算出する（ステップＳ４２）。
次に、探索実行部１３は、ｊ＋２乃至Ｊ番目で未選択の機器の種類から、機器記憶部１０から読み出した第１の指標及び第２の指標から算出した指標比が最も大きい機器の種類を選択する（ステップＳ４３）。
探索実行部１３は、選択した種類の機器の最大台数分の、第１の指標の和を算出する（ステップＳ４４）。なお、本変形例では、全ての種類の機器の最大台数は１なので、算出する第１の指標の和は、ステップＳ４３で選択した種類の機器の第１の指標そのものである。
探索実行部１３は、算出した第１の指標の和が残存必要値より小さい場合（ステップＳ４５、Ｎ）、ｊ＋２乃至Ｊ番目の機器の種類を既に全て選択しており、まだ選択されていない機器の種類が存在しないなら（ステップＳ４９）、処理を終了すればよい。この場合、１乃至Ｊ番目の種類の機器を全て組み合わせても、第１の指標の合計が必要値に届かないことになる。
探索実行部１３は、算出した第１の指標の和が残存必要値より小さい場合（ステップＳ４５、Ｎ）、ｊ＋２乃至Ｊ番目の機器の種類に、まだ選択されていない機器の種類が存在するなら、残存必要値を更新する（ステップＳ５０）。探索実行部１３は、ステップＳ４４で算出した第１の指標の和を残存必要値から減算して、新しい残存必要値とすることで、残存必要値の更新を行えばよい。
探索実行部１３は、ステップＳ５０の動作を行った後、ステップＳ４３に戻る。
探索実行部１３は、算出した第１の指標の和が残存必要値より大きい場合（ステップＳ４５、Ｙ）、残存必要値を、選択した種類の機器の第１の指標で割った実数値を算出する（ステップＳ４６）。算出した実数値は、第１の指標の値が残存必要値となるように、台数が整数であるという制約を外して算出した、選択した種類の機器の台数（緩和台数）である。なお、本変形例では、各種類の機器の最大台数は１なので、探索実行部１３が算出した緩和台数は０以上１以下の範囲に含まれる実数値である。
探索実行部１３は、次に、選択した種類の機器の、算出した緩和台数分の第２の指標を算出する（ステップＳ４７）。本変形例では、各種類の機器の最大台数は１なので、探索実行部１３が算出した緩和台数分の第２の指標は、０以上で、選択した種類の機器の１台当たりの第２の指標以下の値である。
探索実行部１３は、それぞれ最大台数の、最後に選択した機器を除く全ての選択済みの機器及び１乃至ｊ＋１番目の種類の機器と、算出した緩和台数分の最後に選択した機器の、第２の指標の合計を算出する。探索実行部１３は、算出した合計を、下限値にする（ステップＳ４８）。なお、前述のように、本変形例では、各機器の最大台数は１台である。
以上の処理は、例えば第１の指標が性能を表し、第２の指標がコストを表す場合、第１の指標の合計が必要値以上になるまで、コストパフォーマンスのよい種類の機器から順に、機器の種類を選択することに相当する。以上の処理は、さらに、第１の指標の合計が必要値を上回った場合、第１の指標の合計がちょうど必要値になるよう最後に選択した機器を分割し、分割した機器と、既に選択していた全ての機器の第２の指標の和を算出し、第２の指標の下限値にすることに相当する。
次に、本変形例の構成管理装置１の、図１０のステップＳ２１の動作について説明する。
ステップＳ２１で、探索実行部１３は、まず、探索範囲（Ｊ−１）に含まれる充足集合の中で、第２の指標が最小となる充足集合の、Ｊ番目の種類の機器の台数ｐ（Ｊ）を算出すればよい。そして、探索実行部１３は、ｐ（Ｊ）がＪ番目の機器の最大台数以下（本変形例では０又は１）である場合、暫定解・暫定集合の更新を行えばよい。ｐ（Ｊ）がＪ番目の機器の最大台数である１より大きい場合は、探索範囲（Ｊ−１）に充足集合は含まれないので、探索実行部１３は、暫定解・暫定集合の更新を行わない。
暫定解・暫定集合の更新を行う場合、探索実行部１３は、第１の実施形態と同様に、Ｊ番目の種類の機器の台数がｒ（Ｊ）である場合の第２の指標の合計を算出すればよい。そして、探索実行部１３は、算出した第２の指標の合計を、暫定解記憶部１１から読み出した暫定解と比較すればよい。なお、暫定解・暫定集合の更新を行うのはｐ（Ｊ）がＪ番目の機器の最大台数（本変形例では１）以下の場合であり、ｒ（Ｊ）はＪ番目の種類の最大台数とｐ（Ｊ）のいずれか小さい方の値であるので、この場合ｒ（Ｊ）はｐ（Ｊ）である。
比較の結果、算出した第２の指標の合計が暫定解を下回る場合、探索実行部１３は、算出した第２の指標の合計を新しい暫定解にすればよい。また、探索実行部１３は、探索範囲記憶部１２が記憶している、探索範囲（Ｊ−１）を表す１乃至Ｊ−１番目の種類の機器の台数であるｎ（１）からｎ（Ｊ−１）と、Ｊ番目の種類の機器の台数ｒ（Ｊ）で表される集合を、新しい暫定集合とすればよい。探索実行部１３は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部１１に格納する。
図１２は、本変形例の探索実行部１３の探索の対象となる機器の集合を表す二分探索木を表す図である。
図１２を図８と比較すると、図１２の探索木の場合、各ノードの分岐係数が全て２であり、各種類の機器の最大台数が１に制限されている点が異なる。
以上で説明した本変形例には、各種類の機器の最大台数が１の場合に、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる２つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
その理由は、探索実行部１３が、各種類の機器の最大台数が１であるという条件のもとで、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部１３は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
（第１の実施形態の第２の変形例）
次に、第１の実施形態の第２の変形例について、図面を参照して詳細に説明する。
第２の変形例では、機器の種類毎に最大台数が存在する。本変形例の構成管理装置１は、同じ種類の機器をその種類の機器の最大台数以上含まない充足集合で、第２の指標の合計が最小となる集合を出力する。
図１が、本変形例の構成管理装置１の構成を表す図である。本変形例の構成管理装置１の構成は、第１の実施形態の構成管理装置１の構成と同じである。
ただし、本変形例の機器記憶部１０は、第１の指標及び第２の指標に加えて、機器の種類毎の最大台数を、機器の種類に対応付けて記憶する。各種類の機器の第１の指標、第２の指標及び最大台数は、予め機器記憶部１０に格納されていればよい。あるいは、ファイル３１に含まれている各種類の機器の第１の指標、第２の指標及び最大台数を、指標取得部１６が抽出し、機器記憶部１０に格納してもよい。
図１３は、本変形例の機器記憶部１０が記憶する、第１の指標、第２の指標、及び最大台数の一例を表す図である。
図１３の例では、機種Ａの最大台数は４台、機種Ｂの最大台数は３台、機種Ｃの最大台数は２台である。
本変形例の構成管理装置１の他の構成要素は、第１の実施形態の対応する構成要素と同じなので、説明を省略する。
次に、本変形例の動作について、図面を参照して詳細に説明する。
図３が、本変形例の構成管理装置１が最小集合を抽出する動作全体を動作の例を表すフローチャートである。
本変形例の構成管理装置１が最小集合を抽出する動作の例は、前述の第１の実施形態の構成管理装置１が最小集合を抽出する動作の例と比較すると、ステップＳ２における初期解の算出の方法と、ステップＳ３における探索の方法が異なる。
また、探索実行部１３は、例えば、１番目の種類の機器のみで充足集合を構成した時の機器の最小台数ｐ（１）を算出し、ｐ（１）と１番目の種類の機器の最大台数のいずれか小さい方をｒ（１）にする。そして、探索実行部１３は、１番目の機器が０台以上ｒ（１）台以下である充足集合の集まりを、探索範囲の初期値（探索範囲（０））にすればよい。
本変形例の構成管理装置１のその他の動作は、第１の実施形態の構成管理装置１の動作と同じなので、説明を省略する。
図１４は、本変形例の構成管理装置１が初期解を算出する動作の例を表すフローチャートである。
図１４に示す本変形例の構成管理装置１の初期解を算出する動作は、図４に示す第１の変形例の構成管理装置１の初期解を算出する動作と比較すると、ステップＳ３３とステップＳ３４の間にステップＳ３９の動作を行う点が異なる。また、本変形例の、ステップＳ３４の第１の指標の累計及び第２の指標の累計を算出する動作と、ステップＳ３６の暫定解の初期値を算出する動作が、それぞれ対応する第１の変形例の動作と異なる。
本変形例の初期解算出部１５は、未選択の機器の種類の中で指標比が最も大きい機器の種類を選択した（ステップＳ３３）後、選択した機器の種類の最大台数を、機器記憶部１０から読み出す（ステップＳ３８）。
ステップＳ３４で、初期解算出部１５は、機器記憶部１０から読み出した、既に選択した機器の種類各々の、第１の指標及び最大台数から、既に選択した機器の種類各々の最大台数分の第１の指標の累計を算出する。
ステップＳ３６で、初期解算出部１５は、最後に選択した種類の機器と、台数がそれぞれの種類の機器の最大台数である、最後に選択した機器の種類以外の既に選択した全ての種類の機器で構成される充足集合の、最後に選択した種類の機器の最小台数を算出する。初期解算出部１５は、台数がそれぞれの種類の機器の最大台数である、最後に選択した機器の種類以外の既に選択した全ての種類の機器と、算出した最小台数の最後に選択した種類の機器で構成される集合を、暫定集合の初期値にする。初期解算出部１５は、暫定集合の初期値の第２の指標の合計を算出し、暫定解の初期値にする。
図１４における本変形例の構成管理装置１の他の動作は、図４の第１の変形例の構成管理装置１の同一の符号を付したステップの動作と同じであるので、説明を省略する。
次に、本変形例の構成管理装置１の最小集合の探索時の動作について、図面を参照して詳細に説明する。
図４が、本変形例の構成管理装置１の最小集合の探索時の動作を表すフローチャートである。本変形例の構成管理装置１の最小集合の探索時の動作を表すフローチャートは、第１の実施形態のものと同じであるが、ステップＳ１４のｒ（ｊ＋１）の算出方法と、ステップＳ１７の下限値の算出方法と、ステップＳ２１の暫定解・暫定集合の更新方法が異なる。
ステップＳ１４で、探索実行部１３は、ステップＳ１４で算出したｐ（ｊ＋１）と、機器記憶部１０から読み出したｊ＋１番目の種類の機器の最大台数を比較し、大きい方をｒ（ｊ＋１）にする。
図１１は、本変形例のステップＳ１７において、探索実行部１３が下限値を算出する動作を表すフローチャートである。本変形例の探索実行部１３が下限値を算出する動作を表すフローチャートは、第１の変形例のものと同じである。しかし、第１の変形例では各種類の機器の最大台数は１台であったのに対し、本変形例の各種類の機器の最大台数は１台に限らず、機器の種類に対応付けて機器記憶部１０に格納されている点が異なる。
ステップＳ４４で、探索実行部１３は、機器記憶部１０から選択した種類の機器の最大台数分を読み出し、選択した種類の機器の最大台数分の、第１の指標の和を算出する。
ステップＳ４６で、探索実行部１３が算出する緩和台数は、０以上、機器記憶部１０から読み出した、選択した機器の最大台数以下の範囲に含まれる実数値である。
ステップＳ４８で、探索実行部１３は、それぞれ機器記憶部１０から読み出した最大台数の、最後に選択した機器を除く全ての選択済みの機器及び１乃至ｊ＋１番目の種類の機器と、算出した緩和台数分の最後に選択した機器の、第２の指標の合計を算出する。探索実行部１３は、算出した合計を、下限値にする。
次に、本変形例の構成管理装置１の、図４のステップＳ２１の動作について説明する。
ステップＳ２１で、探索実行部１３は、まず、探索範囲（Ｊ−１）に含まれる充足集合の中で、第２の指標が最小となる充足集合の、Ｊ番目の種類の機器の台数ｐ（Ｊ）を算出すればよい。そして、探索実行部１３は、ｐ（Ｊ）がＪ番目の種類の機器の最大台数以下である場合、暫定解・暫定集合の更新を行えばよい。ｐ（Ｊ）がＪ番目の種類の機器の最大台数より大きい場合は、探索範囲（Ｊ−１）に充足集合は含まれないので、探索実行部１３は、暫定解・暫定集合の更新を行わない。
暫定解・暫定集合の更新を行う場合、探索実行部１３は、第１の実施形態と同様に、Ｊ番目の種類の機器の台数がｒ（Ｊ）である場合の第２の指標の合計を算出すればよい。そして、探索実行部１３は、算出した第２の指標の合計を、暫定解記憶部１１から読み出した暫定解と比較すればよい。なお、暫定解・暫定集合の更新を行うのはｐ（Ｊ）がＪ番目の機器の最大台数以下の場合であり、ｒ（Ｊ）はＪ番目の種類の最大台数とｐ（Ｊ）のいずれか小さい方の値であるので、この場合ｒ（Ｊ）はｐ（Ｊ）である。
比較の結果、算出した第２の指標の合計が暫定解を下回る場合、探索実行部１３は、算出した第２の指標の合計を新しい暫定解にすればよい。また、探索実行部１３は、探索範囲記憶部１２が記憶している、探索範囲（Ｊ−１）を表す１乃至Ｊ−１番目の種類の機器の台数であるｎ（１）からｎ（Ｊ−１）と、Ｊ番目の種類の機器の台数ｒ（Ｊ）で表される集合を、新しい暫定集合とすればよい。探索実行部１３は、新しい暫定解及び暫定集合を表す情報を、暫定解記憶部１１に格納する。
以上で説明した本変形例には、各種類の機器の最大台数がそれぞれ定まっている場合に、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる２つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
その理由は、探索実行部１３が、各種類の機器の最大台数が機器記憶部１０に格納されている台数であるという条件のもとで、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部１３は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
図１５は、本実施形態の構成管理装置１Ａの構成を表す図である。
図１５を参照すると、本実施形態の構成管理装置１Ａは、複数（Ｊ）の種類毎に第１の指標値Ｐ１と第２の指標値Ｐ２に関連付けられる機器で構成され、Ｐ１の合計が必要値Ｎ以上である機器の集合が充足集合、Ｐ２の合計の充足集合中の最小値が最小合計である場合に、機器の種類毎に、Ｐ１及びＰ２を記憶する機器記憶部１０と、初期値が前記最小合計以上の値である暫定解と、Ｐ２の合計が前記暫定解となる機器の集合である暫定集合を表す情報を記憶する暫定解記憶部１１と、１乃至ｊ番目（ｊは１乃至Ｊ−１のいずれかの整数）の種類の機器の台数であるｎ（１）からｎ（ｊ）を記憶する探索範囲記憶部１２と、Ｎを入力して、ｎ（ｊ＋１）を、０から、それぞれｎ（１）からｎ（ｊ）台の１乃至ｊ番目の種類の機器とｊ＋１番目の種類の機器のみで充足集合を構成したときのｊ＋１番目の種類の機器の最小台数ｐ（ｊ＋１）以下の所定値（ｊ＋１）まで順次増加させながら、ｎ（１＋１）を探索範囲記憶部１２に格納して、Ｎ及び１乃至ｊ＋１番目の種類の機器のＰ１及びＰ２から、１乃至ｊ＋１番目の種類の機器の台数が、探索範囲記憶部１２に格納されているｎ（１）からｎ（ｊ＋１）である充足集合の集まりである前記探索範囲（ｊ＋１）に含まれる集合のＰ２の合計の下限値を、各機器の台数が整数であるとの制約を外して算出し、下限値が暫定解より小さい場合、探索範囲（ｊ＋１）から、Ｐ２の合計が暫定解より小さい充足集合を抽出し、抽出した充足集合のＰ２の合計及び抽出した充足集合を表す情報を、暫定解及び暫定集合として暫定解記憶部１１に格納し、下限値が暫定解より大きい場合、探索範囲（ｊ＋１）の探索を行わない探索実行部１３と、探索実行部１３による探索の実行後、暫定集合を最小集合として出力する出力部１４とを含む。
以上で説明した本実施形態には、一方の指標の合計が所定値以上であるという条件を満たし、他方の指標の合計が最小となる、異なる２つの指標を持つ複数の種類の機器の組合せを、少ない計算量で導出することができるという効果がある。
その理由は、探索実行部１３が、一部の種類の機器の台数によって表される探索範囲毎に、その探索範囲に最小集合が含まれる可能性の有無を判定するからである。そして、探索実行部１３は、最小集合が含まれる可能性がない場合、その探索範囲における探索を行わないからである。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
この出願は、２０１１年６月２０日に出願された日本出願特願２０１１−１３６４８９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
本発明は、システム構築において、システムの原価を低く抑えるための装置またはシステムに好適である。
【符号の説明】
【００１０】
１、１Ａ  構成管理装置
２  端末
３  サーバ
１０  機器記憶部
１１  暫定解記憶部
１２  探索範囲記憶部
１３  探索実行部
１４  出力部
１５  初期解算出部
１６  指標取得部
３１  ファイル
【図１】
0005949764.tif 000002
【図２】
0005949764.tif 000003
【図３】
0005949764.tif 000004
【図４】
0005949764.tif 000005
【図５】
0005949764.tif 000006
【図６】
0005949764.tif 000007
【図７】
0005949764.tif 000008
【図８】
0005949764.tif 000009
【図９】
0005949764.tif 000010
【図１０】
0005949764.tif 000011
【図１１】
0005949764.tif 000012
【図１２】
0005949764.tif 000013
【図１３】
0005949764.tif 000014
【図１４】
0005949764.tif 000015
【図１５】
0005949764.tif 000016