23
09 人人人人 Lecture 4 May1, 2009 人人人人人AND/OR 人人人人人人人人

09 人工知能 Lecture 4 : May1, 2009

  • Upload
    dory

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

09 人工知能 Lecture 4 : May1, 2009. 問題の分解、 AND/OR ゲームの手の決定. 第一部のおさらい. 問題の定式化: オペレータ :今の 状態 →次の 状態 探索アルゴリズム(知識を用いない探索) depth-1 st , breadth-1 st , optimal ヒューリステック 探索: A*-algorithm 小テスト1. ロボットの迷路抜け. (1,1). ( 1,1 )から( 4,4 )へ. 3. (3,4). (4,4). (2,4). (2,3). (1,4). (2,4). (2,2). - PowerPoint PPT Presentation

Citation preview

Page 1: 09 人工知能 Lecture 4 : May1, 2009

09 人工知能Lecture 4 :May1, 2009

問題の分解、 AND/OR

ゲームの手の決定

Page 2: 09 人工知能 Lecture 4 : May1, 2009

第一部のおさらい• 問題の定式化:      オペレータ:今の状態→次の状

• 探索アルゴリズム(知識を用いない探索)       depth-1st, breadth-1st , optimal

• ヒューリステック探索: A*-algorithm

• 小テスト1

Page 3: 09 人工知能 Lecture 4 : May1, 2009

ロボットの迷路抜け• ( 1,1 )から( 4,4 )へ

(4,4)

(1,1)

(1,1)

3

(2,3)

(2,3)

(2,4)

(1,4)

(1,4) (2,4) (3,4)

(3,3)

(2,2)

(3,1)

(3,2)(3,4)

(4,4) (3,3)

(2,2)

2

4

(3,2)

(3,1)

Page 4: 09 人工知能 Lecture 4 : May1, 2009

探索の基本アルゴリズム• Search algorithm{• 1.初期節点を open リストに入れる• 2. if(open==empty)break; (探索失敗)• 3. n=first(open);• 4. i f (goal(n))print(n);break; (探索終

了)• 5. remove(n,open);• 6.  次に調べる節点を open に入れる• 7.  2へもどる}

Page 5: 09 人工知能 Lecture 4 : May1, 2009

例題: S→A→B→E→G

• S ( 1,1 )から G ( 4,4 )へ

(4,4)

(1,1)

S(1,1)

(2,3)

A(2,3)

B(2,4)

D(1,4)

(1,4) (2,4) (3,4)

(3,3)

(2,2)

(3,1)

(3,2)E(3,4)

G(4,4) F(3,3)

C(2,2)

2

4

H(3,2)

I(3,1)

Page 6: 09 人工知能 Lecture 4 : May1, 2009

Heuristic search

• 最良優先探索: best-first-search

• 各節点からゴールまでのコスト(距離) h(n) が予想出来るとき使える

• ステップ6で予想値 h’(n) の昇順に並べる

Page 7: 09 人工知能 Lecture 4 : May1, 2009

ヒューリスティック探索の問題点

• ヒューリスティック関数( h’ )の推定が悪いと、失敗

• 例:迷路の問題    h’ =| A x ー  Gx |+| A y ー  G y|

経路のつながり具合によって成功することもあり、失敗することもある。(使えるヒント:正しい保障はな

い)

こういうヒントを多用して解を発見  ヒューリスティック

Page 8: 09 人工知能 Lecture 4 : May1, 2009

h=|n の x 座標 -G の x 座標 |+| n の y 座標 -Gの y 座標 |

• S ( 1,1 )から G ( 4,4 )へ

(4,4)

(1,1)

S(1,1)6

(2,3)

A(2,3)3

B(2,4)2

D(1,4)3

(1,4) (2,4) (3,4)

(3,3)

(2,2)

(3,1)

(3,2)E(3,4)1

G(4,4)0 F(3,3)

C(2,2)4

2

4

H(3,2)

I(3,1)

Page 9: 09 人工知能 Lecture 4 : May1, 2009

A* ーアルゴリズム• A*-search algorithm{• 1.初期節点を open リストに入れる• 2. if(open==empty)break; (探索失敗)• 3. n=first(open);• 4. i f (goal(n))print(n);break; (探索終了)• 5. remove(n,open); add(n,closed);• 6.  次に調べる節点を open に入れる (n を展開し、全ての

子節点 ni を open に入れ、推定コスト f(ni) の昇順に並べる ) ここで f(ni)=g’(ni)+h’(ni) であり、推定値 h’(ni) が本当の値h(ni) 以下であるとする。(これが成立しないと A*-search でなく、 A-search になり、解は保証されない ) g’(ni) はg(ni) の推定値だが、出発点から ni までの、解っているコストの内で最小のもの。

   ni から n へポインタを付けておく• 7.  2へもどる}

Page 10: 09 人工知能 Lecture 4 : May1, 2009

