(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-01
(45)【発行日】2024-04-09
(54)【発明の名称】オートマトン生成装置、オートマトン生成方法及びプログラム
(51)【国際特許分類】
G06N 3/126 20230101AFI20240402BHJP
【FI】
G06N3/126
(21)【出願番号】P 2020072577
(22)【出願日】2020-04-14
【審査請求日】2023-02-09
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成29年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業・総括実施型研究(ERATO)「蓮尾メタ数理システムデザインプロジェクト」に係る委託業務、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】504202472
【氏名又は名称】大学共同利用機関法人情報・システム研究機構
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】和賀 正樹
【審査官】大塚 俊範
(56)【参考文献】
【文献】特開2015-201172(JP,A)
【文献】特開2010-244140(JP,A)
【文献】特開2020-057362(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
物理情報システムを近似するオートマトンを学習する学習部と、
モデル検査に従って、時相論理により記述された仕様に対して前記オートマトンを検証する検証部と、
検証結果に応じて、遺伝的アルゴリズムに従って前記物理情報システムの出力と前記オートマトンの出力とが不一致となる入力を探索する探索部と、
を有し、
前記学習部は、探索結果に応じて前記オートマトンを再学習するオートマトン生成装置。
【請求項2】
前記仕様を充足しない前記オートマトンに対する入力が検出されなかった場合、前記探索部は、交叉操作及び突然変異操作に従って前記物理情報システムと前記オートマトンとに対する入力を生成し、前記生成した入力から前記物理情報システムの出力と前記オートマトンの出力とが不一致となる入力を探索する、請求項1記載のオートマトン生成装置。
【請求項3】
前記探索部は、前記生成した入力に対する前記物理情報システムの出力と前記オートマトンの出力との間の距離を算出し、前記距離に基づき選択された入力から前記物理情報システムの出力と前記オートマトンの出力とが不一致となる入力を探索する、請求項2記載のオートマトン生成装置。
【請求項4】
前記交叉操作及び前記突然変異操作に従って生成された入力に対して前記物理情報システムの出力と前記オートマトンの出力とが不一致となる入力が検出されなかった場合、前記探索部は、前記物理情報システムが前記仕様を充足すると判定する、請求項2又は3記載のオートマトン生成装置。
【請求項5】
前記学習部は、L*アルゴリズムに従って前記オートマトンを学習する、請求項1乃至4何れか一項記載のオートマトン生成装置。
【請求項6】
前記仕様を充足しない前記オートマトンに対する入力が検出された場合、前記検証部は、前記検出された入力に対して前記物理情報システムが前記仕様を充足するか判定する、請求項1乃至5何れか一項記載のオートマトン生成装置。
【請求項7】
前記検証部は、前記オートマトンと前記仕様の否定形を表現するオートマトンとの積を表現する積オートマトンを生成し、前記積オートマトンにおける初期状態から受理状態への到達可能性に基づき前記仕様に対して前記オートマトンを検証する、請求項1乃至6何れか一項記載のオートマトン生成装置。
【請求項8】
前記検証部は、前記モデル検査に従って、他の仕様に対して前記オートマトンを検証する、請求項1乃至7何れか一項記載のオートマトン生成装置。
【請求項9】
プロセッサが、物理情報システムを近似するオートマトンを学習するステップと、
前記プロセッサが、モデル検査に従って時相論理により記述された仕様に対して前記オートマトンを検証するステップと、
前記プロセッサが、検証結果に応じて、遺伝的アルゴリズムに従って前記物理情報システムの出力と前記オートマトンの出力とが不一致となる入力を探索するステップと、
前記プロセッサが、探索結果に応じて前記オートマトンを再学習するステップと、
を有するオートマトン生成方法。
【請求項10】
物理情報システムを近似するオートマトンを学習する処理と、
モデル検査に従って時相論理により記述された仕様に対して前記オートマトンを検証する処理と、
検証結果に応じて、遺伝的アルゴリズムに従って前記物理情報システムの出力と前記オートマトンの出力とが不一致となる入力を探索する処理と、
探索結果に応じて前記オートマトンを再学習する処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、オートマトン生成装置、オートマトン生成方法及びプログラムに関する。
【背景技術】
【0002】
自動車などの工業製品を検証するための情報技術に基づくツールとして、物理情報システム(Cyber-Physical System)が注目されている。例えば、自動車をモデル化した物理情報システムでは、各時点でのアクセル/ブレーキの踏み具合を入力として与えると、各時点での自動車の速度が出力される。
【0003】
この物理情報システムを利用してモデル検査が行われる。すなわち、モデル検査(例えば、https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%AB%E6%A4%9C%E6%9F%BBを参照)では、物理情報システムが充たすべき仕様が時相論理(例えば、https://ja.wikipedia.org/wiki/%E6%99%82%E7%9B%B8%E8%AB%96%E7%90%86を参照)によって記述され、物理情報システムが仕様を充足するか検証される。仕様を充足しない物理情報システムに対する入力は反例と呼ばれ、このような反例が検出されなかった場合、物理情報システムは当該仕様を充足すると判断される。
【0004】
このような物理情報システムの反例を探索する際、物理情報システムをオートマトンによって近似し、当該オートマトンを利用してモデル検査を実行するブラックボックス検査が知られている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】https://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%87%E3%83%AB%E6%A4%9C%E6%9F%BB
【文献】https://ja.wikipedia.org/wiki/%E6%99%82%E7%9B%B8%E8%AB%96%E7%90%86
【発明の概要】
【発明が解決しようとする課題】
【0007】
本開示の課題は、物理情報システムにより近似したオートマトンを生成するための技術を提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の一態様は、物理情報システムを近似するオートマトンを学習する学習部と、モデル検査に従って、時相論理により記述された仕様に対して前記オートマトンを検証する検証部と、検証結果に応じて、遺伝的アルゴリズムに従って前記物理情報システムの出力と前記オートマトンの出力とが不一致となる入力を探索する探索部と、を有し、前記学習部は、探索結果に応じて前記オートマトンを再学習するオートマトン生成装置に関する。
【発明の効果】
【0009】
本開示によると、物理情報システムにより近似したオートマトンを生成することができる。
【図面の簡単な説明】
【0010】
【
図1】本開示の一実施例によるオートマトン生成装置を示す概略図である。
【
図2】本開示の一実施例によるオートマトン生成装置のハードウェア構成を示すブロック図である。
【
図3】本開示の一実施例によるオートマトン生成装置の機能構成を示すブロック図である。
【
図4】本開示の一実施例によるオートマトン生成処理を示す概略図である。
【
図5】本開示の一実施例による物理情報システムを示す概略図である。
【
図6】本開示の一実施例による観察表を示す図である。
【
図7】本開示の一実施例による観察表を示す図である。
【
図8】本開示の一実施例による観察表を示す図である。
【
図9】本開示の一実施例による観察表を示す図である。
【
図10】本開示の一実施例による学習されたオートマトンを示す状態遷移図である。
【
図11】本開示の一実施例による仕様を表現するオートマトンを示す状態遷移図である。
【
図12】本開示の一実施例による積オートマトンを示す状態遷移図である。
【
図13】本開示の一実施例による観察表を示す図である。
【
図14】本開示の一実施例による観察表を示す図である。
【
図15】本開示の一実施例による観察表を示す図である。
【
図16】本開示の一実施例による観察表を示す図である。
【
図17】本開示の一実施例による観察表を示す図である。
【
図18】本開示の一実施例による観察表を示す図である。
【
図19】本開示の一実施例による観察表を示す図である。
【
図20】本開示の一実施例による観察表を示す図である。
【
図21】本開示の一実施例による観察表を示す図である。
【
図22】本開示の一実施例による観察表を示す図である。
【
図23】本開示の一実施例による状態遷移を示すテーブルである。
【
図24】本開示の一実施例による再学習されたオートマトンを示す状態遷移図である。
【
図25】本開示の一実施例による積オートマトンを示す状態遷移図である。
【
図26】本開示の他の実施例による仕様を表現するオートマトンを示す状態遷移図である。
【
図27】本開示の他の実施例による積オートマトンを示す状態遷移図である。
【発明を実施するための形態】
【0011】
以下の実施例では、物理情報システムを近似するオートマトンを生成するオートマトン生成装置が開示される。
[オートマトン生成装置の概略]
本開示の一実施例によるオートマトン生成装置100は、
図1に示されるように、物理情報システムMと仕様φが与えられると、オートマトンNを利用して仕様φに対してモデル検査を実行し、物理情報システムMに近似するオートマトンNを生成する。典型的には、物理情報システムMに対する入出力関係は分かっているが、物理情報システムMの内部構成については分かっていない。すなわち、ある入力に対して物理情報システムMからどのような出力が生成されるかについては分かっているが、物理情報システムMの内部構成は判明していないため、当該入出力関係に基づき物理情報システムMを近似するオートマトンNを推定し、当該オートマトンNによって物理情報システムMの内部構成をシミュレートする。
【0012】
具体的には、オートマトン生成装置100は、物理情報システムMを近似するオートマトンN1を生成し、モデル検査に従って、時相論理により記述された仕様φに対して当該オートマトンN1を検証する。ここで、時相論理により記述された仕様φは、「常に速度vがx以下である(v≦x)」などであってもよく、シグナル時相論理(STL)では、∀(v≦x)として記述される。そして、オートマトン生成装置100は、検証結果に応じて、遺伝的アルゴリズムに従って物理情報システムMの出力とオートマトンN1の出力との間の相違を示す入力(反例)を探索し、当該反例に基づきオートマトンN1を再学習する。これにより、物理情報システムMにより近似したオートマトンN2,N3・・・を順次生成することができる。
【0013】
ここで、オートマトン生成装置100は、例えば、
図2に示されるように、CPU(Central Processing Unit)などのプロセッサ101、RAM(Random Access Memory)、フラッシュメモリなどのメモリ102、ストレージ103及び入出力(I/O)インタフェース104によるハードウェア構成を有してもよい。
【0014】
プロセッサ101は、後述されるオートマトン生成装置100の各種処理を実行する。
【0015】
メモリ102は、オートマトン生成装置100における各種データ及びプログラムを格納し、特に作業用データ、実行中のプログラムなどのためのワーキングメモリとして機能する。具体的には、メモリ102は、ハードディスク103からロードされた後述される各種処理を実行及び制御するためのプログラムなどを格納し、プロセッサ101によるプログラムの実行中にワーキングメモリとして機能する。
【0016】
ハードディスク103は、オートマトン生成装置100における各種データ及びプログラムを格納する。
【0017】
I/Oインタフェース104は、ユーザからの命令、入力データなどを受け付け、出力結果を表示、再生などすると共に、外部装置との間でデータを入出力するためのインタフェースである。例えば、I/Oインタフェース104は、USB(Universal Serial Bus)、通信回線、キーボード、マウス、ディスプレイ、マイクロフォン、スピーカなどの各種データを入出力するためのデバイスであってもよい。
【0018】
しかしながら、本開示によるオートマトン生成装置100は、上述したハードウェア構成に限定されず、他の何れか適切なハードウェア構成を有してもよい。例えば、オートマトン生成装置100による各種処理の1つ以上は、これを実現するよう配線化された処理回路又は電子回路により実現されてもよい。
[オートマトン生成処理の概略]
次に、
図3及び4を参照して、本開示の一実施例によるオートマトン生成装置100によるオートマトン生成処理を説明する。
図3は、本開示の一実施例によるオートマトン生成装置100の機能構成を示すブロック図である。
図3に示されるように、オートマトン生成装置100は、学習部110、検証部120及び探索部130を有する。学習部110、検証部120及び探索部130は、
図4に示されるオートマトン生成処理を実現するよう以下のように協働する。
【0019】
学習部110は、物理情報システムを近似するオートマトンを学習する。具体的には、学習部110は、ステップS101において、物理情報システムMを近似するオートマトンN1を生成する。例えば、オートマトンN1は、Mealy機械であってもよい。オートマトン生成部110は、具体例を参照して以下で詳細に説明されるように、L*アルゴリズムに従ってオートマトンN1を学習する。
【0020】
検証部120は、モデル検査に従って時相論理により記述された仕様に対してオートマトンを検証する。具体的には、検証部120は、ステップS101において生成されたオートマトンN1と、物理情報システムMが充足すべき仕様φ1とに対してモデル検査を実行する。例えば、検証部120は、具体例を参照して以下で詳細に説明されるように、仕様φ1の否定を表すオートマトンA¬φ1を生成し、オートマトンN1とオートマトンA¬φ1との積オートマトンN1||A¬φ1において初期状態から受理状態への到達可能性を判定する。具体的には、積オートマトンN1||A¬φ1における初期状態から受理状態に到達可能な入力がない場合、検証部120は、オートマトンN1は全ての入力に対して仕様φ1を充足すると判断し、当該オートマトン生成処理は、ステップS103に移行する。他方、積オートマトンN1||A¬φ1における初期状態から受理状態に到達可能な入力があった場合、検証部120は、オートマトンN1が仕様φ1を充足しない入力(反例)が存在すると判断し、当該オートマトン生成処理は、ステップS105に移行する。
【0021】
探索部130は、遺伝的アルゴリズムに従って物理情報システムの出力とオートマトンの出力との間の相違を示す入力を探索する。具体的には、探索部130は、ステップS103において、物理情報システムMとオートマトンN1とに対する入力の集合Uをランダムに生成し、M(u)≠N1(u)となる集合Uの要素uを探索する。
【0022】
M(u)≠N1(u)となる要素uを検出した場合、探索部130は、ステップS101において生成されたオートマトンN1が物理情報システムMを十分近似していないと判断し、当該オートマトン生成処理は、ステップS104に移行する。
【0023】
他方、M(u)≠N1(u)となる要素uを検出しなかった場合、探索部130は、遺伝的アルゴリズムに従って集合Uから集合U'を生成し、M(u')≠N1(u')となる集合U'の要素u'を探索する。例えば、探索部130は、集合Uの要素に対して選択操作、交叉操作及び突然変異操作の何れか1つ以上を実行し、集合U'を生成してもよい。
【0024】
そして、M(u')≠N1(u')となる要素u'を検出した場合、探索部130は、ステップS101において生成されたオートマトンN1が物理情報システムMを十分近似していないと判断し、当該オートマトン生成処理は、ステップS104に移行する。他方、M(u')≠N1(u')となる要素u'を検出しなかった場合、探索部130は、遺伝的アルゴリズムに従って集合U'から更に集合U"を生成し、集合U"の要素u"に対して上述した処理を繰り返す。所定の時間又は所定の繰り返し回数などの所定の終了条件が充足されるまで、探索部130は、探索対象の集合U,U',U"・・・(以降、Uとして総称する)を遺伝的アルゴリズムに従って生成し、物理情報システムMとオートマトンN1との挙動の相違を示す入力u,u',u"・・・(以降、uとして総称する)を探索し続ける。所定の終了条件が充足されるまで物理情報システムMとオートマトンN1との挙動の相違を示す入力uが検出されなかった場合、探索部130は、物理情報システムMとオートマトンN1とは十分近似していると共に、物理情報システムMは仕様φ1を充足していると判断し、当該オートマトン生成処理は、オートマトンN1を物理情報システムMの近似システムとして出力する。
【0025】
学習部110は、オートマトンを再学習する。具体的には、学習部110は、ステップS104において、ステップS103においてM(u)≠N1(u)となる要素uがM(u)=N1(u)となるようにオートマトンN1をL*アルゴリズムに従って再学習する。当該再学習処理は、具体例を参照して以下で詳細に説明する。ステップS103の後、当該オートマトン生成処理は、ステップS102に戻って、検証部120は、再学習されたオートマトンN2と仕様φ1とに対して、上述したモデル検査を実行する。
【0026】
他方、ステップS102においてオートマトンN1が仕様φ1を充足しない入力uが存在すると判断された場合、検証部120は、ステップS105において、当該入力uに対して物理情報システムMが仕様φ1を充足するか検証する。具体的には、検証部120は、入力uを物理情報システムMに与え、物理情報システムMから取得した出力が仕様φ1を充たすか判断すればよい。入力uに対して物理情報システムMが仕様φ1を充足する場合、検証部120は、オートマトンN1が物理情報システムMを近似していないと判断し、当該オートマトン生成処理は、ステップS106に移行する。学習部110は、ステップS106において、上述したステップS104と同様に、オートマトンN1を再学習する。具体的には、学習部110は、ステップS104において、ステップS103においてM(u)≠N1(u)となる要素uがM(u)=N1(u)となるようにオートマトンN1をL*アルゴリズムに従って再学習する。その後、当該オートマトン生成処理は、ステップS102に戻って、検証部120は、再学習されたオートマトンN2と仕様φ1とに対して、上述したモデル検査を実行する。
【0027】
他方、入力uに対して物理情報システムMが仕様φ1を充足しない場合、検証部120は、当該入力uを物理情報システムMの反例と判断する。
【0028】
以下において、上述したステップS101~106における個別の処理を具体例を用いてより詳細に説明する。
[物理情報システムM]
次に、
図5を参照して、本開示の一実施例による物理情報システムMを説明する。
図5は、本開示の一実施例による物理情報システムMを示す概略図である。
【0029】
図5に示されるように、後述される実施例による物理情報システムMは、各時点tでのアクセス/ブレーキの踏み具合を入力uとし、各時点tでの速度を出力vとする自動車のモデルである。オートマトンの性質上、入力u及び出力vは離散値とする。また、説明の便宜上、入力uは、ニュートラル状態を示す"0"、フルブレーキ状態を示す"-3"及びフルアクセス状態を示す"3"の3つの値の何れかを取り得るとし、出力vは、0≦v≦30(km/h)を示す"low"、30<v≦60(km/h)を示す"middle"、60<v≦120(km/h)を示す"high"、及びv<120(km/h)を示す"veryhigh"の4つの値の何れかを取り得るとする。また、ここでの時点tは、例えば、10ミリ秒などの何れか適切なサンプリング期間(Δtミリ秒)によって抽出されてもよい。また、フルアクセル状態を1サンプリング期間持続すると、30km/hだけ速度が増加し、フルブレーキ状態を1サンプリング期間持続すると、30km/hだけ速度が減少する。ニュートラル状態では速度は変化しない。速度は非負値であることに留意されたい。
【0030】
例えば、アクセス/ブレーキの踏み具合が、第1のサンプリング期間(0≦t<10)においてニュートラル状態であり、第2のサンプリング期間(10≦t<20)においてフルブレーキ状態であり、第3のサンプリング期間(20≦t<30)においてフルアクセル状態であり、第4のサンプリング期間(30≦t<40)においてニュートラル状態であり、第5のサンプリング期間(40≦t<50)においてフルアクセル状態であり、第6のサンプリング期間(50≦t<60)においてフルブレーキ状態であるとき、u=(0,-3,3,0,3,-3)となる。このような入力u=(0,-3,3,0,3,-3)に対して、物理情報システムMはv=(low(0),low(0),low(30),low(30),middle(60),low(30))を出力すると仮定する(ここで、括弧内の値は速度を表す)。このような入出力関係について、"M(0)=low(0)"、"M(0,-3)=low(0)"、"M(0,-3,3)=low(30)"、"M(0,-3,3,0)=low(30)"、"M(0,-3,3,0,3)=middle(60)"及び"M(0,-3,3,0,3,-3)=low(30)"と表記する。
[L*アルゴリズム]
次に、
図6~10を参照して、本開示の一実施例によるL*アルゴリズムによるオートマトン学習処理を説明する。オートマトン学習処理は、上述した学習部110によって実行されるステップS101に相当する。
【0031】
図6~9は、本開示の一実施例によるオートマトン学習処理における観察表(observation table)を示す図である。L*アルゴリズムでは、図示されるような物理情報システムMの入出力を記述した観察表を利用して、物理情報システムMに近似するオートマトンN
1を生成する。
【0032】
図6に示される観察表において、P及びP'はプリフィクス(prefix)を表し、Sはサフィックス(suffix)を表す。例えば、P={3},S={ε}は、物理情報システムMへの入力がu=(3,ε)であることを示す。εは空文字であるため、M(3,ε)=M(3)となり、M(3)=low(30)となる。同様に、P'=(-3,3),S=(3)は、物理情報システムMへの入力がu=(-3,3,3)であることを示す。この場合、M(-3,3,3)=middle(60)となる。
【0033】
観察表が以下の条件1を充足する場合、観察表は「閉じている(closed)」と言われる。
【0034】
(条件1)各p∈Pと各入力σ∈{-3,0,3}について、p・σがP又はP'の何れかに含まれる(ただし、"・"は連結を示す)
例えば、
図6に示された観察表において、(3,3)はPとP'との何れにも含まれていないため、図示された観察表は閉じていない。
【0035】
以下において、物理情報システムMの入出力関係から、物理情報システムMに近似するオートマトンN1を学習するための観察表の構築について説明する。
【0036】
まず、初期的な観察表では、Pが空集合であり、P'={-3,0,3}であり、S={ε}であるとして観察表を構築する。M(-3)=M(-3,ε)=low(0),M(3)=M(3,ε)=low(30),M(0)=M(0,ε)=low(0)であるため、
図7に示されるような観察表が構築できる。
【0037】
次に、この初期的な観察表に対して、以下の条件2を充足するまで、P'の要素をPに移動する。
【0038】
(条件2)各p'∈P'について、p∈Pの行とp'の行が同じ内容であるものが存在する
図7に示された観察表に対して、例えば、P'の要素"-3"をPに移動すると、
図8に示されるように、Pの要素"-3"とP'の要素"0"が同一の"low(0)"を有し、条件2が充足される。
【0039】
次に、
図8に示された観察表に対して、観察表が閉じるまで、すなわち、条件1を充足するまで、P'に入力列を追加する。具体的には、P={-3}であるため、p・σ=(-3,3),(-3,0),(-3,3)がP'に追加される。このとき、M(-3,3)=low(30),M(-3,0)=low(0),M(-3,3)=low(30)であるため、
図9に示されるような観察表が構築される。
【0040】
ここで、観察表が以下の条件3を充足する場合、観察表は「一貫している(consistent)」と言われる。
【0041】
(条件3)各p,p'∈Pと各入力σ∈{-3,0,3}について、pとp'の行の内容が同じである場合、p・σとp'・σの行の内容も同じである
図9に示される観察表では、pは"-3"のみであり、観察表は一貫している。
【0042】
観察表が一貫している場合、以下のようにしてMealy機械としてのオートマトンN1を構築することができる。すなわち、Mealy機械N1の状態を観察表に含まれる行の内容とし、状態間の遷移については、状態sから入力σ∈{-3,0,3}を受け取ったときの遷移は以下のようになる。ただし、p∈Pであり、pの行の内容がsになる。
【0043】
・遷移先:p・σの行の内容
・出力:p・σ行ε列の内容
具体的には、
図9に示される観察表では、状態は"low"のみである。また、状態"low"について、p=-3であり、p・σ=(-3,-3),(-3,0),(-3,3)である。観察表から、(-3,-3)について遷移先及び出力は"low"であり、(-3,0)について遷移先及び出力は"low"であり、(-3,3)について遷移先及び出力は"low"である。従って、集合Pから
図10に示されるようなMealy機械N
1を構築できる。このようにして、学習部110は、ステップS101において、L*アルゴリズムに従って物理情報システムMに近似するオートマトンN
1を生成できる。
[モデル検査]
次に、
図11及び12を参照して、本開示の一実施例によるモデル検査処理を説明する。モデル検査処理は、上述した検証部120によって実行されるステップS102に相当する。すなわち、検証部120は、上述したオートマトン学習処理において生成されたオートマトンN
1と仕様φ
1とに対してモデル検査を実行する。
【0044】
図11は、本開示の一実施例による仕様から変換されたオートマトンを示す図である。ここでは、仕様φ
1として"常にv≦120"が与えられ、検証部120は、仕様φ
1を充足しない入力uの有無を検証する。このため、検証部120は、仕様φ
1の否定形¬φ
1 "いつかv>120"を作成し、更に¬φ
1のオートマトンA
¬φ1を構築する。
【0045】
ここで、仕様からオートマトンへの具体的な変換方法については、例えば、"Linear Temporal Logic and Linear Dynamic Logic on Finite Traces", Giuseppe De Giacomo and Mshe Y. Vardi (https://www.cs.rice.edu/~vardi/papers/ijcai13.pdf)などを参照されたい。
例えば、¬φ
1のオートマトンA
¬φ1は、
図11に示されるような状態遷移図によって表されうる。ここで、初期状態s
0から受理状態s
1に遷移可能である場合、仕様φ
1を充足しなくなる。
【0046】
次に、検証部120は、オートマトンN
1と仕様φ
1の否定形¬φ
1のオートマトンA
¬φ1との積オートマトンN
1||A
¬φ1を構成する。ここで、積オートマトンN
1||A
¬φ1は、N
1の出力をA
¬φ1に与えるオートマトンであり、積オートマトンN
1||A
¬φ1によって受理される入力uは、N
1に入力uを与えた実行結果が仕様φ
1の否定形のオートマトンA
¬φ1によって受理されることを意味し、仕様φ
1を充足しないオートマトンN
1に対する入力(反例)であることを意味する。
図10に示されるオートマトンN
1には、
図12に示されるように、オートマトンA
¬φ1の受理状態s
1への遷移が存在しないため、オートマトンN
1に対する全ての入力uが仕様φ
1を充足することがわかる。
[遺伝的アルゴリズムによる探索]
次に、本開示の一実施例による探索処理を説明する。探索処理は、上述した探索部130によって実行されるステップS103に相当する。すなわち、探索部130は、オートマトンN
1が全ての入力uに対して仕様φ
1を充足した場合、以下のサブステップ1~5に従って、物理情報システムMとオートマトンN
1との相違を示す入力uを探索する。
-遺伝的アルゴリズムによる探索処理の手順
1.入力の集合Uを(ランダムに)生成する
2.各u∈Uについて、M(u)とN
1(u)とを比較する
2A.各u∈Uについて、M(u)=N
1(u)→3に移行する
2B.M(u)≠N
1(u)であるu∈Uが存在する→uをM≠Nの証拠として返す
3.遺伝的アルゴリズムを利用してUからU'を生成する
4.各u'∈U'について、M(u')とN
1(u')との距離O(u')を求める
5.O(u')の降順に所定数個のu'を選択し、選択されたu'によって集合Uを更新し、2に移行する
サブステップ1において、探索部130は、集合Uを生成する。例えば、集合Uは、各要素uの長さが4で、大きさ|U|=3であってもよく、探索部130は、u1=(0,3,-3,0),u2=(-3,0,3,0),u3=(3,0,-3,0)のU={u1,u2,u3}をランダムに生成したと仮定する。
【0047】
サブステップ2において、探索部130は、Uの各要素を物理情報システムMとオートマトンN1とに与え、M(u)とN1(u)を比較する。
【0048】
例えば、u1=(0,3,-3,0)について、M(0)=low(0),M(0,3)=low(30),M(0,3,-3)=low(0),M(0,3,-3,0)=low(0)であり、N1(0)=low,N1(0,3)=low,N1(0,3,-3)=low,N1(0,3,-3,0)=lowであるため、探索部130は、M(u1)=N1(u1)であり、入力u1に対する物理情報システムMとオートマトンN1との挙動は一致すると判定する。
【0049】
次に、u2=(-3,0,3,0)について、M(-3)=low(0),M(-3,0)=low(0),M(-3,0,3)=low(30),M(-3,0,3,0)=low(30)であり、N1(-3)=low,N1(-3,0)=low,N1(-3,0,3)=low,N1(-3,0,3,0)=lowであるため、探索部130は、M(u2)=N1(u2)であり、入力u2に対する物理情報システムMとオートマトンN1との挙動は一致すると判定する。
【0050】
次に、u3=(3,0,-3,0)について、M(3)=low(30),M(3,0)=low(30),M(3,0,-3)=low(0),M(3,0,-3,0)=low(0)であり、N1(3)=low,N1(3,0)=low,N1(3,0,-3)=low,N1(3,0,-3,0)=lowであるため、探索部130は、M(u3)=N1(u3)であり、入力u2に対する物理情報システムMとオートマトンN1との挙動は一致すると判定する。
【0051】
従って、各u∈Uについて、M(u)=N1(u)であるため(2A)、探索部130は、サブステップ3に移行する。
【0052】
サブステップ3において、探索部130は、遺伝的アルゴリズムに従って集合Uから集合U'を生成する。例えば、探索部130は、u1=(0,3,-3,0)に対して突然変異操作を実行し、第4項の"0"を"3"に変更することによってu1'= (0,3,-3,3)を生成してもよい。また、探索部130は、u2=(-3,0,3,0)及びu3=(3,0,-3,0)について、第2項と第3項との間で交叉操作を実行し、u2'=(-3,0,-3,0)及びu3'=(3,0,3,0)を生成してもよい。また、探索部130は、u3=(3,0,-3,0)に対して突然変異操作を実行し、第3項の"-3"を"0"に変更することによってu4'=(3,0,0,0)を生成してもよい。さらに、探索部130は、u1=(0,3,-3,0)をそのまま残し、u5' =(0,3,-3,0)としてもよい。このようにして、探索部130は、U'={u1',u2',u3',u4',u5'}を生成してもよい。しかしながら、遺伝的アルゴリズムによる集合U'の生成は、これに限定されず、遺伝的アルゴリズムの選択操作、ランダムな生成などを含む他の何れか適切な手法に従って実行されてもよい。
【0053】
サブステップ4において、探索部130は、各u'∈U'について、距離O(u')=|M(u')-N(u')|を計算する。
【0054】
例えば、u1'= (0,3,-3,3)について、M(0)=low(0),M(0,3)=low(30),M(0,3,-3)=low(0),M(0,3,-3,3)=low(30)であり、N1(0)=low,N1(0,3)=low,N1(0,3,-3)=low,N1(0,3,-3,3)=lowである。N1の出力"low"からは正確な速度は分からないため、0≦low≦30(km/h)の平均値15(km/h)をlowの速度とする。このとき、M(u')とN(u')との間の距離は各時点での差の絶対位置とすると、|0-15|=15,|30-15|=15,|0-15|=15,|30-15|=15であり、探索部130は、各時点での距離の最大値15をM(u1')とN(u1')との間の距離O(u1')としてもよい。
【0055】
次に、u2'=(-3,0,-3,0)について、M(-3)=low(0),M(-3,0)=low(0),M(-3,0,-3)=low(0),M(-3,0,-3,0)=low(0)であり、|0-15|=15,|0-15|=15,|0-15|=15,|0-15|=15であるため、探索部130は、各時点での距離の最大値15をM(u2')とN(u2')との間の距離O(u2')としてもよい。
【0056】
次に、u3'=(3,0,3,0)について、M(3)=low(30),M(3,0)=low(30),M(3,0,3)=middle(60),M(3,0,3,0)=middle(60)であり、|30-15|=15,|30-15|=15,|60-15|=45,|60-15|=45であるため、探索部130は、各時点での距離の最大値45をM(u3')とN(u3')との間の距離O(u3')としてもよい。
【0057】
次に、u4'=(3,0,0,0)について、M(3)=low(30),M(3,0)=low(30),M(3,0,0)=low(30),M(3,0,0,0)=low(30)であり、|30-15|=15,|30-15|=15,|30-15|=15,|30-15|=15であるため、探索部130は、各時点での距離の最大値15をM(u4')とN(u4')との間の距離O(u4')としてもよい。
【0058】
次に、u5' =(0,3,-3,0)について、M(0)=low(0),M(0,3)=low(30),M(0,3,-3)=low(0),M(0,3,-3,0)=low(0)であり、|0-15|=15,|30-15|=15,|0-15|=15,|0-15|=15であるため、探索部130は、各時点での距離の最大値15をM(u45)とN(u5')との間の距離O(u5')としてもよい。
【0059】
サブステップ5において、探索部130は、距離O(u')の降順に所定数個のu'を選択し、選択されたu'によって集合Uを更新する。ここでは、探索部130は、距離O(u')の大きいものから3個のu'を選択し、例えば、u1',u2',u3'を選択し、集合Uを{u1',u2',u3'}によって更新してもよい。
【0060】
サブステップ2に戻って、探索部130は、Uの各要素を物理情報システムMとオートマトンN1とに与え、M(u)とN1(u)を比較する。
【0061】
例えば、u1'= (0,3,-3,3)について、M(0)=low(0),M(0,3)=low(30),M(0,3,-3)=low(0),M(0,3,-3,3)=low(30)であり、N1(0)=low,N1(0,3)=low,N1(0,3,-3)=low,N1(0,3,-3,3)=lowであるため、探索部130は、M(u1')=N1(u1')であり、入力u1'に対する物理情報システムMとオートマトンN1との挙動は一致すると判定する。
【0062】
次に、u2'=(-3,0,-3,0)について、M(-3)=low(0),M(-3,0)=low(0),M(-3,0,-3)=low(0),M(-3,0,-3,0)=low(0)であり、N1(-3)=low,N1(-3,0)=low,N1(-3,0,-3)=low,N1(-3,0,-3,0)=lowであるため、探索部130は、M(u2')=N1(u2')であり、入力u2'に対する物理情報システムMとオートマトンN1との挙動は一致すると判定する。
【0063】
次に、u3'=(3,0,3,0)について、M(3)=low(30),M(3,0)=low(30),M(3,0,3)=middle(60),M(3,0,3,0)=middle(60)であり、N1(3)=low,N1(3,0)=low,N1(3,0,3)=low,N1(3,0,3,0)=lowであるため、探索部130は、M(u3')≠N1(u3')であり、入力u3'に対する物理情報システムMとオートマトンN1との挙動は一致しないと判定し、サブステップ2Bに移行する。
【0064】
サブステップ2Bにおいて、探索部130は、物理情報システムMとオートマトンN
1との挙動が一致しない反例としてu3'を学習部110にわたす。
[オートマトン再学習]
次に、
図13~24を参照して、本開示の一実施例によるオートマトン再学習処理を説明する。オートマトン再学習処理は、上述した学習部110によって実行されるステップS104に相当する。すなわち、学習部110は、反例u3' =(3,0,3,0)を利用して物理情報システムMに近似するオートマトンN
2を生成する。
【0065】
まず、学習部110は、u3' =(3,0,3,0)から接頭辞(3),(3,0),(3,0,3),(3,0,3,0)を生成し、
図9に示される直近に取得された観察表のP'に挿入する。上述したように、M(3)=low(30),M(3,0)=low(30),M(3,0,3)=middle(60),M(3,0,3,0)=middle(60)であるため、学習部110は、
図13に示されるような観察表を取得することができる。
【0066】
次に、学習部110は、条件2を充足するため、例えば、(3,0,3)=middle(60)と共に、(3,0,3)の接頭辞(3),(3,0)もPに移動し、
図14に示されるような観察表を取得する。
【0067】
次に、学習部110は、観察表が閉じるまで、すなわち、条件1を充足するまで、P'に入力を追加する。具体的には、Pに(3),(3,0),(3,0,3)が追加されたため、p・σ=(3,-3),(3,3),(3,0,-3),(3,0,0),(3,0,3,-3),(3,0,3,3)がP'に追加される。このとき、M(3,-3)=low(0),M(3,3)=middle(60),M(3,0,-3)=low(0),M(3,0,0)=low(30),M(3,0,3,-3)=low(30),M(3,0,3,3)=high(90)であるため、
図15に示されるような観察表が構築される。
【0068】
次に、学習部110は、観察表が条件3を充足するように、Sに文字列を追加する。
図15に示される観察表において、例えば、Pの(-3)と(3,0)との双方とも"low"であるが、P'の(-3,3)と(3,0,3)とはそれぞれ"low"と"middle"であり、一貫していない。Pの(-3)と(3,0)に"3"を追加して(-3,3)と(3,0,3)としたが一貫しなかったため、Sに"3"を追加し、
図16に示されるような観察表を取得する。
【0069】
次に、学習部110は、条件2を充足するため、例えば、(3,0,3,3)=high(120)をPに移動し、
図17に示されるような観察表を取得する。なお、(3,0,3,3)の接頭辞は既にPに含まれている。
【0070】
次に、学習部110は、観察表が閉じるまで、すなわち、条件1を充足するまで、P'に入力を追加する。具体的には、Pに(3,0,3,3)が追加されたため、p・σ=(3,0,3,3,-3),(3,0,3,3,0),(3,0,3,3,3)がP'に追加される。このとき、M(3,0,3,3,-3)=middle(60),M(3,0,3,3,0)=high(90),M(3,0,3,3,3)=high(120)であり、これらにサフィックス"3"をそれぞれ付加したM(3,0,3,3,-3,3)=high(90),M(3,0,3,3,0,3)=high(120),M(3,0,3,3,3,3)=veryhigh(150)であるため、
図18に示されるような観察表が構築される。
【0071】
次に、学習部110は、条件2を充足するため、(3,0,3,3,3)=veryhigh(150)をPに移動し、
図19に示されるような観察表を取得する。なお、(3,0,3,3,3)の接頭辞は既にPに含まれている。
【0072】
次に、学習部110は、観察表が閉じるまで、すなわち、条件1を充足するまで、P'に入力を追加する。具体的には、Pに(3,0,3,3,3)が追加されたため、p・σ=(3,0,3,3,3,-3),(3,0,3,3,3,0),(3,0,3,3,3,3)がP'に追加される。このとき、M(3,0,3,3,3,-3)=high(90),M(3,0,3,3,3,0)=high(120),M(3,0,3,3,3,3)=veryhigh(150)であり、これらにサフィックス"3"をそれぞれ付加したM(3,0,3,3,3,-3,3)=high(120),M(3,0,3,3,3,0,3)=veryhigh(150),M(3,0,3,3,3,3,3)=veryhigh(180)であるため、
図20に示されるような観察表が構築される。
【0073】
次に、学習部110は、条件2を充足するため、(3,0,3,3,3,3)=veryhigh(150)をPに移動し、
図21に示されるような観察表を取得する。なお、(3,0,3,3,3,3)の接頭辞は既にPに含まれている。
【0074】
次に、学習部110は、観察表が閉じるまで、すなわち、条件1を充足するまで、P'に入力を追加する。具体的には、Pに(3,0,3,3,3,3)が追加されたため、p・σ=(3,0,3,3,3,3,-3),(3,0,3,3,3,3,0),(3,0,3,3,3,3,3)がP'に追加される。このとき、M(3,0,3,3,3,3,-3)=high(120),M(3,0,3,3,3,3,0)=veryhigh(150),M(3,0,3,3,3,3,3)=veryhigh(180)であり、これらにサフィックス"3"をそれぞれ付加したM(3,0,3,3,3,3,-3,3)=high(150),M(3,0,3,3,3,3,0,3)=veryhigh(180),M(3,0,3,3,3,3,3,3)=veryhigh(210)であるため、
図22に示されるような観察表が構築される。
【0075】
図22に示される観察表は、閉じていて、かつ、一貫している。従って、学習部110は、集合PからMealy機械N
2を構築できる。
【0076】
例えば、
図23において、集合Pの各要素についてまとめたテーブルが示される。
図23のテーブルを参照して、 "(-3)"に対応する状態(low,low)において、入力"-3"を受け付けると、(-3,-3)に対応する状態(low,low)に遷移し、入力"0"を受け付けると、(-3,0)に対応する状態(low,low)に遷移し、入力"3"を受け付けると、(-3,3)に対応する状態(low,middle)に遷移するため、学習部110は、オートマトンN
2の状態(low,low)に対して、
図24に示されるような遷移を決定する。
【0077】
同様に、(3,0)に対応する状態(low,middle)において、入力"-3"を受け付けると、(3,0,-3)に対応する状態(low,low)に遷移し、入力"0"を受け付けると、(3,0,0)に対応する状態(low,middle)に遷移し、入力"3"を受け付けると、(3,0,3)に対応する状態(middle,high)に遷移するため、学習部110は、オートマトンN
2の状態(low,middle)に対して、
図24に示されるような遷移を決定する。以下同様にして、学習部110は、
図24に示されるようなオートマトンN
2を生成することができる。
【0078】
学習部110は、再学習したオートマトンN2を検証部120にわたし、検証部120は、オートマトンN2と仕様φ1とに対してモデル検査を実行する。
【0079】
検証部120は、ステップS102において、オートマトンN
1に関して上述したモデル検証と同様に、オートマトンN
2と仕様φ
1の否定形¬φ
1との積オートマトンN
2||¬φ
1を構築し、
図25に示されるような状態遷移図を取得する。なお、
図25に示される状態遷移図では、到達不能な状態は省略している。検証部120は、N
2||¬φ
1において受理状態s
1に到達する入力u、すなわち、オートマトンN
2からの出力が仕様φ
1を充足しない入力uが存在するか判定する。図示された状態遷移図から理解されるように、入力u=(3,3,3,3,3)は、初期状態"low,low,s
0"から受理状態"veryhigh,veryhigh,s
1"に到達可能であり、オートマトンN
2にu=(3,3,3,3,3)を与えた場合、オートマトンN
2は仕様φ
1を充足しないことが分かる。従って、
図4に示されるオートマトン生成処理は、ステップS105に移行し、物理情報システムMへの入力uが仕様φ
1の反例になるか判定する。
[反例判定]
次に、本開示の一実施例による反例判定処理を説明する。反例判定処理は、上述した検証部120によって実行されるステップS105に相当する。
【0080】
検証部120は、物理情報システムMに入力u=(3,3,3,3,3)を入力する。M(3,3,3,3,3)=veryhigh(150)であるため、検証部120は、入力uは仕様φ1"常にv≦120"を充足しないと判断し、入力uを仕様φ1に対する物理情報システムMの反例として決定する。
【0081】
他方、ステップS102において仕様φ1に対するオートマトンN2の反例として提供された入力uが物理情報システムMの反例でないと判定された場合、オートマトンN2は物理情報システムMを十分に近似してないと判断され、オートマトン生成処理は、ステップS106に移行し、ステップS104に関して上述したオートマトン再学習処理と同様に、当該入力uを利用してオートマトンN2を再学習する。
【0082】
S103において物理情報システムMに十分近似したオートマトンNが取得され、物理情報システムMが全ての入力uに対して仕様φを充足すると判定されるまで、あるいは、S105において物理情報システムMに十分近似したオートマトンNが取得され、当該オートマトンNから取得された入力uが仕様φに対する物理情報システムMの反例であると判定されるまで、上述したステップS101~S106が繰り返される。上述したオートマトン生成処理によって、反例の有無を判断できると共に、物理情報システムMに十分近似したオートマトンNを取得することができる。
[オートマトンの再利用]
次に、
図26及び27を参照して、本開示の一実施例による取得済みのオートマトンを利用したモデル検証処理を説明する。本実施例では、上述したオートマトン生成処理によって物理情報システムMに十分近似したオートマトンNを再利用して、異なる仕様φ
2に対する物理情報システムMの反例判定処理を説明する。本実施例では、仕様φ
2"v>60である場合、20秒以内はv>30を常に維持する"に対して物理情報システムMの反例の有無を判定する。
【0083】
検証部120はまず、仕様φ
1に対するモデル検証処理と同様に、仕様φ
2の否定形¬φ
2"v>60であって、かつ、20秒以内にv≦30になる」を表現するオートマトンA
¬φ2を構築する。例えば、検証部120は、
図26に示されるようなオートマトンA
¬φ2を構築することができる。ここで、受理状態に到達した場合、仕様φ
2は充足されない。
【0084】
次に、検証部120は、オートマトンNとオートマトンA
¬φ2との積N||A
¬φ2を構築し、当該オートマトンN||A
¬φ2において、初期状態から受理状態に到達可能な入力uの有無を判断する。例えば、オートマトンN||A
¬φ2が
図26に示されるような状態遷移図によって表現される場合(ただし、到達不能な状態は省略されている)、検証部120は、入力u=(3,3,3,-3,-3)が初期状態(low,low,s
0)から受理状態(low,middle,s
3)に到達可能であると判断し、入力uが仕様φ
2に対するオートマトンNの反例であると決定する。そして、検証部120は、入力u=(3,3,3,-3,-3)を物理情報システムMに入力し、各時点の速度が(30,60,90,60,30)であるため、v=90から20秒以内にv>30でないことを確認でき、入力uが仕様φ
2に対する物理情報システムMの反例であると判断する。
【0085】
このようにして、仕様を検証する際に他の仕様に対して以前に取得したオートマトンNを再利用することが可能であり、効率的に様々な仕様を検証することができる。
【0086】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0087】
100 オートマトン生成装置
110 学習部
120 検証部
130 探索部