for AI

Lecture 5 of Artificial Intelligence
Production System
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/1
Topics of this lecture
•
•
•
•
•
•
•
•
Production system
Inference engine
Working memory
Knowledge base
Pattern matching
Conflict resolution
Forward inference
Back inference
•
•
•
•
•
•
•
•
プロダクションシステム
推論エンジン
作業メモリ(短期メモリ)
知識ベース(長期メモリ)
パターン照合
競合解消
前向き推論
後ろ向き推論
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/2
Production system
• Production system (or
production rule system) was
proposed by Allen Newell in
1973.
• A production system typically
contains three parts
– Inference engine.
– Knowledge base (Long-term
memory), and
– Working memory (Short-term
memory).
Inference Engine
Knowledge base
Working memory
プロダクションシステムは生産システムではないよ!
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/3
作業メモリ(short-term memory)
• The working memory is
Example:
also called short-term
– D1: 太郎は体毛を持つ
memory.
– D2: 太郎は鋭い歯を持つ
– D3: 太郎は鋭い爪を持つ
• It contains the observed
– D4: 太郎の体の色は黄褐
data for making a decision,
色である
and intermediate data
– D5: 太郎は黒い斑点を持つ
produced by the inference
engine.
A child is often considered as
“clever” if he/she has a good
short memory capability.
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/4
知識ベースの例
• R4
• R1
– If(xは体毛を持つ)
– Then(xは哺乳動物である)
• R2
– If(xは授乳する)
– Then(xは哺乳動物である)
• R3
– if(xは飛ぶ)
– (xは卵を産む)
– Then(xは鳥類である)
– If(Xは翼を持つ)
– (Xはペンギンでない)
– Then(Xは飛ぶ)
• R5
– if(Xは哺乳動物である)
– (Xは肉を食べる)
– Then(Xは肉食動物である)
ある条件が満たされるなら、その結論を
新しい事実として確認され、それを作業
メモリに追加する.
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/5
知識ベースの例(続き)
• R6
–
–
–
–
• R8
If(Xは哺乳動物である)
(Xは鋭い歯を持つ)
(Xは鋭い爪を持つ)
Then(Xは肉食動物である)
• R7
–
–
–
–
If(Xは肉食動物である)
(Xの体の色は黄褐色である)
(Xは黒いしまを持つ)
Then(Xはトラである)
• R9
– if(Xは哺乳動物である)
– (Xはひずめを持つ)
– Then(Xは有蹄動物である)
–
–
–
–
If(Xは肉食動物である)
(Xの体の色は黄褐色である)
(Xは黒い斑点を持つ)
Then(Xはチータである)
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/6
知識の定義
• 一般的に、ルールは以下のように構成される:
– ルール名
– If (条件部)
– Then (実行部)
• 実行内容として、作業メモリに新しいデータを「追加
する」、いらないデータを「削除する」、などがある.
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/7
推論エンジン(Inference engine)
• 推論エンジンは、作業メモリのデータと知識ベースのルール
を基に、一つの結論を導く.
• 前向き推論:新しい事実が観測されたときに、事実に最も合
う結論を求める.
• 後ろ向き推論:仮設を先に立てて、その仮設が事実に合って
いるかどうかを証明する.
– 観測に対して事前知識があれば、後ろ推論は速いかも知れない.
• 推論は探索問題である。
– 前向き推論の場合、作業メモリの初期状態は探索のスタート地点で
ある。状態遷移の方法と、最終状態の確認方法は重要である。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/8
前向き推論の過程
• Step 1: パターン照合(pattern matching)
– 作業メモリ内のデータに満たす条件部を持つ全てのルールの集合を
求める.
– この集合のことを「競合集合」という.
• Step 2: 競合解消(conflict resolution)
– 競合集合からある基準に基づき、特定のルールを一つ選択する.
• Step 3: 実行(Action)
– 選択されたルールの実行部を実行し、作業メモリを更新する.
• Step 4: 終了判別(Terminating criterion)
– 実行の結果として、納得のできる結論が得ていれば、終了;
– そうではなければ、Step 1へ.
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/9
前向き推論の例
• 第一回目の推論
– パターン照合R1
– 競合解消:いらない
– 実行:「太郎が哺乳動物であ
る」ことを新しいデータとして
作業メモリに追加し、データ
名はD6
– この結論に納得する?
• Yes: 終わり
• No:第2回目の推論へ
•
•
•
•
•
D1: 太郎は体毛を持つ
D2: 太郎は鋭い歯を持つ
D3: 太郎は鋭い爪を持つ
D4: 太郎の体の色は黄褐色である
D5: 太郎は黒い斑点を持つ
•
•
•
•
•
•
D1: 太郎は体毛を持つ
D2: 太郎は鋭い歯を持つ
D3: 太郎は鋭い爪を持つ
D4: 太郎の体の色は黄褐色である
D5: 太郎は黒い斑点を持つ
D6: 太郎が哺乳動物である
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/10
前向き推論の例
• 第2回目の推論
– パターン照合R1, R6
– 競合解消: R1が使用された
ので、R6を使う
– R6を実行し、「太郎が肉食動
物である」を新しいデータとし
て作業メモリに追加する
– 以上の結論に納得する?
• Yes: 終わり
• No: 推論を続く
•
•
•
•
•
•
D1: 太郎は体毛を持つ
D2: 太郎は鋭い歯を持つ
D3: 太郎は鋭い爪を持つ
D4: 太郎の体の色は黄褐色である
D5: 太郎は黒い斑点を持つ
D6: 太郎が哺乳動物である
•
•
•
•
•
•
•
D1: 太郎は体毛を持つ
D2: 太郎は鋭い歯を持つ
D3: 太郎は鋭い爪を持つ
D4: 太郎の体の色は黄褐色である
D5: 太郎は黒い斑点を持つ
D6: 太郎が哺乳動物である
D7: 太郎が肉食動物である
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/11
前向き推論の例
• 第3回目の推論
– パターン照合R1, R6, R9
– 競合解消:R9
– R9を実行し、「太郎がチータ
である」を新しいデータとして
作業メモリに追加する
– 納得する?
• Yes: 終わり
• No: 推論を続く
この例では、これ以上の推論を
するためのルールとデータはな
いので、ここで終わり。
•
•
•
•
•
•
•
D1: 太郎は体毛を持つ
D2: 太郎は鋭い歯を持つ
D3: 太郎は鋭い爪を持つ
D4: 太郎の体の色は黄褐色である
D5: 太郎は黒い斑点を持つ
D6: 太郎が哺乳動物である
D7: 太郎が肉食動物である
•
•
•
•
•
•
•
•
D1: 太郎は体毛を持つ
D2: 太郎は鋭い歯を持つ
D3: 太郎は鋭い爪を持つ
D4: 太郎の体の色は黄褐色である
D5: 太郎は黒い斑点を持つ
D6: 太郎が哺乳動物である
D7: 太郎が肉食動物である
D8: 太郎がチータである
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/12
解決すべき問題点
• パターンマッチングのコスト
をどう削減するか?
– 作業メモリにあるデータの
数:n
– 知識ベースにあるルールの
数:m
– 一回の推論に必要とされる
照合の数:n x m
• 競合が発生した場合、それ
をどう解消すれば、最も適
切な結論にたどり着くことが
できるのか?
ルールの重要度
条件部の詳細度
ルールの使用時刻
同じルールをできるだけ使用
しない
– データの生成時刻
–
–
–
–
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/13
LEX戦略(Lexicographic sort)
1.
2.
3.
4.
既に実行したルールを競合集合から削除する.
より新しいデータにマッチするルールを選択する.
条件部の詳細度が大きいルールを選択する.
任意のルールを選択する.
これらの戦略も、heuristic
であり、推論(探索)を効率
化することができる。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/14
AND/OR 木
• 後ろ向き推論を行うた
めに、AND/OR木が使
用される.
• AND/OR木において、
2種類の節点がある
– AND節点(円弧のある
もの):全ての分岐が同
時に成立する.
– OR節点:分岐の中で
一つ成立すればよい.
文
主語
代名詞
述語
名詞句
冠詞
動詞
名詞
名詞句
冠詞
名詞
Ex1: The man made a desk
Ex2: She reads a book
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/15
例題
• 下のデータとチータに対応するAND/OR木を利用して、
いま観測した動物がチータであることを証明せよ。
•
•
•
•
•
D1: 太郎は体毛を持つ
D2: 太郎は鋭い歯を持つ
D3: 太郎は鋭い爪を持つ
D4: 太郎の体の色は黄褐色である
D5: 太郎は黒い斑点を持つ
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/16
後ろ向き推論に使うAND/OR木
太郎がチータである
R9
太郎が肉食動物である
太郎が R5 の
太郎が R6 の
条件を満たす
条件を満たす
太郎が黒い
太郎の体の
斑点を持つ
色は黄褐色
である
R6
R5
太郎が哺乳 太郎が肉を 太郎が哺乳 太郎が鋭い 太郎が鋭い
類である
食べる
類である
歯を持つ
爪を持つ
R1
太郎は体毛
を持つ
R1
太郎は体毛
を持つ
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/17
後ろ向き推論の過程
Logic Verify_Node(Pnode n)
• Step 1: Set the root node of the AND/OR tree as
the current node n.
• Step 2: For the current node n,
– if n is a leaf, search in the working memory for the
datum which can match the given condition. Return
True if such a datum exists; return False otherwise.
– If n is an internal node, call Verify_Node for each
child node recursively,
• Return the AND of all results if n is an AND node.
• Return the OR of all results if n is an OR node.
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/18
プロダクションシステムの特長
• 整理されていない知識が利用できる
– 推論は作業メモリのデータに適応してルールを選択して
いるので、知識ベースにあるルールの順番、ルール間の
関係などを考慮する必要はない.
• 知識ベースの更新が簡単
– ルールは互いに独立であり、他のルールを直接に利用し
たり、呼び出したりはしないので、知識ベースの追加、修
正、削除などが自由に行える.
真実あるいは真実から導いた結論
などをあつめるだけでよい!
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/19
プロダクションシステムの問題点
• ルール間の関係は不明確。
• 体系的な知識になっていない。
• 推論の効率が悪い。
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/20
今週の課題 (1)
• LEX戦略による前向き推論を行う.
• 競合集合、選ばれたルール、得られたデータを各サイク
ルごと、スライド中の例のように示せ.
• 演習中にTAに回答を提出すること.
• 類似問題が中間試験に出るので、今のうち、前向き推
論をマスターしよう。
• Working memoryの初期値は以下とする
–
–
–
–
D1:
D2:
D3:
D4:
太郎は体毛を持つ
太郎は肉を食べる
太郎の体の色は黄褐色である
太郎は黒い斑点を持つ
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/21
今週の課題 (2)
• スケルトンをもとに、LEX戦略に基づく前向き
推論のプログラムを実装せよ.
• 入力として、スライドP.5-6, 10-12のデータと
ルールを使用し、実行結果を確認せよ.
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/22
今週のクイズ
•
プロダクションシステムの3つの構成部分は何?
•
知識の一般的定義を与えよ。
•
•
LEX戦略の物理的意味はなに?
•
“The man made a desk”に対応するAND/OR木を書け。
前向き推論とはなに?
Produced by Qiangfu Zhao (Since 2008), All rights reserved ©
AI Lec05/23