Transcript Document

認知システム論 知識と推論(6)
知識と論理で問題を解決する
自動定理証明と応用
(automated theorem proving and its
application)
代入, 単一化,融合
自動定理証明と質問
応答システム
代入,単一化,融合
(substitution, unification, and resolution)
代入,単一化,融合の概要
ソクラテスは人間である
HUMAN (Socrates)
人間は死ぬ運命にある
HUMAN ( x)  MORTAL( x)
単一化
代入
   x Socrates
HUMAN ( Socrates)  MORTAL(Socrates )
融合
MORTAL (Socrates) ソクラテスは死ぬ運命にある
代入(1/4)
代入   {x1 s1 , x2 s2 ,
, xn sn }
変数 xi (i  1,2,, n) を項 si に同時に置き換えること
を表す
例
  {x a , y g ( z )}
x
y
a
g(z)
代入(2/4)
代入の(項 t への)適用
 (t )
項 t 内のすべての変数に対して,σで指定された置き
換えを同時に一回のみ行った結果を表す
例
  {x a , y g ( z )}
t  g ( x, f (c, x, y ), z )
x
y
a
g(z)
 (t )  g (a, f (c, a, g ( z)), z)
代入(3/4)
代入σは,項の集合T からTへの関数
σ: T → T
とみなすことができる
  {x a , y g ( z )}
 ( f ( x, y))  f (a, g ( z))
代入の合成 1  2
(1  2 )(t )  1 ( 2 (t ))
代入(4/4)
g ( x, y )
  {x y}
      {x b , y b}
g ( y, y )
  { y b}
g (b, b)
代入の一般性
代入σは,代入σ’ より一般的である(more general)
ある代入τに対し,
   
単一化 (1/7)
単一化
2つの項 s , t に対し,ある代入  が存在して
 ( s )   (t )
とできるとき,
 を s , t の単一化子(unifier)といい,
s , t は単一化可能(unifiable)であるという.
最汎単一化子(most general unifier: mgu)
単一化子のうち,最も”一般的”なもの.
単一化(2/7)
例
f ( h ( y ), z )
f ( x , g ( x ))
mguではない
   {x h(a ) ,
単一化
y a,
z g ( h ( a ))}
mgu
  {x h( y) ,
f ( h ( a ), g ( h ( a )))
z g ( h ( y ))}
  { y a}
f ( h ( y ), g ( h ( y )))
単一化 (3/7)
単一化アルゴリズム
【入力】 項 s,t
【出力】 項 s,t が単一化可能ならばmguを出力.
単一化可能でなければ「失敗」を出力.
【手順】 関数記号を解釈しない方程式 s = t を変形し,
x = t の形の方程式を導出して,代入を構成する.
s
t
f ( x , g ( x ))  f ( h ( y ), z )
方程式
解
 x  h( y)
 
 z  g ( h ( y ))
単一化 (4/7)
x は変数,t は項を表す
Step1. 連立方程式 { s  t } に対し,つぎの操作を任意に繰り返し適用
して変形する.定数は引数 0 個の関数記号とみなす.
(1) f ( s1 ,
(2) f ( s1 ,
, s n )  f ( t1 ,
, s n )  g ( t1 ,
, t n ) ⇒ s1  t1 ,
, tm )
(3) t  x ⇒ x  t
(4) x  x ⇒ (取り除く)
, sn  tn
( f  g ; n , m  0) ⇒ 失敗
出現検査
例: x = f(x)
(5A) x  t ( t  x , x が t の中に出現)
⇒ 失敗
(5B) x  t ( x が t に現れていない, x が他の方程式に出現)
⇒ 他の方程式に代入  x t  を適用
単一化 (5/7)
Step2. Step1 のどの操作も適用できなくなったとき,連立方程式は
{ x1  u 1 ,
, x n  u n } の形になっている.このとき s , t は単一化可能で,
  { x1 u1 ,
が mgu である.
, xn u n }
単一化 (6/7)
例
f ( x , g ( x )) と f ( h ( y ), z ) の単一化.
f ( x , g ( x ))  f ( h ( y ), z )
 x  h( y)

 g (x)  z
 x  h( y)

 z  g (x)
 x  h( y)

 z  g ( h ( y ))
  { x h ( y ) , z g ( h ( y ))}
