内容要旨 | | 問題解決システムの高機能化と高速化という相反する2つの要請に対して,従来から多くの研究が行われ,さまざまな手法が提案されてきたが,未だ実世界の問題が取り扱えるほどには技術が成熟していない.実世界の問題を扱うには,複数のことを同時に考え,それらの違いを検討することによって判断を下すことができるような機能が不可欠である.このような機能は「多重文脈型問題解決」と呼ばれ,人工知能研究ではエキスパートシステム,制約充足問題の解法,あるいは,非単調推論などのための次世代の要素技術として重要性が認識されている.一般に問題解決のための推論管理は真偽維持システムで行われ,多重文脈型問題解決では単一文脈型真偽維持システムを用いるよりも多重文脈型真偽維持システムを用いる方が効率がよい.例えば,電磁モータの定性シミューションでは,単一文脈型真偽維持システムの下では完全な挙動解析はできなかったのが,多重文脈型真偽維持システムの下ではコイル1個の場合の完全な挙動解析はできるようになった.しかし,2個以上の場合にはまだ完全な挙動解析はできていない.従って,多重文脈型真偽維持システムの高速化は,応用分野を拡大するために不可欠な課題である.本論文では,多重文脈型真偽維持システムを取り上げ,その高速化を検討する. 真偽維持システムは,推論過程を表現する「正当化」としてホーン節と一般節のどちらが許されるのか,および,単一文脈と多重文脈のどちらが許されるのかによって4種類に分類される.本論文では,多重文脈型真偽維持システムであるATMS(仮定に基づいた真偽維持システム)とCMS(項管理システム)の高速化を研究課題として設定した.具体的には,この研究課題をATMSの逐次処理の高速化と並列処理による高速化,および,ATMSとCMSの二分決定グラフ(BDD)を利用した高速化という2つの項目にプレークダウンをして,研究を進めた. 第1部では,ATMSの高速化に取り組む.まず,第2章で,ATMSの逐次処理の高速化のために新しい処理系「網」を提案した.網処理系では,ATMSを正当化のネットワークで構成することにより,ラベル更新要求を正当化ノードごとに管理することができ,その結果,更新スケジューリングを行うことが可能となった.特に,矛盾関係を表現するnogoodの優先的な処理と重複更新要求の削除により,高速化が達成できた.網処理系の評価を通じて,それが逐次処理としてはほぼ最適な処理系であることが判明した.さらに,網処理系の静的および動的な特性を解析し,さらなる高速化には,共有メモリ型マルチプロセッサが適していることを指摘した. 次に,第3章ではATMSの並列処理の予備実験として,ATMSとその動的な振る舞いがよく似たプロダクションシステムOPS5を取り上げ,その並列処理を並列Lisp言語QLispで取り組んだ.OPS5の並列処理は,従来処理全体の90%を占める照合段階しか行われていなかったが,それではたかだか1桁程度の高速化しか達成できない.本論文では,実行時並列度制御方式,並びに,大域的データへの単一書き込み複数読み出しのreader/writerロック,先行実行を活用して,OPS5の全実行過程で並列処理を追求する枠組みを提案し,その有効性を確認した. 第5章では,第4章で得られたOPS5のQLispによる並列処理での知見を基にして,ATMSの並列処理に取り組んだ.まず,ATMSの逐次処理でのより詳細な動的特性を解析し,並列アルゴリズム「並列網」を設計した.並列網では,網で導入した正当化ノードを並列処理単位とし,さらに,全タスクを階層的に分解し,並列単位の粗いものから細かいものまであらゆる階層で並列処理を追求した.ATMSコマンドの処理時間のばらつきが大きいので,このようなタスクの分割によって,プロセッサ使用率の向上をねらった.また,並列処理単位は,プログラム時に固定するのではなく,実行時に決定する実行時並列度制御方式をとった.この並列処理単位の制御はQLispの制御構文を使用することによって容易にコーディングできた.また,ベンチマークで並列網による効率の向上を確認した. 第6章では,第4章と第5章で取り組んだOPS5とATMSの並列処理での知見をまとめ,他のAIシステムの並列化にも活用することをねらって並列人工知能プログラミング方法論を論じた.OPS5やATMSでは,数値計算とは異なり,計算時間のかかる部分が分散しているので並列処理の源を同定することが難しいという問題や,大域的データが頻繁にアクセスされるという問題がある.また,アルゴリズムが逐次処理を前提として書かれており,実行順序を変更すると正しい答えが得られないという問題もある.このようなシステムに対しては,大規模な並列度を見つけることが困難であり,また,数十台規模の並列度しか有していないので,並列化には共有メモリ型マルチプロセッサが適している.さらに,上記の問題を克服するためには,階層的な処理の分割と実行時並列度制御方式とreader/writerロック,および,先行実行を提案し,全実行過程での並列処理を通じて高速化を達成する方法論の糸口がつかめた. 第2部では,ブール関数の効率的な表現法である二分決定グラフ(BDD)を用い,多重文脈型真偽維持システムの高速化に取り組んだ.この研究のアイデアは,主項の列挙を行わず,BDDにより非明示的に論理式を処理することである.そのための研究課題として,3つの課題を設定した.すなわち,既存システムとのインターフェースの設計,BDDのサイズを最小にする変数順序を求める手法の確立,および,BDDの最大ノード数を最小にする制約条件順序を求める手法の確立である.1番目の課題は,人工知能システムのためのコンパクトな表現方法としてBDDを「plug-and-play」として使用するために必要である.2番目の課題は,BDD研究に共通するよく知られた課題である.最後の課題は,組合せ的爆発を避けるために必要であるが,従来の研究では指摘されてこなかったものである. 第8章では,論理式で与えられた制約条件の相互関係から,最適制約順序を求めるヒューリスティクスCCVOを提案した.さらに,制約順序が決まれば,それから変数順序が決まることも示した.BDDで組合せ問題の全解を同時に求める問題を対象として,CCVOによる制約順序と変数順序が最適であることを確認した.また,最大ノード数が大き過ぎて計算ができない場合には,オンライン型分割統治法を使用する解法も検討し,その分割ヒューリスティクスを提案した.CCVOとオンライン型分割統治法によって,従来解けなかったような問題がBDDで解けるようになり,より大規模な問題の全解を同時に表現する1つの手法が確立できた. 第9章では,BDDに基づいた多重文脈型真偽維持システムの処理系BMTMSを提案した.従来の枠組みでは,処理の完全性を達成するために主項の列挙が不可欠であった.それに対して,BMTMSの設計での重要なアイデアは,主項を非明示的に扱うことによって,主項の列挙を極力排除した点にある.実際,TMSの演算はほぼすべてBDDで扱うことができ,主項の列挙を実質的に避けることができた.この結果,従来のCMSやATMSでは時間的あるいは空間的に処理できなかったような問題がBMTMSでは扱えるようになり,知的システムの応用範囲が拡大できた.さらに,BMTMSは,従来の多重文脈型真偽維持システムとのインターフェースも考慮して設計してあるので,ATMSやその拡張,あるいは,CMSを使用した既存の応用もインターフェースを変更することなく組み込むことができるようになっている. 第10章では,制約充足問題の解法という立場からBDDとゼロサプレス型BDD(ZBDD)をとらえ,それらによる解法を提案した.従来,ATMSでは扱える論理式が命題ホーン節に限定されるためにコーディング技法とメタルールが必要であったが,BDDやZBDDではそのようなものは一切不要である.さらに,ZBDDで制約充足問題を解く時に重要な役割を果たす組合せ集合演算として制限演算と除外演算という新たな演算を導入し,その高速処理アルゴリズムを提案するとともにその演算体系を明らかにした.特に,演算体系から制限演算や除外演算を分解することができるので,問題が簡潔に表現できるだけでなく,さらなる高速化が達成できた.これにより,全解のコンパクトな表現方法であるBDDあるいはZBDDの応用分野が多重文脈型真偽維持システムだけでなく,さらに拡大するものと期待される. 本論文で扱った多重文脈型真偽維持システムはさまざまな応用分野がある.直接的な応用は多重文脈型真偽維持システムの高速化による,応用システムの高速化であり,それを通じてより高度なAIシステムが実用に供せられるようになろう.定性推論あるいは定性シミュレーションによる物理デバイスの挙動解析では,扱える論理の限界あるいは実行効率の悪さから,大規模な解析を行うことができなかった.本論文での手法により従来よりもより規模の大きな問題が扱える糸口がつかめたと考える.また,本論文では多重文脈型真偽維持システムの高速化を論じてきたが,その副産物として人工知能研究,コンピュータサイエンス研究に新しいアプローチを提示することができたと考える. |