Show page source of FrontPage #72201

= はじめに =

== 概要 ==

プロダクションシステムとは、人工知能の世界で出てくる前向き推論システムのことです。

現代の言葉で言うならば一種のキーバリュー形式のデータベースと言えなくもないですが、それだけではなくマッチングを使った推論機構を内部に搭載し、演繹的な考え方に基づき新しい考えうるあらゆるデータを自動で作りだす能力を持っているのが特徴的です。

本プロダクションシステムは、C/C++ を使った実装です。

主な特徴は、ライブラリ形式での提供を主体とするところです。C/C++ の特徴を生かし、独自の拡張をサポートしています。

OPS5 の構文を模倣したソースを入力として、コマンドラインでの推論結果の表示ができる処理系の提供も行います。

しかし、その処理系はあくまで本ライブラリを使った1アプリケーションにしか過ぎません。

ライブラリとして利用したときに真価を発揮できます。

----

== 前向き推論系の処理系 ==

人工知能関連の教科書的には良く出てくるプロダクションシステムですが、実際に利用できる実装系はそうありません。

[http://en.wikipedia.org/wiki/OPS5 OPS5] という実装系が非常に有名で、書籍などでは繰り返し名前が出てきますが、その実装系に触る機会を得ることは難しいです。

本開発者も実際の処理系を触ったことはなく、書籍で情報を得るに留まっています。

もしくはフリーソフトウェアとして以下の実装系が提供されています。

 * [http://www.vector.co.jp/soft/dos/prog/se023100.html mini-OPS5]

上記の実装系は、1986 ~ 1990 年に福岡工業大学で実装されたものだそうです。

実装言語は PASCAL です。マニュアルも整備されており、ソースコードも公開されています。

[http://www.vector.co.jp/soft/dos/prog/se023100.html mini-OPS5] と本プロダクションシステムとの違いは、以下の通りです。

||処理系||mini-OPS5||TOPS||
||提供主体||処理系||拡張可能なライブラリ||
||実装言語||PASCAL||C/C++||
||OPS5 準拠||準拠||簡易,未準拠||

本プロダクションシステムは、まだ簡易実装でしかありません。

一番大きな違いは、プロダクションルールが適応されたときに実行可能なアクションの違いです。

ただし、拡張可能なライブラリであるという特徴から、これらを補うことは可能です。

また、本ライブラリ自体に標準の機能は随時開発していこうと思っています。

----

== トピック ==

 * [wiki:howto/install インストール]
 * [wiki:howto/use 使い方]

----

== 備考 ==

 * 本プロダクションシステムの前身。
   * [http://www.ownway.info/Home/cpp/ps/ SmallOPS]

 * 利用事例
   * [http://www.ownway.info/Blog/2011/09/post-9.html 数独をプロダクション・システムで解いてみた。 -  自分の歩いた道に落ちてるコード]