不完全な知識 不完全な知識に基づく問題解決 フレーム問題 制約条件記述問題 非単調推論 極小限定 常識の定式化 並列極小限定 ©2008 Ikuo Tahara 1 論理に基づく問題解決 問題解決の枠組み 質問(論理式) 知識 答 (論理式集合) 推論規則 問題解決が可能であるための条件 知識は完全である. 知識は無矛盾である. ©2008 Ikuo Tahara 2 積木の問題 A A B B 初期状態 ontable( A, S0 ) ontable( B, S 0 ) 目標状態 s.on( A, B, s) PICKUP( x) xs.[ontable( x, s ) holding ( x, after ( pickup ( x ), s ))] STACK ( x, y) xys.[holding ( x, s ) on( x, y, after ( stack ( x, y ), s ))] ©2008 Ikuo Tahara 3 積木の問題 導出反駁 on( A, B, s) holding ( x2 , s2 ) on( x2 , y2 , after ( stack ( x2 , y2 ), s2 )) {x2 / A, y2 / B, s / after (stack ( A, B), s2 )} holding ( A, s2 ) ontable( x1 , s1 ) holding ( x1 , after ( pickup( x1 ), s1 )) {x1 / A, s2 / after ( pickup( A), s1 )} ontable( A, s1 ) 解 ontable( A, S0 ) {s1 / S0 } s after ( stack ( A, B ), after ( pickup ( A), S 0 )) ©2008 Ikuo Tahara 4 積木の問題再考 目標状態の記述変更 A B s.on( A, B, s) 物理的状態は同じであるがよ り詳細な記述にした. s.[on( A, B, s) ontable( B, s)] ©2008 Ikuo Tahara 5 積木の問題再考 導出反駁 on( A, B, s) ontable( B, s) holding ( x2 , s2 ) on( x2 , y2 , after ( stack ( x2 , y2 ), s2 )) {x2 / A, y2 / B, s / after (stack ( A, B), s2 )} holding ( A, s2 ) ontable( B, after (stack ( A, B), s2 )) ontable( x1 , s1 ) holding ( x1 , after ( pickup( x1 ), s1 )) {x1 / A, s2 / after ( pickup( A), s1 )} ontable( A, s1 ) ontable( B, after ( stack ( A, B), after ( pickup( A), s1 ))) ontable( A, S0 ) {s1 / S0 } ontable( B, after (stack ( A, B), after ( pickup( A), S0 ))) ©2008 Ikuo Tahara 6 積木の問題再考 導出反駁 on( A, B, s) ontable( B, s) holding ( x2 , s2 ) on( x2 , y2 , after ( stack ( x2 , y2 ), s2 )) {x2 / A, y2 / B, s / after (stack ( A, B), s2 )} 「AをpickupしてBにstackした後,Bは holding ( A, s2 ) ontable( B, after (stack ( A, B), s2 )) テーブル上にあるか?」 ontable( x1 , s1 ) holding ( x1 , after ( pickup( x1 ), s1 )) {x1 / A, s2 / after ( pickup( A), s1 )} ontable( A, s1 ) ontable( B, after ( stack ( A, B), after ( pickup( A), s1 ))) ontable( A, S0 ) {s1 / S0 } ontable( B, after (stack ( A, B), after ( pickup( A), S0 ))) ©2008 Ikuo Tahara 7 積木の問題再考 この問題解決に必要な知識は? オペレータの作用 に関する言明 PICKUP( x) xs.[ontable( x, s ) holding ( x, after ( pickup ( x ), s ))] STACK ( x, y) xys .[holding ( x, s ) on( x, y, after ( stack ( x, y ), s ))] フレーム言明 xys.[(ontable( x, s ) diff ( x, y )) ontable( x, after ( pickup ( y ), s ))] オペレータの非作用 に関する言明 xys .[(ontable( x, s ) diff ( x, y )) ontable( x, after ( stack ( y, x), s ))] ©2008 Ikuo Tahara 8 ontable( B, after (stack ( A, B), after ( pickup( A), S0 ))) ontable( x3 , s3 ) diff ( x3 , y3 ) ontable( x3 , after(stack ( y3 , x3 ), s3 )) {x3 / B, y3 / A, s3 / after ( pickup( A), S0 )} ontable( B, after ( pickup( A), S0 )) diff ( B, A) diff ( B, A) ontable(B, after ( pickup( A), S0 )) ontable( x4 , s4 ) diff ( x4 , y4 ) ontable( x4 , after( pickup( y4 ), s4 )) {x4 / B, y4 / A, s4 / S0} ontable( B, S0 ) diff ( B, A) diff ( B, A) ontable( B, S0 ) ontable( B, S0 ) 9 フレーム言明 フレーム言明の数 ≒オペレータの数×述語の数 記述量の軽減 述語holdsの導入 holds( f , s) : f という事実が s という状況で成り立つ 初期状態の記述 holds(ontable( A), S0 ) holds(ontable( B), S0 ) 目標状態の記述 s.[holds(on( A, B), s) holds(ontable( B), s)] ©2008 Ikuo Tahara 10 フレーム言明 オペレータの記述 PICKUP( x) xs .[holds (ontable( x ), s ) holds (holding ( x), after ( pickup ( x ), s ))] STACK ( x, y) xys .[holds (holding ( x), s ) holds (on( x, y ), after ( stack ( x, y ), s ))] PICKUPに関する言明 フレーム言明 f xs.[(holds ( f , s ) diff ( f , ontable( x))) holds ( f , after ( pickup ( x), s ))] STACKに関する言明 f xys.[(holds ( f , s ) diff ( f , holding ( x))) holds ( f , after ( stack ( x, y ), s ))] ©2008 Ikuo Tahara 11 フレーム公理 様相記号の導入 M : は他の主張と矛盾しない 推論規則: が定理でない限り M は定理である フレーム公理 f gs.[(holds( f , s) M holds( f , after ( g , s))) holds( f , after ( g , s))] オペレータの記述にその適用後成立しなくな る事柄を追加する必要がある. ©2008 Ikuo Tahara 12 フレーム公理を含むプログラム 初期状態 holds(ontable(a),s0). holds(ontable(b),s0). オペレータ holds(holding(X),after(pickup(X),S)) :holds(ontable(X),S), asserta(ends(holds(ontable(X),after(pickup(X),S)))). holds(on(X,Y),after(stack(X,Y),S) :holds(holding(X),S), asserta(ends(holds(holding(X),after(stack(X,Y),S)))). フレーム公理 holds(F,after(G,S)) :- holds(F,S), \+ends(holds(F,after(G,S))). ©2008 Ikuo Tahara 13 フレーム問題 行為(処理)に関係する事柄と関係しない事柄を判断す る問題 積木Aを移動 A C B C A 記述に関するフレーム問題 処理に関するフレーム問題 B B A A 擬似的解決:常識 (世界の限定) 人間にも一般には解決不能 ©2008 Ikuo Tahara 14 制約条件記述問題(例外記述) 「鳥は飛ぶ」という知識の記述 x.[bird ( x) fly( x)] ペンギンは飛ばない x.[bird ( x) penguin( x) fly( x)] ダチョウは飛ばない x.[bird ( x) penguin( x) ostrich( x) fly( x)] ©2008 Ikuo Tahara 15 制約条件記述問題 様相記号の導入 M : は他の主張と矛盾しない 推論規則: が定理でない限り M は定理である 例外を考慮した記述 x.[(bird ( x) M fly( x)) fly( x)] 各例外の記述 x.[ penguin( x) fly( x)] ©2008 Ikuo Tahara 16 制約条件記述問題 非単調性 x.[(bird ( x) M fly ( x)) fly ( x)] x.[ penguin( x) fly ( x)] x.[ostrich( x) fly ( x)] bird ( Hanako) fly( Hanako) fly( Hanako) penguin( Hanako) ©2008 Ikuo Tahara 17 非単調推論 推論の非単調性 ⇒ Th() Th() 非単調推論の問題点 知識全体を考えても 得られる結論か? 知識全体 結論 ©2008 Ikuo Tahara 18 極小限定 常識の形式化 述語の外延を限定 {x | p( x) T} 述語極小限定 ( p ) :述語 p を含む一階述語論理式 :任意の述語 ( p ) における p の極小限定式 (( ) x.[ ( x) p( x)]) x.[ p( x) ( x)] ©2008 Ikuo Tahara 19 述語極小限定の例 x[dog ( x) animal ( x)] (( ) x.[ ( x) p( x)]) x.[ p( x) ( x)] 述語 animal の極小限定 (x[dog ( x) ( x)] x.[ ( x) animal ( x)]) x.[animal ( x) ( x)] dog とすれば x[dog ( x) animal ( x)] x[animal ( x) dog ( x)] x[animal ( x) dog ( x)] x[animal ( x) dog ( x)] ©2008 Ikuo Tahara 20 極小限定 並列極小限定 ( p; z ) :述語 p と z を含む一階述語論理式 p :限定しようとする性質を表す述語 z :p の極小化に際し解釈を変化させてよい述語 p q x.[ p( x) q( x)] (x.[q( x) p( x)]) z 可変で ( p; z ) における p の極小限定 Circ[; p; z ] ( p; z ) .[( ; ) ( p)] ©2008 Ikuo Tahara 21 並列極小限定の例 x.[(bird ( x) ab( x)) fly( x)] bird ( Hanako) ab(x): xは異常である (ab; fly) x.[(bird ( x) ab( x)) fly ( x)] bird ( Hanako) Circ[(ab; fly); ab; fly] (ab; fly) x.[ab( x)] fly( Hanako) ©2008 Ikuo Tahara 22 並列極小限定の例 x.[(bird ( x) ab( x)) fly( x)] bird ( Hanako) fly( Hanako) (ab; fly) x.[(bird ( x) ab( x)) fly ( x)] bird ( Hanako) fly ( Hanako) Circ[(ab; fly); ab; fly] (ab; fly) x.[equal ( x, Hanako) ab( x)] ©2008 Ikuo Tahara 23 極小限定のモデル 極小モデル Circ[; p; z ] のモデルは (z の外延を可変にした とき) p に関する の極小モデルである. x.[dog ( x) animal ( x)] animal animal dog dog Circ[x.[dog ( x) animal ( x)]; animal ] x[dog ( x) animal ( x)] ©2008 Ikuo Tahara 極小モデル 述語animalの 外延を比較 24 極小限定のモデル x.[(bird ( x) ab( x)) fly( x)] bird ( Hanako) 述語abの外延を比較 flyの外延を可変にしてabの外延を比較 極小モデル ab fly bird ab fly bird ©2008 Ikuo Tahara ab fly bird 25 極小限定のモデル x.[(bird ( x) ab( x)) fly( x)] bird ( Hanako) Circ[(ab; fly); ab; fly] (ab; fly) x[ab( x)] 極小モデル ab fly bird fly( Hanako) ©2008 Ikuo Tahara 26
© Copyright 2024 ExpyDoc