単一化 (7/7)
例
P(a, x), P( y, b)
P(a, b), P(a, b)
{x b , y a}
{}
P(a, x), P( x, a)
{x a}
P(a, x), P(a, y )
{x y}
P(a, b), Q(a, b)
単一化不能
P(a, x), P(b, y )
単一化不能
P(a, x), P( x, b)
単一化不能
P( x, x), P( y, f ( y ))
単一化不能
融合(1/3) 命題論理の場合
融 合 (resolution)
節に対して適用する推論規則
P  節C
P  節 D
節C  節D
融合節
符号だけが異なる2つのリテラル(相補リテラル)を1
個ずつキャンセルし,残りのリテラルを∨で結合する.
ただし,重複したリテラルは1個を残して削除する.
∨は交換則と結合則を満たすので,キャンセルする
リテラルの節の中の場所はどこでもよい.
融合(2/3) 一階述語論理の場合
ソクラテスは人間である
HUMAN (Socrates)
人間は死ぬ運命にある
HUMAN ( x)  MORTAL( x)
単一化
代入
   x Socrates
HUMAN ( Socrates)  MORTAL(Socrates )
融合
MORTAL (Socrates)
融合(3/3) 変数名の付け替え
節の中の変数名は,他の節のものと異なるように,
名前を付け替えること.
 P ( x)  Q ( x)
P ( f ( x ))
 P ( x)  Q ( x)
P ( f ( y ))
自動定理証明と質問応答システム
(automated theorem proving and questionanswering system)
自動定理証明(1/3) 結論を否定し,空節を導出する
公 理
定 理
証明なしで認める
事実や規則
公理から導かれる
論理的帰結
定理の仮定
定理の結論
否定
節集合 KB
節集合 Q
KB ∪ Q から空節が導かれれば,
KB ∪ Q は充足不能なので,
定理が証明できたことになる
自動定理証明(2/3) 代数系の例題
単位元が存在し,結合則を満たす代数系において,もし各要
素の2乗が単位元になるならば,その系は交換則を満たす.
単位元が存在
P (e, x, x )
P ( x, y, z ) :
x y  z
P ( x, e, x )
(x y) z  x ( y z)
結合則を満たす
 P ( x , y , u )   P ( y , z , v )   P (u , z , w )  P ( x , v , w )
 P ( x , y , u )   P ( y , z , v )   P ( x , v , w )  P (u , z , w )
各要素の2乗が単位元
交換則を満たす(の否定)
(  x )(  y )(  z )
( P ( x , y , z )  P ( y , x , z ))
P ( x, x, e)
P (a, b, c)
 P (b , a , c )
自動定理証明(3/3) 証明の例
P (e, x, x )
(1)
P ( x, e, x )
(2 )
 P ( x , y , u )   P ( y , z , v )   P (u , z , w )  P ( x , v , w )
(3)
 P ( x , y , u )   P ( y , z , v )   P ( x , v , w )  P (u , z , w )
(4 )
P ( x, x, e)
(5)
P (a, b, c)
(6 )
 P (b , a , c )
