(58)【調査した分野】(Int.Cl.,DB名)
前記イベント発生順序決定部は、前記イベントマトリクスを、所定時間幅のタイムウィンドウに分割し、各タイムウィンドウ内における機器イベントの発生順序に基づいて機器イベント全体の発生順序を決定することを特徴とする請求項1に記載のイベント解析装置。
前記ベイジアンネットワーク生成部は、親ノードが選出されている機器イベントに、さらに未選出親ノード候補の中から親ノードを選出する場合には、選出済の親ノードを選出時の前記処理対象の機器イベントに対する相対シフト量を維持させた状態で、前記処理対象の機器イベントとセットで単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することを特徴とする請求項2に記載のイベント解析装置。
複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置としてコンピュータを動作させるコンピュータプログラムであって、
発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、
前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、
前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、
処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、
前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【発明を実施するための形態】
【0014】
本発明の実施の形態について図面を参照して説明する。
図1は、本実施形態に係るイベント解析装置の構成を示すブロック図である。本図に示すように、イベント解析装置100は、イベントログ収集部110とイベントログ保存部120とイベント解析部130と解析結果出力部140とを備えている。
【0015】
イベント解析装置100は、パーソナルコンピュータ、サーバコンピュータ等の汎用的な情報処理装置を用いて構成することができる。すなわち、情報処理装置は、以下に説明するような処理を行なうためのコンピュータプログラムを実行することにより、イベント解析装置100として機能することができる。もちろん、イベント解析装置100は、専用装置として構成してもよい。
【0016】
イベントログ収集部110は、従来と同様に、接続された制御システム、ヒストリアン等からイベントログを収集する。イベントログには、イベント発生した日時、イベントが発生した機器の識別子(タグ)、イベント種類の識別子等が含まれる。
【0017】
イベントログ保存部120は、イベントログ収集部110が収集したイベントログを、イベント解析装置100の内部あるいは外部に設けられたイベントログDB210に記録する。イベントログ保存部120は、イベントログを記録する際に、イベントログをイベント解析部130が行なう解析に適した形式に変換したデータも記録する。
【0018】
具体的には、縦または横の一方向にイベントログの最小時間単位の時間軸を展開し、他方向に機器の識別子とイベント種類の識別子とを結合した項目を並べたマトリクスを作成する。そして、イベントログに含まれるイベントについて、発生した日時と発生した機器およびイベント種類とに対応するカラムにイベントが発生した旨を示す情報を入力した形式に変換する。
【0019】
以降では、イベントログを変換したデータを「イベントマトリクス」と称し、機器とイベント種類との組み合わせを「機器イベント」と称する。例えば、機器「TAG1」で発生した「ALARM1」は、機器イベント「TAG1:ALARM1」と表わされ、「TAG2」に対する操作「OP1」は、機器イベント「TAG2:OP1」と表わされる。
【0020】
イベントマトリクスを記録するイベントログDB210は、大容量のイベントマトリクスを記録でき、水平スケーラビリティに柔軟性のあるNoSQL等の分散DBを用いることが好ましい。これはイベントマトリクスが大容量であることや、プラント操業中に機器の数が変化するなど柔軟性を求められる場合があるからである。もちろん、汎用的なリレーションDBを用いることも可能である。
【0021】
イベント解析部130は、ベイジアンネットワークを利用した機器イベント間の因果関係を、機器イベント発生の時間差を考慮して解析する機能部である。具体的には、イベントログ保存部120が作成したイベントマトリクスに基づいてベイジアンネットワークを構築する処理と、解析対象の機器イベントに対して、その原因となる機器イベントと予測される機器イベントとをベイジアンネットワークを用いて解析する処理と、解析結果を、解析結果出力部140を介して表示装置230等に出力する処理とを行なう。
【0022】
これらの処理を行なうため、イベント解析部130は、イベント発生順序決定部131、ベイジアンネットワーク生成部132、解析部133を備えている。各機能ブロックの処理内容については後述する。また、イベント解析装置100の内部あるいは外部には、生成したベイジアンネットワークを保存するためのベイジアンネットワークDB220が設けられている。
【0023】
ベイジアンネットワークは、因果関係を確率により記述するグラフィカルモデルの1つで、複雑な因果関係の推論を有向グラフ構造により表わすとともに、個々の変数の関係を条件つき確率で表す確率推論のモデルである。
【0024】
因果的な特徴を有向グラフによるネットワークとして表し、その上で確率推論を行なうことで、複雑でかつ不確実な事象の起こりやすさやその可能性を予測することができる。これまで蓄積された情報をもとに、起こり得る確率をそれぞれの場合について求め、それらを起こる経路に従って計算することで、複雑な経路を伴った因果関係の発生確率を定量的に表わすことが可能となる。
【0025】
このため、ベイジアンネットワーク利用することで、ある機器イベントの原因となる機器イベントを確率的に表わすことができるようになる。また、ある機器イベントが発生した後に発生し得る機器イベントを確率的に表わすことができるようになる。さらに、長期間のイベントログを使用してベイジアンネットワークを構築することで、季節変動や定期修繕などの要素も解析に含めることが可能となる。
【0026】
従来、ベイジアンネットワークは、K2アルゴリズムに代表されるように、複数事象の同時発生状況を調べることにより、事象間の因果関係を抽出することで構築するが、プラント内の制御システムにおける機器イベントの相互の関連性は、必ずしも同時に発生するものではなく、一定の遅れ時間を持っているものが多い。そこで、本実施形態では、K2アルゴリズムを改良し、機器イベント発生の時間差を考慮してベイジアンネットワークを構築するようにしている。
【0027】
次に、イベント解析装置100の動作について説明する。まず、イベントログ収集部110とイベントログ保存部120の動作について
図2のフローチャートを参照して説明する。イベントログ収集部110は、所定の収集タイミングになると(S101:Yes)、制御システム、ヒストリアン等からイベントログを収集する(S102)。
【0028】
イベントログは、
図3に一例を示すように、イベントが発生した日時、機器識別子(タグ)、イベント識別子を含んでいる。さらに、「操作」「アラーム」等のイベントタイプの情報を含めるようにしてもよい。本図の例では、2012年10月21日18時00分00秒に、機器「TAG1」で、アラーム「ALRM1」が発生し、同03秒に、機器「TAG2」に対して操作「OP1」を行なったこと等が示されている。
【0029】
イベントログを収集するタイミングは、一定周期、ユーザからの指示、所定のトリガー等とすることができ、あらかじめ定めておくようにする。
【0030】
イベントログを収集すると、イベントログ保存部120が、イベントログに基づいてイベントマトリクスを作成する(S103)。上述のように、イベントマトリクスは、縦または横の一方向にイベントログの最小時間単位の時間軸を展開し、他方向に機器イベントを並べたマトリクスを作成し、イベントログに含まれるイベントについて、発生した日時と発生した機器およびイベント種類とに対応するカラムにイベントが発生した旨を示す情報を入力した形式に変換したものである。
【0031】
図4は、
図3に示したイベントログを変換したイベントマトリクスを示している。ここでは、イベントログの最小時間単位を1秒としているため、イベントマトリクスの縦方向は、1秒間刻みとなっている。また、横方向は、機器の識別子とイベント種類の識別子とを結合した機器イベントを並べるため、「TAG1:ALRM1」「TAG2:ALARM3」「TAG2:OP1」といったカラムが生成されている。実際には、横方向に、機器とイベント種類との組合わせ分のカラムが作成される。
【0032】
本例では、2012年10月21日18時00分00秒に、機器「TAG1」で、アラーム「ALRM1」が発生しているため、対応するカラムに機器イベントが発生した旨を示す情報として「1」が入力されている。同様に、2012年10月21日18時00分03秒に、機器「TAG2」に対して操作「OP1」が行なわれているため、対応するカラムに「1」が入力されている。なお、機器イベントが発生していないカラムには「0」が入力されている。
【0033】
イベントマトリクスを作成すると、イベントログ保存部120は、作成したイベントマトリクスをイベントログと共に、イベントログDB210に記録する(S104)。このとき、過去のデータも使用できるように、追加記録していくことが望ましい。そして、イベントログ収集部110が次の収集タイミングを待つ(S101)。
【0034】
次に、イベント解析部130がイベントマトリクスに基づいてベイジアンネットワークを構築する処理について説明する。イベント解析部130がベイジアンネットワークを構築する処理は、イベント解析部130のイベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理と、イベント解析部130のベイジアンネットワーク生成部132がベイジアンネットワークを生成する処理とに分けることができる。
【0035】
まず、イベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について、
図5のフローチャートを参照して説明する。ベイジアンネットワークの構築には、親ノードになり得る候補を限定する必要がある。このため、イベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定するようにしている。なお、原因側の機器イベントを親ノードと称し、結果側の機器イベントを子ノードと称すものとする。
【0036】
イベントの発生順序を決定するためのアルゴリズムとして、特許文献1に記載されているように、相互相関関数の最大相関値に基づいた算出法がある。しかし、相互相関関数の計算には時間がかかるため、本実施形態では、以下に示すような手順で、より高速に機器イベントの発生順序を決定する。
【0037】
イベント解析部130のイベント発生順序決定部131は、所定の更新タイミングになると、イベントログDB210に記録されているイベントマトリクスを読み込む(S201)。すなわち、ベイジアンネットワークは、所定のタイミングで更新されることになる。ベイジアンネットワークを更新するタイミングは、一定周期、ユーザからの指示、所定のトリガー等とすることができ、あらかじめ定めておくようにする。
【0038】
次に、イベントマトリクスを所定の時間幅で切り出して、タイムウィンドウに分割する(S202)。タイムウィンドウの時間幅は、相互に関連する機器イベント間において想定される発生時間差の最大値とする。例えば、因果関係を有する機器イベント同士の発生時間差が1時間を超えることが無いと想定されるプラントであれば、タイムウィンドウの時間幅を1時間とすればよい。
【0039】
タイムウィンドウの時間幅は、解析対象のプラントや解析目的等に応じて変化させることができる。例えば、流量、圧力など遅れ要素が少ない機器が中心となるプラントを解析する場合は、タイムウィンドウの時間幅を短くしたり、温度など一次遅れ要素が多い機器が中心となるプラントを解析する場合は、タイムウィンドウの時間幅を長くすることができる。
【0040】
イベントマトリクスをタイムウィンドウに分割すると、タイムウィンドウ毎に、機器イベントの発生順序を記録する(S203)。例えば、
図6(a)に示すような順序で機器イベントが発生しているイベントマトリクス(本図では直線状に表現している。また、「機器イベント」を単に「イベント」と表記している。)を4つのタイムウィンドウに切り出したとすると、
図6(b)に示すように、1番目のタイムウィンドウでは、機器イベントAが1番目に発生し、機器イベントCが2番目に発生した旨を記録する。同様に、3番目のタイムウィンドウでは、機器イベントA、機器イベントB、機器イベントCの順序で発生した旨を記録する。
【0041】
次に、機器イベントを組み合わせた機器イベントペアを作成し、各機器イベントペアについて発生順序をカウントする(S204)。機器イベントペアはすべての機器イベントを対象に作成する。発生順序のカウントは、例えば、機器イベントA、機器イベントBの機器イベントペアに注目したときは、両方の機器イベントが発生しているタイムウィンドウを対象に、機器イベントAが先に発生している回数、機器イベントBが先に発生している回数、同時に発生している回数をそれぞれカウントする。
【0042】
例えば、
図6(
a)に示した例では、
図6(c)に示すように、機器イベントAと機器イベント
Bとの機器イベントペアPair{A,B}について、機器イベントAが先に発生している回数は、機器イベントBが先に発生している回数とも1がカウントされる。機器イベントペアPair{A,C}について、機器イベントAが先に発生している回数は2、機器イベント
Cが先に発生している回数は0、同時に発生している回数は1とカウントされる。また、機器イベントペアPair{B,C}について、機器イベントBが先に発生している回数が3とカウントされる。
【0043】
そして、カウント数に基づいて、機器イベントペア毎に発生順序を決定する(S205)。発生順序は、機器イベントペア毎に、最も回数の多い発生順序をその機器イベントペアの発生順とする。
【0044】
例えば、
図6(d)に示すように機器イベントペアPair{A,C}について、機器イベントAが先に発生した回数が2回、機器イベントAと機器イベントCとが同時に発生した回数が1回、機器イベントCが先に発生した回数が0回となっているため、機器イベントAと機器イベントCの発生順序は、A→Cと決定する。
【0045】
なお、機器イベントペアPair{A,B}のように、機器イベントAが先に発生した回数と、機器イベントBが先に発生した回数とが等しい場合には、イベントマトリクスにおいて、最先に発生した機器イベントを先とした順序に決定する。本例では、
図6(a)に示すように、機器イベントAが最先に発生しているため、機器イベントAと機器イベントBの発生順序は、A→Bと決定する。
【0046】
各機器イベントペアについて発生順序が決定すると、その順序に基づいて、機器イベント全部についての順序を決定する(S206)。順序の決定は、汎用的なソートアルゴリズム等を用いることができる。機器イベントの順序を決定することにより、各機器イベントについて、親ノード候補を限定することができる。すなわち、自身より順序が先の機器イベントが親ノード候補となる。
【0047】
以上、イベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について説明した。
【0048】
次に、イベント解析部130のベイジアンネットワーク生成部132が、ベイジアンネットワークを生成する処理について説明する。本実施形態のベイジアンネットワークを生成する処理は、代表的なベイジアンネットワーク構築法であるK2アルゴリズムを改良したものであり、各機器イベントについて、機器イベントの発生順序決定により限定された親ノード候補の中から親ノードを選出する。親ノードを選出するための評価値としては、条件付き確率P(子ノード|親ノード)に基づいたMDL(Minimum Description Length)等の情報量基準を用いるものとする。
【0049】
図7は、ベイジアンネットワーク生成部132が、ベイジアンネットワークを生成する処理について説明するフローチャートである。
【0050】
時間差を持って相互に関連する機器イベントであっても、機器イベントの発生タイミング差は一定ではなくブレがあると考えられる。このため、イベントマトリクスの最小時間単位を基準にベイジアンネットワークを生成すると、機器イベント間の関連性が十分評価できない可能性がある。そこで、本実施形態では、ベイジアンネットワーク構築用にイベントマトリクスの時間単位をより長い時間単位にまとめる処理を行なうようにしている(S300)。この処理をイベントマトリクスのタイムブロック化と称する。以下の処理では、タイムブロック化したイベントマトリクスを用いて処理を行なうものとする。
【0051】
図8は、イベントマトリクスの最小時間単位1秒を、1分単位にタイムブロック化した例を示している。タイムブロック化により、タイムブロックの時間幅に発生した機器イベントの回数が表現される。なお、タイムブロック化を行なうことなく、イベントマトリクスの最小時間単位でベイジアンネットワークを構築するようにしてもよい。また、タイムブロックの単位時間は、解析対象のプラントや解析目的等に応じて任意に定めることができる。
【0052】
また、プラントに様々な機器が存在する場合には、単一の単位時間でなく、複数の単位時間を定めて、それぞれの時間幅に応じたベイジアンネットワークを構築して解析を行なうようにしてもよい。この処理を容易にするため、イベントマトリクスは、イベントログの最小時間単位で時間軸を展開している。
【0053】
ところで、ベイジアンネットワークの生成にあたり、従来のK2アルゴリズムをそのまま適用すると、タイムブロック化したイベントマトリクス内で同時に発生した機器イベントの条件付き確率を計算し、各機器イベントの親ノードを選出することになるが、機器イベントの発生時間差がタイムブロックの時間単位よりも大きい場合には、因果関係を評価することができなくなる。そこで、本実施形態では、機器イベント間の発生時間差を考慮するために、時間をシフトした仮想的な機器イベントを用いて各機器イベントの親ノードを選出する。
【0054】
ただし、機器イベントの発生時間は無制限にシフトさせるのではなく、相互に関連する機器イベント間において想定される発生時間差の最大値を限度として、機器イベントの発生時間をシフトする。この最大シフト幅は、タイムウィンドウの時間幅と一致する。また、シフトは、タイムブロックの単位時間で、シフト量0から最大シフト幅まで行ない、それぞれのシフト量で評価を行なうものとする。
【0055】
これらの処理について、詳細に説明すると、まず、処理対象の子ノードを設定する(S301)。処理対象の子ノードは、任意の順序で機器イベントの中から設定する。
【0056】
処理対象として設定された子ノードについて、親ノードがない場合の情報量基準による評価値を計算する(S302)。また、親ノード候補のリストを作成する(S303)。親ノード候補は、処理対象の子ノードよりも発生順番が前の機器イベントである。
【0057】
そして、親ノード候補毎に最大評価値を算出する(S304)。この処理の詳細について、
図9のフローチャートを参照して説明する。
【0058】
まず、親ノード候補リストの中から任意の順序で評価対象親ノード候補PNを設定する(S3041)。始めに、シフト量Stを0として(S3042)、子ノードCNと親ノード候補PNとで評価値を算出する(S3043)。
【0059】
次に、シフト量を1つ増やして(S3045)、シフト量分前にシフトさせた子ノードCN(St)と親ノード候補PNとで評価値を算出する(S3043)。すなわち、子ノードがシフト量St分前に発生したと仮定した場合の評価値を算出する。
【0060】
シフト量分前にシフトさせた子ノードCN(St)と親ノードPNとで評価値を算出する処理(S3043)は、シフト量Stを増やしながら(S3045)、シフト量Stが最大になるまで繰り返す(S3044)。
【0061】
これにより、評価対象親ノード候補PNついて、評価値の最大値とその時のシフト量Stとを得ることができるため、最大評価値とその時の子ノードCNのシフト量Stとを記録する(S3046)。
【0062】
例えば、
図11(a)におけるタイムブロック化したイベントマトリクスにおいて、機器イベントCを処理対象子ノードとし、機器イベントBを評価対象親ノードとしたときに、
図11(b)は、機器イベントCをシフト量St=1とした場合に評価値が最大になったことを示している。
【0063】
以上の処理をすべての親ノード候補に対して繰り返す(S3047)ことで、親ノード候補毎に最大評価値を算出する処理(S304)が行なわれる。
【0064】
図7のフローチャートの説明に戻って、親ノード候補のうち、最大評価値が最も高い親ノード候補をその時のシフト量Stと共に抽出する(S305)。この評価値が、親ノード無しのときの評価値よりも高くなければ(S306:No)、処理対象子ノードをルートとして決定し、次の処理対象子ノードを設定して(S314、S301)、上記の処理を繰り返す。
【0065】
抽出された親ノード候補の最大評価値が、親ノード無しのときの評価値よりも高ければ(S306:Yes)、抽出した親ノード候補を、処理
対象の子ノードの親としてシフト量と共に選出する(S308)。
【0066】
親ノード候補リストの中に未選出の親ノード候補があるかどうかを調べ、親ノード候補がない場合(S309:No)は、その子ノードに対する処理を終了し、次の処理対象子ノードを設定して(S314、S301)、上記の処理を繰り返す。
【0067】
親ノード候補リストの中に未選出の親ノード候補がある場合(S309:Yes)は、未選出親ノード候補毎に最大評価値を算出する(S310)。すなわち、既に選出された親ノードに、別の親ノード候補を加えた評価を行なう。この処理の詳細について
図10のフローチャートを参照して説明する。
【0068】
まず、親ノード候補リストの未選出親ノード候補の中から評価対象親ノード候補PNを設定する(S3101)。始めに、シフト量Stを0として(S3102)、すなわち、実際の子ノードの発生時点で、子ノードCNと選出済親ノードと親ノード候補PNとで評価値を算出する(S3103)。このとき、選出済親ノードは、その親ノードが選出されたときの子ノードCNに対する相対シフト量を維持した状態で評価値を算出する。例えば、ある親ノードが選出されたときの子ノードCNのシフト量が3であれば、その選出済の親ノードは子ノードCNに対してシフト量−3の状態であるため、子ノードCNのシフト量0、選出済親ノードのシフト量−3、評価対象親ノード候補のシフト量0で評価値を算出する。
【0069】
次に、シフト量を1つ増やして(S3105)、シフト量分前にシフトさせた子ノードCNと選出済親ノードと評価対象親ノード候補PNとで評価値を算出する(S3103)。このとき、子ノードCNと選出済親ノードとはセットでシフトさせる。すなわち、選出済親ノードは、その親ノードが選出されたときの子ノードCNに対する相対シフト量を維持しながら子ノードとセットでシフトさせる。
【0070】
例えば、親ノードが選出されたときのシフト量が3(相対シフト量−3)であれば、子ノードCNのシフト量は1、選出済親ノードのシフト量は−3+1=−2、評価対象親ノード候補PNのシフト量は0で評価値を算出する。選出済親ノードが複数の場合も、それぞれの選出済親ノードが選出されたときの、子ノードに対する相対シフト量を維持しながら子ノードとセットでシフトさせる。
【0071】
シフト量分前にシフトさせた子ノードCNと相対シフト量を維持した選出済親ノードと評価対象親ノード候補PNとで評価値を算出する(S3103)処理は、シフト量Stを増やしながら(S3105)、シフト量Stが最大になるまで繰り返す(S3104)。
【0072】
これにより、評価対象親ノード候補PNついて、評価値の最大値とその時の子ノードCNのシフト量Stとを得ることができるため、最大評価値とその時のシフト量Stとを記録する(S3106)。
【0073】
例えば、
図11(c)は、シフト量St=1で機器イベントBが機器イベントCの親ノードとして選出されている場合に、機器イベントAを評価対象親ノード候補とした場合の例である。機器イベントBの選出時の機器イベントCに対する相対シフト量は−1であり、機器イベントCと相対シフト量−1の機器イベントBとをセットでシフト量St=3としたときに評価値が最大になったことを示している。この場合、機器イベントB自身のシフト量は3−1=2となる。
【0074】
以上の処理をすべての未選出親ノード候補に対して繰り返す(S3107)ことで、未選出親ノード候補毎に最大評価値を算出する処理(S310)が行なわれる。
【0075】
図7のフローチャートの説明に戻って、未選出親ノード候補のうち、最大評価値が最も高い親未選出ノード候補をその時のシフト量Stと共に抽出する(S311)。この評価値が、未選出親ノードを加える前の評価値よりも高くなければ(S306:No)、未選出親ノードを加えずに、次の処理対象子ノードを設定して(S314、S301)、上記の処理を繰り返す。
【0076】
抽出された親ノード候補の最大評価値が、未選出親ノードを加える前の評価値よりも高ければ(S312:Yes)、抽出した未選出親ノード候補を、処理
対象の子ノードの親としてシフト量の情報を含めて追加する(S313)。
【0077】
親ノード候補リストの中に未選出の親ノード候補があれば(S309)、未選出親ノード候補毎に最大評価値を算出する処理(S310)以降を繰り返す。
【0078】
以上の処理を、未処理の子ノードが無くなるまで繰り返す(S314)ことで、ベイジアンネットワークがシフト量の情報を含んで構築される。構築されたベイジアンネットワークは、
図12に示すように、従来のベイジアンネットワークと同様に、機器イベント間の因果関係を確率付き有向グラフで表わすことができる。さらに、親ノード選出時におけるシフト量に基づいて、子ノードと親ノードとの間の発生時間差を求めることができるため、機器イベント間の発生時間差も定量的に表わすことができる。
【0079】
以上では、K2アルゴリズムを改良したベイジアンネットワーク構築の手順を説明したが、本発明は、MWSTアルゴリズム等のK2アルゴリズム以外のベイジアンネットワーク構築法に適用することも可能である。
【0080】
次に、解析部133がベイジアンネットワークを用いて解析を行なう処理について
図13のフローチャートを参照して説明する。
【0081】
解析部133は、ユーザから解析リクエストを受け付けると(S401:Yes)、ベイジアンネットワークを利用した解析を行なう(S402)。ユーザは、例えば、発生したアラームや頻発するアラーム、これから行なおうとする操作等を対象に、解析部133に解析リクエストを行なうことができる。また、プラントの効率改善等のためにオフラインで解析リクエストを行なうこともできる。
【0082】
ベイジアンネットワークを利用した解析では、確率推論を利用して解析対象の機器イベントの原因となる機器イベントと、今後発生し得る機器イベントとを確率も含めて算出することができる。代表的な確率推論アルゴリズムとして確率伝搬法がある。
【0083】
本実施形態では、機器イベントの原因を推定するために、ベイジアンネットワークの構造を参照して、観測された機器イベントからルートまで辿って、ルート位置にある機器イベントを主原因候補として抽出し、確率推論により主原因候補の発生確率を計算する。さらに、機器イベント間の発生時間差情報に基づいて、観測された機器イベントの発生時刻から主原因候補の発生時間を推定する。
【0084】
例えば、
図12に示したベイジアンネットワークにおいて、機器イベントCが観測された場合、機器イベントCを引き起こす原因は、機器イベントAまたは機器イベントBである可能性があり、確率伝搬法に基づいた計算を行なうことで、3分前に機器イベントAが発生した確率は41%、1分前に機器イベントBが発生した確率は53%であると推定することができる。
【0085】
また、観測された機器イベントから将来起きうる機器イベントを予測するために、ベイジアンネットワークの構造を参照して、観測された機器イベントの子ノードおよび子孫ノードを今後起きうる機器イベントの候補として抽出し、確率推論により機器イベント候補毎の発生確率を計算する。さらに、機器イベント間の発生時間差情報に基づいて、観測された機器イベントの発生時刻から予測する機器イベントの発生時間を推定する。
【0086】
例えば、
図12に示したベイジアンネットワークにおいて、機器イベントAが観測された場合、確率伝搬法に基づいた計算を行なうことで、3分後に機器イベントCが発生する確率は63%であると予測することができ、機器イベントBが観測された場合、確率伝搬法に基づいた計算を行なうことで、1分後に機器イベントCが発生する確率は81%であると予測することができる。
【0087】
ベイジアンネットワークを利用した解析の解析結果は、解析結果出力部140を介して表示装置230に表示したり、図示しない印刷装置を利用して印刷したり、電子データとして出力したりすることができる(S403)。
【0088】
出力する情報は、原因推定、事象予想に限られない。例えば、アラーム/操作感の因果関係およびそれらの発生時間差に基づいて定型的な一連操作のシーケンスを抽出して、解析結果として出力するようにしてもよい。抽出されたシーケンスは、定常的に繰り返される操作を自動化させるための情報となり、プラント運転の安定化、効率化を図ることできる。
【0089】
また、ベイジアンネットワークの構築により機器イベントの因果関係のみならず、機器イベントのグルーピングの補助に用いることもできる。具体的には、共連れアラーム等の同時発生の確率が高く連動性が高いと考えられるアラーム同士を組み合わせて扱うことで、プラントにおけるアラームの発生回数を減らすことも可能となる。
【0090】
また、機器イベントの因果関係に基づいて不要なアラームの発生原因を特定したり、重要アラームの発生確率や発生時刻を予報したり、アラーム発生時に、過去に行なった対応操作を提示できるようにもなる。さらには、アラーム発生からオペレータが対応するまでの猶予時間を把握することができるようにもなる。