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)
xyz.[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) ?
部分問題
wy1.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