(57)【要約】【課題】過去の類似案件に頼らずリスク要因を見極め、潜在リスク構造を効率よく抽出する。【解決手段】潜在リスクの抽出は、リスク評価項目をノードとし、リスク評価項目間の因果関係をノード間のリンクとし、リスク評価モデルとしてデータベースに格納する、各因果関係について、因果関係パターン分類を参照して、因果関係パターン区分をデータベースに格納する。データベースを参照して、リスク評価モデルからループ構造を抽出し、リスク評価モデルのループ構造の特徴とシステム・ダイナミクスのリスク構造の典型的なパターンであり、因果関係パターン区分を付したシステム原型の構造の特徴を比較し、ループ構造と一致する可能性があるシステム原型の候補を絞込み、絞り込まれたシステム原型とループ構造との間で因果関係パターン区分をマッチングし、ループ構造がシステム原型と一致すれば、一致したループ構造をリスク部として表示し、マッチングの結果が不一致であれば、リスク部無と表示する。【選択図】図１
2012113537.tif 000002
【特許請求の範囲】
【請求項１】
社会システムの潜在リスク抽出システムにおける潜在リスク抽出方法であって、
前記社会システムのリスク評価項目をノードとし、前記リスク評価項目間の因果関係を前記ノード間のリンクとし、リスク評価モデルとして因果ループ図を評価モデル構造データベースに格納し、
前記評価モデル構造データベースに格納された前記因果関係について、因果関係パターンマスタデータベースに保有する因果関係パターン分類を参照して、因果関係パターン区分を前記評価モデル構造データベースに格納し、
前記評価モデル構造データベースを参照して、前記リスク評価モデルからループ構造を抽出し、
抽出した前記ループ構造を評価モデルループ構造データベースに格納し、
前記評価モデルループ構造データベースに格納された、前記リスク評価モデルの前記ループ構造の特徴とシステム・ダイナミクスのリスク構造の典型的なパターンであり、前記因果関係パターン区分を付したシステム原型の構造の特徴を比較し、前記ループ構造と一致する可能性がある前記システム原型の候補を絞込み、
絞り込まれた前記システム原型と前記ループ構造との間で前記因果関係パターン区分をマッチングし、
マッチングの結果、前記ループ構造が前記システム原型と一致すれば、一致した前記ループ構造をリスク部として表示し、
マッチングの結果が不一致であれば、リスク部無と表示することを特徴とする潜在リスク抽出方法。
【請求項２】
前記評価モデル構造データベースは、前記因果ループ図に基づいた、前記リスク評価モデルの前記リスク評価項目間の前記因果関係を識別する因果関係IDと、前記因果関係を示す前記リンクの接続元ノード及び接続先ノードと、前記因果関係の第１の種類と、前記因果関係の第１の時間遅れの有無と、前記因果関係の前記因果関係パターン区分とを対応付けて格納することを特徴とする請求項１記載の潜在リスク抽出方法。
【請求項３】
前記リスク評価モデルから抽出された前記ループ構造は、ループ構造データベースに、前記ループ構造のループの長さである第１のループ長と、前記ループ構造に存在する第１のオイラー閉路の長さである第１のオイラー閉路長と、前記第１のオイラー閉路長の長さにおける拡張ループの個数である第１の拡張ループ個数と、前記第１のオイラー閉路長の長さにおけるバランスループの個数である第１のバランスループ個数と、前記ループ構造の第１のノード数と、前記ループ構造における前記第１の種類と、前記ループ構造における第１の時間遅れの有無とを含んで格納され、前記ループ構造データベースは前記ループ構造とマッチングする候補である前記システム原型のIDを前記ループ構造と対応付けて格納することを特徴とする請求項２記載の潜在リスク抽出方法。
【請求項４】
前記システム・ダイナミクスの前記システム原型の構造を格納するシステム原型構造データベースは、前記システム原型を識別するシステム原型IDと、前記システム原型の名前であるシステム原型名と、前記システム原型の第２のノード数と、前記システム原型のループの長さである第２のループ長と、前記システム原型に存在する第２のオイラー閉路の長さである第２のオイラー閉路長と、前記第２のオイラー閉路長の長さにおける拡張ループの個数である第２の拡張ループ個数と、前記第２のオイラー閉路長の長さにおけるバランスループの個数である第２のバランスループ個数と、前記システム原型のノード間の因果関係の、前記因果関係パターン区分と第２の種類と第２の時間遅れの有無とを格納することを特徴とする請求項３記載の潜在リスク抽出方法。
【請求項５】
前記リスク評価モデルからの前記ループ構造の抽出は、
前記リスク評価モデルの隣接行列を記憶装置に格納し、
前記隣接行列に対応した、前記リスク評価モデルのノード数×ノード数の行列を持つ配列を用意し、
前記隣接行列の要素が0より大きければ、前記配列に対応した前記行列に前記因果関係を格納し、
前記システム原型構造データベースに格納されている前記システム原型の前記第２のループ長の最大値個の配列である、前記ループ構造のノード数×ノード数の行列を持つ配列を用意し、
前記隣接行列の各べき乗を算出し、前記各べき乗の行列の要素が0より大きければ、ひとつ前のべき乗に対応する配列と前記リスク評価モデルの前記隣接行列に対応した前記配列を参照して、前記因果関係の繋がりを前記配列の要素の値個、前記各べき乗に対応する配列に格納し、
前記システム原型の前記第２のループ長の値のべき乗とする、前記ループ構造のべき乗の対角要素が0より大きければ、前記対角要素の値個の、前記隣接行列に対応した前記配列から前記ループ構造を抽出することを特徴とする請求項４記載の潜在リスク抽出方法。
【請求項６】
前記ループ構造の特徴と前記システム原型の構造の特徴を比較した、前記ループ構造と一致する可能性がある前記システム原型の候補の絞込みは、
前記ループ構造データベースに格納されている前記ループ構造の、前記第１のループ長、前記第１のノード数、及び前記第１の時間遅れの有無と、前記システム原型構造データベースに格納されている前記システム原型の、前記第２のループ長、前記第２のノード数、及び前記第２の時間遅れの有無とを順次比較し、
前記第１のオイラー閉路に対する、前記評価モデル構造データベースに格納されている前記因果関係の種類である正負を読み出し、前記第１のオイラー閉路に対する、前記因果関係の種類である正負の総積を算出し、
算出した前記総積が-1であればバランスループであり、前記総積が+1であれば拡張ループであると判定し、前記判定の結果に基づいて前記第１の拡張ループ個数、前記第１のバランスループ個数を特定して、前記ループ構造データテーブルに格納し、
前記第１の拡張ループ個数及び前記第１のバランスループ個数を前記第２の拡張ループ個数及び前記第２のバランスループ個数と順次比較して、前記システム原型の候補を絞込むことを特徴とする請求項４記載の潜在リスク抽出方法。
【請求項７】
前記ループ構造と絞り込まれた前記システム原型の候補との、前記因果関係パターン区分の巡回順序、前記因果関係の前記第１及び第２の種類である正負の位置と、前記因果関係の前記第１及び第２の時間遅れの有無の位置の一致を検証し、
一致した場合は、前記巡回順序に従って、前記ループ構造と絞り込まれた前記システム原型の候補との各ノードの一致を検証することを特徴とする請求項４記載の潜在リスク抽出方法。
【請求項８】
社会システムのリスク評価項目をノードとし、前記リスク評価項目間の因果関係を前記ノード間のリンクとし、リスク評価モデルとして因果ループ図を格納しする評価モデル構造データベース、
因果関係パターン分類である因果関係パターン区分を格納しする因果関係パターンマスタデータベース、
ループ構造を格納する評価モデルループ構造データベース、
システム原型の構造を格納するシステム原型構造データベース、
前記評価モデル構造データベースに格納された前記因果関係について、前記因果関係パターンマスタデータベースに保有する前記因果関係パターン分類を参照して、因果関係パターン区分を前記評価モデル構造データベースに格納する評価モデル構造定義部、
前記評価モデル構造データベースを参照して、前記リスク評価モデルから前記ループ構造を抽出し、抽出した前記ループ構造を前記評価モデルループ構造データベースに格納するループ構造抽出部、
前記評価モデルループ構造データベースに格納されている前記リスク評価モデルの前記ループ構造の特徴とシステム・ダイナミクスのリスク構造の典型的なパターンであり、前記システム原型構造データベースに格納されている、前記因果関係パターン区分を付した前記システム原型の構造の特徴とを比較し、前記ループ構造と一致する可能性がある前記システム原型の候補を絞込むシステム原型絞込部、
絞り込まれた前記システム原型の候補と抽出された前記ループ構造との間で前記因果関係パターン区分をマッチングするパターンマッチング部、及び、
マッチングの結果、前記ループ構造が前記システム原型の候補と一致すれば、一致した前記ループ構造をリスク部として表示し、マッチングの結果が不一致であれば、リスク部無と表示する出力部を有することを特徴とする潜在リスク抽出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
社会システムにおけるリスクマネジメントに関する。また社会システムのリスク評価においてリスク要因とその構造を抽出する技術に関する。
【背景技術】
【０００２】
社会システムにおいて、リスク構造の抽出が難しいリスク評価対象として、プロジェクトマネジメントや事業マネジメントがある。
【０００３】
プロジェクト（以下，PJと記す）のリスク評価に関して、特許文献１、特許文献２がある。
【０００４】
特許文献１は、PJ規模、PJ期間、工程、作業などの分類軸で過去PJのリスクをデータベース化し、同じ分類軸で分類された評価PJに対して、データベースの情報から分類に対応するリスク項目を特定し、そのリスク項目での過去PJの不成功結果の実績から大、中、小レベルでリスク度を提示する。
【０００５】
特許文献２は、リスクアイテム毎（「工程比率」、「基本仕様書量のバランス」など）に演算式（√総人月≧製作期間、X=基本仕様書量／総費用など）を用意してリスク値を計算し、その計算結果がユーザの用意するリスク判定基準（閾値）を満たすかどうかでプロジェクトのリスクの有無を判定している。リスク有と判定されれば、プロジェクトの規模情報を元に、過去のPJ案件の中から類似プロジェクトを検索・選定し、過去PJのリスク実績と比較する。
【０００６】
事業リスクを評価に関して、特許文献３がある。特許文献３は、人員、部品、機材データにおいて、過去の復旧事例データから、修理または復旧期間、追加資材、追加人員数と故障種類を予測する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許公開２００９−２７６９８２号公報
【特許文献２】特許公開２０００−３４８１００号公報
【特許文献３】特許公開２００７−２１９５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
プロジェクトや事業などの社会システムのリスク評価において、上記従来技術は有用であるが、そのリスク評価の精度は過去の類似案件の種類と総数に依存し、類似案件のない場合、リスク要因の見極め精度が低下する。また前例がない場合、潜在的なリスク要因を発見することは難しい。従来技術では、リスク見極めの精度を向上させるためには、過去案件の総数を増加させることが必要であるが、全ての分類軸を満たすのに十分なだけ案件の件数を増加させることには限界がある。また総数が増加するとリスク照合と抽出に時間がかかる。
【課題を解決するための手段】
【０００９】
開示される潜在リスク抽出方法およびシステムは、リスク評価項目をノードとし、リスク評価項目間の因果関係をノード間のリンクとし、リスク評価モデルとして因果ループ図を評価モデル構造データベースに格納する、評価モデル構造データベースに格納された因果関係について、因果関係パターン分類を参照して、因果関係パターン区分を評価モデル構造データベースに格納する。評価モデル構造データベースを参照して、リスク評価モデルからループ構造を抽出し、抽出したループ構造を評価モデルループ構造データベースに格納し、評価モデルループ構造データベースに格納された、リスク評価モデルのループ構造の特徴とシステム・ダイナミクスのリスク構造の典型的なパターンであり、因果関係パターン区分を付したシステム原型の構造の特徴を比較し、ループ構造と一致する可能性があるシステム原型の候補を絞込み、絞り込まれたシステム原型とループ構造との間で因果関係パターン区分をマッチングし、マッチングの結果、ループ構造がシステム原型と一致すれば、一致したループ構造をリスク部として表示し、マッチングの結果が不一致であれば、リスク部無と表示する。
【発明の効果】
【００１０】
本発明によれば、過去の類似案件に頼らずリスク要因の見極めが可能となり、潜在リスク構造を効率よく抽出できる。
【図面の簡単な説明】
【００１１】
【図１】基本処理フローを説明する図である。
【図２】システムのハードウェア構造を説明する図である。
【図３】潜在リスク抽出ソフトウェアの構成図である。
【図４】ノード間の因果関係パターンの分類基準を示した因果関係パターン分類を説明する図である。
【図５】システム原型構造データベースのシステム原型データテーブルを説明する図である。
【図６】評価モデル構造データベースの評価モデル構造データテーブルを説明する図である。
【図７】リスク評価モデルの評価モデルループ構造データベースのループ構造データテーブルを説明する図である。
【図８】リスク評価モデルのループ構造の抽出処理フローを説明する図である。
【図９】リスク評価モデルに存在するシステム原型の種類を絞込む処理フローを説明する図である。
【図１０】リスク評価モデルの隣接行列例と因果関係格納配列例を示す図である。
【図１１】リスク評価モデルのループ構造の抽出例を示す図である。
【図１２】リスク評価モデルに存在するシステム原型の種類を絞込む処理フローを説明する図である。
【図１３】出力画面イメージを説明する図である。
【図１４】システム・ダイナミクスのシステム原型例を示した図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態に関して図面を用いて説明する。また実施例では、システムインテグレーションやソフトウェア開発のような、情報事業分野のプロジェクトマネジメントに関するPJのリスク構造を、過去の類似案件データに頼らず、効率よく抽出することができる例を説明する。
【００１３】
まず始めに、PJリスクを評価するモデルについて説明する。PJの評価項目間の因果関係を、MITスローン経営大学院のJ．Forrester教授により提唱されたシステム・ダイナミクスの考え方（「The  Beginning of System Dynamics」Banquet Talk at the international meeting of the System Dynamics Society，1989）を基に、モデル化・可視化する。システム・ダイナミクスとは、事象をシステムとして捉え、そのシステムにおける複雑かつ相互依存の動きを図式でモデリングし、シミュレーションによって問題解決に導く手法である。PJリスクを評価するモデルをシステム・ダイナミクスの考え方を基にモデル化する上で、PJリスク評価の項目には、米国プロジェクトマネジメント協会（PMI）が定めるプロジェクトマネジメントに関する知識体系のPMBOK（Project Management Body of Knowledge）の項目を用いてもよい。管理項目とは、例えば進捗、品質、人的資源、コミュニケーションなどである。
【００１４】
システム・ダイナミクスでは、事象の要素間の因果関係をグラフ化した、定性的な因果ループ図（以下，CLDと記す）を作成することで、その構造から事象の特徴や、構造のどこに働きかけることが有効かつ持続的な変化に繋がるかを把握しやすくできる（「Business Dynamics」 Systemｓ Thinking and Modeling for a Complex World, John D. Sterman, 2000）。CLDの表記法は、「フィードバック」と「遅れ」の事象を表現できることを特徴とし、要素間の因果関係を同期リンクと非同期リンクの矢印で結んだ有向グラフで表現する。同期リンクは、一方が上昇 or 増加すると他方も上昇 or 増加する関係であり、非同期リンクは、一方が上昇 or 増加すると他方が下降 or 減少する関係である。遅れとは、時間の経過後に、現れる関係である。グラフの中からループ状になるフィードバック構造を見つけ、そのループが拡張ループなのかバランスループなのかを見極めることで、事象全体の時間推移による傾向を推測しやすくし、構造特性を把握できる。拡張ループとは、成長 or 衰退が拡張的に起こる事象のループ構造であり、バランスループは成長 or 衰退がある一定まで進むと収束に向かう事象のループ構造である。
【００１５】
図１３を用いてCLD表記法を説明する。入力となるPJリスク評価モデルの例がPJリスク評価モデル例1302であり、CLDでPJのリスク評価項目間の因果関係が可視化された例である。CLDでのノードは、図１３では、PJ評価における評価項目を指す。例えば利益率13021などである。同期リンクは、矢印に正を意味する+を付加して表現し、非同期リンクは、矢印に負を意味する-を付加して表現する。また時間遅れの有無を含むリンクは、矢印に二重線を付加して表現する。PJリスク評価モデル例のCLD1302では、同期リンク13022は、生産性低下度が大きくなると原価も増加するという関係を示し、非同期リンク13023は、原価が増加すると利益率は減少するという関係を示し、遅れを含むリンク13024は、動員数の増加によって教育に時間がかかるなどして時間の経過とともに、PJの進捗遅延度が大きくなる関係を示している。ここで拡張ループ13025は、非同期リンクを0個または偶数個ループ内に内包しループ状の矢印の中にRを書き入れる形で表現し、バランスループ13026は、非同期リンクを奇数個ループ内に内包しループ状の矢印の中にBを書き入れる形で表現する。拡張ループ13025は、動員数を増やすことで進捗遅延度が大きくなり生産性低下度も大きくなる拡張関係を示し、バランスループ13026は、動員数の増加により、生産性低下度が小さくなり生産性が安定する関係を示している。
【００１６】
図２は、潜在リスク抽出システム201に用いられるコンピュータの典型的なハードウェア構成を示している。図２に示すように、潜在リスク抽出システム201は、CPU2011、メモリ2012、記憶装置2013、記録媒体202、記録媒体読取装置203、入力装置204、出力装置205を備えている。ＣＰＵ2011は潜在リスク抽出システム201の全体の制御を司るもので、メモリ2012に格納されたプログラム2015を実行することにより各種機能を実現する。記録媒体読取装置203は、記録媒体202に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ2012に格納される。従って、例えばメモリ2012に記憶されているプログラム2015は、記録媒体読取装置203を用いて記録媒体202から読み取り、メモリ2012に格納することができる。記録媒体202としては、例えばＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ、ハードディスク、フレキシブルディスク、半導体メモリ、磁気テープ等を用いることができる。記録媒体読取装置203は潜在リスク抽出システム201に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。入力装置204は、オペレータ等による潜在リスク抽出システム201へのデータ等の入力のために用いられる。入力装置204としては、例えばキーボードやマウス、マイク等が用いられる。出力装置205は情報を外部に出力するための装置である。出力装置205としては、例えばディスプレイやプリンタ、スピーカ等が用いられる。
【００１７】
図３は、潜在リスク抽出システム201が実行する潜在リスク抽出ソフトウェアの構成図である。
【００１８】
潜在リスク抽出システム201は、少なくとも評価モデル構造データベース3014、システム原型構造データベース3015、評価モデルループ構造データベース3016、因果関係パターンマスタデータベース3017を、記憶装置2013上に設ける。評価モデル構造定義部3010、ループ構造抽出部3011、システム原型絞込部3012、パターンマッチング部3013は、メモリ2012に格納され、ＣＰＵ2011によって実行されるプログラムとして実現される。またデータ入力は、入力装置204を介してコンピュータに入力される。
【００１９】
図１は、潜在リスク抽出システム201による基本処理フローを示している。
【００２０】
ステップ101では、CLDを受け付ける。潜在リスク抽出システム201への入力は、PJのリスク評価項目をノードとし、評価項目間の因果関係をシステム・ダイナミクスの考え方に基づいてPJリスク評価モデルとして作成されたCLDである。入力されるPJリスク評価モデルの例が、既述した図１３のPJリスク評価モデル例1302である。
【００２１】
ステップ102ではCLDのノードと因果関係を評価モデル構造データベース3014に格納する。ステップ102の詳細を、図６を用いて説明する。図６は、評価モデル構造データベース3014が保存する評価モデル構造データテーブル601である。ステップ102では、入力されたPJリスク評価モデルに対して、評価モデル構造定義部3010で、PJリスク評価モデルのノード間の因果関係IDを因果関係ID6010に、接続元ノードを接続元ノード6011に接続先ノードを接続先ノード6012に、ノード間の因果関係の種類である同期リンクを正、または非同期リンクを負として因果関係の正 or 負6013に、因果関係の時間遅れの有無を、時間遅れの有無6014に格納する。因果関係の正 or 負が正の場合は+１または（+１）で以後表記し、負の場合は-１または（-１）で以後表記する。また時間遅れの有無は時間遅れがある場合○、ない場合は×で以後表記する。図６の例では、図１３の入力例であるPJリスク評価モデル例1302の動員数ノードから生産性低下度ノードへの因果関係に対して、因果関係ID6010は00001、接続元ノード6011は動員数ノード，接続先ノード6012は生産性低下度ノード，ノード間の因果関係の正 or 負6013は負を示す-1、時間遅れの有無6014は×が格納された例である．
ステップ103では、因果関係パターン分類401に基づく各因果関係の因果関係パターンNo4012を入力装置204から受付け、評価モデル構造データテーブル601の因果関係パターンNo6015に格納する。ステップ103の詳細を、図4、図６を用いて説明する。因果関係パターンNo4012は、図４に示す因果関係パターンマスタデータベース3017に保有されたPJリスク評価モデルのノード間の因果関係パターン分類401を参照してユーザが設定する。
【００２２】
因果関係パターン分類401について説明する。システム・ダイナミクスでは、組織や人間の行動が引き起こす事象の挙動に共通して見られる典型的な因果関係の構造「システム原型」が報告されている（http://www.muratopia.org/JFRC/sd/
documents/Archetype.pdf）。因果関係パターン分類401は、そのシステム原型のノード間の因果関係を分析して作成した、『問題』『処置 or 変化』『結果 or 成果』から成る因果関係の接続元ノード4010と接続先ノード4011の因果関係のパターンを定義した分類表である。入力されるPJリスク評価モデルの接続元ノードと接続先ノードの関係が『問題』と『処置 or 変化』の関係のパターンを[1]と番号付けるというように10通りに分類し、その分類は、因果関係パターンNo4012に示される[1]〜[10]の番号で区別する。[1]『問題』『処置 o r変化』、は[1]『問題』『処置』と[2]『問題』『変化』のように分けて分類してもよい。図６の例では、図１３の入力例であるPJリスク評価モデル例1302を用いて、ユーザが接続元ノード動員数と接続先ノード生産性低下度の関係を『処置or変化』と『問題』との関係と設定し、構造データテーブル601の、因果関係パターンNo6015に因果関係パターンNo4012である[5]を格納した例である．
ステップ104では、評価モデル構造データテーブル601の情報を入力として、各因果関係が含まれるループ構造をループ構造抽出部3011で抽出する。ステップ104を、図７を用いて説明する。図７は、評価モデルループ構造データベース3016が保存するループ構造データテーブル701である。具体的には、ループを構成するノードとノード間の因果関係パターンNo6015と因果関係の正 or 負6013と時間遅れの有無6014の位置を羅列したループ構造をループ構造7010に格納する。そしてループ構造のループ長をループ長7011に、オイラー閉路の各閉路長をオイラー閉路長7012に、各閉路長での拡張ループの個数を拡張ループ個数7013に、バランスループの個数をバランスループ個数7014に、ノード数をノード数7015に、時間遅れの有無を時間遅れの有無7016に、ループ構造とマッチングするシステム原型ID5011をシステム原型ID7017に格納する。
【００２３】
ここで図８を用いてステップ104を詳述する。図８はループ構造抽出部3011によるPJリスク評価モデルのループ構造の抽出処理を説明したフローである。ステップ801では、評価モデル構造データテーブル601の各因果関係の接続元ノード6011、接続先ノード6012の情報からPJリスク評価モデルの隣接行列Aij(1≦i、j≦PJリスク評価モデルノード数)をメモリ2012に格納する。ステップ802では、Aijに対応したi行ｊ列の配列a1を用意して、行列要素Aij>0であればa1ijに因果関係liljを格納する。ｌiは、接続元ノード、ljは接続先ノードを意味する。
【００２４】
図１０を用いてステップ802を具体的に示す。図１０は、表記の都合上、図１３の入力されるPJリスク評価モデル例1302の動員数ノードを11、生産性低下度ノードをl2、進捗遅延度ノードをl3と置いて表現された、3ノードのPJリスク評価モデル例1001と、PJリスク評価モデル例1001の隣接行列Aij1002（1≦i、j≦3）、隣接行列Aij1002に対応した3行3列の配列a1(1003)である．以下ｌ1、ｌ2、l3、で表記する。
【００２５】
PJリスク評価モデル例1001は、ノードがl1、l2、l3でループ構造のノード数7015は3、ループ長7011は5、因果関係はl1からl2、l1からl3、l2からl1、l3からl2で、因果関係の正 or 負6013はそれぞれ負、正、正、正である。配列a1(1003)は、隣接行列Aij1002の要素AijがAij>0であるならば因果関係が格納される。例えばA32>0であるので、隣接行列A32から配列a132への矢印1004に示すように、配列a1(1003)の3行2列にl3からl2の因果関係l3l2が格納される。
【００２６】
ステップ803では、後述するステップで同じループ長を持つシステム原型とループ構造をマッチングするため、システム原型構造データベース3015に格納されているシステム原型のループ長の中で最大のループ長の値（以下，LMAXとする）を読み出し、配列a1も合わしてLMAX個のi行ｊ列の配列a2〜aLMAXを用意する。
【００２７】
ステップ804では、A2〜LMAXをCPU2011で計算し、同時にAuij = m > 0（2≦u≦LMAX）であればauijにau-1とa1を参照して因果関係の繋がりをm個格納する。
【００２８】
ステップ805では、SLをシステム原型の各ループ長とするとき、ASLii = n > 0であれば、長さSLのループ構造n個を配列aSLiiから抽出して、ループ構造データテーブル701に格納する。図１１を用いてステップ805を具体的に示す。図１１は、ループ構造を抽出する例を示すための隣接行列Aij(1002)の2乗(1109)、3乗(1110)の行列計算例と計算過程で配列に格納されたPJリスク評価モデル例1001のループ構造を抽出する具体例である。例ではループ長7011が2と3のループ構造を抽出している。隣接行列Aij(1002)と配列a1 (1003)を用いて、隣接行列Aij(1002)の2乗(1109)をAij×Aij＝A2ijで計算する過程で、A2ij >0であれば配列a2(1111)のi行j列に長さ2の因果関係が格納される。図１１では隣接行列Aij(1002)の2乗(1109)の1行2列の要素1101A212 が0より大きいので、配列a2 (1111)の1行2列に長さ2の因果関係が、配列a1(1003)の１行3列の因果関係1102と配列a1(1003)の3行2列の因果関係1103から参照されて、配列a2(1111)の1行2列1104のように格納される。またA2ii>0であれば配列a2(1111)のi行i列に長さ2のループ構造の因果関係が格納される。図１１では隣接行列Aij(1002)の2乗(1109)の1行1列の要素1105A211 が0より大きいので、配列a2(1111)の1行1列に長さ2のループ構造が、配列a1(1003)の１行2列の因果関係1106と配列a1(1003)の2行1列の因果関係1107から参照されて、配列a2(1111)の1行1列1108のように格納される。隣接行列Aij(1002)の3乗(1110)A2ij×Aij＝A3ijを計算する過程でも同様にして長さ3のループ構造の因果関係が配列a3のi行i列に格納される。
【００２９】
ステップ105では、ループ構造とシステム原型の特徴を比較し原型候補絞込みを行う。具体的には、ステップ104で格納したループ構造のループ長7011や各オイラー閉路長7012における拡張ループ個数7013、バランスループ個数7014、ノード数7015等の情報とシステム原型データテーブル501のシステム原型の同情報をシステム原型絞込部3012で比較することで、PJリスク評価モデルのループ構造に対するシステム原型の候補を絞込む。ステップ105の詳細を、図９を用いて説明する。図９はシステム原型絞込部3012の処理を説明したフローである。
【００３０】
処理のフローの詳述の前に、ステップ105で用いるシステム原型構造データベース3015が保有するシステム原型データテーブル501を、図５を用いて説明する。システム原型データテーブル501は、システム原型ID5011、システム原型名5012、システム原型のノード数5013，ループ長5014、オイラー閉路長5015とその各閉路長での拡張ループ個数5016とバランスループ個数5017、時間遅れの有無5018を有する。加えてノード間の因果関係パターンNo4012と因果関係の正 or 負と時間遅れの有無5018の位置の羅列となるシステム原型の構造5019を有する。システム原型の具体例は、図１４で説明する。
【００３１】
図１４は、システム・ダイナミクスのシステム原型例に、因果関係パターン分類401の因果関係パターンNo4012を各ノードに対して適用した例である。「問題の転嫁」因果ループ1401は、問題を解決するための応急処置が意図しない結果を招き根本的解決をさらに遅らせるという構造である。「問題の転嫁」因果ループ1401において、問題ノード14011を因果関係パターン分類401の『問題』、応急処置ノード14012を因果関係パターン分類401の『処置 or 変化』、根本的解決ノード14013を因果関係パターン分類401の『結果 or 成果』、意図しない結果ノード14014を因果関係パターン分類401の『問題』と分析し、設定した。この設定により接続元ノードである問題ノード14011から接続先ノードである応急処置ノード14012への因果関係は、因果関係パターン分類401の因果関係パターンNo4012の一つである[1]『問題』→『処置 or 変化』と分類でき、各ノード間の因果関係をパターン化できる。「応急処置の失敗」因果ループ1４02は、問題を解決するための応急処置が意図しない結果を招き問題を増大させるという構造であり、「応急処置の失敗」因果ループ1402でもノードを同様に分析し、設定したことで、ノード間の因果関係をパターン化できる。
【００３２】
そしてその構造をシステム原型データテーブル501でマスタとして保有する。システム原型名5012の「問題の転嫁」の場合、ノード数5013は4，ループ長5014は8、長さ4のオイラー閉路長5015においては、拡張ループ個数5016は1個、バランスループ個数5017が１個、長さ2のオイラー閉路長5015においては、拡張ループ個数5016が0個、バランスループ個数5017は2個、時間遅れの有無5018は有を意味する○が格納される。そしてシステム原型の構造5019は、例えば「問題の転嫁」の図14のノードに対して、表記の都合上、X1を問題ノード14011、Y1を応急処置ノード14012、Z1を根本的解決ノード14013、V1を意図しない結果ノード14014と置いて（以下、X1、Y1、Z1、V1で表記する）、システム原型の構造5019にX1[1](+1) Y1[5](-1) X1[2](+1) Z1[7]遅(-1) X1[1](+1) Y1[5](+1) V1[2](-1) Z1[7]遅(-1) X1が格納される。上記構造で、X1[1]（+１）Y1はシステム原型「問題の転嫁」の接続元ノードがX1、接続先ノードY1、ノード間の因果関係パターンNo4012が[1]、因果関係の正 or 負が正で括弧の中に+１を描く形で構造を表している。システム原型の種類を増加したければ入力装置204から更新可能である。また評価モデルループ構造データベース3016に格納されたループ構造の情報に対して、実際のPJ結果から、リスク部となったループ構造を、入力装置204から新たなシステム原型として更新する機能を有しても良い。その際は、ユーザから因果関係パターンNo4012を受け付け、システム原型の構造5019を設定する。
【００３３】
上述したシステム原型データテーブル501を保有した上で、ステップ901を説明する。ステップ901では、ステップ805で抽出された各ループ構造を入力として、因果関係パターンNo6015の[1]〜[10]と因果関係の正 or 負6013と時間遅れの有無6014の位置を羅列したループ構造が、ループ構造データテーブル701のループ構造7010に格納される。そしてループ構造のループ長がループ長7011，ノード数がノード数7015，時間遅れの有無が時間遅れの有無7016に格納される。
【００３４】
ステップ902では、ループ構造データテーブル701の情報とシステム原型データテーブル501のシステム原型のループ長5014、ノード数5013，時間遅れの有無5018の情報と比較してシステム原型の候補を絞込み、システム原型ID5011をループ構造データテーブル701のシステム原型ID7010に格納する。ループ構造データテーブル701の情報を用いてステップ902を具体的に説明すると、まずループ構造のループ長7011、ノード数7015、時間遅れの有無7016をループ構造データテーブル701から読み出し、合わせてシステム原型データテーブル501の各システム原型のループ長5014を読み出し比較することで候補を絞る。ここで言うループ長とは、グラフ理論で定義されるループの長さを意味する。次にシステム原型のノード数5013，最後に時間遅れの有無5018で比較して候補を絞る。PJリスク評価モデル例1302では、ステップ104で抽出されたループ構造l2→l1→l2→l1→l3→l2に対して、ループ長7011が5、ノード数7015が3、時間遅れの有無7016が○の情報とシステム原型データテーブル501の同情報から、「応急処置の失敗」が絞り込まれシステム原型ID7010に「応急処置の失敗」のシステム原型ID5011に001が格納されることとなる。
【００３５】
ステップ903では、ステップ902の絞り込みで候補が存在したループ構造に対して、各オイラー閉路を抽出して、各オイラー閉路長をオイラー閉路長7012に格納し、評価モデル構造データテーブル601から各オイラー閉路の因果関係ID6010と因果関係の正 or 負6013を読み出して総積を計算する。ステップ903を具体的に説明する。ステップ903では、ステップ805で抽出され、ステップ902の絞り込みで候補が存在したループ構造に対して、さらに候補となるシステム原型を絞り込むため、ループ構造のオイラー閉路を抽出し、各オイラー閉路において、ノード間の因果関係の正 or 負の総積を計算する処理をしている。PJリスク評価モデル例1001において、ループ構造l2(+1)l1(-1)l2(+1)l1(+1)l3(+1)l2(+1)にシステム原型の候補であるシステム原型ID5011がステップ902で抽出されているとき、オイラー閉路を抽出する。オイラー閉路は、ループ構造7010のノードの羅列に対して格納されている先頭のノードl2から、同じノードが出てくるまでノードの羅列l2→l1→l2→l1→l3→l2のl2→l1→l2のように検索して閉路を検出する。次のオイラー閉路は、検出した終端のノードである3ノード目のl2から検索を開始し、同様にl2→l1→l3→l2のl2→l1→l3→l2のようにしてオイラー閉路を検出して、長さ2のオイラー閉路l2→l1→l2と長さ3のオイラー閉路l2→l1→l3→l2が検出される。検出された各オイラー閉路に対して、接続元ノード6011、接続先ノード6012の情報から評価モデル構造データテーブル601に格納されている因果関係ID6010を読み出す。PJリスク評価モデル例1001では、因果関係l1からl2が00001、l2からl1が00002、l1からl3が00003、l3からl2が00004となる。そして各因果関係の正or 負6013である+１ or -1を00001は-１、00002は+１、00003は+１、00004+１のように読出し、各オイラー閉路に対して、因果関係の正 or 負6013の総積をオイラー閉路l2→l1→l2は、（因果関係00002の+1）×（因果関係00001の-1）＝-1、オイラー閉路l2→l1→l3→l2は、（因果関係00002の+1）×（因果関係00003の+1）×（因果関係00004の+1）＝+1ようにして算出する。
【００３６】
ステップ904では、各オイラー閉路長7012で、因果関係の正 or 負6013の総積が-1であればバランスループ、総積が+1であれば拡張ループと判定して、拡張ループ個数を拡張ループ個数7013、バランスループの個数をバランスループ個数7014に格納する。ステップ904を具体的に説明する。ステップ904は、ステップ805で抽出され、候補がステップ902で抽出されたループ構造に対して、候補となるシステム原型をさらに絞り込むため、ステップ903で抽出されてノード間の因果関係の正 or 負6013の総積が算出されたPJリスク評価モデル例1001の各オイラー閉路l2→l1→l2、l2→l1→l3→l2に対し、因果関係の正 or 負6013の総積が-1であればバランスループ、+１であれば拡張ループと判定できることから、バランスループの個数1個、拡張ループの個数1個と求めることができる。
【００３７】
ステップ905では、ステップ805で抽出され、候補がステップ902で抽出された各ループ構造に対してループ構造データテーブル701の情報とシステム原型データテーブル501の情報を比較して各閉路長の拡張 or バランスループの個数の情報で、ステップ902で抽出された候補のシステム原型の中からさらに絞込み、システム原型をシステム原型ID7017に格納する。ループ構造データテーブル701の情報を用いてステップ905を具体的に説明すると、ステップ904で抽出されたループ構造データテーブル701に格納されている各オイラー閉路長7012の拡張ループ個数7013、バランスループ個数7014に対して、システム原型ID7017にシステム原型ID5011として挙がっているシステム原型データテーブル501の各システム原型の拡張ループ個数5016、バランスループ個数5017を読み出し、拡張 or バランスループの個数で比較して候補を絞る。PJリスク評価モデル例1302において、ステップ905では、拡張ループ１個、バランスループ１個より、「応急処置の失敗」が絞り込まれ、以上より、ステップ105では、「応急処置の失敗」が絞り込まれることとなる。
【００３８】
ステップ106で、システム原型ID7017に格納されている候補の有無を判定する。ステップ106で有と判定された場合、ステップ107では、絞り込まれたシステム原型と因果関係パターンNoの並びやノードの順序においてパターンマッチングをパターンマッチング部3013で行う。図１２を用いてステップ107の処理フローを説明する。
【００３９】
図１２は、システム原型パターンマッチング部3013の処理であるPJリスク評価モデルのループ構造とシステム原型とのマッチング処理を説明するフローである。ステップ1201において、ループ構造データテーブル701の各ループ構造を入力として、ステップ905で候補として特定されたシステム原型の構造を、システム原型ID7017に格納されているシステム原型ID5011を用いてシステム原型データテーブル501から読み出す。そして候補のシステム原型のシステム原型の構造5019とループ構造のループ構造7010において、因果関係パターンNoの巡回順序と因果関係の正 or 負の一致検証を行い、時間遅れの有無の位置の一致検証を行う。ステップ1201を詳述すると、ループ構造データテーブル701のループ構造7010に格納されている生産性低下度[1](+1)  動員数[5](-1)  生産性低下度[1](+1)  動員数[4](+1)遅  進捗遅延度[7](+1)  生産性低下度に対してシステム原型ID7017に格納されているシステム原型ID5011の順番に、候補となっているシステム原型の接続ノードと因果関係パターンNo4012と因果関係の正 or 負と時間遅れの有無5018の位置の羅列となるシステム原型の構造5019をシステム原型データテーブル501から読み出す。ステップ105で「応急処置の失敗」1402が候補として絞り込まれたPJリスク評価モデル例、その構造はX2[1](+1)  Y2[5](-1)  X2[1](+1)  Y2[4](+1)遅  Z2[7](+1) X2がシステム原型の構造5019から読み出され、ループ構造データテーブル701のPJリスク評価モデルのループ構造7010に対して、まず[1]を最小値として起点とし、因果関係パターンNo4012と時間遅れの有無の位置と因果関係の正 or 負の順序一致検証としてループ構造[1](+1)[5](-1) [1](+1)[4](+1)遅[7](+1)と、システム原型「応急処置の失敗」1402の構造[1](+1)[5](-1)[1](+1)[4](+1)遅[7](+1)の比較が行われる。ある順序パターンで一致しなくても他の最小の因果関係パターンNo4012が起点になる順序を検索し一致検証を行う。この例の場合、一致する。
【００４０】
ステップ1202で一致したかどうかを判定する。ステップ1203で一致しない場合は、次の候補に移る。ステップ1204で一致せず候補が無くなった場合は不一致と判断する。
【００４１】
ステップ1202で一致した場合、ステップ1205で、候補のシステム原型に対してノードの巡回順序の一致検証を行うことでパターンマッチングを行う。具体的には、因果関係パターンNoの間に接続ノードを当てはめ、X2と生産性低下度、Y2と動員数などのようにシステム原型のノードとループ構造のノードの対応を取りながら順序一致検証を行う。
【００４２】
ステップ108で、各ループ構造でループ構造7010とシステム原型のシステム原型の構造5019の構造マッチングが一致したかを判定する。
【００４３】
一致した場合、ステップ109では、出力装置205からマッチしたループ構造をリスク部として表示する。図１３を用いて具体的なリスク部の出力画面イメージを示す。出力画面1301は、PJ名、入力されたPJリスク評価モデル例1302、PJリスク評価モデル1302内におけるリスク部の個数、リスク部1303を表示する機能を有し、各表示されたリスク部で候補としたシステム原型名5012も併せて表示される。例で表示されているリスク部1303は、システム原型名5012が「応急処置の失敗」とマッチした例である。そのリスクは、生産性低下度が大きくなったため、動員数を増加し改善を試みたが、動員数の増加で教育などに時間がかかり進捗遅延度が大きくなり、生産性低下度もさらに大きくなるというリスク構造である。
【００４４】
ステップ110では、不一致でリスク部がなければ出力装置205からリスク構造無として表示する。
【００４５】
以上によりPJリスクの評価項目をノードとして、項目間の因果関係をシステム・ダイナミクスの考え方に基づいてPJリスク評価モデルとしてCLDで作成し、CLDからループ構造となる因果関係を抽出し、CLDのループ構造の特徴とシステム原型の構造の特徴を比較することで、PJリスク評価モデルに存在するシステム原型の候補を絞込み、絞り込まれたシステム原型とループ構造間で因果関係パターンNoのマッチングを行い、リスク部を抽出することから、過去の類似案件に頼らずリスク要因の見極めが可能となり、潜在リスク構造を効率よく抽出できる。
【符号の説明】
【００４６】
301：潜在リスク抽出ソフトウェア、3010：評価モデル構造定義部、3011：ループ構造抽出部、3012：システム原型絞込部、3013：パターンマッチング部、3014：評価モデル構造ＤＢ、3015：システム原型構造ＤＢ、3016：評価モデルループ構造ＤＢ、3017：因果関係パターンマスタＤＢ。
【図１】
2012113537.tif 000003
【図２】
2012113537.tif 000004
【図３】
2012113537.tif 000005
【図４】
2012113537.tif 000006
【図５】
2012113537.tif 000007
【図６】
2012113537.tif 000008
【図７】
2012113537.tif 000009
【図８】
2012113537.tif 000010
【図９】
2012113537.tif 000011
【図１０】
2012113537.tif 000012
【図１１】
2012113537.tif 000013
【図１２】
2012113537.tif 000014
【図１３】
2012113537.tif 000015
【図１４】
2012113537.tif 000016