(57)【要約】  仮説検証装置１０は、観測データから知識データを用いて、ありうる帰結に至る論理式を有する仮説候補を導出する、仮説生成部１１と、各仮説候補の論理式を統合して論理式集合とし、重複する論理式が存在する場合は、一つのみを残し、残りを削除する、仮説統合部１２と、論理式集合の中に、観測データから得られた値を有する第１のパラメータと、観測データから得られた値を有していない第２のパラメータと、を含む論理式が存在する場合、これを対象論理式とし、観測データ及び対象論理式の名前から取得した第２のパラメータ値を対象論理式に入力し、一方、対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合、この論理式に対して真偽を判定する、仮説検証部１３とを備える。仮説生成部１１は、真偽判定がなされた論理式又は対象論理式を、観測データに追加して、再度、仮説候補を導出する。
2020170400.tif 000002
【特許請求の範囲】
【請求項１】
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、仮説生成部と、
前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、仮説統合部と、
前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、
ことを特徴とする仮説検証装置。
【請求項２】
請求項１に記載の仮説検証装置であって、
前記仮説生成部が、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とする仮説検証装置。
【請求項３】
請求項１または２に記載の仮説検証装置であって、
前記仮説生成部が、グラフ構造で構成された前記仮説候補を導出し、
前記仮説統合部が、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とする仮説検証装置。
【請求項４】
請求項１〜３のいずれかに記載の仮説検証装置であって、
前記仮説生成部が、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とする仮説検証装置。
【請求項５】
請求項４に記載の仮説検証装置であって、
前記最終的な仮説を検証結果として画面上に表示する、検証結果表示部を更に備えている、
ことを特徴とする仮説検証装置。
【請求項６】
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を有する、ことを特徴とする仮説検証方法。
【請求項７】
請求項６に記載の仮説検証方法であって、
前記（ａ）のステップで、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とする仮説検証方法。
【請求項８】
請求項６または７に記載の仮説検証方法であって、
前記（ａ）のステップで、グラフ構造で構成された前記仮説候補を導出し、
前記（ｂ）のステップで、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とする仮説検証方法。
【請求項９】
請求項６〜８のいずれかに記載の仮説検証方法であって、
前記（ｅ）のステップで、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とする仮説検証方法。
【請求項１０】
請求項９に記載の仮説検証方法であって、
（ｆ）前記最終的な仮説を検証結果として画面上に表示する、ステップを更に有する、
ことを特徴とする仮説検証方法。
【請求項１１】
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１２】
請求項１１に記載のコンピュータ読み取り可能な記録媒体であって、
前記（ａ）のステップで、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１３】
請求項１１または１２に記載のコンピュータ読み取り可能な記録媒体であって、
前記（ａ）のステップで、グラフ構造で構成された前記仮説候補を導出し、
前記（ｂ）のステップで、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１４】
請求項１１〜１３のいずれかに記載のコンピュータ読み取り可能な記録媒体であって、
前記（ｅ）のステップで、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１５】
請求項１４に記載のコンピュータ読み取り可能な記録媒体であって、
前記プログラムが、前記コンピュータに、
（ｆ）前記最終的な仮説を検証結果として画面上に表示する、ステップを実行させる命令を更に含む、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮説検証装置、仮説検証方法、及びこれらを実現するためのプログラムに関し、特には、ある結果に至る経緯の仮説を生成し、生成した仮説を検証することによって、経緯の具体化を図る、仮説検証装置、仮説検証方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、論理的推論の一種に、仮説推論またはアブダクションと呼ばれる手法が知られている。仮説推論は、例えば、物体、製造システム、実行中のソフトウェアプログラムなどに生じた異常状態に対して、その状態に至る幾つかの可能性に基づく仮説のうち、得られている関連事実を最もよく説明できる仮説を選択する手法である。【０００３】
一般に、仮説推論では、幾つかの仮説候補が生成され、そのうちの１つが最終的な解仮説として選択される。そして、実際の利用場面の多くでは、選択された解仮説は検証され、検証結果に応じて、この解仮説の修正又は再選択が行われる。ここで、仮説推論を現実の問題に利用するシステムの一例について、特許文献１に基づいて説明する。特許文献１は、仮説推論を用いた運転支援システムを開示している。【０００４】
特許文献１に開示された運転支援システムは、車の運転中に起きうる危険を周囲の観測によって得られた情報から予測する。特許文献１に開示された運転支援システムでは、仮説推論の一種である重み付き仮説推論（非特許文献１参照）が用いられている。【０００５】
具体的には、特許文献１の図１３に示すように、特許文献１に開示された運転支援システムは、まず、観測情報を変換して得られたコスト付きの観測論理式を観測データとして受け付ける。次に、特許文献１に開示された運転支援システムは、仮説推論部によって、観測データに基づいて、危険を表す仮説（仮説候補）を幾つか生成する。そして、特許文献１に開示されたシステムは、生成した仮説候補の中から、最も証明コストの低い解仮説を、最も起き易い危険として選択する。【０００６】
続いて、特許文献１に開示された運転支援システムは、選択した仮説候補（危険）に関連する物体に対して、物理シミュレーションを実行して、その挙動を推定し、その推定結果を新たな観測論理式とする。その後、仮説推論部は、既存の観測論理式に新たな観測論理式を加えて、仮説推論を再度実行する。このように、特許文献１に開示された運転支援システムによれば、物理シミュレーションによる物体の挙動を考慮した危険の予測が可能となる
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−９１０３９号公報
【非特許文献】
【０００８】
【非特許文献１】Hobbs, Jerry R., Mark Stickel, Douglas Appelt, and Paul Martin, “Interpretation as Abduction”, Artificial Intelligence, Vol.63, Nos.1-2, pp.69-142, 1993.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、上述したように、特許文献１に開示された運転支援システムでは、生成された幾つかの仮説候補の中から、最も証明コストの低い仮説候補が只１つ選択される。しかしながら、実際には、同等で最良であり、且つ、構成が異なっている、複数の仮説候補が存在する場合がある。そのため、この選択された仮説候補説よりも、選択されなかった仮説候補の方が、実際には適切である場合がある。したがって、特許文献１に開示された運転支援システムには、危険予測精度の向上に限界がある。【００１０】
一方、同等に最良かつ、構成の異なる仮説候補全てに対して、１つずつ検証を行うようにすれば、上述の問題は解消できるとも考えられるが、特許文献１に開示された運転支援システムには、検証機能は付加されておらず、検証は不可能である。また、仮に、特許文献１に開示された運転支援システムに、検証機能が付加されていたとしても、解仮説全てに対して検証を行う場合は、処理に時間が掛かり過ぎるという別の問題が発生してしまう。【００１１】
本発明の目的の一例は、上記問題を解消し、複数の仮説候補の中から、検証に値する仮説候補を選択するに際して、処理負担を増加させることなく、誤った仮説候補が選択される可能性を低減し得る、仮説検証装置、仮説検証方法、及びコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明の一側面における仮説検証装置は、
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、仮説生成部と、
前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、仮説統合部と、
前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、
ことを特徴とする。【００１３】
また、上記目的を達成するため、本発明の一側面における仮説検証方法は、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を有する、ことを特徴とする。【００１４】
更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とする。
【発明の効果】
【００１５】
以上のように本発明によれば、複数の仮説候補の中から、検証に値する仮説候補を選択するに際して、処理負担を増加させることなく、誤った仮説候補が選択される可能性を低減することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の形態における仮説検証装置の概略構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における仮説検証装置の構成を具体的に示すブロック図である。
【図３】図３は、本発明の実施の形態において帰結格納部が格納しているデータの一例を示す図である。
【図４】図４は、本発明の実施の形態において用いられる知識データの一例を示す図である。
【図５】図５は、本発明の実施の形態における仮説統合部による統合処理の一例を示す図である。
【図６】図６は、本発明の実施の形態における仮説統合部による統合処理の他の例を示す図である。
【図７】図７は、本発明の実施の形態における仮説検証装置の動作を示すフロー図である。
【図８】図８は、本発明の実施の形態において図７に示すステップＡ６〜Ａ９をより具体的に示すフロー図である。
【図９】図９は、本発明の実施の形態における具体例１での処理内容を示す図である。
【図１０】図１０は、本発明の実施の形態における具体例２での処理内容を示す図である。
【図１１】図１１は、本発明の実施の形態における仮説検証装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
（実施の形態）
以下、本発明の実施の形態における、仮説検証装置、仮説検証方法、及びプログラムについて、図１〜図１１を参照しながら説明する。
【００１８】
［装置構成］
最初に、図１を用いて、本実施の形態における仮説検証装置の概略構成について説明する。図１は、本発明の実施の形態における仮説検証装置の概略構成を示すブロック図である。
【００１９】
図１に示す、本実施の形態における、仮説検証装置１０は、観測データから生成した仮説候補の検証を行う装置である。図１に示すように、仮説検証装置１０は、仮説生成部１１と、仮説統合部１２と、仮説検証部１３とを備えている。
【００２０】
このうち、仮説生成部１１は、１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る論理式を有する仮説候補を、複数導出する。
【００２１】
仮説統合部１２は、仮説候補それぞれの論理式を統合して、論理式集合を構築し、そして、論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する。
【００２２】
仮説検証部１３は、まず、論理式集合の中に、観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式とする。次いで、仮説検証部１３は、観測データ及び対象論理式の名前に基づいて、第２のパラメータの値を取得して、取得した第２のパラメータの値を前記対象論理式に入力する。
【００２３】
また、仮説検証部１３は、対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する。
【００２４】
そして、仮説検証部１３によって、論理式の真偽が判定されるか、または、対象論理式に第２のパラメータの値が入力されると、仮説生成部１１は、真偽判定がなされた論理式又は対象論理式を、観測データに追加して、再度、仮説候補を導出する。
【００２５】
このように、本実施の形態では、複数の仮説候補を統合して論理式集合が構築され、この論理式集合について検証が行われる。このため、複数の仮説の中から、検証に値する仮説を選択するに際して、処理負担を増加させることなく、誤った仮説候補が選択される可能性を低減することができる。
【００２６】
また、本実施の形態では、仮説を構成する論理式の真偽判定の結果、又は新たなパラメータの値が追加された論理式を用いて、仮説の導出が再度行われる。本実施の形態によれば、仮説を検証でき、検証結果に基づいて、仮説を修正することが可能となる。
【００２７】
続いて、図２を用いて、本実施の形態における仮説検証装置１０の構成をより具体的に説明する。図２は、本発明の実施の形態における仮説検証装置の構成を具体的に示すブロック図である。
【００２８】
図２に示すように、本実施の形態における仮説検証装置１０は、上述した仮説生成部１１、仮説統合部１２及び仮説検証部１３に加えて、帰結設定部１４と、帰結格納部１５と、推論知識格納部１６と、データ解析部１７と、検証結果表示部１８と、入力受付部１９とを備えている。また、仮説検証装置１０は、液晶表示装置等の表示装置２０に接続されている。
【００２９】
入力受付部１９は、外部からの観測データの入力を受け付ける。また、本実施の形態では、観測データは、全てのパラメータに、推論の対象となる事象の観測によって得られた値を持つ、論理式の形式で表現されたデータである。入力受付部１９は、受け付けた観測データを帰結設定部１４に渡す。
【００３０】
帰結設定部１４は、観測データを、帰結格納部１５に照合して、観測データに対応する帰結を設定する。また、設定された帰結は、仮説推論の起点となる。帰結格納部１５は、論理式毎に予め帰結を登録しているデータベースである。図３は、本発明の実施の形態において帰結格納部が格納しているデータの一例を示す図である。図３に示すように、帰結格納部１５は、論理式毎に設定された帰結を登録している。
【００３１】
推論知識格納部１６は、仮説生成部１１による仮説の導出に用いられる知識データを格納している。図４は、本発明の実施の形態において用いられる知識データの一例を示す図である。図４に示すように、本実施の形態において知識データは、推論知識である。
【００３２】
仮説生成部１１は、本実施の形態では、観測データと、帰結設定部１４によって設定された帰結と、推論知識格納部１６が格納している知識データとを用いて、仮説推論を行って、仮説候補を導出する。仮説推論の手法としては、上述の特許文献１でも利用されている重み付き仮説推論が挙げられる。
【００３３】
具体的には、仮説生成部１１は、上述の特許文献１及び非特許文献１に開示されている手法を用いて、推論知識格納部１６が格納している推論知識の中から、帰結設定部１４によって設定された帰結に結びつく推論知識を選択し、選択した推論知識に観測データを追加する。これにより、選択された推論知識の数だけ、仮説候補が生成される。
【００３４】
続いて、仮説生成部１１は、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の仮説候補を選択する（下記文献１及び２参照）。例えば、仮説生成部１１は、観測データに与えられたコストと、各推論知識に付与されている重みとを用いて、評価値として、作成した仮説候補それぞれのコストを算出する。そして、仮説生成部１１は、最もコストが低く、且つ、構成の異なる、複数の仮説候補を選択する。以下、このような手法を、「Ｋ−ｂｅｓｔ解出力手法」と表記する。
【００３５】
文献１：“What’s New in Gurobi7.0”,[online] ,2016 11-16,GUROBI OPTIMIZATION, <URL: http://www.gurobi.com/pdfs/webinars/gurobi-7.0-webinar-slides-de.pdf>
文献２：Jose A. Gamez,“Abductive Inference in Bayesian Networks”, [online], Springer Link,<URL: https://link.springer.com/chapter/10.1007/978-3-540-39879-0_6>
【００３６】
仮説統合部１２は、本実施の形態では、例えば、図５に示すように、仮説候補１〜３それぞれの論理式を統合する。図５は、本発明の実施の形態における仮説統合部による統合処理の一例を示す図である。図５の例では、仮説候補の論理式である「isFoo(“File”, “foo”)」、「isBar(“File”, “bar”)」、「isBaz(“File”, “baz”)」は、それぞれ重複しているので、削除される。
【００３７】
また、仮説生成部１１が、グラフ構造で構成された仮説候補を導出している場合は、仮説統合部１２は、図６に示すように、重複している論理式の削除後に、グラフ構造に基づいて、論理式集合を構成する論理式によるグラフ構造を構築する。つまり、この場合、仮説生成部１１は、グラフ構造を考慮して統合処理を実行する。図６は、本発明の実施の形態における仮説統合部による統合処理の他の例を示す図である。
【００３８】
データ解析部１７は、論理式毎に、その論理式の名前と、その論理式に含まれるパラメータの値を抽出可能な解析ツールとを関連付けて登録している。そして、データ解析部１７は、論理式の名前及び観測データ、又は論理式の名前及び第１のパラメータの値が入力されると、入力に応じて、解析ツールを実行する。
【００３９】
また、本実施の形態において利用可能な解析ツールとしては、アプリケーションプログラム（ｗｅｂアプリケーションプログラムを含む）によって提供されている、既知の各種ファイル解析ツールが挙げられる。
【００４０】
仮説検証部１３は、本実施の形態では、データ解析部１７に、観測データ及び対象論理式の名前を入力し、それによって、対象論理式の真偽の判定、又は第２のパラメータの値の取得を実行する。
【００４１】
具体的には、本実施の形態では、仮説検証部１３は、まず、論理式集合の中に、２つ以上のパラメータを持ち、且つ、その一部のパラメータ（第１のパラメータ）のみが値を持つ論理式（対象論理式）が存在しているかどうかを判定する。
【００４２】
判定の結果、条件に該当する対象論理式が存在する場合は、仮説検証部１３は、これを検索クエリとする。続いて、仮説検証部１３は、検索クエリを用いて、データ解析部１７が登録している解析ツールに対して検索を行い、これらの中から、検索クエリに適用可能な解析ツールを特定する。続いて、仮説検証部１３は、データ解析部１７に、特定した解析ツールを実行させ、対象論理式の第１のパラメータの値から、第２のパラメータの値を取得させる。
【００４３】
一方、上述の判定の結果、条件に該当する対象論理式が存在しない場合は、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在することを条件に、上述したように、仮説検証部１３は、この論理式の真偽を判定する。
【００４４】
真偽の判定は、例えば、予め値を持つパラメータに対し、解析ツールを実行させて値を取得し、その値が予め持つ値と同じであれば真、異なれば偽とすることによって行なうことができる。または、真偽の判定は、解析ツールを実行させて推論知識によって得られた値を持つ論理式が成立すると判定されれば真、成立しないと判定されれば偽とすることによっても行なうことができる。また、このような場合の解析ツールは、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式を、検索クエリとして用いて検索される。
【００４５】
また、仮説検証部１３によって第２のパラメータの値が取得できた場合は、仮説生成部１１は、対象論理式の第２のパラメータに、取得できた値を事象の観測によって得た値として入力する。そして、仮説生成部１１は、入力後の対象論理式を観測データに追加し、追加した観測データから、仮説候補を再度導出する。
【００４６】
一方、仮説検証部１３によって対象論理式の真偽判定が行われた場合は、仮説生成部１１は、真偽判定の結果を、判定対象となった論理式に反映する。例えば、真であれば、判定対象となった論理式に対して何もせず、偽であれば、判定対象となった論理式の予め値を持つパラメータに解析データの実行によって得られた値を代入し、値が代入された論理式を新たな論理式とする。または、仮説生成部１１は、偽と判定された論理式に否定演算子を付与しても良い。具体的には、否定演算子の付与は、例えばfile(foo.rar, “executable”)の冒頭に“！”を付与して、「！file(foo.rar, “executable”)」を観測データとする。そして、仮説生成部１１は、真偽判定の結果が反映された論理式を観測データに追加し、追加した観測データから、仮説候補を再度導出する。
【００４７】
本実施の形態では、このように、仮説生成部１１による仮説候補の導出、仮説統合部１２による仮説候補の統合、及び仮説検証部１３による仮説候補の検証が繰り返し行われる。そして、仮説生成部１１は、仮説候補を構成している論理式のいずれに対しても適用可能な解析ツールが無くなると、即ち、仮説候補を構成している全ての論理式が全てのパラメータに値を有するようになると、この仮説候補を最終的な仮説として出力する。このような、全てのパラメータに値を持つ論理式のみで構成されている仮説は、完全に検証されており、即ち、証明された仮説と言える。
【００４８】
検証結果表示部１８は、仮説生成部１１によって出力された最終的な仮説を、検証結果として表示装置２０の画面上に表示する。図２の例では、検証結果は、仮説検証装置１０に接続された表示装置２０の画面上に表示されている。なお、本実施の形態では、検証結果は、仮説検証装置１０にネットワークを介して接続された端末装置の画面上に表示されても良い。
【００４９】
［装置動作］
次に、本発明の実施の形態における仮説検証装置１０の動作について、図７を用いて説明する。図７は、本発明の実施の形態における仮説検証装置の動作を示すフロー図である。以下の説明においては、適宜図１〜図６を参酌する。また、本実施の形態では、仮説検証装置１０を動作させることによって、仮説検証方法が実施される。よって、本実施の形態における仮説検証方法の説明は、以下の仮説検証装置の動作説明に代える。
【００５０】
図７に示すように、最初に、入力受付部１９は、外部からの観測データの入力を受け付ける（ステップＡ１）。入力受付部１９は、受け付けた観測データを帰結設定部１４に渡す。
【００５１】
次に、帰結設定部１４は、観測データを、帰結格納部１５（図３参照）に照合して、観測データに対応する帰結を設定する（ステップＡ２）。
【００５２】
次に、仮説生成部１１は、観測データと、帰結設定部１４によって設定された帰結と、推論知識格納部１６が格納している推論知識とを用いて、仮説推論を行って、仮説候補を導出する（ステップＡ３）。具体的には、ステップＡ３では、仮説生成部１１は、Ｋ−ｂｅｓｔ解出力手法を用いて、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の仮説候補を導出する。
【００５３】
次に、仮説統合部１２は、ステップＡ３において仮説候補が複数生成されると、仮説候補それぞれの論理式を統合して、論理式集合を構築し、そして、論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する（ステップＡ４）。
【００５４】
次に、仮説検証部１３は、ステップＡ４によって得られた論理式集合の中に、２つ以上のパラメータを持ち、且つ、その一部のパラメータ（第１のパラメータ）のみが値を持つ、論理式（対象論理式）が存在しているかどうかを判定する（ステップＡ５）。
【００５５】
ステップＡ４の判定の結果、条件に該当する対象論理式が存在する場合は、仮説検証部１３は、条件に該当する対象論理式を検索クエリとして、データ解析部１７が登録している解析ツールに対して検索を実行する（ステップＡ６）。
【００５６】
次に、仮説検証部１３は、ステップＡ６の実行によって適用可能な解析ツールを検索できたかどうかを判定する（ステップＡ７）。ステップＡ７の判定の結果、検索できなかった場合は、仮説検証部１３は、ステップＡ１４を実行する。
【００５７】
一方、ステップＡ７の判定の結果、検索できた場合は、仮説検証部１３は、データ解析部１７に、検索した解析ツールを実行させ、対象論理式の第１のパラメータの値から、第２のパラメータの値を取得する（ステップＡ８）。
【００５８】
次に、ステップＡ８の実行後は、仮説生成部１１は、対象論理式の第２のパラメータに、取得できた値を入力し、入力後の対象論理式を観測データに追加して、追加した観測データから、仮説候補を再度導出する（ステップＡ９）。その後、再度、ステップＡ５が実行される。
【００５９】
また、ステップＡ５の判定の結果、条件に該当する対象論理式が存在しない場合は、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在することを条件に、仮説検証部１３は、この論理式を検索クエリとして、データ解析部１７が登録している解析ツールに対して検索を実行する（ステップＡ１０）。
【００６０】
次に、仮説検証部１３は、ステップＡ１０の実行によって適用可能な解析ツールを検索できたかどうかを判定する（ステップＡ１１）。ステップＡ１１の判定の結果、検索できなかった場合は、仮説検証部１３は、ステップＡ１４を実行する。
【００６１】
一方、ステップＡ１１の判定の結果、検索できた場合は、仮説検証部１３は、データ解析部１７に、検索した解析ツールを実行させ、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式の真偽を判定する（ステップＡ１２）。
【００６２】
次に、ステップＡ１２の実行後は、仮説検証部１３は、真偽判定の結果を、判定対象となった論理式に反映し、真偽判定の結果が反映された論理式を観測データに追加して、追加した観測データから、仮説候補を再度導出する（ステップＡ１３）。その後、再度、ステップＡ５が実行される。
【００６３】
また、ステップＡ７又はステップＡ１１でＮｏと判定された場合は、仮説生成部１１は、判定対象となった仮説候補を最終的な仮説として出力する（ステップＡ１３）。ステップＡ１３の実行後、検証結果表示部１８は、ステップＡ１３によって出力された最終的な仮説を検証結果として画面上に表示する。
【００６４】
ここで、図８を用いて、図７に示したステップＡ６〜Ａ９についてより具体的に説明する。図８は、本発明の実施の形態において図７に示すステップＡ６〜Ａ９をより具体的に示すフロー図である。図８に示すフローに沿って処理を実行した場合は、データ解析部１７による解析をバッチ処理で行うことが可能となる。
【００６５】
最初に、図８に示すように、データ解析部１７は、対象論理式（検索クエリ）と仮説検証部１３によって特定された解析ツールの識別情報とを取得する（ステップＢ１）。
【００６６】
次に、データ解析部１７は、対象論理式を構成しているパラメータとその値とを抽出する（ステップＢ２）。
【００６７】
次に、データ解析部１７は、仮説検証部１３によって特定された解析ツール毎に、対応する論理式の名前と観測データとを入力して、当該解析ツールを実行し、解析結果の取得を試みる（ステップＢ３）。
【００６８】
次に、仮説検証部１３は、ステップＢ３によって解析結果が取得されているかどうかを判定する（ステップＢ４）。ステップＢ３の判定の結果、解析結果が取得されていない場合は、仮説検証部１３は、検証は失敗であると判断する（ステップＢ７）。その後、仮説検証部１３は、そのことを外部に出力する。
【００６９】
一方、ステップＢ３の判定の結果、解析結果が取得されている場合は、仮説検証部１３は、解析結果に対応する論理式のパラメータに既存の値が存在しているかどうかを判定する（ステップＢ５）。
【００７０】
ステップＢ５の判定の結果、解析結果に対応する論理式のパラメータに既存の値が存在していない場合は、仮説検証部１３は、検証は成功であると判断する。この場合、仮説生成部は、解析結果で得られた値をパラメータの値とする論理式を、観測データに追加する（ステップＢ７）。
【００７１】
一方、ステップＢ５の判定の結果、解析結果に対応する論理式のパラメータに既存の値が存在している場合は、仮説検証部１３は、解析結果に対応するパラメータに存在している既存の値と、解析結果で得られた値とが一致しているかどうかを判定する（ステップＢ６）。
【００７２】
ステップＢ６の判定の結果、一致していない場合は、仮説検証部１３は、検証は失敗であると判断する。この場合、仮説生成部１１は、解析結果で得られた値を解析結果に対応するパラメータの値とする論理式を、観測データに追加する（ステップＢ９）。
【００７３】
一方、ステップＢ６の判定の結果、一致している場合は、仮説検証部は、検証は成功であると判断する。この場合、仮説生成部１１は、解析結果で得られた値を、解析結果に対応するパラメータに存在している既存の値を、パラメータの値とする論理式を、観測データに追加する（ステップＢ１０）。
【００７４】
［実施の形態における効果］
このように、本実施の形態によれば、複数の仮説候補を統合して論理式集合が構築され、この論理式集合について検証が行われる。このため、複数の仮説候補の中から、検証に値する仮説候補を選択するに際して、処理負担が低減される。また、統合の対象となる仮説候補は、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の仮説候補である。よって、誤った仮説候補が選択される可能性が大きく低減される。
【００７５】
加えて、本実施の形態では、仮説候補に対して検証が行われ、完全に検証された仮説候補のみが最終的な仮説として出力される。即ち、本実施の形態では、仮説の検証を行なうと共に仮説推論を繰り返して仮説の修正も行なわれるので、観測データとデータの解析結果とを含む事実を元に最もよく検証された仮説を得ることが可能となる。また、本実施の形態では、仮説の全ての構成要素が検証された場合に、人手による試行錯誤を必要とすることなく、事実によって証明された結論を得ることができる。
【００７６】
［具体例１］
ここで、図９を用いて、本実施の形態の具体例１について説明する。図９は、本発明の実施の形態における具体例１での処理内容を示す図である。図９の例は、ＭＤ５で暗号化されたデータが復号され、それによって所望の文字列が取得される例を示している。この例では、入力受付部１９は、観測データとして、例えば、「isText」と「!isMeaningful」との入力を受け付ける。
【００７７】
これにより、仮説生成部１１は、Ｋ−ｂｅｓｔ解出力手法を用いて、仮説候補として、仮説候補１「検証すべき仮説は無し」、仮説候補２「[detectEncryption]、[decryptMD5]」、仮説候補３「[detectEncryption]、[decryptBASE32]」を導出する。
【００７８】
次いで、仮説統合部１２は、図９に示すように、仮説候補１〜３それぞれの論理式を統合する。図９の例では、仮説候補の論理式である「detectEncryption」は、仮説候補２及び３において重複しているので、削除される。
【００７９】
続いて、仮説検証部１３は、仮説統合部１２によって得られた論理式集合に対して検証を実行して、論理式の真偽判定、又は対象論理式への値の入力を行う。その後、仮説生成部１１は、真偽判定がなされた論理式又は対象論理式を、観測データに追加して、再度、仮説候補を導出する。図９の例では、新たな仮説候補として、「decryptMD5」と、「!decryptBASE32」とが導出され、これらが最終的な仮説として画面上に表示される。
【００８０】
このように、図９の例では、観測データから「検証すべき仮説は無し」が導出されていたとしても、他にも仮説候補が導出されている場合は、最終的な仮説が導かれる。これに対して、背景技術の欄に示したように、最も証明コストの低い仮説候補が只１つ選択される場合では、「検証すべき仮説は無し」のみが導出されてしまうと、最終的な仮説は無しとされてしまう。本具体例１から分かるように、本実施の形態によれば、誤った仮説候補が選択される可能性が大きく低減される。
【００８１】
［具体例２］
続いて、図１０を用いて、本実施の形態の具体例２について説明する。図１０は、本発明の実施の形態における具体例２での処理内容を示す図である。図１０の例は、ログファイルから不正ログインの痕跡が発見される例が示されている。この例では、入力受付部１９は、例えば、観測データとして、「isEventFile」の入力を受け付ける。
【００８２】
これにより、仮説生成部１１は、Ｋ−ｂｅｓｔ解出力手法を用いて、仮説候補として、仮説候補１「getNetworkLogon」、仮説候補２「getExecFromRemote」、仮説候補３「getGeneralTaskRegistration」、仮説候補４「getLogonFromGlobal」、仮説候補５「getAccountFailedToLogon」を導出する。
【００８３】
次いで、仮説統合部１２は、図９に示すように、仮説候補１〜５それぞれの論理式を統合する。図１０の例では、重複している仮説候補は存在しないので、仮説候補１〜５全ての論理式が統合される。
【００８４】
続いて、仮説検証部１３は、仮説統合部１２によって得られた論理式集合に対して検証を実行して、論理式の真偽判定、又は対象論理式への値の入力を行う。その後、仮説生成部１１は、真偽判定がなされた論理式又は対象論理式を、観測データに追加して、再度、仮説候補を導出する。図１０の例では、検証の結果、「getAccountFailedToLogon」以外の論理式は棄却され、最終的には、「hasEvilLogonAccount」が導出され、これが最終的な仮説として画面上に表示される。
【００８５】
このように、図１０の例では、仮説候補５以外の仮説候補が棄却されているが、背景技術の欄に示したように、最も証明コストの低い仮説候補が只１つ選択される場合では、棄却される仮説候補のみが導出され、仮説が行われない事態が生じる可能性がある。例えば、図１０に示したように仮説候補１のみが導出された場合は、仮説の検証の結果、「! getNetworkLogon」が導出され、この後、最終的な仮説が導出されることなく処理が終了する。このことからも、本実施の形態によれば、誤った仮説候補が選択される可能性が大きく低減される。
【００８６】
［プログラム］
本発明の実施の形態におけるプログラムは、コンピュータに、図７に示すステップＡ１〜Ａ１３を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮説検証装置と仮説検証方法とを実現することができる。この場合、コンピュータのプロセッサは、仮説生成部１１、仮説統合部１２、仮説検証部１３、帰結設定部１４、データ解析部１７、検証結果表示部１８、及び入力受付部１９として機能し、処理を行なう。
【００８７】
また、本実施の形態では、帰結格納部１５、及び推論知識格納部１６は、コンピュータに備えられたハードディスク等の記憶装置に、これらを構成するデータファイルを格納することによって実現できる。
【００８８】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、仮説生成部１１、仮説統合部１２、仮説検証部１３、帰結設定部１４、データ解析部１７、検証結果表示部１８、及び入力受付部１９のいずれかとして機能しても良い。また、帰結格納部１５、及び推論知識格納部１６は、本実施の形態におけるプログラムを実行するコンピュータとは別のコンピュータ上に構築されていても良い。
【００８９】
ここで、本実施の形態におけるプログラムを実行することによって、仮説検証装置１０を実現するコンピュータについて図１１を用いて説明する。図１１は、本発明の実施の形態における仮説検証装置を実現するコンピュータの一例を示すブロック図である。
【００９０】
図１１に示すように、コンピュータ１１０は、ＣＰＵ（Central Processing Unit）１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。また、コンピュータ１１０は、ＣＰＵ１１１に加えて、又はＣＰＵ１１１に代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）を備えていても良い。
【００９１】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００９２】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００９３】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００９４】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【００９５】
なお、本実施の形態における仮説検証装置１０は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、仮説検証装置１０は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【００９６】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。
【００９７】
（付記１）
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、仮説生成部と、
前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、仮説統合部と、
前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、
ことを特徴とする仮説検証装置。
【００９８】
（付記２）
付記１に記載の仮説検証装置であって、
前記仮説生成部が、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とする仮説検証装置。
【００９９】
（付記３）
付記１または２に記載の仮説検証装置であって、
前記仮説生成部が、グラフ構造で構成された前記仮説候補を導出し、
前記仮説統合部が、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とする仮説検証装置。
【０１００】
（付記４）
付記１〜３のいずれかに記載の仮説検証装置であって、
前記仮説生成部が、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とする仮説検証装置。
【０１０１】
（付記５）
付記４に記載の仮説検証装置であって、
前記最終的な仮説を検証結果として画面上に表示する、検証結果表示部を更に備えている、
ことを特徴とする仮説検証装置。
【０１０２】
（付記６）
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を有する、ことを特徴とする仮説検証方法。
【０１０３】
（付記７）
付記６に記載の仮説検証方法であって、
前記（ａ）のステップで、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とする仮説検証方法。
【０１０４】
（付記８）
付記６または７に記載の仮説検証方法であって、
前記（ａ）のステップで、グラフ構造で構成された前記仮説候補を導出し、
前記（ｂ）のステップで、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とする仮説検証方法。
【０１０５】
（付記９）
付記６〜８のいずれかに記載の仮説検証方法であって、
前記（ｅ）のステップで、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とする仮説検証方法。
【０１０６】
（付記１０）
付記９に記載の仮説検証方法であって、
（ｆ）前記最終的な仮説を検証結果として画面上に表示する、ステップを更に有する、
ことを特徴とする仮説検証方法。
【０１０７】
（付記１１）
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を実行させる命令を含む、プログラムを記録していることを特徴とするコンピュータ読み取り可能な記録媒体。
【０１０８】
（付記１２）
付記１１に記載のコンピュータ読み取り可能な記録媒体であって、
前記（ａ）のステップで、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【０１０９】
（付記１３）
付記１１または１２に記載のコンピュータ読み取り可能な記録媒体であって、
前記（ａ）のステップで、グラフ構造で構成された前記仮説候補を導出し、
前記（ｂ）のステップで、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【０１１０】
（付記１４）
付記１１〜１３のいずれかに記載のコンピュータ読み取り可能な記録媒体であって、
前記（ｅ）のステップで、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【０１１１】
（付記１５）
付記１４に記載のコンピュータ読み取り可能な記録媒体であって、
前記プログラムが、前記コンピュータに、
（ｆ）前記最終的な仮説を検証結果として画面上に表示する、ステップを実行させる命令を更に含む、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【０１１２】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【０１１３】
このように、本発明によれば、複数の仮説候補の中から、検証に値する仮説候補を選択するに際して、処理負担を増加させることなく、誤った仮説候補が選択される可能性を低減することができる。本発明は、事故、犯罪、サイバー攻撃などの状況または原因を明らかにする作業の効率化に有用である。同様に、本発明は、災害及びシステム障害の原因分析と対策検討にも有用である。
【符号の説明】
【０１１４】
１０  仮説検証装置
１１  仮説生成部
１２  仮説統合部
１３  仮説検証部
１４  帰結設定部
１５  帰結格納部
１６  推論知識格納部
１７  データ解析部
１８  検証結果表示部
１９  入力受付部
２０  表示装置
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2020170400.tif 000003
【図２】
2020170400.tif 000004
【図３】
2020170400.tif 000005
【図４】
2020170400.tif 000006
【図５】
2020170400.tif 000007
【図６】
2020170400.tif 000008
【図７】
2020170400.tif 000009
【図８】
2020170400.tif 000010
【図９】
2020170400.tif 000011
【図１０】
2020170400.tif 000012
【図１１】
2020170400.tif 000013
【手続補正書】
【提出日】令和3年8月19日(2021.8.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、仮説生成部と、
前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、仮説統合部と、
前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力し、
一方、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、仮説検証部と、
を備え、
前記仮説生成部は、前記論理式の真偽が判定されるか、または、前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、
ことを特徴とする仮説検証装置。
【請求項２】
請求項１に記載の仮説検証装置であって、
前記仮説生成部が、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とする仮説検証装置。
【請求項３】
請求項１または２に記載の仮説検証装置であって、
前記仮説生成部が、グラフ構造で構成された前記仮説候補を導出し、
前記仮説統合部が、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とする仮説検証装置。
【請求項４】
請求項１〜３のいずれかに記載の仮説検証装置であって、
前記仮説生成部が、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とする仮説検証装置。
【請求項５】
請求項４に記載の仮説検証装置であって、
前記最終的な仮説を検証結果として画面上に表示する、検証結果表示部を更に備えている、
ことを特徴とする仮説検証装置。
【請求項６】
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を有する、ことを特徴とする仮説検証方法。
【請求項７】
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を実行させる、プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明の目的の一例は、上記問題を解消し、複数の仮説候補の中から、検証に値する仮説候補を選択するに際して、処理負担を増加させることなく、誤った仮説候補が選択される可能性を低減し得る、仮説検証装置、仮説検証方法、及びプログラムを提供することにある。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を実行させることを特徴とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
ステップＡ５の判定の結果、条件に該当する対象論理式が存在する場合は、仮説検証部１３は、条件に該当する対象論理式を検索クエリとして、データ解析部１７が登録している解析ツールに対して検索を実行する（ステップＡ６）。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
また、ステップＡ７又はステップＡ１１でＮｏと判定された場合は、仮説生成部１１は、判定対象となった仮説候補を最終的な仮説として出力する（ステップＡ１４）。ステップＡ１４の実行後、検証結果表示部１８は、ステップＡ１３によって出力された最終的な仮説を検証結果として画面上に表示する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
次に、仮説検証部１３は、ステップＢ３によって解析結果が取得されているかどうかを判定する（ステップＢ４）。ステップＢ４の判定の結果、解析結果が取得されていない場合は、仮説検証部１３は、検証は失敗であると判断する（ステップＢ７）。その後、仮説検証部１３は、そのことを外部に出力する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
一方、ステップＢ４の判定の結果、解析結果が取得されている場合は、仮説検証部１３は、解析結果に対応する論理式のパラメータに既存の値が存在しているかどうかを判定する（ステップＢ５）。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
ステップＢ５の判定の結果、解析結果に対応する論理式のパラメータに既存の値が存在していない場合は、仮説検証部１３は、検証は成功であると判断する。この場合、仮説生成部１１は、解析結果で得られた値をパラメータの値とする論理式を、観測データに追加する（ステップＢ８）。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
一方、ステップＢ６の判定の結果、一致している場合は、仮説検証部１３は、検証は成功であると判断する。この場合、仮説生成部１１は、解析結果で得られた値を、又は解析結果に対応するパラメータに存在している既存の値を、パラメータの値とする論理式を、観測データに追加する（ステップＢ１０）。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
［プログラム］
本発明の実施の形態におけるプログラムは、コンピュータに、図７に示すステップＡ１〜Ａ１４を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における仮説検証装置と仮説検証方法とを実現することができる。この場合、コンピュータのプロセッサは、仮説生成部１１、仮説統合部１２、仮説検証部１３、帰結設定部１４、データ解析部１７、検証結果表示部１８、及び入力受付部１９として機能し、処理を行なう。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１０７
【補正方法】変更
【補正の内容】
【０１０７】
（付記１１）
コンピュータに、
（ａ）１つの名前及び１つ以上のパラメータを含む論理式の集合によって表現された、観測データから、前記観測データと同じ形式で表現された、知識データを用いて、ありうる帰結に至る前記論理式を有する仮説候補を、複数導出する、ステップと、
（ｂ）前記仮説候補それぞれの前記論理式を統合して、論理式集合を構築し、そして、前記論理式集合の中に、重複する論理式が存在する場合は、そのうち一つのみを残し、残りを削除する、ステップと、
（ｃ）前記論理式集合の中に、前記観測データから得られた値を有する第１のパラメータと、前記観測データから得られた値を有していない第２のパラメータとを含む論理式が存在する場合は、これを対象論理式として、前記観測データ及び前記対象論理式の名前に基づいて、前記第２のパラメータの値を取得して、取得した前記第２のパラメータの値を前記対象論理式に入力する、ステップと、
（ｄ）前記論理式集合の中に、前記対象論理式となる論理式が存在せず、１つ以上のパラメータに、予め値を持つ、又は推論知識によって得られた値を持つ、論理式が存在する場合は、この存在する論理式に対して真偽を判定する、ステップと、
（ｅ）前記（ｄ）のステップで前記論理式の真偽が判定されるか、または、前記（ｃ）のステップで前記対象論理式に前記第２のパラメータの値が入力されると、真偽判定がなされた論理式又は前記対象論理式を、前記観測データに追加して、再度、仮説候補を導出する、ステップと、
を実行させる、プログラム。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１０８
【補正方法】変更
【補正の内容】
【０１０８】
（付記１２）
付記１１に記載のプログラムであって、
前記（ａ）のステップで、評価関数による評価値が、同等で最良であり、且つ、構成の異なる、複数の前記仮説候補を導出する、
ことを特徴とするプログラム。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１０９
【補正方法】変更
【補正の内容】
【０１０９】
（付記１３）
付記１１または１２に記載のプログラムであって、
前記（ａ）のステップで、グラフ構造で構成された前記仮説候補を導出し、
前記（ｂ）のステップで、削除後に、前記グラフ構造に基づいて、前記論理式集合を構成する前記論理式によるグラフ構造を構築する、
ことを特徴とするプログラム。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】０１１０
【補正方法】変更
【補正の内容】
【０１１０】
（付記１４）
付記１１〜１３のいずれかに記載のプログラムであって、
前記（ｅ）のステップで、前記論理式集合を構成する前記論理式それぞれが、その全てのパラメータに値を有している場合に、最後に導出した仮説候補を最終的な仮説として出力する、
ことを特徴とするプログラム。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
（付記１５）
付記１４に記載のプログラムであって、
前記コンピュータに、
（ｆ）前記最終的な仮説を検証結果として画面上に表示する、ステップを実行させる、
ことを特徴とするプログラム。
【国際調査報告】
2020170400.tif 000014
2020170400.tif 000015