(7 )
fro m (6 ), (4 .1) :  P ( b , z , v )   P ( a , v , w )  P ( c , z , w )
(8)
fro m (5), (8 .1) :  P ( a , e , w )  P ( c , b , w )
(2 1)
fro m (2 ), (2 1 .1) : P ( c , b , a )
(3 0 )
fro m (3 0 ), (3 .2 ) :  P ( x , c , u )   P ( u , b , w )  P ( x , a , w ) (3 2 )
fro m (5), (3 2 .1) :  P ( e , b , w )  P ( c , a , w )
(4 2 )
fro m (1), (4 2 .1) : P ( c , a , b )
(5 5)
fro m (5 5), (4 .1) :  P ( a , z , v )   P ( c , v , w )  P ( b , z , w )
(6 2 )
fro m (7 ), (6 2 .3) :  P ( a , a , v )   P ( c , v , c )
(1 1 2 )
fro m (5), (1 1 2 .1) :  P ( c , e , c )
(1 3 0 )
fro m (2 ), (1 3 0 ) : □
(6)と(4)の1番目の
リテラルを融合
質問応答システム(1/7) Yes/No-質問
Yes/Noで答える質問に応答する
知識ベース KB
人間は死ぬ運命にある
ソクラテスは人間である
質問
HUMAN ( x)  MORTAL( x) (1)
HUMAN (Socrates)
(2)
ソクラテスは死ぬ運命にあるか?
MORTAL( Socrates) (3)
推論
(1),(2),(3) から空節が導かれる
応答
YES
質問応答システム(2/7) Wh-質問
Who, Where, What などの質問に,オブジェクトを答える
知識ベース KB
Mary はJohn の妻である
オントロジー 「妻」と「夫」の関係
質問
だれが Mary の夫か?
WIFE ( Mary, John)
(1)
WIFE ( x, y)  HUS ( y, x)
(2)
ANS 述語の引数に解を求める
(3)
HUS ( z, Mary)  ANS ( z )
(zがMaryの夫ならば,zが答えである)
推論
応答
John
(3),(2)から
WIFE ( Mary, z )  ANS ( z ) (4)
(4),(1)から
ANS ( John) (5)
質問応答システム(3/7) How-質問
How の質問に対して,行動手順を答える
「行為」を状態遷移関数として表現する
状態
s
行為
act
状態
act(s)
質問応答システム(4/7) How-質問(例題)
サルが部屋の天井からつる
したバナナを食べようとして
いる.サルのできる行為は,
部屋の中を移動すること,
Banana
部屋の中にあるイスを持ち運
ぶこと,
バナナを取るためにイスの上
に登ること
である.サルはどうすればバ
ナナを取ることができるか?
Chair
Ape
質問応答システム(5/7) How-質問(例題)
P ( x, y, z, s)
状態 s において,(サル,バナナ,イス)の位置=(x, y, z).
REACH (s)
状態 s において,サルはバナナを取ることができる.
w alk ( v , s )
状態 s でサルが位置vに移動して得られる新状態
carry ( w , s )
状態 s でサルが位置wへイスを運んで得られる新状態
clim b ( s )
状態 s でサルがイスに登ったときに得られる新状態
質問応答システム(6/7) How-質問(例題)
知識ベース KB
各行為と状態遷移の関係を記述する
 P ( x , y , z , s )  P ( v , y , z , w alk ( v , s ))
 P ( x , y , x , s )  P ( w , y , w , carry ( w , s ))
 P ( x , y , x , s )  P ( x , y , x , clim b ( s ))
 P ( x , x , x , s )  R E A C H ( clim b ( s ))
初期状態
質問
P ( a , b , c , InitialState )
REACH (s)  ANS (s)
質問応答システム(7/7) How-質問(例題)
 P ( x , y , z , s )  P ( v , y , z , w alk ( v , s ))
(1)
 P ( x , y , x , s )  P ( w , y , w , carry ( w , s )) (2)
 P ( x , x , x , s )  R E A C H ( clim b ( s ))
(3)
P ( a , b , c , InitialState )
(4)
 REACH (s)  ANS (s)
(5)
from (5), (3) :  P ( x , x , x , s )  A N S ( clim b ( s ))
(6)
from (6), (2) :  P ( x , w , x , s )  A N S ( clim b ( carry ( w , s )))
(7 )
from (7 ), (1) :  P ( x , w , v , s )  A N S ( clim b ( carry ( w , w alk ( v , s )))) (8)
from (8), (4) : A N S ( clim b ( carry ( b , w alk ( c , InitialState ))))
応答
clim b ( carry ( b , w alk ( c , InitialState )))
(9)