h=|n の x 座標 -G の x 座標 |+| n の y 座標 -Gの y 座標 |

• S ( 1,1 )から G ( 4,4 )へ

(4,4)

(1,1)

S(1,1)6

(2,3)

A(2,3)3

B(2,4)2

D(1,4)3

(1,4) (2,4) (3,4)

(3,3)

(2,2)

(3,1)

(3,2)E(3,4)1

G(4,4)0 F(3,3)

C(2,2)4

2

4

H(3,2)

I(3,1)

Page 11: 09 人工知能 Lecture 4 : May1, 2009

比較:深さ優先、幅優先、 A*      open list

Counter D- 1 st    B- 1 st        A*

   1      S      S        S(6)

   2      A      A A(6)

   3     BC     BC       B(6)C(8)

   4    DEC    CDE      E(6)D(8)C(8)

   5     EC    DEHI       G(6)FDC

Page 12: 09 人工知能 Lecture 4 : May1, 2009

Problem reduction representation• 問題を分割し、すぐ解ける副問題の集合に変換

• 許された変換は「オペレータ(作用素)」として定義

• すぐ解ける問題は原始問題 primitive problem とよぶ

• 問題分割を用いた問題表現は、   1.開始問題記述    2,問題を副問題群に変換する作用素   3.原始問題記述の集合

Page 13: 09 人工知能 Lecture 4 : May1, 2009

問題分割表現の例:ハノイの塔• 大きさが順に大きくなる3つの円盤、 A,B,C と3

つの柱 1,2,3.  最初円盤は全て柱1の上に、一番小さい A を一番上に、 C を一番下にして積み重ねられている。これを柱3に A が一番上になるように移す、但し一度に1個だけ円盤を動かせる、どの円盤もそれより小さい円盤の上に置けない

• 最初に出来るのは A を柱 2 か柱 3 に移すことだが、そのあと A の上には B も C も置けないので、つまりは A を移さなかった柱に B を移して置いて、その上に A を移し、空いた柱 3 に C を移すことができれば成功である.次にその C の上に B を載せ、その上に A を載せる

Page 14: 09 人工知能 Lecture 4 : May1, 2009

8段階を右の3段階と見る

1 .ABC   2. _   3. _1 . BC   2. _   3. A1 .    C   2. B    3. A1 . C   2. AB 3. __

1 . __  2. AB   3. C1 . A    2. B    3. C1 . A    2.  _  3. BC1 . __  2. __  3. ABC

高さ2の山を 1. から 2. へ移す

高さ1を 1. から 3.へ

高さ2の山を2. から 3. へ移す

Page 15: 09 人工知能 Lecture 4 : May1, 2009

円盤を N 個に増やしても右の3段階

1 .AB..C   2. _   3. _

1 . C   2. AB.. 3. __

1 . __  2. AB..   3. C

1 . __  2. __  3. ABC

高さ N-1 の山を 1. から2. へ

高さ1を 1. から3. へ

高さ N-1 の山を 2. から3. へ

Page 16: 09 人工知能 Lecture 4 : May1, 2009

目標:高さ3の山を柱1から柱3へ移す

小目標:高さ 2の山を柱 2 から柱 3 へ移す

小目標:高さ 2の山を柱 1 から柱 2 へ避難させる

原始問題:高さ 1 の山を柱1 から柱 3 へ移動

高さ 1の山を柱 1 から柱 3へ移動

高さ 1の山を柱 1 から柱 2へ移動

高さ 1の山を柱 3 から柱 2へ移動 高さ 1 の

山を柱 2から柱 1へ移動

高さ 1 の山を柱 2 から柱 3 へ移動

高さ 1の山を柱 1 から柱 3へ移動

Page 17: 09 人工知能 Lecture 4 : May1, 2009

Nilsson ( 1971 )による AND/ORグラフ

1)各節点は単一問題か一連の問題であり、グラフは開始節点(元問題)を含む.

2)終端節点(原始問題)=葉3)問題 P に対しこれを一組の副問題に変える作

用素があり、これを適用した結果生じる副問題に対応する節点へ向かって有向枝がある.このいずれかの子節点が解かれたときPが解けるのなら、 OR節点( OR-node) 、全ての子節点が解かれたとき P が解けるのなら AND節点( AND-node)とよぶ .AND 節点には枝を水平線で結ぶ

Page 18: 09 人工知能 Lecture 4 : May1, 2009

開始問題が解けるかどうかを示すグラフ( or,木)を解グラフ(解

木)という• 解ける節点の条件として、1)それが終端節点(原始問題)である2) 子節点が全て解ける AND 節点であるよ

うな非終端節点であるか、または3)子節点が OR 節点でそのうち少なくと

も一つが解ける

Page 19: 09 人工知能 Lecture 4 : May1, 2009

