(57)【要約】【課題】複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索する。【解決手段】対策選択装置１００において、対策指標群の情報、目的関数、および対策指標群と目的関数との因果関係を構造化した関数を格納する記憶装置１０１と、各対策指標値の取り得る範囲内で、該当対策指標値を関数に適用した場合の目的関数値が解空間に含まれるものを選択対策における対策指標値として探索するに際し、所定アルゴリズムで選定した２つの解候補値に応じた目的関数値のいずれも解空間に含まれなかった場合、解空間との距離が近いものを特定し、該当目的関数値に対応する解候補値に所定ルールを適用して新たな解候補値を特定し、これに関して目的関数値の算定および解空間への含有有無の判定を行う処理を選択対策における対策指標値を特定出来るまで繰り返す演算装置１０４を含む構成とする。【選択図】図１
2016189161.tif 000002
【特許請求の範囲】
【請求項１】
所定事象に対する対策内容を示す対策指標群の情報と、前記対策により前記所定事象に関して同時に達成すべき複数目的の各条件を含む目的関数と、前記対策指標群と前記目的関数との因果関係を構造化した関数と、を格納する記憶装置と、
前記対策指標群の情報が示す各対策指標値の取り得る範囲内で、該当対策指標値を前記関数に適用した場合の目的関数値が、前記目的関数の各条件を満たす解空間に含まれるものを、選択対策における対策指標値として探索するに際し、前記範囲内から所定アルゴリズムで選定した２つの解候補値を前記関数に適用して２つの目的関数値を算定し、当該２つの目的関数値のいずれも前記解空間に含まれなかった場合、前記２つの目的関数値に対応する各解候補値に所定ルールを適用して新たな解候補値を特定し、当該新たな解候補値に関して、前記目的関数値の算定および前記解空間への含有有無の判定を行う処理を、前記選択対策における対策指標値を特定出来るまで繰り返し実行する演算装置と、
を備えることを特徴とする対策選択装置。
【請求項２】
前記演算装置は、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が、前記解空間に含まれるか判定して、前記選択対策における対策指標値を探索する処理を更に実行するものである、
ことを特徴とする請求項１に記載の対策選択装置。
【請求項３】
前記演算装置は、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分のうち前記解空間と交わる線分を特定し、該当線分の中点を更に新たな中点として特定し、該当中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するものである、
ことを特徴とする請求項１に記載の対策選択装置。
【請求項４】
前記演算装置は、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するものである、
ことを特徴とする請求項１に記載の対策選択装置。
【請求項５】
前記演算装置は、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線方向に、前記中点と前記値との距離を前記除算値を乗算して前記中の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するものである、
ことを特徴とする請求項１に記載の対策選択装置。
【請求項６】
前記演算装置は、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線上で、前記中点と前記値との距離に前記除算値を乗算して前記中点の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記延長値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、所定アルゴリズムで前記範囲内から新たに選択する解候補値に関して得られる目的関数値のうち、前記延長値に関する目的関数値と線分を構成した際に、前記解空間に交わるものを特定し、当該特定した目的関数値に対応した対策指標値と前記延長値との間で、前記中点を特定し、当該中点に関する各処理を更に実行するものである、
ことを特徴とする請求項１に記載の対策選択装置。
【請求項７】
前記演算装置は、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わ
らないものである場合、前記２つの目的関数値のそれぞれと前記解空間との各距離を算定し、前記目的関数値のうち前記解空間との距離がより近いものを特定し、該当目的関数値に対応した解候補値と、所定アルゴリズムで前記範囲内から新たに選択した解候補値とを、前記新たな解候補値とするものである、
ことを特徴とする請求項１に記載の対策選択装置。
【請求項８】
前記演算装置は、
前記選択対策における対策指標値の情報を、表示装置に出力する処理を更に実行するものである、
ことを特徴とする請求項１に記載の対策選択装置。
【請求項９】
所定事象に対する対策内容を示す対策指標群の情報と、前記対策により前記所定事象に関して同時に達成すべき複数目的の各条件を含む目的関数と、前記対策指標群と前記目的関数との因果関係を構造化した関数と、を格納する記憶装置を備えた情報処理装置が、
前記対策指標群の情報が示す各対策指標値の取り得る範囲内で、該当対策指標値を前記関数に適用した場合の目的関数値が、前記目的関数の各条件を満たす解空間に含まれるものを、選択対策における対策指標値として探索するに際し、前記範囲内から所定アルゴリズムで選定した２つの解候補値を前記関数に適用して２つの目的関数値を算定し、当該２つの目的関数値のいずれも前記解空間に含まれなかった場合、前記２つの目的関数値に対応する各解候補値に所定ルールを適用して新たな解候補値を特定し、当該新たな解候補値に関して、前記目的関数値の算定および前記解空間への含有有無の判定を行う処理を、前記選択対策における対策指標値を特定出来るまで繰り返し実行する、
ことを特徴とする対策選択方法。
【請求項１０】
前記情報処理装置が、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が、前記解空間に含まれるか判定して、前記選択対策における対策指標値を探索する処理を更に実行する、
ことを特徴とする請求項９に記載の対策選択方法。
【請求項１１】
前記情報処理装置が、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分のうち前記解空間と交わる線分を特定し、該当線分の中点を更に新たな中点として特定し、該当中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行する、
ことを特徴とする請求項９に記載の対策選択方法。
【請求項１２】
前記情報処理装置が、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、
当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行する、
ことを特徴とする請求項９に記載の対策選択方法。
【請求項１３】
前記情報処理装置が、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線方向に、前記中点と前記値との距離を前記除算値を乗算して前記中の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行する、
ことを特徴とする請求項９に記載の対策選択方法。
【請求項１４】
前記情報処理装置が、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、
前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線上で、前記中点と前記値との距離に前記除算値を乗算して前記中点の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、
前記延長値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていな
かった場合、所定アルゴリズムで前記範囲内から新たに選択する解候補値に関して得られる目的関数値のうち、前記延長値に関する目的関数値と線分を構成した際に、前記解空間に交わるものを特定し、当該特定した目的関数値に対応した対策指標値と前記延長値との間で、前記中点を特定し、当該中点に関する各処理を更に実行する、
ことを特徴とする請求項９に記載の対策選択方法。
【請求項１５】
前記情報処理装置が、
前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わらないものである場合、前記２つの目的関数値のそれぞれと前記解空間との各距離を算定し、前記目的関数値のうち前記解空間との距離がより近いものを特定し、該当目的関数値に対応した解候補値と、所定アルゴリズムで前記範囲内から新たに選択した解候補値とを、前記新たな解候補値とする、
ことを特徴とする請求項９に記載の対策選択方法。
【請求項１６】
前記情報処理装置が、
前記選択対策における対策指標値の情報を、表示装置に出力する処理を更に実行する、
ことを特徴とする請求項９に記載の対策選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対策選択装置および対策選択方法に関するものであり、具体的には、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索する技術に関する。
【背景技術】
【０００２】
或る制約下で所定目的を達成する対策の決定支援技術が従来から存在し、情報処理技術の向上に伴ってそうした決定ロジックをコンピュータにより自動実行するケースも増えている。例えば、事業継続計画（ＢＣＰ：Ｂｕｓｉｎｅｓｓ  Ｃｏｎｔｉｎｕｉｔｙ  Ｐｌａｎ）策定の際に、リスク（例：地震や火災）に対する対策の選択を支援するため、複数のリスクに対して事業の復旧に要する時間を目標以下にする対策の組合せを選定する技術が存在する。こうしたケースの場合、地震への対策候補として「バックアップストレージの構築」、「データの遠隔地保管」、「建屋の耐震強化」などがあり、火災も同様で「耐火設備の構築」、「データの別建屋保管」、「データの遠隔地保管」などが想定される。対策選定に際しては、これらの対策候補中から、事業の復旧時間を目標値以下にすることが可能な最適な対策の組合せを作成することとなる。
【０００３】
上述のような対策選択の技術としては、例えば、事業を復旧させるために必要な復旧時間を目標値以下にするために実施すべき対策を選択することを目的とした、事業を復旧させるために必要な復旧時間を目標値以下にするために実施すべき対策を選択する対策選択プログラムであって、記憶部に格納された、前記事業に含まれるリソースと、該リソースに対して実施される対策と、該対策を実施した場合における該リソースの復旧時間の大きさを示す情報とが定義された情報に基づいて、各対策の効果の度合いを示す評価値を算出して実施すべき対策の候補を選択する対策候補選択手順と、前記対策候補選択手順によって選択された候補の中に含まれている同一の対策の数と、前記評価値とに基づいて、前記対策候補選択手順によって選択された候補の中から実施すべき対策を選択する対策選択手順とをコンピュータに実行させる対策選択プログラム（特許文献１参照）などが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４９９８６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、対策立案に際し考慮すべき対象が「地震」や「火災」といった災害リスクである場合、各リスクに対する対策が重複しても、対策重複による更なる効果向上が見込まれる等、その重複は許容しうるものとみなされる。
【０００６】
また、上述した「復旧時間」のように、対策目的が１つ、すなわち目的関数が単独項目のみで、なおかつ、対策と目的関数との関係が線形（例：復旧時間＝各対策のリソースの復旧時間合計）であって、逆関数の特定が容易である、といった限定的な状況であれば、従来技術を適用することで、目的関数の条件を満たす対策の特定が容易である。
【０００７】
ところが、従来技術で想定するリスクと異なり、開発費用増大といったプロジェクトリスクに着目して、その対策立案を行う場合、例えばオフショア先の単価やスキル、ブリッジＳＥなどの支援体制などといった、互いに対立する制約を含みうる対策を複数組み合わ
せて考慮する必要があり、同じ対策の重複はそもそもありえない。しかも、その目的関数は、Ｑ（品質）、Ｃ（コスト）、Ｄ（納期）など複数項目を想定する必要があり、かつこれらの目的関数ＱＣＤの間にもトレードオフの関係が存在する。更には、これら対策と目的関数との間には複雑な因果関係および制約条件があり、そうした対策と目的関数との関係は線形でない。そのため、１つの目的関数の値を満たす対策候補の組合せが複数存在することとなり、逆関数を求めることが困難である。このことは、対策の組合せ候補が膨大で解探索に大きな計算量を必要とすることを意味しており、従来技術のように全件探索のようなアプローチは困難である。
【０００８】
換言すれば、複数の目的関数と対策との間に複雑な因果関係および制約条件が存在する対策立案問題に対し、複数の目的関数の条件を満たす対策の組合せを効率的に求めることが従来技術では困難であった。
【０００９】
そこで本発明の目的は、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索する技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決する本発明の対策選択装置は、所定事象に対する対策内容を示す対策指標群の情報と、前記対策により前記所定事象に関して同時に達成すべき複数目的の各条件を含む目的関数と、前記対策指標群と前記目的関数との因果関係を構造化した関数と、を格納する記憶装置と、前記対策指標群の情報が示す各対策指標値の取り得る範囲内で、該当対策指標値を前記関数に適用した場合の目的関数値が、前記目的関数の各条件を満たす解空間に含まれるものを、選択対策における対策指標値として探索するに際し、前記範囲内から所定アルゴリズムで選定した２つの解候補値を前記関数に適用して２つの目的関数値を算定し、当該２つの目的関数値のいずれも前記解空間に含まれなかった場合、前記２つの目的関数値に対応する各解候補値に所定ルールを適用して新たな解候補値を特定し、当該新たな解候補値に関して、前記目的関数値の算定および前記解空間への含有有無の判定を行う処理を、前記選択対策における対策指標値を特定出来るまで繰り返し実行する演算装置とを備えることを特徴とする。
【００１１】
また、本発明の対策選択方法は、所定事象に対する対策内容を示す対策指標群の情報と、前記対策により前記所定事象に関して同時に達成すべき複数目的の各条件を含む目的関数と、前記対策指標群と前記目的関数との因果関係を構造化した関数と、を格納する記憶装置を備えた情報処理装置が、前記対策指標群の情報が示す各対策指標値の取り得る範囲内で、該当対策指標値を前記関数に適用した場合の目的関数値が、前記目的関数の各条件を満たす解空間に含まれるものを、選択対策における対策指標値として探索するに際し、前記範囲内から所定アルゴリズムで選定した２つの解候補値を前記関数に適用して２つの目的関数値を算定し、当該２つの目的関数値のいずれも前記解空間に含まれなかった場合、前記２つの目的関数値に対応する各解候補値に所定ルールを適用して新たな解候補値を特定し、当該新たな解候補値に関して、前記目的関数値の算定および前記解空間への含有有無の判定を行う処理を、前記選択対策における対策指標値を特定出来るまで繰り返し実行することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態における対策選択装置の機能構成例を示す図である。
【図２】本実施形態におけるプロジェクト情報ＤＢのデータ例を示す図である。
【図３】本実施形態におけるリスク対策情報ＤＢのデータ例を示す図である。
【図４】本実施形態におけるプロジェクト情報＆対策情報ＤＢのデータ例を示す図である。
【図５】本実施形態における対策のプロジェクト特性依存情報ＤＢのデータ例を示す図である。
【図６】本実施形態における対策指標定義情報ＤＢのデータ例を示す図である。
【図７】本実施形態における目的関数定義情報ＤＢのデータ例を示す図である。
【図８】本実施形態における対策指標＆目的関数条件関連情報ＤＢのデータ例を示す図である。
【図９】本実施形態における対策指標＆目的関数の因果構造要素定義情報ＤＢのデータ例を示す図である。
【図１０】本実施形態における対策指標＆目的関数の因果構造定義情報ＤＢのデータ例を示す図である。
【図１１】本実施形態における対策指標＆目的関数の因果構造関数定義情報ＤＢのデータ例を示す図である。
【図１２】本実施形態における対策選択方法の処理手順例１を示すフロー図である。
【図１３】本実施形態におけるプロジェクト情報登録画面の例を示す図である。
【図１４】本実施形態における対策指標＆目的関数条件設定画面例を示す図である。
【図１５】本実施形態における対策と目的関数の因果構造を表すインフルエンスダイアグラムの例を示す図である。
【図１６】本実施形態における対策選択方法の処理手順例２を示すフロー図である。
【図１７】本実施形態における対策指標値と解空間の関係例１を示す図である。
【図１８】本実施形態における対策指標値と解空間の関係例２を示す図である。
【図１９】本実施形態における対策指標値と解空間の関係例３を示す図である。
【図２０】本実施形態における出力画面例を示す図である。
【発明を実施するための形態】
【００１４】
−−−適用状況例−−−
本実施形態における対策選択方法の適用状況として、システム開発のプロジェクトにおけるリスク対策の選択を行う状況を想定する。例えば、該当プロジェクトに関する自社見積りと顧客想定予算とが乖離した状況に対処すべく、原価低減策の一つとしてオフショア開発を実施する前提が存在したとする。ところが、こうしたオフショア開発を採用・実施するとしても、例えば、オフショア担当者における仕様理解のミスやスキル不足など様々なリスクは内在しており、それらリスクに対する的確な対策を更に選択・実施する必要がある。またそうしたリスクへの対策が更なるリスクを生む可能性もある。一方、上述の原価低減すなわちコスト低減を図ろうとすれば、品質低下や納期遅延が生じる事態も予想される。このようにコストと品質や納期といった目的同士は互いにトレードオフの関係にあると言えるが、顧客要求に応えるためには各目的を全て適宜に達成する必要もある。従って、単純に各リスクに応じた対策を逐一選択するのではなく、対策や目的の各間の関係性（トレードオフの関係含む）も踏まえた上での対策選択を行う必要がある。一方、本実施形態の対策選択方法においては、複数の目的関数（上述の品質、納期、コスト等に関する関数）の条件を満たす対策の組合せ（対策指標値のセット）を、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索する。
【００１５】
−−−装置構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態の対策選択装置１００を含むネットワーク構成図である。図１に示す対策選択装置１００は、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索するコンピュータシステムである。
【００１６】
こうした本実施形態の対策選択装置１００のハードウェア構成は以下の如くとなる。すなわち、対策選択装置１００は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置１０１、ＲＡＭなど揮発性記憶素子で構成されるメモリ１０３、記憶装置１０１に保持されるプログラム１０２をメモリ１０３に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうＣＰＵなどの演算装置１０４、ユーザからのキー入力や音声入力を受け付ける入力装置１０５、処理データの表示を行うディスプレイ等の表示装置１０６を少なくとも備えている。
【００１７】
なお、記憶装置１０１内には、本実施形態の対策指標装置１００として必要な機能を実装する為のプログラム１０２の他、対策選択用データ１５０が少なくとも記憶されている。この対策選択用データ１５０は、プロジェクト情報ＤＢ１５１、リスク対策情報ＤＢ１５２、プロジェクト情報＆対策情報ＤＢ１５３、対策のプロジェクト特性依存情報ＤＢ１５４、対策指標定義情報ＤＢ１５５、目的関数定義情報ＤＢ１５６、対策指標＆目的関数条件関連情報ＤＢ１５７、対策指標＆目的関数の因果構造要素の定義情報ＤＢ１５８、対策指標＆目的関数の因果構造の定義情報ＤＢ１５９、および、対策指標＆目的関数の因果構造関数の定義情報ＤＢ１６０を含んでいる。これら各ＤＢの具体的なデータ構造については後述する。
【００１８】
また上述の演算装置１０４は、プログラム１０２を記憶装置１０１から読み出してメモリ１０３に展開・実行することにより、対策候補取得部１１０、対策指標と目的関数抽出部１１１、対策指標＆目的関数条件取得部１１２、目的関数算出及び対策組合せ探索部１１３、最適対策判定部１１４、および対策案出力部１１５を実装する。これら各機能部については後述のフローに基づく手順例にて説明するものとする。また上述の入力装置１０５は、プロジェクトマネージャやＰＭＯなどがプロジェクト特性や目的関数などの条件を入力する装置となる。
【００１９】
−−−データ構造の例−−
次に本実施形態の対策選択装置１００が利用する各ＤＢ１５１〜１６０のデータ構造について説明する。図２は本実施形態におけるプロジェクト情報ＤＢ１５１のデータ例を示す図である。このプロジェクト情報ＤＢ１５１は、ユーザが処理対象としてプロジェクトの情報を指定する際にマスターとなる情報を格納したデータベースであり、プロジェクト特性ＩＤ２０１をキーとして、顧客タイプやプロジェクト規模などといったプロジェクト属性を示すプロジェクト情報２０２と、そのプロジェクト属性の程度や具体値の選択範囲を示す選択肢２０３、の各値を対応付けされたレコードの集合体となっている。このプロジェクト情報ＤＢ１５１は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００２０】
次に図３は本実施形態におけるリスク対策情報ＤＢ１５２のデータ例を示す図である。本実施形態のリスク対策情報ＤＢ１５２は、ユーザがリスクに関して選択しうる対策の情報を指定する際にマスターとなる情報を格納したデータベースであり、リスクを一意に特定するリスクＩＤ３０１をキーとして、該当リスクのリスク名・原因３０２、該当リスクに対する対策を一意に特定する対策ＩＤ３０３とその対策名３０４、および対策目的３０５の各値を対応付けされたレコードの集合体となっている。このリスク対策情報ＤＢ１５２は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００２１】
図４は本実施形態におけるプロジェクト情報＆対策情報ＤＢ１５３のデータ例を示す図である。本実施形態のプロジェクト情報＆対策情報ＤＢ１５３は、上述の図２，３に関し
て説明したプロジェクト情報ＤＢ１５１およびリスク対策情報ＤＢ１５２に基づいて、ユーザが該当プロジェクトに関して選択した情報を格納したデータベースである。このプロジェクト情報＆対策情報ＤＢ１５３は、プロジェクト特性ＩＤ５０１をキーとして、プロジェクト情報５０２、および回答５０３が対応付けされたレコードの集合体となっている。このうち、プロジェクト特性ＩＤ５０１のうち「Ｐ００１」〜「Ｐ００５」は、プロジェクト情報ＤＢ１５１のプロジェクト特性ＩＤ２０１と共通している。各プロジェクト特性ＩＤ５０１の項目について、リスク対策情報ＤＢ１５２の格納情報からユーザが選択した情報が回答５０３に設定されている。また、プロジェクト特性ＩＤ５０１のうち「Ｐ００６」〜「Ｐ００８」は、リスクとその対策に関して識別するためのＩＤである。「Ｐ００６」〜「Ｐ００８」の該当プロジェクト情報５０２の各項目についてリスク対策情報ＤＢ１５２の格納情報からユーザが選択した情報が回答５０３に設定されている。
【００２２】
図５は本実施形態における対策のプロジェクト特性依存情報ＤＢ１５４のデータ例を示す図である。本実施形態の対策のプロジェクト特性依存情報ＤＢ１５４は、図３のリスク対策情報ＤＢ１５２における対策名３０４が示す各対策について、図４のプロジェクト情報＆対策情報ＤＢ１５３における各プログラム特性ＩＤ５０１が示すプロジェクト情報ごとの依存関係を規定したデータベースである。この対策のプロジェクト特性依存情報ＤＢ１５４は、各対策を一意に特定する識別情報たる対策ＩＤ６０１をキーとして、その対策名６０２（リスク対策情報ＤＢ１５２における対策名３０４と共通）、該当対策における各プロジェクト特性に関する依存関係を示すＰＪ特性依存関数６０３、および対策難易度６０４が対応付けされたレコードの集合体となっている。この対策のプロジェクト特性依存情報ＤＢ１５４は、対策難易度６０４の値以外は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００２３】
図５の例では、上述の図４のプロジェクト情報＆対策情報ＤＢ１５３に示すように、対策候補として「オフショア開発」がユーザ指定されたことに応じ、対策ＩＤ「Ｔ００１」の「オフショア開発」に関して、ＰＪ特性依存関数６０３の各項（“Ｐ００１”、“Ｐ００２”、“Ｐ００３”、・・・）に、図４のプロジェクト情報＆対策情報ＤＢ１５３が示す該当値（“Ｐ００１”＝新規、“Ｐ００２”＝大、“Ｐ００３”＝他社、・・・）を代入して、対策難易度６０４を「大」と判定した結果に対応したものを示している。
【００２４】
図６は本実施形態における対策指標定義情報ＤＢ１５５のデータ例を示す図である。本実施形態の対策指標定義情報ＤＢ１５５は、図３や図５で定義している各対策に関して、その対策の適用条件を対策指標として規定したデータベースであり、ユーザが候補として選択した対策について、対策指標の値を指定する際にマスターとなる情報を格納したデータベースである。こうした対策指標定義情報ＤＢ１５５は、対策ＩＤ７０１および対策名７０２（いずれも図３、５の該当値と共通）をキーとして、対策指標を一意に特定する識別情報たる対策指標ＩＤ７０３、その対策指標名７０４、および評価尺度７０５が対応付けされたレコードの集合体となっている。ここで例示するように、各対策は、複数の対策指標でその適用条件が規定され、各対策指標の値（ユーザが現状に則して評価尺度７０５から選択・設定）に応じて該当対策の性質は異なってくる。また各対策指標の間は、トレードオフの関係にある場合もある。例えば、対策指標「オフショア単価」と「スキル」は、単価を下げると採用出来るエンジニアのスキルも低下してしまい、逆に、エンジニアの要求スキルを上げると、人材採用コストが上昇してオフショア単価も上昇してしまう。この対策指標定義情報ＤＢ１５５は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００２５】
図７は本実施形態における目的関数定義情報ＤＢ１５６のデータ例を示す図である。本実施形態の目的関数定義情報ＤＢ１５６は、上述の対策により改善や基準達成等を図る目的について規定したデータベースであり、ユーザが想定する目的関数に関して条件設定を
行う際に画面参照する際のマスターとなる情報を格納したデータベースである。このＤＢ１５６において、各目的は目的関数として表現している。
【００２６】
こうした目的関数定義情報ＤＢ１５６は、目的関数を一意に特定する識別情報たる目的関数ＩＤ８０１をキーとして、対応する目的関数名８０２、その評価尺度８０３、該当目的に影響を与える対策を示す対策ＩＤ８０４、およびその対策名８０５が対応付けされたレコードの集合体となっている。図７で例示する目的関数定義情報ＤＢ１５６の場合、例えば目的関数ＩＤ「Ｍ００１」の目的関数「Ｑ：品質」に関して、その評価尺度を「品質向上率  現状＝１．０  目標値１．０以上」、この目的関数「Ｑ：品質」に影響を与える対策「全ての対策」、といった値が設定されている。この目的関数定義情報ＤＢ１５６は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００２７】
図８は本実施形態における対策指標＆目的関数条件関連情報ＤＢ１５７のデータ例を示す図である。本実施形態の対策指標＆目的関数条件関連情報ＤＢ１５７は、上述の図６、７の各ＤＢ１５６、１５７をマスターとして、ユーザが選択した対策指標の値（評価尺度の選択値）や、目的関数に関する条件設定の各値を格納したデータベースである。こうした対策指標＆目的関数条件関連情報ＤＢ１５７は、対策ＩＤ９０１および対策名９０２（いずれも図６の該当値と共通）をキーとして、対策指標ＩＤ９０３、対策指標名９０４、評価尺度９０５、および該当対策指標の条件設定９０６（評価尺度９０５に関してユーザが選択した値）と、該当対策の目的である目的関数を一意に特定する識別情報たる目的関数ＩＤ９０７および目的関数名９０８（いずれも図７の該当値と共通）をキーとして、評価尺度９０９対策ＩＤ９１０、および目的関数条件設定９１１が対応付けされたレコードの集合体となっている。このうち目的関数条件設定９１１の値は、後述する入力画面（図１４）にてユーザが設定した値である。
【００２８】
図９は本実施形態における対策指標＆目的関数の因果構造要素定義情報ＤＢ１５８のデータ例を示す図である。本実施形態における、対策指標＆目的関数の因果構造要素定義情報ＤＢ１５８は、対策と目的関数との間の因果関係をインフルエンスダイアグラムで表現する場合の各要素（インフルエンスダイアグラムにおけるノード）に関して規定したデータベースである。この対策指標＆目的関数の因果構造要素定義情報ＤＢ１５８は、対策ＩＤ１１０１をキーとして、その対策に関するノードを示す要素ＩＤ１１０２、該当要素名１１０３、ノードの種別１１０４、対策指標＆目的関数ＩＤ１１０５、および評価尺度１１０６が対応付けされたレコードの集合体となっている。なお、対策指標＆目的関数ＩＤ１１０５は、該当要素に対応する対策指標または目的関数の値を設定したものであり、図６の対策指標ＩＤ７０３、図７の目的関数ＩＤ８０１の値と共通する値が設定されている。また、要素とノードに関しては、インフルエンスダイアグラムの説明も含めて後述する。この対策指標＆目的関数の因果構造要素定義情報ＤＢ１５８は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００２９】
図１０は本実施形態における対策指標＆目的関数の因果構造定義情報ＤＢ１５９のデータ例を示す図である。本実施形態における、対策指標＆目的関数の因果構造定義情報ＤＢ１５９は、上述の図９にて述べたインフルエンスダイアグラムにおける各要素の階層構造を定義したデータベースである。この対策指標＆目的関数の因果構造定義情報ＤＢ１５９は、各対策を一意に特定する識別情報たる対策ＩＤ１２０１（図９の対策ＩＤ１１０１と共通）をキーに、該当対策に関するインフルエンスダイアグラムを構成する各要素のうち、上位および下位の各要素ＩＤ１２０２、１２０３と、該当要素間の関係性を規定した関数を示す関数ＩＤ１２０４が対応付けされたレコードの集合体となっている。この対策指標＆目的関数の因果構造定義情報ＤＢ１５９は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００３０】
図１１は本実施形態における対策指標＆目的関数の因果構造関数定義情報ＤＢ１６０のデータ例を示す図である。本実施形態における対策指標＆目的関数の因果構造関数定義情報ＤＢ１６０は、上述の図１０の対策指標＆目的関数の因果構造定義情報ＤＢ１５９で規定した各要素間の関数について、具体的な数式等の定義を格納したデータベースである。こうした対策指標＆目的関数の因果構造関数定義情報ＤＢ１６０は、該当関数を一意に特定する識別情報たる関数ＩＤ１３０１（図１０の関数ＩＤ１２０４と共通）をキーとして、該当関数の数式１３０２、その条件１３０３、性質（連続関数か離散関数か）１３０４、および逆関数容易性１３０５が対応付けされたレコードの集合体となっている。このうち、逆関数容易性１３０５は、該当関数における入力値と出力値（関数値）との関係において、出力値から入力値が一意に特定可能であり、すなわち逆関数を容易に特定出来るかを示す値となる。こうした対策指標＆目的関数の因果構造関数定義情報ＤＢ１６０は、相応の知見を備えた有識者等によって予め作成され、記憶装置１０１に格納されているものとする。
【００３１】
−−−処理手順例１−−−
以下、本実施形態における対策選択方法の実際手順について図に基づき説明する。以下で説明する対策選択方法に対応する各種動作は、対策選択装置１００がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。図１２は本実施形態における対策選択方法の処理手順例１を示すフロー図である。ここでは、ユーザ入力を受けて上述の図４、図８の各ＤＢにおいて値を設定する処理について説明する。
【００３２】
この場合、まず対策選択装置１００の対策候補取得部１１０は、ユーザの操作する入力装置１０５からのプロジェクト情報の登録要求を受けて、プロジェクト情報ＤＢ１５１およびリスク対策情報１５２を記憶装置１０１から読み込み、各プロジェクト特性に関する選択肢２０３と、各リスク３０２およびそれに対する対策の対策名３０４とを、例えばそれぞれプルダウンメニューとして所定の入力画面データ（記憶装置１０１に予め保持する）に設定し、これを表示装置１０６に出力する（ｓ１００）。
【００３３】
また、対策候補取得部１１０は、この入力画面を介して、プロジェクト情報についてユーザからの選択を受け付けて、該当値をプロジェクト情報＆対策情報ＤＢ１５３における回答５０３の各欄に格納する（ｓ１０１）。
【００３４】
図１３に上述のステップｓ１００で表示装置１０６に出力した入力画面の例を示す。図１３は本実施形態におけるプロジェクト情報登録画面４００の例を示す図である。図１３で例示するように、プロジェクト情報登録画面４００は、「項目１」〜「項目５」のプロジェクト情報と、「項目６」のリスク及び「項目７」の対策に関する表示項目からなる。このうち「項目１」〜「項目５」のプロジェクト情報４０２は、図２に示すプロジェクト情報２０２であり、回答選択肢４０３は、図２に示す選択肢２０３の各値がプルダウンメニューとして設定されたものとなる。また、「項目６」のプロジェクト情報「プロジェクトにおける対策すべきリスク」に関しては、図３に示すリスク名原因３０２の各値がプルダウンメニューとして設定され、また「項目７」の「リスクに対する対策候補」に関しては、上述の「項目６」でユーザが選択したリスクに対応する対策名リストを図３に示す対策名３０４から読み出してプルダウンメニューとして設定したものとなる。
【００３５】
例えば、或るユーザが、開発コストが増大するというリスク「Ｒ００１」を「項目６」の回答選択肢４０３におけるプルダウンメニューにて選択すると、対策候補取得部１１０は、該当リスクに対する対策のリストとして、「オフショア開発」と「開発環境共通化」をプルダウンメニューとして回答選択肢４０３に設定・表示する。ユーザがこのプルダウ
ンメニューにて、例えば「オフショア開発」を選択した場合、対策候補取得部１１０は、この「オフショア開発」の値を取得し、プロジェクト情報＆対策情報ＤＢ１５３の回答５０３のうち「Ｐ００７」の「リスクに対する対策候補」に対応して格納する。
【００３６】
次に、対策候補取得部１１０は、上述のステップｓ１０１でユーザから得た、「リスクに対する対策候補」に関する回答５０３の値、すなわち「オフショア開発」に基づき、対策のプロジェクト特性依存情報ＤＢ１５４を検索し、対応するＰＪ特性依存関数６０３として、「ＦＴ（Ｔ００１）」を特定する（ｓ１０２）。
【００３７】
また、対策候補取得部１１０は、上述のステップｓ１０２で特定したＰＪ特性依存関数「ＦＴ（Ｔ００１）」の各項に、上述のステップｓ１０１で各プロジェクト特性に関して得た回答５０３の該当値を入力して、対策難易度を算出し（ｓ１０３）、これをプロジェクト情報＆対策情報ＤＢ１５３の「対策難易度」に関する回答５０３に設定する（ｓ１０４）。
【００３８】
続いて対策選択装置１００の対策指標＆目的関数抽出部１１１は、図６で例示した対策指標定義情報ＤＢ１５５と、図７で例示した目的関数定義情報ＤＢ１５６をそれぞれ読み込み、既に上述のステップｓ１０４までで完成しているプロジェクト情報＆対策情報ＤＢ１５３（図４）の示す、「リスクに対する対策候補」の回答５０３が示す、ユーザ選択済みの対策候補に応じた対策ＩＤ７０３および対策指標名７０４と、この対策ＩＤ７０３を「関連する対策ＩＤ」８０４に含む目的関数ＩＤ８０１および目的関数名８０２をそれぞれ抽出する（ｓ１０５）。
【００３９】
ユーザが選択した「リスクに対する対策候補」の回答５０３が、例えば「オフショア開発」であった場合、対策指標＆目的関数抽出部１１１は、図６の対策指標定義情報ＤＢ１５５より、対応する対策指標ＩＤ７０３と対策指標名７０４のセットとして、「ＴＳ１０１」および「単価」、「ＴＳ１０２」および「スキル」、「ＴＳ１０３」および「オフショア管理体制」、「ＴＳ１０４」および「ブリッジＳＥ経験値」、「ＴＳ１０５」および「要件定義完成度」、などといった各値を抽出する。
【００４０】
また、対策指標＆目的関数抽出部１１１は、対策ＩＤ「Ｔ００１」に基づいて、図７の目的関数定義情報ＤＢ１５６における「関連する対策ＩＤ」８０４欄を検索し、該当対策ＩＤを含む各目的関数として、目的関数ＩＤ「Ｍ００１」の目的関数名「Ｑ：品質」、目的関数ＩＤ「Ｍ００２」の目的関数名「Ｃ：コスト」、目的関数ＩＤ「Ｍ００３」の「Ｄ：納期」、および、目的関数ＩＤ「Ｍ００５」の目的関数名「原価低減率」などといった各値を抽出する。
【００４１】
次に、対策指標＆目的関数条件取得部１１２は、上述のステップｓ１０５で得た、対策ＩＤ、対策名、対策指標ＩＤ、対策指標名、目的関数ＩＤ、および目的関数名の各値を、所定の入力画面データ（記憶装置１０１に予め保持している）の該当欄に設定し、これを表示装置１０６に出力する（ｓ１０６）。図１４にこの入力画面の例として、対策指標＆目的関数条件設定画面１０００の一例を示す。
【００４２】
ここで対策指標＆目的関数条件取得部１１２は、図６の対策指標定義情報ＤＢ１５５の評価尺度７０５、および図７の目的関数定義情報ＤＢ１５６の評価尺度８０３に基づいて、対策指標＆目的関数条件設定画面１０００における、対策指標条件設定１００５および目的関数条件設定１００８にてユーザ選択を受け付けるプルダウンメニュー等のインターフェイスを設定し、ユーザからの各値の選択を受け付け（ｓ１０７）、該当値を、対策指標＆目的関数条件関連情報ＤＢ１５７（図８）における対策指標条件設定９０６及び目的関数条件設定９１１の各欄に設定し（ｓ１０８）、当該フローの処理を終了する。
【００４３】
なお、上述のステップｓ１０７でユーザから選択を受け付ける際、対策指標＆目的関数条件取得部１１２は、例えば、「オフショア開発」における対策指標「スキル」と「オフショア単価」は互いにトレードオフの関係にあって、エンジニアのスキルが高くなるとオフショア単価も高くなること（この事項も予め記憶装置１０１にて保持する）を踏まえ、「スキル」と「オフショア単価」の両方について条件設定を必ず受けるようにする（一方のみ設定した状態で「登録」ボタンが押された場合、所定警告を通知するなど）。同様に、目的関数の「Ｃ：コスト」と「Ｑ：品質」も、品質向上のためにはコストが高くなるというトレードオフの関係にあることを踏まえ、同様の処理を行うものとする。
【００４４】
こうしてユーザの想定している対策の各対策指標と目的関数の各種設定が完了すると、対策選択装置１００は、こうした対策指標と目的関数に関する各値を、図９の対策指標＆目的関数の因果構造要素の定義情報ＤＢ１５８に照合して、該当対策に関する要素とノード種別を特定し、ここで特定した要素について図１０の対策指標＆目的関数の因果構造の定義情報ＤＢ１５９で検索を行って、各要素間の階層構造と関係性を規定する関数を特定し、ここで特定した関数について図１１の対策指標＆目的関数の因果構造関数の定義情報ＤＢ１６０から該当関数の数式等を特定することで、各対策指標と目的関数との間の因果構造を表すインフルエンスダイアグラムを生成出来る。
【００４５】
本実施形態におけるインフルエンスダイアグラム１５００の具体例について図１５にて示す。例示するインフルエンスダイアグラム１５００において、楕円が対策指標ノード１５０１〜１５０８を表し、長方形が事象ノード１５１１〜１５２３を表し、波型四角形が目的関数ノード１５９１〜１５９４を表す。また、対策指標ノードと目的関数ノードの依存関係について、原因となる事象ノードと結果となる事象ノードの連鎖で表している。例えば、対策指標ノード１５０１の「オフショア管理チェック機能」は、事象ノード１５１１「成果物の定義明確度」と事象ノード１５１２「責任分担明確度」の原因となる。さらに事象ノード１５１１、１５１２は事象ノード１５１３「想定外の作業量＆スコープ増加度合い」の原因となる。逆に事象ノード１５１３は、事象ノード１５１１と事象ノード１５１２の結果の関係となる。
【００４６】
また、対策指標ノード１５０３の「要件定義書完成度」、対策指標ノード１５０４の「ブリッジＳＥの経験値」は、両方とも事象ノード１５１５「要件定義の伝達度」の原因となり、さらにこれらが事象ノード１５１６「要件の理解度」の原因となり、さらに事象ノード１５１３「想定外の作業量＆スコープ増加度合い」、事象ノード１５１４「作業時間・作業工数」へと影響を及ぼし、最終的に目的関数ノード１５９３「開発コスト」の結果につながる。このように事象と事象を原因と結果の連鎖によってつなぐことは、対策指標と最終的な目的関数に至る過程を構造化したもの、即ち、対策指標と目的関数の因果関係を構造化したものと捉えることができる。
【００４７】
本実施形態では、各ノード間の関係性を関数で表すことにより、対策指標と目的関数の間の因果関係を多階層から成る関数で表す。こうしたインフルエンスダイアグラム１５００によって、対策指標と目標関数の因果関係を構造化した関数を定義でき、対策指標から目的関数を求めることが可能となる。
【００４８】
なお、本実施形態では、既に述べたようにプロジェクトリスクに対する対策の具体案策定を想定しており、図１５のインフルエンスダイアグラム１５００における本技術の適用範囲は、「開発費用増大リスクへの対処としてオフショア開発を用いる」際のオフショア開発の実現方法についてである。オフショア開発を実施したとしても、仕様理解のミスやスキルが不充分、仕様の文脈を読み取れないなどのリスクから、オフショア開発に対するリスクを踏まえる必要がある。またリスクへの対応策が新たなリスクを生む可能性を持っ
ているため、単純に対策を行うのではなく、対策に内在するリスクを踏まえた上で対策の具体策を練らなければならない。これらのリスクを踏まえた上で、オフショア先の単価１５０７やスキル１５０８、バックアップ体制１５０２、ブリッジＳＥ経験値１５０４などの支援体制を含めた対策指標の組合せを決める必要がある。
【００４９】
また、目的関数として、従来技術のような単独項目ではなく、Ｑ（品質）、Ｃ（コスト）、Ｄ（納期）など複数項目を想定しており、かつこれらの目的関数ＱＣＤの間にトレードオフの関係がある。例えば、品質と開発コストにはトレードオフの関係があり、通常は品質を向上させようとするとコストがかかる。従って、品質とコストの両方の条件を満たすために、目的関数の解空間は或る特定の範囲に限定されることになる。同様に、対策の間にもトレードオフの関係がある。またＱ、Ｃ、Ｄのいずれに重きをおくかによっても取るべき対策が異なる。このように、トレードオフの関係をもつ目的関数Ｑ（品質）、Ｃ（コスト）、Ｄ（納期）の条件を満たすように、オフショア開発を実現する８つの対策指標１５０１〜１５０８の組合せを求める必要がある。
【００５０】
さらに、図１５で例示するように本実施形態のインフルエンスダイアグラム１５００は複雑で階層構造が深く、対策と目的関数の間には複雑な因果関係および制約条件があり、対策と目的関数の関係は線形ではない。そのため、１つの目的関数の値を満たす対策候補の組合せが複数存在し、逆関数を求めることが困難である。例えば図１５のインフルエンスダイアグラム１５００にて示すように、オフショア開発の実現に関する対策指標は８つあり、各対策指標と目的関数との因果構造は多段階となっており、また各ノード間の関数も線形ではない。そのため８つの対策指標の組合せは膨大な数となる。従って、対策指標から目的関数を一意に求めることはできるが、目的関数から対策指標を逆関数で求めようとすると、１つの目的関数の値を満たす対策指標が複数存在するため、膨大な計算量を必要とする。そこで本実施形態の対策選択技術を用いることで、目的関数の水準に応じた対策指標の組合せを効率的に求めることとする。以下に、そうした対策選択の具体的な処理について説明する。
【００５１】
−−−処理手順例２−−−
続いて、目的関数算出及び対策組合せ探索部１１３、最適対策判定部１１４、および対策案出力部１１５の各処理について説明する。図１６は、本実施形態における対策選択方法の処理手順例２を示すフロー図である。図１６は本実施形態における対策選択方法の処理手順例２を示すフロー図である。
【００５２】
まず、対策選択装置１００の目的関数算出及び対策組合せ探索部１１３は、対策指標＆目的関数条件関連情報ＤＢ１５７、対策指標＆目的関数の因果構造要素定義情報ＤＢ１５８、対策指標＆目的関数の因果構造定義情報ＤＢ１５９、対策指標＆目的関数の因果構造関数定義情報ＤＢ１６０をそれぞれ読み込み、各対策指標の条件設定の範囲内（条件設定が許容する範囲の意）で例えばランダムに値を選定し、こうして選定した各対策指標の値の組合せ（セット）と、上述のインフルエンスダイアグラム１５００に対応した各要素間の階層構造および関数（図１０、図１１）とに基づいて、各要素間の影響の連鎖、すなわち該当関数の値の入出力関係（或る要素での関数の算定値が、連結する要素の入力になる）を、目的関数に向かって繰り返し実行し、最終的に目的関数の値を算出する。
【００５３】
本実施形態においては、こうした処理に際し、目的関数算出及び対策組合せ探索部１１３は、まず、対策指標Ｎ個のＮ次元空間Ｘにおいて、Ｘの条件を満たす領域内でランダムに２つの対策候補ＸＡ、ＸＢを選択する（１４０１）。例えば図５で例示したインフルエンスダイアグラム１５００の場合、８個の対策指標１５０１〜１５０８に対応した８次元空間Ｘとして、８個の対策指標１５０１〜１５０８の条件設定（図８）のアンド（すなわち全ての条件設定を満たす）である領域内（各対策指標の条件設定が許容する範囲）で、
ランダムに２つの対策候補を選択する。この対策候補は、各対策指標に関してランダムに選定した値群のセットである。図１７にて、上述のＮ次元空間Ｘと、ランダムに選択したＸＡ、ＸＢのそれぞれの概念について例示する。
【００５４】
続いて、目的関数算出及び対策組合せ探索部１１３は、上述したように、ステップ１４０１で選択した対策候補ＸＡ、ＸＢと、各要素間の階層構造および関数（図１０、図１１）とに基づいて、各要素間の影響の連鎖、すなわち該当関数の値の入出力関係（或る要素での関数の算定値が、連結する要素の入力になる）を、目的関数に向かって繰り返し実行し、目的関数Ｆ（ＸＡ）、Ｆ（ＸＢ）を求める（１４０２）。この目的関数Ｆ（ＸＡ）、Ｆ（ＸＢ）に関しても、図１７にて例示する。
【００５５】
次に最適対策判定部１１４は、上述の２つのＦ（ＸＡ）、Ｆ（ＸＢ）が、解空間に含まれているか判定する（１４０３）。この解空間は、Ｍ個の目的関数の各条件設定（図８）のアンド（すなわち全ての条件設定を満たす）であるＭ次元空間Ｙ（各目的関数の条件設定が許容する範囲）である。
【００５６】
上述の判定の結果、上述の２つのＦ（ＸＡ）、Ｆ（ＸＢ）のどちらかが解空間に含まれていた場合（１４０３：Ｙｅｓ）、対策案出力部１１５は、解空間に含まれていたＦ（ＸＡ）またはＦ（ＸＢ）に対応する対策候補、すなわちＸＡまたはＸＢを選択対策の解（全ての目的関数を満足する対策指標値のセット）として表示装置１０６の画面２０００（図２０）に出力し（１４０４）、処理を終了する。
【００５７】
他方、上述の２つのＦ（ＸＡ）、Ｆ（ＸＢ）のどちらも解空間に含まれていなかった場合（１４０３：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、上述のＭ次元空間ＹにおいてＦ（ＸＡ）とＦ（ＸＢ）を結ぶ線分を生成し（１４０５）、該当線分が解空間と交わるか判定する（１４０６）。こうした線分の生成や解空間との交叉有無の判定の各処理は一般的な数学的手法を採用すれば良い。
【００５８】
上述の判定の結果、ステップ１４０５で生成した線分が解空間と交わる場合（１４０６：Ｙｅｓ）、目的関数算出及び対策組合せ探索部１１３は、上述のＮ次元空間Ｘにおける対策候補ＸＡとＸＢの間の中点ＸＣを特定し（１４０７）、このＸＣに関して上述のステップ１４０２と同様の処理でＦ（ＸＣ）を算定する（１４０８）。
【００５９】
次に、最適対策判定部１１４は、上述のステップ１４０８で得たＦ（ＸＣ）が、解空間に含まれるか判定する（１４０９）。この判定の結果、Ｆ（ＸＣ）が解空間に含まれていれば（１４０９：Ｙｅｓ）、対策案出力部１１５は、上述の対策候補ＸＣを選択対策の解として表示装置１０６の画面２０００（図２０）に出力し（１４１０）、処理を終了する。
【００６０】
他方、上述の判定の結果、Ｆ（ＸＣ）が解空間に含まれていなかった場合（１４０９：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、上述のＦ（ＸＡ）とＦ（ＸＣ）、Ｆ（ＸＢ）とＦ（ＸＣ）をそれぞれ結ぶ線分を生成し（１４１１）、生成した２つの線分が解空間と交わるか判定する（１４１２）。
【００６１】
上述の判定の結果、上述のステップ１４１１で生成した各線分のうちどちらかが解空間と交わっていれば（１４１２：Ｙｅｓ）、目的関数算出及び対策組合せ探索部１１３は、解空間と交わっている線分を選択し、上述の対策候補ＸＡとＸＣの中点ＸＤ、または、対策候補ＸＢとＸＣの中点ＸＤを、上述のＮ次元空間Ｘにおいて特定する（１４１３）。
【００６２】
また、目的関数算出及び対策組合せ探索部１１３は、上述のステップ１４１３で特定し
た中点ＸＤについて目的関数値Ｆ（ＸＤ）を算定する（１４１４）。ここで最適対策判定部１１４は、ステップ１４１４で算定したＦ（ＸＤ）が解空間に含まれているか判定する（１４１５）。
【００６３】
上述の判定の結果、Ｆ（ＸＤ）が解空間に含まれていれば（１４１５：Ｙｅｓ）、対策案出力部１１５は、この対策候補ＸＤを選択対策の解として表示装置１０６の画面２０００（図２０）に出力し（１４１６）、処理を終了する。
【００６４】
他方、上述のステップ１４０６の判定の結果、Ｆ（ＸＡ）とＦ（ＸＢ）を結ぶ線分が解空間と交わらない場合（１４０６：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、上述のＭ次元空間ＹにおけるＦ（ＸＡ）から解空間までの距離ＲＡ、及びＦ（ＸＢ）から解空間までの距離ＲＢを算定する（１４２０）。
【００６５】
次に目的関数算出及び対策組合せ探索部１１３は、上述のステップ１４２０で得た距離ＲＡとＲＢを比較し、値の小さい方、つまり、解空間との距離が近いＦ（ＸＡ）またはＦ（ＸＢ）のいずれかを特定し、距離が遠い方を削除する（１４２１）。
【００６６】
また、目的関数算出及び対策組合せ探索部１１３は、新たな対策候補ＸＣを、上述のＮ次元空間Ｘにおいてランダムに選択し（１４２２）、Ｆ（ＸＣ）を求める（１４２３）。
【００６７】
次に、最適対策判定部１１４は、上述のステップ１４２３で得たＦ（ＸＣ）が解空間に含まれているか判定する（１４２４）。この判定の結果、Ｆ（ＸＣ）が解空間に含まれていれば（１４２４：Ｙｅｓ）、対策案出力部１１５は、対策候補ＸＣを選択対策の解として表示装置１０６の画面２０００（図２０）に出力し（１４１０）、処理を終了する。
【００６８】
他方、Ｆ（ＸＣ）が解空間に含まれていない場合（１４２４：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、上述の対策候補ＸＡとＸＢのうち解空間に近い方と、対策候補ＸＣとを新たな対策候補として、これまで処理対象としていた対策候補ＸＡ、ＸＢと置き換え（１４２５）、処理をステップ１４０５に戻して、以降のステップを繰り返す。
【００６９】
他方、上述のステップ１４１２での判定の結果、上述のＦ（ＸＡ）とＦ（ＸＣ）、Ｆ（ＸＢ）とＦ（ＸＣ）をそれぞれ結ぶ各線分のいずれも解空間と交わらない場合（１４１２：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、上述のＮ次元空間Ｘにおいて、対策候補ＸＣを内空に含む所定直径の円の線分上の各値について目的関数Ｆを算定し、解空間との距離が最も近い対策候補ＸＣＲを特定し、Ｆ（ＸＣＲ）を算出する（１４２６）。上述の円の直径値も、Ｎ次元空間Ｘ内の範囲にて例えばランダムに選択する。図１８にて、上述のＮ次元空間Ｘと、対策候補ＸＡ、ＸＢ、ＸＣ、およびＸＣＲと、それらの各目的関数Ｆ（ＸＡ）、Ｆ（ＸＢ）、Ｆ（ＸＣ）、Ｆ（ＸＣＲ）の概念について例示する。
【００７０】
次に最適対策判定部１１４は、上述のステップ１４２６で得たＦ（ＸＣＲ）が解空間に含まれているか判定する（１４２７）。この判定の結果、Ｆ（ＸＣＲ）が解空間に含まれていれば（１４２７：Ｙｅｓ）、対策案出力部１１５は、対策候補ＸＣＲを選択対策の解として表示装置１０６の画面２０００（図２０）に出力し（１４２８）、処理を終了する。
【００７１】
他方、上述の判定の結果、Ｆ（ＸＣＲ）が解空間に含まれていない場合（１４２７：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、このＦ（ＸＣＲ）から解空間までの距離Ｒと、上述のＦ（ＸＣ）から解空間までの距離Ｄとに基づき、Ｄ／Ｒを算定する（１４２９）。
【００７２】
次に、目的関数算出及び対策組合せ探索部１１３は、上述のＮ次元空間Ｘにおける対策候補ＸＣからＸＣＲまでの距離に、上述のステップ１４２９で得たＤ／Ｒの値を乗算して得られる位置の点ＸＣＲ１を新たな対策候補として選択し、目的関数Ｆ（ＸＣＲ１）を算定する（１４３０）。図１９にて、上述のＮ次元空間Ｘと、対策候補ＸＡ、ＸＢ、ＸＣ、ＸＣＲ、およびＸＣＲ１と、それらの各目的関数Ｆ（ＸＡ）、Ｆ（ＸＢ）、Ｆ（ＸＣ）、Ｆ（ＸＣＲ）、Ｆ（ＸＣＲ１）の概念について例示する。
【００７３】
続いて、最適対策判定部１１４は、上述のステップ１４３０で得たＦ（ＸＣＲ１）が解空間に含まれているか判定する（１４３１）。この判定の結果、Ｆ（ＸＣＲ１）が解空間に含まれていれば（１４３１：Ｙｅｓ）、対策案出力部１１５は、この対策候補ＸＣＲ１を選択対策の解として表示装置１０６の画面２０００（図２０）に出力し（１４３２）、処理を終了する。
【００７４】
他方、上述の判定の結果、上述のＦ（ＸＣＲ１）が解空間に含まれていない場合（１４３１：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、上述のＭ次元空間ＹにおけるＦ（ＸＣＲ１）から解空間までの距離が、Ｆ（ＸＣＲ）から解空間までの距離より短いか判定する（１４３３）。
【００７５】
上述の判定の結果、Ｆ（ＸＣＲ１）から解空間までの距離がＦ（ＸＣＲ）から解空間までの距離より短い場合（１４３３：Ｙｅｓ）、目的関数算出及び対策組合せ探索部１１３は、Ｎ次元空間Ｘにおいてランダムに対策候補Ｘｎを選択し、これの目的関数Ｆ（Ｘｎ）と上述のＦ（ＸＣＲ）とをＭ次元空間Ｙにて結ぶ線分を生成し、該当線分が解空間と交わる新たな対策候補ＸＥを選択する（１４３４）。また、このステップにおいて目的関数算出及び対策組合せ探索部１１３は、選択した対策候補ＸＥと上述の対策候補ＸＣＲを、これまで処理対象としていた対策候補ＸＡとＸＢと置き換えて（１４３４）、処理をステップ１４０７に戻し、以降のステップを繰り返す。
【００７６】
他方、上述の判定の結果、Ｆ（ＸＣＲ１）から解空間までの距離がＦ（ＸＣＲ）から解空間までの距離より短くない場合（１４３３：Ｎｏ）、目的関数算出及び対策組合せ探索部１１３は、処理をステップ１４３０に戻し、以降のステップを繰り返す。
【００７７】
以上より、２つの対策候補を選択してそれぞれ目的関数を求め、Ｍ次元空間Ｙなる目的関数の空間中で、２つの対策候補が解の領域すなわち解空間を挟んで対峙するという関係を踏まえることで、２つの対策候補から解空間との距離が近い方を残しながら対策候補間の比較を繰り返し、解空間に近づけることによって、目的関数の条件を満たす対策指標の組合せを効率的に求めることができる。
【００７８】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００７９】
こうした本実施形態によれば、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【００８０】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の対策選択装置において、前記演算装置は、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が、前記解空間に含まれるか判定して、前記選択対策における対策指標値を探索する処理を更に実行するものであるとしてもよい。
【００８１】
これによれば、目的関数における各条件（トレードオフの関係があるもの含む）と、対策内容における各対策指標（トレードオフの関係があるもの含む）を踏まえた、上述の解探索の結果、目的関数値が解空間に含まれない場合、すなわち、求める品質や納期、コスト等を満たす対策指標値のセットが得られていない状況に対応して、上述の線分および中点に基づく解空間での効率的な解探索が可能であり、ひいては、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【００８２】
また、本実施形態の対策選択装置において、前記演算装置は、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分のうち前記解空間と交わる線分を特定し、該当線分の中点を更に新たな中点として特定し、該当中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するものであるとしてもよい。
【００８３】
これによれば、目的関数値が解空間に含まれない場合、すなわち、求める品質や納期、コスト等を満たす対策指標値のセットが得られていない状況に対応して、上述の線分および中点に基づく解空間での解探索を繰り返し行うことが可能であり、ひいては、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【００８４】
また、本実施形態の対策選択装置において、前記演算装置は、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するものであるとしてもよい。
【００８５】
これによれば、目的関数値が解空間に含まれない場合、すなわち、求める品質や納期、コスト等を満たす対策指標値のセットが得られていない状況に対応して、上述の線分および中点、並びに円線分等に基づく解空間での効率的な解探索を繰り返し行うことが可能であり、ひいては、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【００８６】
また、本実施形態の対策選択装置において、前記演算装置は、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか
判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線方向に、前記中点と前記値との距離を前記除算値を乗算して前記中の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するものであるとしてもよい。
【００８７】
これによれば、目的関数値が解空間に含まれない場合、すなわち、求める品質や納期、コスト等を満たす対策指標値のセットが得られていない状況に対応して、上述の線分および中点、並びに円線分、および上述の特定位置の値に関する解空間の含有判定等に基づく解空間での効率的な解探索を繰り返し行うことが可能であり、ひいては、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【００８８】
また、本実施形態の対策選択装置において、前記演算装置は、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線上で、前記中点と前記値との距離に前記除算値を乗算して前記中点の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記延長値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、所定アルゴリズムで前記範囲内から新たに選択する解候補値に関して得られる目的関数値のうち、前記延長値に関する目的関数値と線分を構成した際に、前記解空間に交わるものを特定し、当該特定した目的関数値に対応した対策指標値と前記延長値との間で、前記中点を特定し、当該中点に関する各処理を更に実行するものであるとしてもよい。
【００８９】
これによれば、目的関数値が解空間に含まれない場合、すなわち、求める品質や納期、コスト等を満たす対策指標値のセットが得られていない状況に対応して、上述の線分および中点、並びに円線分、上述の特定位置の値、および延長値に関する解空間の含有判定等に基づく解空間での効率的な解探索を繰り返し行うことが可能であり、ひいては、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【００９０】
また、本実施形態の対策選択装置において、前記演算装置は、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わらないものである場合、前記２つの目的関数値のそれぞれと前記解空間との各距離を算定し、前記目的関数値のうち前記解空間との距離がより近いものを特定し、該当目的関数値に対応した解候補値と、所定アルゴリズムで前記範囲内から新たに選択した解候補値とを、前記新たな解候補値とするものであるとしてもよい。
【００９１】
これによれば、目的関数値が解空間に含まれない場合、すなわち、求める品質や納期、コスト等を満たす対策指標値のセットが得られていない状況に対応して、当初の目論見に含まれていたものとは異なる解候補値を新たに用い、それまでの解候補値の存在位置と異なる領域に関して解空間との位置関係を判定するなどして、効率的な解探索を行うことが可能であり、ひいては、複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索可能となる。
【００９２】
また、本実施形態の対策選択装置において、前記演算装置は、前記選択対策における対策指標値の情報を、表示装置に出力する処理を更に実行するものであるとしてもよい。
【００９３】
これによれば、組織における対策立案の担当者等が、システム開発プロジェクト等における納期、品質を遵守しつつ開発コスト抑制を図るといった目的に対し、必要な対策の中身（各対策指標の値）を明確かつ容易に理解可能となる。この担当者からしてみれば、従来技術および人手では対応出来なかった、「複数の目的関数の条件を満たす対策の組合せを、各条件および各対策の各間でのトレードオフの関係も踏まえて効率的に探索」との課題を解決することにつながる。
【００９４】
また、本実施形態の対策選択方法において、前記情報処理装置が、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が、前記解空間に含まれるか判定して、前記選択対策における対策指標値を探索する処理を更に実行するとしてもよい。
【００９５】
また、本実施形態の対策選択方法において、前記情報処理装置が、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分のうち前記解空間と交わる線分を特定し、該当線分の中点を更に新たな中点として特定し、該当中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するとしてもよい。
【００９６】
また、本実施形態の対策選択方法において、前記情報処理装置が、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれ
るか判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するとしてもよい。
【００９７】
また、本実施形態の対策選択方法において、前記情報処理装置が、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線方向に、前記中点と前記値との距離を前記除算値を乗算して前記中の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定する処理を更に実行するとしてもよい。
【００９８】
また、本実施形態の対策選択方法において、前記情報処理装置が、前記算定した２つの目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わるものである場合、該当各目的関数値に対応する解候補値の間の中点を特定し、当該中点に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記中点に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点と前記２つの解候補値の各間を結ぶ２つの線分が前記解空間と交わるか判定し、前記線分のいずれも前記解空間と交わっていない場合、前記中点を内空に含む所定半径の円線分上の値のうち、前記関数に適用して得られる目的関数値が前記解空間と最も近い距離の値を特定し、当該値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、前記中点に対応した対策指標値に関して得た目的関数値と前記解空間との距離で、前記値に対応した対策指標値に関して得た目的関数値と前記解空間との距離を除算し、前記中点から前記値を通過する直線上で、前記中点と前記値との距離に前記除算値を乗算して前記中点の延長値を特定し、当該延長値に対応した対策指標値を前記新たな解候補値として前記関数に適用した場合の目的関数値が前記解空間に含まれるか判定し、前記延長値に対応した対策指標値に関して得た目的関数値が前記解空間に含まれていなかった場合、所定アルゴリズムで前記範囲内から新たに選択する解候補値に関して得られる目的関数値のうち、前記延長値に関する目的関数値と線分を構成した際に、前記解空間に交わるものを特定し、当該特定した目的関数値に対応した対策指標値と前記延長値との間で、前記中点を特定し、当該中点に関する各処理を更に実行するとしてもよい。
【００９９】
また、本実施形態の対策選択方法において、前記情報処理装置が、前記算定した２つの
目的関数値がいずれも前記解空間に含まれていない場合に、前記２つの目的関数値の間の線分が前記解空間と交わるか判定し、前記線分が前記解空間と交わらないものである場合、前記２つの目的関数値のそれぞれと前記解空間との各距離を算定し、前記目的関数値のうち前記解空間との距離がより近いものを特定し、該当目的関数値に対応した解候補値と、所定アルゴリズムで前記範囲内から新たに選択した解候補値とを、前記新たな解候補値とするとしてもよい。
【０１００】
また、本実施形態の対策選択方法において、前記情報処理装置が、前記選択対策における対策指標値の情報を、表示装置に出力する処理を更に実行するとしてもよい。
【符号の説明】
【０１０１】
１００  対策選択装置
１０１  記憶装置
１０２  プログラム
１０３  メモリ
１０４  演算装置
１０５  入力装置
１０６  表示装置
１０７  通信装置
１１０  対策候補取得部
１１１  対策指標＆目的関数抽出部
１１２  対策指標＆目的関数条件取得部
１１３  目的関数算出及び対策組合せ探索部
１１４  最適対策判定部
１１５  対策案出力部
１５０  対策選択用データ
１５１  プロジェクト情報ＤＢ
１５２  リスク対策情報ＤＢ
１５３  プログラム情報＆対策情報ＤＢ
１５４  対策のプロジェクト特性依存情報ＤＢ
１５５  対策指標定義情報ＤＢ
１５６  目的関数定義情報ＤＢ
１５７  対策指標＆目的関数条件関連情報ＤＢ
１５８  対策指標＆目的関数の因果構造要素定義情報ＤＢ
１５９  対策指標＆目的関数の因果構造定義情報ＤＢ
１６０  対策指標＆目的関数の因果構造関数定義情報ＤＢ
【図１】
2016189161.tif 000003
【図２】
2016189161.tif 000004
【図３】
2016189161.tif 000005
【図４】
2016189161.tif 000006
【図５】
2016189161.tif 000007
【図６】
2016189161.tif 000008
【図７】
2016189161.tif 000009
【図８】
2016189161.tif 000010
【図９】
2016189161.tif 000011
【図１０】
2016189161.tif 000012
【図１１】
2016189161.tif 000013
【図１２】
2016189161.tif 000014
【図１５】
2016189161.tif 000015
【図１６】
2016189161.tif 000016
【図２０】
2016189161.tif 000017
【図１３】
2016189161.tif 000018
【図１４】
2016189161.tif 000019
【図１７】
2016189161.tif 000020
【図１８】
2016189161.tif 000021
【図１９】
2016189161.tif 000022