研究上の成果
ALP処理系の性質
今回開発した「ALP処理系(Prolog 版)」の特徴としては以下の点が挙げられる。 扱うプログラムのクラスの広さ 一つの処理系で扱えるプログラムのクラスが過去に提案されたいかなる手続き よりも広い。最も一般的なクラスである、 「アブダクティブ選言付き拡張プログラム(abductive extended disjunctive program)」においては、失敗による否定(NAF)と アブダクションのための仮定可能リテラルを扱えること以外に、 従来の論理プログラムにはない、論理否定(classical negation)と ヘッドの選言(disjunction)が記述可能である。すなわち各ルールは、
と表すことができる( は正または負のリテラルであり
仮定可能リテラルであってもよい)。
さらに各ルールは値域限定性の条件の下で変数を含んでいてもよい。
不動点意味論に基づくボトムアップ計算
MGTPにおける分岐計算のためのプログラム変換の正当性(健全性と完全性)は、
Inoue and Sakamaによる不動点意味論 [1]により保証されている。
モジュラ変換 ALP処理系の「一階述語コンパイラ」では、ALPの各ルールに対して、 一つずつMGTP節に変換する。すなわち、変換方式はモジュラ(modular)である。 これより、プログラムサイズの線形オーダーの時間で変換が可能であり、 変換によるオーバーヘッドが極めて少ない。
ALP処理系の性能評価
まずALP処理系を、アブダクションの例題である論理回路設計問題で評価したところ、 これに関しては所望の結果を得ることができた。 次に、NAFの処理速度を評価するために、 最近提案されたベンチマーク問題やグラフ理論のNP完全問題に適用した。 また処理系に最適化を加える前後の結果と、 海外で提案されている他の方式を比較した。
この結果の一部を表1に示す。 このプログラムは安定モデルを持たない例であり、 時間は安定モデルを持たないことがわかるまでの時間である。 表中のConstantsはエルブラン領域の要素の数である。
s(X) <- p(X), q(X). s(X) <- p(X), r(X). s(X) <- q(X), r(X). p(X) <- not q(X). q(X) <- not r(X). r(X) <- not p(X).
比較対象システムは以下の通りである。いずれもアブダクション機能は持たない。 NLPとDLではヘッドの選言も扱えない。DLはReiterのデフォルト論理が扱える。
DeRes | Cholewinski, Marek,Mikitiuk, and Truszczynski, 1995 | 命題DL |
Smodels | Niemela and Simons, 1995 | 命題NLP |
SLG | Chen and Thone, 1994 | 一階NLP |
Dislog | Seipel and Thone, 1994 | 一階NDP |
ALP(改良前と改良後)の実行時間は、MGTPの戦略IIを用いた時間であり、 これは3つの戦略の中でもっとも高速であった時間である。 改良前ではMGTPでの分岐数が爆発し計算が1時間以内に終了しない(*印)のに対し、 改良後では安定モデルを持つかどうかを判定するのに時間がほとんどかかっていない。 これは、最適化においてNAFについて導入した負節が有効であったためである。 また、他のシステムと比較してもまったく遜色が見られない。
ソフトウェアとしての成果
ソフトウェア構成の概要
ALP処理系のプログラム構成を図1に示す。 ALP処理系は、ALPからMGTPの入力節への変換器である「一階述語コンパイラ」、 推論エンジンとなるモデル生成型定理証明器MGTP、そしてMGTPの出力を処理系の 枠組に変換するモジュールから構成される。 このモジュールでは、安定モデルや信念モデルの処理に対するものと、 問合せや観測への解代入や説明計算の処理に対するものの2つを用意した。
ソフトウェアの特長
ALP処理系では、ALPの信念集合をボトムアップに計算するほか、 ALPに対する質問応答が可能であり、 与えられた質問に対して条件となる仮説(すなわち説明)を付けて解を返す 「アブダクション機能」を有する。その他の機能もかなり豊富である。 以下に機能をまとめる。
残された課題
今回実現したALP処理系では、安定モデル計算の効率化のための各種の最適化を 行っている。これにより、計算時間の短縮からもかなりの効率化が認められた。 とくにDislogやDeReSなど汎用性のあるシステムと比較すると、 かなり良好な結果が得られた。 しかし、その他の専用システム、特にSmodelsやSLGでは、 いくつかの例題において本ALP処理系よりもまだかなり速い結果を出している。 よって、NAFの処理においてさらなる効率化が必要である。
またアブダクションの計算における効率化では、「太田・井上・長谷川・中島」 による、枝刈りルールによる効率化が提案されている。 しかしこの方法はAbductive Horn Programに対するものであり、 NAFの入ったプログラムについては考慮されていない。 よってALPに対する枝刈りルールの整備も課題である。
また本システムの推論エンジンであるMGTPのさらなる効率化の必要性も感じられた。
なお本研究は2年計画のものであり、2年目の計画として予定しているテーマとして、 状態変化が記述・推論できるアクション言語の処理系の開発も残されている。 ALP処理系の機能をフルに発揮させるためにも、アクション言語への応用は必須である。
成果についての自己評価
ALPに対する一階述語コンパイラの変換方式の理論的正当性については 保証されていたので、今回それを素直にインプリメントした。 そして今年度の研究目標であった「ALPのProlog処理系」が無事実現され、 豊富な機能を有し、正しく動作するものが出来た。しかし、1995年以降発表され 始めた海外の他のシステムとの比較に至って、論文通りの実現だけでは限界を感じた。 そこで当初予定よりも大幅に評価・改良に時間を費やすことになった。 その結果には概ね満足している。まだ一部の問題で本ALP処理系のサブシステム よりも速いものがある以上、改良をさらに続ける必要があると思っている。 MGTP本体もまだ改良の余地は多い。