• 解けない節点の条件1) 子節点のない非終端節点(どの作用素も

適用できないような非原始問題)2) その子節点が AND 節点で、そのうち少

なくとも一つが解けないような非終端節点

3)その子節点が OR 節点で、その全てが解けないような非終端節点

Page 20: 09 人工知能 Lecture 4 : May1, 2009

問題の分解:ゲームの手の決定• ゲームの木:チェスや碁等の特徴:交互にプレイ

する二人のプレーヤが参加し、最良の手を打つ、というゲームに対してその全ての可能な手が表現されている.

• 状態空間木との違いは、プレーヤが交互に選択すること: root は初期状態で第1のプレーヤの手番、次の子節点は第 1 のプレーヤが一手で到達できる状態、その次の子節点は第2のプレーヤの応手で作られる状態。終端節点は、勝、負、引分けのいずれか

• AND/OR木で表現できる( A の立場からは自分の手番は OR で選べるが相手の手番は AND に対応)

Page 21: 09 人工知能 Lecture 4 : May1, 2009

例 :tic-tac-toe (3目並)

***

***

**X

***

**X

***

***

***

***

***

*X*

***

***

*X*

**O

***

*X*

*O*

*X*

*X*

*O*

***

*XX

*O*

***

*X*

*OX

**X

*X*

*O*

O**

*X*

*OX

**X

OXX

*O*

*X*

*X*

OOX

**X

*X*

OO**X*

*X*

OO*

***

*XX

*O*

**X

*X*

OOX

**X

*XO

OOX

X*X

*XO

OOX

X勝

O**

*XX

*OX

O*O

*XX

*OX

O*O

XXX

*OX

X勝

***

OXX

*O*

X勝

OX*

*X*

OOX

OX*

XX*

OOX

OX*

XXO

OOX

引分

***

*X*

X*O

***

XX*

**O

***

*X*

*XO

X**

*X*

**O

X**

*X*

O*O

X**

*X*

OXO

XO*

*X*

OXO

XO*

*XX

OXO

XO*

OXX

OXO

全部引分

*O*

*X*

*XO

*O*

XX*

*XO

*O*

XXO

*XO

*OX

XXO

*XO

*OX

XXO

OXO

***

XXO

**O

**X

XXO

**O

**X

XXO

O*O

**X

XXO

OXO

*OX

XXO

OXO

**O

*X*

X*O

**O

*XX

X*O

**O

OXX

X*O

**O

OXX

XXO

*OO

OXX

XXO

XOO

OXX

XXO

Page 22: 09 人工知能 Lecture 4 : May1, 2009

例 :tic-tac-toe (3目並)

***

***

**X***

**X

***

***

***

***

***

*X*

***

***

*X*

**O***

*X*

*O*

X勝

X勝引分

全部引分 *X*

*X*

*O*

X**

*X*

*O*

***

XX*

*O*

***

*X*

XO*

*X*

*X*

OO*

*X*

OX*

*O*

OX*

*X*

*O*

OX*

*X*

XO*

OXO

*X*

XO*

OXO

*XX

XO*

OXO

OXX

XO*

*X*

OX*

XO*

*XO

OX*

XO*

*XO

OXO

XO*

*XO

OXO

XOX

OXO

OXO

XOX

*X*

*X*

OOX

OX*

*X*

OOX

OX*

XX*

OOX

OX*

XXO

OOX

X**

*X*

*OO

X**

*X*

XOO

X**

OX*

XOO

***

XXO

*O*

***

XXO

*OX

O**

XXO

*OX

O*X

XXO

*OX

O*X

XXO

OOX

**O

*X*

XO*

X*O

*X*

XO*

X*O

OX*

XO*

X*O

OX*

XOX

X**

*X*

**O

***

XX*

**O

***

*X*

X*O

***

*X*

*XO

*O*

*X*

*XO

*OX

*X*

*XO

***

XXO

**O

**X

XXO

**O

**X

XXO

O*O

**X

XXO

OXO

*OX

XXO

OXO

X**

*X*

*OO

**O

*X*

X*O

**O

*XX

X*O

**O

OXX

X*O

*XO

OXX

X*O

*XO

OXX

XOO

全部引分

X**

*X*

XOO

X*O

*X*

XOO

X*O

*XX

XOO*OX

*X*

OXO

*OX

XX*

OXO

*OX

XXO

OXO

X*O

OXX

XOO

Page 23: 09 人工知能 Lecture 4 : May1, 2009

例 :tic-tac-toe (3目並)

***

***

**X

***

**X

***

***

***

***

***

*X*

***

***

*X*

**O

***

*X*

*O*

*X*

*X*

*O*

***

*XX

*O*

***

*X*

*OX

**X

*X*

*O*

**X

OXX

*O*

X*X

*XO

OOX

X勝

O*O

XXX

*OX

X勝X勝

OX*

XXO

OOX

引分

全部引分