Transcript Document
問題解決 問題の表現 定性的,論理的関係を対象とした問題 問題解決プロセスの表現 状態空間 問題の分解・還元 ©2008 Ikuo Tahara 1 問題の表現 1個200円のリンゴと1個100 円のナシを合わせて6個買い, 800円支払いました. リンゴとナシはそれぞれ何個 買ったでしょうか? x ? y ? [記号] x :リンゴの個数 y :ナシの個数 [定量的関係] x y 6 200x 100 y 800 ©2008 Ikuo Tahara 2 問題の表現 太郎は花子の父であり, 次郎は太郎の父である. 父の父は祖父である. 花子の祖父は誰か? [記号] F ( x, y) : x は y の父である G( x, y) : xは y の祖父である [論理的関係] wG . (w, Hanako) F (Taro, Hanako) F ( Jiro,Taro) xyz.[F ( x, y) F ( y, z) G( x, z)] ©2008 Ikuo Tahara 3 問題の別表現 1個200円のリンゴと1個100 円のナシを合わせて6個買い, 800円支払いました. リンゴとナシはそれぞれ何個 買ったでしょうか? リンゴの個数 ナシの個数 合計 0 6 600 1 5 700 2 4 800 3 3 900 4 2 1000 5 1 1100 6 0 1200 ©2008 Ikuo Tahara 4 積木の世界の表現 積木の状態の表現 on( x, y) clear ( x) on(B, TABLE) clear(C) A on(C, A) B C B A C 初期状態 目標状態 ©2008 Ikuo Tahara 5 積木の世界の表現 ロボットの手の状態の表現 holding ( x) empty holding (B) empty C B B C A A ©2008 Ikuo Tahara 6 基本的操作の表現(1) x を持ち上げる C A B 前提条件 削除リスト B C C A B A empty ( x TABLE) clear( x) empty, on( x,*), clear( x) 追加リスト holding( x), clear(*) (if (* TABLE)) ©2008 Ikuo Tahara 7 基本的操作の表現(1) x を y の上に置く B B C A B C A C A 前提条件 holding( x) (( y TABLE) clear( y)) 削除リスト holding( x), clear( y) (if ( y TABLE)) 追加リスト empty, on( x, y), clear( x) ©2008 Ikuo Tahara 8 基本的操作の表現(2) 基本的操作 前提条件 削除リスト 追加リスト PICKUP( x) ontable( x) clear ( x) empty ontable( x) clear ( x) empty holding ( x) UNSTACK ( x, y) on( x, y) clear ( x) empty on( x, y) clear ( x) empty holding ( x) clear ( x) PUTDOWN ( x) holding ( x) holding ( x) ontable( x) clear ( x) empty STACK ( x, y) holding ( x) clear ( x) holding ( x) clear ( x) on( x, y) clear ( x) empty ©2008 Ikuo Tahara 9 基本的操作の表現(2) 基本的操作 前提条件 削除リスト PICKUP( x) ontable( x) clear ( x) empty holding ( x) UNSTACK ( x, y) on( x, y) clear ( x) empty holding ( x) clear ( x) PUTDOWN ( x) holding ( x) ontable( x) clear ( x) empty STACK ( x, y) holding ( x) clear ( x) on( x, y) clear ( x) empty ©2008 Ikuo Tahara 追加リスト 10 問題の解決例 初期状態 C B A ontable( A) ontable( B) clear (B) on(C, A) clear (C) empty ©2008 Ikuo Tahara PICKUP(B) UNSTACK (C, A) 11 問題の解決例 UNSTACK (C, A) C B A ontable( A) clear ( A) ontable( B) clear ( B) holding (C ) ©2008 Ikuo Tahara STACK (C, A) PUTDOWN (C) 12 問題の解決例 C PUTDOWN (C) B A ontable( A) clear ( A) ontable(B) clear (B) ontable(C) clear (C) empty ©2008 Ikuo Tahara PICKUP(B) 13 問題の解決例 PICKUP(B) B C A ontable( A) clear ( A) ontable(C ) clear (C ) holding ( B) ©2008 Ikuo Tahara STACK (B, C) 14 問題の解決例 STACK (B, C) B C A ontable( A) clear ( A) on( B, C) clear (B) ontable(C) empty ©2008 Ikuo Tahara PICKUP( A) 15 問題の解決例 B PICKUP( A) A on( B, C ) clear ( B) ontable(C ) holding ( A) STACK ( A, B) C ©2008 Ikuo Tahara 16 問題の解決例 A B C STACK ( A, B) 目標状態 on( A, B) clear ( A) on( B, C) ontable(C) empty ©2008 Ikuo Tahara 17 問題解決に必要な知識 データ 問題領域に関する知識 事実や状態の記述 (例:積木の状態の記述) 関係や規則の記述 (例:基本的操作の記述) アルゴリズム 解決方法に関する知識 演算,操作,戦略などに関する知識 ©2008 Ikuo Tahara 18 問題解決プロセスの表現 状態空間の探索 探索木 問題の分解・還元 AND/OR木 ©2008 Ikuo Tahara 19 状態空間 状態空間 問題 S 規則 前提条件 追加リスト #1 S A #2 S B #3 A B #4 A G #5 B C #6 C A #7 C D #8 C G #1 #2 #3 A B #6 #4 #5 C #8 G ©2008 Ikuo Tahara #7 D 20 状態空間の探索 状態空間→探索木 S #1 #2 #3 A B #6 #4 C #8 G #5 #7 D ©2008 Ikuo Tahara 21 状態空間の探索 状態空間→探索木 S 初期状態 S #1 #2 A B #3 A B #6 #4 C G #5 A C C #8 G B #7 目標状態 D G D G G D ©2008 Ikuo Tahara 22 状態空間の探索 状態空間→探索木 S 初期状態 S #1 #2 A B #3 A B #6 #4 C G #5 A C C #8 G B #7 目標状態 D G D G G D ©2008 Ikuo Tahara 23 問題の分解・還元 問題 x y 6 200x 100 y 800 副問題 副問題 200x 100(6 x) 800 OR 200(6 y) 100 y 800 where y 6 x where x 6 y ©2008 Ikuo Tahara 24 問題の分解・還元 問題 wG . (w, Hanako) ? 部分問題 wy1.F (w, y1 ) ? 部分問題 AND y2 .F ( y2 , Hanako) ? y1 y2 ©2008 Ikuo Tahara 25 書換え問題 問題 「文字列 “ABC”を以下の書換規則を用いて文 字列“Z・・・Z”に書き換えることができるか?」 書換規則 ① ② ③ ④ ⑤ A A B B C → → → → → XY BZ X Z BBZ ©2008 Ikuo Tahara 26 書換え問題の分解・還元 AND/OR木 “ABC”を “ZZ・・・Z” に書き換える問題 ABC ① A→XY A B ② A→BZ C ③ B→X ④ B→Z XY X BZ Y B X X Z Z Z BBZ B X ⑤ C→BBZ B Z X ©2008 Ikuo Tahara Z Z 27 書換え問題の解 解の探索 ABC A B XY X BZ Y B X C X Z Z Z BBZ B X B Z X ©2008 Ikuo Tahara Z Z 28 書換え問題の解 解の探索 ABC A B XY X BZ Y B X C X Z Z Z BBZ B X B Z X ©2008 Ikuo Tahara Z Z 29 書換え問題の解 解の探索 ABC A B XY X BZ Y B X C X Z Z Z BBZ B X B Z X ©2008 Ikuo Tahara Z Z 30 書換え問題の解 解の探索 ABC A B XY X BZ Y B X C X Z Z Z BBZ B X B Z X ©2008 Ikuo Tahara Z Z 31 書換え問題の解 解の探索 ABC A B XY X BZ Y B X C X Z Z Z BBZ B X B Z X ©2008 Ikuo Tahara Z Z 32 書換え問題の解 部分木 解 ABC ① A→XY ② A→BZ A B ② C ④ BZ ・②→④ ・④ ・⑤→④ B ②→⑤→④ ④ ②→④→⑤→④ Z ④ B→Z ⑤ Z Z ③ B→X ⑤ C→BBZ BBZ B B ④ ④ Z ©2008 Ikuo Tahara Z Z 33 ① A→XY 書換え問題の状態空間 ② A→BZ ③ B→X ④ B→Z ① ABC ⑤ C→BBZ ③ ④ ⑤ ② XYBC ③ XYXC ④ XYZC BZBC ⑤ XYBBBZ ③ XZXC AXC AZC ABBBZ ④ ⑤ ZZZC BZBBBZ ⑤ ③ ZZZBBZ ③ ZZZXXZ XZXXXZ ④ ZZZZZZ ④ ZZZZZZ ©2008 Ikuo Tahara 34 ① A→XY 書換え問題の解 ② A→BZ ③ B→X ④ B→Z ① ABC ⑤ C→BBZ ③ ④ ⑤ ② XYBC ③ XYXC ④ XYZC BZBC ②→⑤→④ ⑤ XYBBBZ ③ XZXC AXC AZC ABBBZ ④ ⑤ ZZZC BZBBBZ ⑤ ③ ZZZBBZ ③ ZZZXXZ XZXXXZ ④ ZZZZZZ ④ ZZZZZZ ©2008 Ikuo Tahara 35 ① A→XY 書換え問題の解 ② A→BZ ③ B→X ④ B→Z ① ABC ⑤ C→BBZ ③ ④ ⑤ ② XYBC ③ XYXC ④ XYZC BZBC ⑤ XYBBBZ ③ XZXC AXC ABBBZ ④ ⑤ ZZZC BZBBBZ ⑤ ③ ZZZBBZ ②→④→⑤→④ AZC ③ ZZZXXZ XZXXXZ ④ ZZZZZZ ④ ZZZZZZ ©2008 Ikuo Tahara 36 積木の問題 A B C A B C on(A,B) & on(B,C) on(A,B) on(B,C) STACK(B,C) holding(B) clear(C) PICKUP(B) ontable(B) clear(B) empty UNSTACK(A,B) on(A,B) clear(A) empty ©2008 Ikuo Tahara 37 積木の問題 A B C A B C on(A,B) & on(B,C) on(A,B) on(B,C) STACK(B,C) PUTDOWN(A) holding(B) holding(A) clear(C) PICKUP(B) ontable(B) clear(B) empty UNSTACK(A,B) on(A,B) clear(A) empty ©2008 Ikuo Tahara 38