(57)【要約】【課題】  適切なシナリオを作成するための、事象の過不足のない事故シナリオを、経験の浅い分析者でも効率的に獲得することを目的とする。【解決手段】  事象とその先行事象とこれらの組の発生件数とを記憶する先行事象記憶部と、前記事象とその発生件数を記憶した事象記憶部と、事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とする先行事象検索部と、前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断する追加判定部と、追加すると判断されたとき、前記シナリオ中の追加位置を決定する追加位置決定部と、前記シナリオ中の決定された追加位置に前記追加事象を追加する事象追加部有することで実現できる。【選択図】  図１
2008102562.tif 000002
【特許請求の範囲】
【請求項１】
シナリオ作成支援装置を、
事象とその先行事象とこれらの組の発生件数とを記憶する先行事象記憶部、
前記事象とその発生件数を記憶した事象記憶部、
事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とする先行事象検索部、
前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断する追加判定部、
追加すると判断されたとき、前記シナリオ中の追加位置を決定する追加位置決定部、
前記シナリオ中の決定された追加位置に前記追加事象を追加する事象追加部、
として機能させることを特徴とするシナリオ作成支援プログラム。
【請求項２】
前記追加判定部を、前記追加事象と同じ事象に対応する前記事象記憶部の発生件数、または、前記追加事象である先行事象に対応する前記先行事象記憶部の発生件数が、所定値より小さい場合、その追加事象を前記シナリオに追加しないと判断する処理部、
として機能させることを特徴とする請求項１記載のシナリオ作成支援プログラム。
【請求項３】
前記追加判定部を、前記追加事象と前記シナリオ中の指定された事象とが独立であるか検定し、有意に独立でないと判定された場合、追加すると判断する処理部、
として機能させることを特徴とする請求項１または２記載のシナリオ作成支援プログラム。
【請求項４】
事象とその先行事象とこれらの組の発生件数とを記憶する先行事象記憶部と、
前記事象とその発生件数を記憶した事象記憶部と、
事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とする先行事象検索部と、
前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断する追加判定部と、
追加すると判断されたとき、前記シナリオ中の追加位置を決定する追加位置決定部と、
前記シナリオ中の決定された追加位置に前記追加事象を追加する事象追加部と、
を有する特徴とするシナリオ作成支援装置。
【請求項５】
先行事象記憶部は、事象とその先行事象とこれらの組の発生件数とを記憶し、
事象記憶部は、前記事象とその発生件数を記憶し、
先行事象検索部は、事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とし、
追加判定部は、前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断し、
追加位置決定部は、追加すると判断されたとき、前記シナリオ中の追加位置を決定し、
事象追加部は、前記シナリオ中の決定された追加位置に前記追加事象を追加する、
ことを特徴とするシナリオ作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
リスク評価技術分野に関する。特に、事故が甚大な損害をもたらす事が多い製造、電力、運輸、医療といった分野におけるリスク評価、災害が発生した際の平均被害額を正確に見積もる必要のある保険分野に好適である。
【背景技術】
【０００２】
安全性の評価手法として、イベントツリー解析と呼ばれる手法がある。この手法は、初期事象を出発点として、事象の連鎖によりトラブルが拡大していく過程を、事故に至る事象の連鎖として表現した事故シナリオを設定し、次に事故シナリオ中の各事象が発生するかどうかで分岐を行なったイベントツリーを作成し、イベントツリーの終端となる各最終結果の内容と発生確率を算出することにより、安全性を評価する手法である。
【０００３】
例えば図１２は、大地震の発生を初期事象とする施設の地震リスク評価を行なうためのイベントツリーの例であり、各分岐に対する上の数字は対応する事象が発生しない確率であり、一方、下の数字は対応事象の発生確率を表す。また、図中の「最終事象の発生確率」は、ツリーの分岐確率から算出された値であり、例えば、最終事象が「被害なし」である確率は０．９×０．３＝０．２７となる。
【０００４】
イベントツリーにより、直接的に算出することが困難な大事故が発生する確率を、大事故に至るまでの事象の個々の発生確率から算出することができる。また、事故に至る事象の発生を低減させた時に、最終結果の大事故の発生確率がどの程度低減するかが定量的に評価可能であるので、効果的防止策の立案にも有用である。
【０００５】
しかしながら、適切なイベントツリーを作成するには、適切な事故シナリオを用意する必要がある。適切な事故シナリオとは、最終結果の発生確率に影響を及ぼす事象を過不足なく含んでいるシナリオである。シナリオに漏れがあった場合、最終結果の発生確率が不正確となり、また本当に効果的な対策を見逃す可能性もある。また、最終結果に影響しない事象がシナリオに含まれている場合は意味のない分岐ができることになるため、可読性が低下し、場合によっては他の事象の発生確率の精度を低下させる事になる。
【０００６】
従来、事故シナリオの作成は人手に任されており、分析目的に適した事故シナリオを用意することが難しく、特に、漏れのないシナリオを用意することが難しい。これは、一見関係のなさそうな事象が事故の要因となる場合も多いが、この因果関係を経験の浅い分析者は見落としてしまいがちであるからである。
【０００７】
イベントツリー解析を支援する技術としては、例えば、特許文献１に開示された発明がある。この発明は、結果に直接影響を与える事象（この特許文献１においては「要素」と記述されている）を過不足なく見つける発明ではなく、事故シナリオは予め仮定されている。
【０００８】
また、イベントツリー解析の同様の確率的安全性分析手法としてフォールトツリー解析を呼ばれる手法も存在する。フォールトツリー解析とは、例えばある装置の故障といった事象の発生確率をその装置中の各部品の故障確率（下位事象）から決定するために、フォールトツリーと呼ばれる木構造を作成して解析を行なう手法である。ここで、ある事象における下位事象を漏れなく設定する事は、イベントツリー解析における適切な事故シナリオの設定と同様に難しい。
【０００９】
フォールトツリー解析において、一つの事象における下位事象セットを適切に設定する事を支援する技術としては、特許文献２と特許文献３に開示された発明がある。前者の発明は、現行品の故障に関してフォールトツリーを作成し、新規品と現行品との差異を人手で分析し、その差異に基づいて作成したフォールトツリーの修正を行なうものであり、この時に追加する事象は人手で設定される。また、後者の発明については、下位事象間に排反関係がある場合には、否定事象を追加するという発明であり、どちらもイベントツリー解析における適切な事故シナリオの作成を支援する事はできない。
【特許文献１】特開２００２−２８８３８６号公報
【特許文献２】特開２００２−３５１５３７号公報
【特許文献３】特開平８−２３４８３３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
以上の点に鑑み本願発明は、適切なイベントツリーを作成するための、事象の過不足のない事故シナリオを、経験の浅い分析者でも効率的に獲得することを目的とする。
【課題を解決するための手段】
【００１１】
本願第１の発明は、事象とその先行事象とこれらの組の発生件数とを記憶する先行事象記憶部と、前記事象とその発生件数を記憶した事象記憶部と、事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とする先行事象検索部と、前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断する追加判定部と、追加すると判断されたとき、前記シナリオ中の追加位置を決定する追加位置決定部と、前記シナリオ中の決定された追加位置に前記追加事象を追加する事象追加部とを有することを特徴とする。
【００１２】
また、本願第２の発明は、更に、前記追加判定部は、前記追加事象と同じ事象に対応する前記事象記憶部の発生件数、または、前記追加事象である先行事象に対応する前記先行事象記憶部の発生件数が、所定値より小さい場合、その追加事象を前記シナリオに追加しないと判断する処理部であることを特徴とする。
【００１３】
また、本願第３の発明は、更に、前記追加判定部は、前記追加事象と前記シナリオ中の一番最後の事象とが独立であるか検定し、有意に独立でないと判定された場合、追加すると判断することを特徴とする。
【００１４】
また、本願第４の発明は、更に、前記追加判定部は、前記追加事象と前記シナリオ中の指定された事象とが独立であるか検定し、有意に独立でないと判定された場合、追加すると判断することを特徴とする。
【００１５】
また、本願第５の発明は、更に、前記追加判定部は、前記追加事象と前記シナリオ中のすべての事象とが独立であるか検定し、有意に独立でないと判定された場合、追加すると判断することを特徴とする。
【００１６】
また、本願第６の発明は、更に、前記検定は、χ2検定または正解確率検定であることを特徴とする。
【００１７】
また、本願第７の発明は、更に、前記追加位置決定部は、前記追加事象に対して追加可能な範囲を決定し、決定した範囲にある前記シナリオ中の一つの事象を対応付けて追加位置を決定することを特徴とする。
【００１８】
また、本願第８の発明は、更に、前記追加位置決定部は、前記追加事象間の順序関係に矛盾が発生している場合、矛盾を解消するように追加位置を変更することを特徴とする。
【発明の効果】
【００１９】
本願発明によれば、漏れの多い基本シナリオから過不足のないシナリオが自動的に生成される。基本シナリオに追加される事象は、分析に有意に影響を及ぼし、かつ分析者の分析観点に合致した事象となる。今回の分析例においては「氷山発見遅れ」「氷山回避失敗」「船体大破」などが基本シナリオに追加されるが、これらの事象の発生を防止する方策は氷山との激突による沈没事故を防止するのに有効である。また、これらの追加事象に対する某施策の効果がイベントツリー解析によって評価できる。
【００２０】
また、事象の発生件数が極めて小さい場合、その先行事象を無視したシナリオを作成することができる。また、事象の発生件数は多いがその先行事象となるものが極めて小さい場合、その先行事象を無視したシナリオを作成することができる。
【００２１】
また、本願第３と第６の発明によれば、シナリオ中の一番最後の事象への影響がない先行事象を排除したシナリオを作成することができる。
【００２２】
また、本願第４と第６の発明によれば、ユーザが指定した事象への影響がない先行事象を排除したシナリオを作成することができる。
【００２３】
また、本願第５と第６の発明によれば、シナリオ中の全事象への影響がない先行事象を排除したシナリオを作成することができる。
【００２４】
また、本願第７と第８の発明によれば、事象間の順序関係に矛盾のないシナリオを作ることができる。
【発明を実施するための最良の形態】
【００２５】
図１は、本願発明の実施例の構成図である。本願発明は、基本シナリオ入力部１、先行事象検索部２、追加判定部３、追加位置決定部４、事象追加部５、事象ＤＢ１１、先行事象ＤＢ１２、シナリオテーブル１３とから構成される。
【００２６】
以下、シナリオとは、２つ以上の事象の因果関係を結び付けた、イベントツリーに記載される事象列を言う。また、基本シナリオとは、後述するＳ２以降の処理を行う前の出発点となるシナリオを言う。
【００２７】
基本シナリオ入力部１は、キーボードなどのユーザインタフェースを用いて分析者が入力した基本シナリオを文字列として得て、シナリオテーブル１３に記憶させる処理部である。今回の分析例においては、「氷山と激突→沈没」という基本シナリオ（「→」でシナリオの順序関係を表す）が入力され、シナリオテーブル１３（図４）に格納される（以下、単に基本シナリオ、又は、シナリオという）。
【００２８】
なお、シナリオ中の事象が、事象ＤＢ１１と先行事象ＤＢ１２に格納されている事象に一致している場合は、その事象を表す名前も一致している必要があるとする。例えば、船舶が沈没する事象について、事象ＤＢ１１または先行事象ＤＢ１２に格納されている事象名が「沈没」である場合に、「船が沈む」という事象名で事故シナリオを記述することができない。このようなシナリオを入力するには、事象ＤＢ１１または先行事象ＤＢ１２を適宜参照して、ＤＢ中の事象を組み合わせてシナリオを入力しても良いが、例えば「船舶が氷山と激突して沈没する」といった自然文を入力し、システムがこの入力文から自然言語処理技術を用いてＤＢに格納された事象名で自動抽出を行なっても良い。
【００２９】
先行事象検索部２は、基本シナリオ入力部１で入力された基本シナリオ中の事象の各々について、先行事象ＤＢ１２を検索し、基本シナリオにない先行事象を見つける処理部である。例えば、事象「氷山と激突」の先行事象として事象「氷山回避失敗」が獲得され、事象「沈没」の先行事象として事象「テロリストから攻撃」及び「船体大破」が、獲得される。
【００３０】
追加判定部３は、先行事象検索部２で見つかった先行事例を基本シナリオに追加するかどうかを判定する処理部である。これは、作成したシナリオからイベントツリーを作成することを考慮した判定方法であり、以下の様に種々のものが考えられる。
【００３１】
第一の判定方法は、発生件数による判定である。例えば、事象「沈没」の先行事例として事象「隕石と激突」が見つかったが、「隕石と激突」事象の発生件数を事象ＤＢ１１の検索結果から求めたところ、その発生件数が極めて小さい時には、先行事象としないといった判定方法である。これは、隕石との激突による沈没リスクは無視可能なほど小さいのでイベントツリーに記載しないという観点を表現することになる。また事象ＤＢ１１での検索結果でなく、先行事象ＤＢ１２の検索結果から得られる発生件数で同様の判定を行なっても良い。これは事象自身の発生件数は多いが、先行事象となることが極めて少ないものを無視するという観点である。
【００３２】
第二の判定方法は、最終結果事象との独立性検定による判定である。基本シナリオ中のある事象に関して先行事象Ａが見つかった時に、先行事象Ａと最終結果事象（今回の分析例では「沈没」）と独立かどうかを検定し、有意に独立でないと判定された場合に、基本シナリオに追加するという判定方法である。事象が独立でないという事は、先行事象の発生の有無により、最終結果事象の発生確率に有意に影響を及ぼすという意味である。つまり、この判定方式は、最終結果への影響が弱い事象を除くことになる。なお、最終結果事象とは、基本シナリオ内の一番最後の（一番右にある）事象を言う。
【００３３】
第三の判定方法は、基本シナリオ中、ユーザが指定した事象との独立性検定による判定である。基本シナリオ中のある事象に関して先行事象Ａが見つかった時に、先行事象Ａの発生の有無が、基本シナリオ中のユーザが指定した事象の発生確率に影響するかどうかを統計的に検定するものである。これは分析者が指定した事象と全く関係のない事象による結果を分析対象から外すという観点を表現する。例えば事象「氷山と激突」をユーザが指定することで「氷山と激突」とは全く関係のない事象による沈没事象を分析対象外とすることに対応する。例えば事象「テロリストから攻撃」の発生の有無は最終事象の「沈没」の発生確率には大きな影響を与えるが、「氷山と激突」する確率には影響を及ぼさず、かつ、事象「氷山と激突」の発生の有無が事象「テロリストから攻撃」の発生確率には影響を及ぼさないと判定された場合には、基本シナリオに追加しないことになる。
【００３４】
第四の判定方法は入力された基本シナリオ中の全事象が指定されたとみなして第三の判定方法を適用する方法であり、自動的に第二の判定方法も含む事になる。例えば、沈没リスクに対して、有意に影響を及ぼす全ての要因事象をイベントツリーに記載することになる。
【００３５】
なお、これらの判定方法を組み合わせたものを採用する事もでき、組合せ方も積による組合せ（判定方法の全てで追加すると判定された場合にのみ追加）や和による組合せ（判定方法の１つ以上で追加すると判定された場合に追加）が可能である。また、判定結果をユーザに表示し、最終的な判定を分析者に委ねる事も可能である。
【００３６】
なお、２つの事象の独立性検定方式としてはχ2検定や正解確率検定といった既存技術がそのまま流用可能である。検定に必要な情報は、事象ＤＢ１１及び先行事象ＤＢ１２から取得可能な情報に加えて、ＤＢのレコードを作成した際に使用した全事例数が必要となる。この全事例数情報は、事象ＤＢに特殊なレコードとして格納し、検索可能とする事ができる。
【００３７】
分析例においては、その目的が「氷山に激突して沈没する船舶事故」の分析ということで、上記、第三の判定基準を適用し、事象「テロリストから攻撃」を追加先行事象から外す。
【００３８】
追加位置決定部４は、基本シナリオ中に追加する先行事象の追加位置を決定する処理部である。分析例では、追加する先行事象（以下、追加事象Ｘという）は「氷山回避失敗」「船体大破」の２つの事象である。位置を決定する手順は以下の通りである。
【００３９】
＜手順ａ＞各追加事象に対して、追加可能な範囲［Ｓl，Ｓu］を以下の様に決定する。シナリオ中の事象列をＳi（ｉ＝１，２，．．．，Ｎ）とする時、追加事象Ｘに対して、以下の条件で求まる１からＮの中の整数ｌ，ｕを算出し、ＳlとＳuの間の区間を追加事象Ｘの追加可能範囲と定める。なお、レコード（事象Ａ，事象Ｂ，Ｍ）は、事象Ａが起こった後に事象Ｂが起こった事例がＭ件ある事を意味している。また、発生件数の「＊」は１以上の任意の自然数にマッチするワイルドカードである。
・すべてのｉ＞ｕに対して、先行事象ＤＢ中にレコード（Ｓi，Ｘ，＊）が存在しない。
・すべてのｉ＜ｌに対して、先行事象ＤＢ中にレコード（Ｘ，Ｓi，＊）が存在しない。
【００４０】
つまり、追加事象Ｘの追加可能範囲は、先行事象ＤＢ１２内のレコードと順序の矛盾を生じない範囲を規定しており、先行事象ＤＢ１２に誤ったレコードがなければ、空でない追加可能範囲を必ず定める事ができる。なお、先行事象ＤＢ１２に対してこの仮定を設定できない場合も発生件数が少ないレコードを誤りとして無視することで空でない範囲を求める事ができる。
【００４１】
＜手順ｂ＞各追加事象に対して、追加可能な範囲にある基本シナリオ中の一つの事象を以下の様に対応付ける。この対応付け方法としては例えば以下のような方法がある。また、ある方法を採用した場合、その方法では候補が一つに決まらない場合に、例えば以下の第一の方法で一つの事象に決定するといったように、方法を組み合わせる事も可能である。
・先行事象ＤＢ１２中のレコード（Ｘ，Ｓi，＊）の内、ｉが最小となるＳiを対応付ける。
・先行事象ＤＢ１２中のレコード（Ｘ，Ｓi，＊）の内、発生件数が最大となるＳiを対応付ける。
・先行事象ＤＢ１２中のレコード（Ｘ，Ｓi，ｎ）、事象ＤＢ１１中のレコード（Ｓi，ｍ）に対して、ｎ／ｍを最大にするＳiを対応付ける。
【００４２】
＜手順ｃ＞追加事象間の順序関係により、矛盾が発生している場合には、前ステップで求められた対応事象を変更し、矛盾を以下の様に解消する（図１０）。追加事象をＸ1，Ｘ2とし、前ステップで各々の追加事象に対応付けられた基本シナリオ中の事象をＳa，Ｓbとするとき、ａ＜ｂとするとＸ1→Ｓa→Ｘ2→Ｓbという順序になることを想定している。
【００４３】
＜手順ｃ１＞しかしながら、先行事象ＤＢ中に（Ｘ2，Ｘ1，＊）というレコードが存在する場合、これはＸ2→Ｘ1という順序なので、この場合は順序の矛盾が発生している。各追加事象に対して、他の追加事象とのすべての組に関して、この矛盾が発生しているかをチェックし、矛盾が生じている場合には、以下の様に矛盾を解消する。
【００４４】
＜手順ｃ２＞２つの追加事象の追加可能範囲に対してその共通部分を除いた範囲［Ｓl'，Ｓu'］を、新たに各々の追加事象の追加可能範囲とする。なお、この共通部分をＸ1またはＸ2のどちらか一方の追加可能範囲に含めてもよい。さらに、一方の範囲が、他方の範囲を完全に包含する場合、例えばＸ2の追加可能範囲がＸ1の追加可能範囲を完全に包含する場合は、それぞれの事象の新たな追加可能範囲は、Ｘ1の追加可能範囲は変わらず、Ｘ2は元々の追加可能範囲からＸ1の追加可能範囲を除いたときにできる範囲の内、Ｘ1の追加可能範囲に先行する範囲とする。以上のような処理により、Ｘ1、Ｘ2のそれぞれの追加可能範囲を、共通部分がなく、かつ、Ｘ2の範囲がＸ1の範囲に先行するように決めることができる。
【００４５】
＜手順ｃ３＞各々の追加事象に対して、新たな追加可能範囲において基本シナリオ中の一つの事象を対応付ける。なお、対応付けの詳細は上記手順（ｂ）と同様である。先行事象ＤＢ１２のレコードに誤りがなければ、上記手順（ａ）において、空でない交わりが存在し、必ず矛盾を解消できる。さらに、結果は矛盾解消処理の順序にも依らない。
【００４６】
しかしながら、先行事象ＤＢ１２について前述の仮定を保障できない場合、つまり、先行事象ＤＢ１２中に（Ｘ1，Ｘ2，＊）及び（Ｘ2，Ｘ1，＊）の２つのレコードが含まれている場合には、上記手順（ａ）において２つの追加可能範囲の交わりが空になり、矛盾を解消できない可能性がある。この場合、この２つのレコード件数を比較し、レコード件数の小さい方を誤りとして無視して追加可能範囲を拡張し、空でない交わりができるまで繰り返す。
【００４７】
＜手順ｄ＞基本シナリオ中の各事象に対して、上記手順でその事象に対応付けられた追加事象間の順序を決定（確定）する。つまり、一つの基本シナリオ中の事象に対して、その事象に対応付けられた追加事象が１つの場合には、その基本シナリオ中の事象に対してこの追加事象の追加位置を決定（確定）する。
【００４８】
一方、一つの基本シナリオ中の事象に対して、その事象に対応付けられた追加事象が複数ある場合には、これらの追加事象の組で構成される先行事象ＤＢ１２のレコードにより順序付けを行なって追加位置を決定（確定）する。例えば、追加事象Ｘ1，Ｘ2に対して先行事象ＤＢ１２中のレコード（Ｘ1，Ｘ2，＊）が存在している場合は、Ｘ1→Ｘ2という順序付けを行なう。これだけでは順序が決まらない場合には、事象の発生件数といった別の基準で順序付けを行なう。
【００４９】
また、順序付けを決定できない場合、つまり、先行事象ＤＢ１２のレコードに誤りがあり、先行事象ＤＢ１２中に（Ｘ1，Ｘ2，＊）及び（Ｘ2，Ｘ1，＊）の２つのレコードが含まれている場合には、この２つのレコード件数を比較し、レコード件数の小さい方を誤りとして無視して順序を決定する。
【００５０】
以上より、全ての追加事象の基本シナリオへの追加位置が、追加事象間の順序も含めて確定される。今回の分析例においては事象「氷山回避失敗」は基本シナリオ中の事象「氷山と激突」の直前に、事象「船体大破」は「沈没」の直前と配置位置が決定される。
【００５１】
事象追加部５は、追加事象を各々の追加位置に追加し、拡張されたシナリオを獲得する処理部である。このシナリオを新たに基本シナリオとして再帰的に処理を行なう。再帰処理を追加される事象がなくなるまで繰り返される。今回の分析事例においては、例えば「霧→氷山発見遅れ→氷山回避失敗→氷山と激突→船体大破→沈没」というシナリオが自動的に作成される。
【００５２】
事象ＤＢ１１（図２）は、事象の事象名とその発生件数との組を１レコードとするデータが格納されており、例えば（事象Ａ，Ｎ）は事象Ａが起こった事例がＮ件あることを意味している。
【００５３】
先行事象ＤＢ１２（図３）には、先行事象の事象名と事象の事象名とその発生件数との組を１レコードとするデータが格納されている。例えば（事象Ａ，事象Ｂ，Ｍ）は、事象Ａが起こった後に事象Ｂが起こった事例がＭ件ある事を意味している。
【００５４】
シナリオテーブル１３は、入力された基本シナリオや（図４）、それに追加されて作成されたシナリオを格納したテーブル（図５）を記憶する記憶部である。
【実施例１】
【００５５】
以下、フローチャートを用いて説明する（図６から図９）。
【００５６】
分析者が基本シナリオを入力すると、基本シナリオ入力部１は、入力された基本シナリオを文字列として得、シナリオテーブル１３（図４）に記憶する（Ｓ１）。
【００５７】
先行事象検索部２は、基本シナリオ中、後述するＳ３からＳ６を処理していない事象がまだあるとき（Ｓ２，ｙｅｓ）、基本シナリオ中の事象の各々について、先行事象ＤＢ１１を検索し、各事象に対する先行事象を見つける（Ｓ３）。一方、基本シナリオ中処理していない事象がないとき（Ｓ２，ｎｏ）、Ｓ７に進む。
【００５８】
追加判定部３は、見つけた先行事象があるとき（Ｓ４，ｙｅｓ）、その先行事象を基本シナリオに追加するかどうかを判定する（Ｓ５）。追加すると判定したとき（Ｓ５，ｙｅｓ）、その先行事象を一時作業域であるバッファに追加し（以下、追加事象という）（Ｓ６）、Ｓ４に戻り、追加しないと判定したとき（Ｓ５，ｎｏ）、Ｓ４に戻る。一方、見つけた先行事象がないとき（Ｓ４，ｎｏ）、Ｓ２に戻る。
【００５９】
追加位置決定部４は、バッファに追加事象があるとき（Ｓ７，ｙｅｓ）、基本シナリオ内の追加位置を決定し（詳細は後述する）（Ｓ８）、バッファ内の追加事象を基本シナリオに追加して基本シナリオを更新し（Ｓ９）、バッファをクリアする（Ｓ９）。一方、バッファに追加事象がないとき（Ｓ７，ｎｏ）、終了する。
【００６０】
次に、追加位置決定部４が、Ｓ８の基本シナリオ内の追加位置を決定する処理を説明する（図７から図９）。基本シナリオに記載されている事象をＳi(ｉ＝１，２，，，Ｎ)とし、追加事象をＸj（ｊ=１，２，，，Ｍ）とする。カウンタｊ＝１と初期化し（Ｓ８０１）、ｊ≦Ｍならば（Ｓ８０２，ｙｅｓ）、各追加事象に対して追加可能な範囲［Ｓl，Ｓu］を決定するため、追加事象Ｘに対して、以下の条件で求まる１からＮの中の整数ｌ，ｕを算出し、ＳlとＳuの間の区間を事象Ｘにおける追加可能範囲と定める。
・すべてのｉ＞ｕに対して、先行事象ＤＢ中にレコード（Ｓi，Ｘ，＊）が存在しない。
・すべてのｉ＜ｌに対して、先行事象ＤＢ中にレコード（Ｘ，Ｓi，＊）が存在しない。
（前述した手順（ａ））（Ｓ８０３）。
【００６１】
各追加事象に対して、追加可能な範囲にある基本シナリオ中の一つの事象を対応付けるため、先行事象ＤＢ１２中のレコード（Ｘ，Ｓi，＊）の内、発生件数が最大となるＳiを対応付ける（前述した手順（ｂ））（Ｓ８０３）。なお、前述した手順（ｂ）のように、対応付けは他の方法でもよい。カウンタｊを１加算し（Ｓ８０４）、Ｓ８０２に戻る。
【００６２】
一方、ｊ≦Ｍでなくなったら（Ｓ８０２，ｎｏ）、Ｓ８０５に進む。
【００６３】
カウンタｊ＝１と初期化し（Ｓ８０５）、ｊ＜Ｍでない場合（Ｓ８０６，ｎｏ）、Ｓ８２４に進む。一方、ｊ＜Ｍならば（Ｓ８０６，ｙｅｓ）、カウンタｋ＝ｊ＋１と初期化し（Ｓ８０７）、ｋ≦Ｍでないならば（Ｓ８０８，ｎｏ）、カウンタｊを１加算し（Ｓ８０９）、Ｓ８０６に戻る。一方、ｋ≦Ｍならば（Ｓ８０８、ｙｅｓ）、ＸjとＸkの矛盾性を検査する（Ｓ８１０、前述した手順（ｃ１））。即ち、先行事象ＤＢ中に（Ｘk，Ｘj，＊）というレコードが存在する場合、これはＸk→Ｘjという順序なので、この場合は順序の矛盾が発生している。矛盾がなければ（Ｓ８１１，ｎｏ）、カウンタｋを１加算し（Ｓ８１２）、Ｓ８０８に戻る。
【００６４】
一方、矛盾が発生している場合（Ｓ８１１，ｙｅｓ）、Ｓ８０３で求められた対応事象を変更し、矛盾を以下の様に解消する（図１０）。２つの追加事象Ｘj，Ｘkの追加可能範囲に対してその共通部分を除いた範囲［Ｓl'，Ｓu'］を、新たに各々の追加事象の追加可能範囲とする（Ｓ８１３、前述した手順（ｃ２））。２つの追加事象に対して、追加可能な範囲にある基本シナリオ中の一つの事象を対応付けるため、先行事象ＤＢ１２中のレコード（Ｘ，Ｓi，＊）の内、発生件数が最大となるＳiを対応付ける（Ｓ８１３、前述した手順（ｃ３））。なお、前述した手順（ｃ３）のように、対応付けは他の方法でもよい。
【００６５】
先行事象ＤＢ１２のレコードに誤りが含まれていること等が原因で、対応づけができなかった場合（Ｓ８１４，ｎｏ）、先行事象ＤＢ１２中のレコードのうち発生件数の少ないレコードを誤りとして無視することにより、追加可能範囲を拡大し［Ｓl“，Ｓu"］とし（Ｓ８１５）、Ｓ８１３に戻る。
【００６６】
一方、対応付けができる場合（Ｓ８１４，ｙｅｓ）、Ｓ８１５でＸjの追加可能範囲を拡張しているならば（Ｓ８１６，ｙｅｓ）、Ｓ８０７に戻る。Ｘjの追加可能範囲を拡張していない場合（Ｓ８１６，ｎｏ）、Ｓ８１５でＸkの追加可能範囲を拡張しているならば（Ｓ８１７，ｙｅｓ）、Ｓ８１８に進む。Ｘkの追加可能範囲を拡張していないならば（Ｓ８１７，ｎｏ）、Ｓ８１２に戻る。
【００６７】
カウンタｐ＝１と初期化し（Ｓ８１８）、カウンタｐ＜カウンタｊでない場合（Ｓ８１９，ｎｏ）、Ｓ８１２に戻る。一方、カウンタｐ＜カウンタｊの場合（Ｓ８１９，ｙｅｓ）、ＸpとＸkの矛盾性を調べる（Ｓ８２０、前述した手順（ｃ１））。矛盾がなければ（Ｓ８２１，ｎｏ）、Ｓ８２３に進む。矛盾があれば（Ｓ８２１，ｙｅｓ）、Ｘｐ，Ｘｋに対して新たな追加可能範囲を決定し（手順ｃ２）、シナリオ中の事象を対応付け（手順ｃ３）（このとき対応付けは必ずできる）（Ｓ８２２）、Ｓ８２３に進む。カウンタｐに１加算し（Ｓ８２３）、Ｓ８１９に戻る。
【００６８】
カウンタｉ＝１と初期化し（Ｓ８２５）、ｉ≦Ｎでない場合（Ｓ８２６，ｎｏ）、Ｓ９に戻り、ｉ≦Ｎの場合（Ｓ８２６，ｙｅｓ）、基本シナリオ中の各事象に対して、その事象に対応付けられた追加事象間の順序を決定（確定）する（Ｓ８２７、前述した手順ｄ）。なお、一つの基本シナリオ中の事象に対して、その事象に対応付けられた追加事象が複数ある場合には、これらの追加事象の組で構成される先行事象ＤＢ１２のレコードにより順序付けを行なう。例えば、追加事象Ｘj，Ｘkに対して先行事象ＤＢ１２中のレコード（Ｘj，Ｘk，＊）が存在している場合は、Ｘj→Ｘkという順序付けを行なう。これだけでは順序が決まらない場合には、事象の発生件数といった別の基準で順序付けを行なう。
【００６９】
決定できない場合（Ｓ８２８，ｎｏ）、つまり、先行事象ＤＢ１２のレコードに誤りがあり先行事象ＤＢ１２中に（Ｘj，Ｘk，＊）及び（Ｘk，Ｘj，＊）の２つのレコードが含まれている場合には、この２つのレコード件数を比較し、レコード件数の小さい方を誤りとして無視して順序を決定し（Ｓ８２９）、Ｓ８２７に戻る。
【００７０】
決定できた場合（Ｓ８２８，ｙｅｓ）、カウンタｉを１加算し（Ｓ８３０）、Ｓ８２６に戻る。
【００７１】
このようにして基本シナリオ「氷山と激突→沈没」から「霧→氷山発見遅れ→氷山回避失敗→氷山と激突→船体大破→沈没」というシナリオ（図５）が最終的に作成される。参考に、このシナリオに対応するイベントツリーの例を図１１に表す。
【００７２】
（付記１）シナリオ作成支援装置を、
事象とその先行事象とこれらの組の発生件数とを記憶する先行事象記憶部、
前記事象とその発生件数を記憶した事象記憶部、
事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とする先行事象検索部、
前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断する追加判定部、
追加すると判断されたとき、前記シナリオ中の追加位置を決定する追加位置決定部、
前記シナリオ中の決定された追加位置に前記追加事象を追加する事象追加部、
として機能させることを特徴とするシナリオ作成支援プログラム。
（付記２）前記追加判定部を、前記追加事象と同じ事象に対応する前記事象記憶部の発生件数、または、前記追加事象である先行事象に対応する前記先行事象記憶部の発生件数が、所定値より小さい場合、その追加事象を前記シナリオに追加しないと判断する処理部、
として機能させることを特徴とする付記１記載のシナリオ作成支援プログラム。
（付記３）前記追加判定部を、前記追加事象と前記シナリオ中の一番最後の事象とが独立であるか検定し、有意に独立でないと判定された場合、追加すると判断する処理部、
として機能させることを特徴とする付記１または２記載のシナリオ作成支援プログラム。
（付記４）前記追加判定部を、前記追加事象と前記シナリオ中の指定された事象とが独立であるか検定し、有意に独立でないと判定された場合、追加すると判断する処理部、
として機能させることを特徴とする付記１または２記載のシナリオ作成支援プログラム。
（付記５）前記追加判定部を、前記追加事象と前記シナリオ中のすべての事象とが独立であるか検定し、有意に独立でないと判定された場合、追加すると判断する処理部、
として機能させることを特徴とする付記１または２記載のシナリオ作成支援プログラム。
（付記６）前記検定は、χ2検定または正解確率検定であることを特徴とする付記３、４または５記載のシナリオ作成支援プログラム。
（付記７）前記追加位置決定部を、前記追加事象に対して追加可能な範囲を決定し、決定した範囲にある前記シナリオ中の一つの事象を対応付けて追加位置を決定する処理部、
として機能させることを特徴とする付記１、２、３、４、５または６に記載のシナリオ作成支援プログラム。
（付記８）前記追加位置決定部を、前記追加事象間の順序関係に矛盾が発生している場合、矛盾を解消するように追加位置を変更する処理部、
として機能させることを特徴とする付記７に記載のシナリオ作成支援プログラム。
（付記９）事象とその先行事象とこれらの組の発生件数とを記憶する先行事象記憶部と、
前記事象とその発生件数を記憶した事象記憶部と、
事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とする先行事象検索部と、
前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断する追加判定部と、
追加すると判断されたとき、前記シナリオ中の追加位置を決定する追加位置決定部と、
前記シナリオ中の決定された追加位置に前記追加事象を追加する事象追加部と、
を有する特徴とするシナリオ作成支援装置。
（付記１０）先行事象記憶部は、事象とその先行事象とこれらの組の発生件数とを記憶し、
事象記憶部は、前記事象とその発生件数を記憶し、
先行事象検索部は、事象の因果関係を表すシナリオ中の事象をキーに、前記先行事象記憶部を検索して見つけた先行事象を追加事象とし、
追加判定部は、前記事象記憶部または前記事象記憶部の発生件数をキーに、前記追加事象を前記シナリオに追加するか判断し、
追加位置決定部は、追加すると判断されたとき、前記シナリオ中の追加位置を決定し、
事象追加部は、前記シナリオ中の決定された追加位置に前記追加事象を追加する、
ことを特徴とするシナリオ作成支援方法。
【図面の簡単な説明】
【００７３】
【図１】本願発明の構成図
【図２】事象ＤＢ
【図３】先行事象ＤＢ
【図４】シナリオテーブル（基本シナリオ）
【図５】シナリオテーブル（作成されたシナリオ）
【図６】全体処理フローチャート
【図７】追加位置決定処理フローチャート（手順ａ，ｂ）
【図８】追加位置決定処理フローチャート２（手順ｃ）
【図９】追加位置決定処理フローチャート３（手順ｄ）
【図１０】事象間の矛盾を解消する説明図
【図１１】基本シナリオと作成されたシナリオとイベントツリー
【図１２】シナリオとイベントツリー
【符号の説明】
【００７４】
１  基本シナリオ入力部
２  先行事象検索部
３  追加判定部
４  追加位置決定部
５  事象追加部
１１  事象ＤＢ
１２  先行事象ＤＢ
１３  シナリオテーブル
【図１】
2008102562.tif 000003
【図２】
2008102562.tif 000004
【図３】
2008102562.tif 000005
【図４】
2008102562.tif 000006
【図５】
2008102562.tif 000007
【図６】
2008102562.tif 000008
【図７】
2008102562.tif 000009
【図８】
2008102562.tif 000010
【図９】
2008102562.tif 000011
【図１０】
2008102562.tif 000012
【図１１】
2008102562.tif 000013
【図１２】
2008102562.tif 000014