chapter03 uristic search

29
เอกสารประกอบการสอนวิชา AI ของ รศ.ดร. บุญเจริญ ศิริเนาวกุล @ สงวนลิขสิทธิ 1 บทที 3 การคนหาแบบฮิวริสติก Heuristic Search 1. บทนํ การคนหาคํ าตอบ หรือการคนหาขอมูลในทางคอมพิวเตอรมักจะกระทํ าบนโครงสรางขอมูล แบบตนไม และกราฟ ทั้งนี้เพราะโครงสรางขอมูลในลักษณะนี้สามารถทํ าใหการคนหาทํ าไดสะดวก และสามารถพลิกแพลงการคนหาไดงาย ในความเปนจริงแลว การคนหาขอมูลบางครั ้งสามารถกระทํ บนโครงสรางขอมูลชนิดอื ่นก็ไดเชน อาเรย แสตก และคิว แตการจัดขอมูลในโครงสรางเชนนี มีขอจํ ากัด ในการคนหาขอมูลมาก การคนหาทํ าไดแบบเรียงลํ าดับ(Sequencial Search) เทานั ้น ซึ่งใชไดกับขอ มูลที่มีขนาดเล็ก ดังนั ้นในการคนหาขอมูลที ่มีขนาดใหญ กอนการคนหา หรือระหวางการคนหา ขอมูล ที ่จะถูกคนจะตองถูกจัดใหอยู ในรูปแบบของตนไม หรือกราฟเทานั ้น การคนหาขอมูลบนโครงสรางตน ไมและกราฟสามารถจํ าแนกได 2 แบบคือ การคนหาแบบไบลด(Blind Search) และการคนหาแบบฮิวริ สติก(Heuristic Search) 2. การคนหาแบบไบลด การคนหาแบบไบลด(Blind search) เปนการคนหาแบบที ่เดินทางจากโหนดหนึ ่งไปยังอีก โหนดหนึ ่ง โดยอาศัยทิศทางเปนตัวกํ าหนดการคนหา ไมตองมีขอมูลอะไรมาชวยเสริมการตัดสินใจวา จะเดินทางตอไปอยางไร หรือกลาวอยางงาย คือการจะหยิบขอมูลใดมาชวยในการคนหาตอไป ไม ตองอาศัยขอมูลใด ทั้งสิ้น นอกจากทิศทาง ตัวอยางของการคนหาขอมูลแบบนี ้คือ การคนหาแบบลึก กอน(Depth first search) และการคนหาแบบกวางกอน (Breadth first search) 2.1 การคนหาแบบลึกกอน

Upload: nopparut-orrasin

Post on 10-Nov-2015

10 views

Category:

Documents


0 download

DESCRIPTION

Determine with Heuristic Search Method

TRANSCRIPT

  • AI ..

    @ 1

    3Heuristic Search1.

    (Sequencial Search) 2 (Blind Search) (Heuristic Search)

    2. (Blind search)

    (Depth first search) (Breadth first search)

    2.1

  • AI ..

    @ 2

    (Root node) (Terminal node) 1

    1

    8 142

    6 93 15 1712

    5 74 11 1310 18 1916

    1

    ( ) (pop)

    AB

    DC

    F

    E

    G

    H

    2 A B C A

    C C C D F (Push) B D F C F

  • AI ..

    @ 3

    G B D G (A C F G H E D B) 1

    A B CC B D FF B D GG B D HH B D EE B DD BB

    1

    1 2 STACK 3 1. 1 STACK 22. STACK 3

    4 STACK 0 1 () 2 STACK 2

    3. 4.

  • AI ..

    @ 4

    2.2

    ( 0) 1 1 2 3

    1

    3 42

    6 75 9 108

    12 1311 15 1614 18 1917

    3 (Queue)

    AB

    DC

    F

    E

    G

    H

    4

    A B C A B D E B D E B (A B C D E F G H) 2

    A B CB C D E

  • AI ..

    @ 5

    C D E FD E F G HE F G HF G HG HH

    2

    1 2 QUEUE 3 1. 1 QUEUE 22. QUEUE 3

    4 QUEUE 0 1 () 2 QUEUE 2

    3. 4.

    3. (heuristic search)

  • AI ..

    @ 6

    (heuristic function) (aspects) Weak Methods Weak Methods (general-purposecontrol stategies)

    3.1 (Branch and bound)

    (Traveling Salesman)

    n (n-1) * (n-2) * (n-3) 1 (n-1)! 10

  • AI ..

    @ 7

    10! 3,628,800 25

    (Branch and bound)

    A B C DA 0 20 30 50B 0 15 20C 0 10D 0

    3

    A B C D 4 A B C D

    A B C D = 20 + 15 + 10 = 45 A C B B

    A C B = 30 + 15 = 45

    A C B A C D B 60

    A C D B = 30 + 10 + 20 = 60 A D

    A D = 50 A D A B C D

  • AI ..

    @ 8

    1. 2.

    2.1 2.2

    3

    (complete path)

    3.2 (Generate and Test)

  • AI ..

    @ 9

    1.

    path 2.

    path 3. 2

    1 5

    O @

    @ @ O O

    @ O

    2 1. 1 2. 1

    O O @ @

    5 @ O

    (path) 6

    @ @ O O @ @ O O @ O @ O @ O @ O @ O O @

    @ O O @

    6

  • AI ..

    @ 10

    7

    @ @ O O @ @ O O @ O @ O @ O @ O @ O O @

    O @ @ O O @ @ O

    @ O O @

    7 2 O @ @ O

    8

    @ @ O O @ @ O O @ O @ O @ O @ O @ O O @

    O @ @ O O @ @ O

    @ O @ O

    O @ @ O

    O @ O @

    O @ O @ O O @ O O O @ @

    @ O O @

    7 2 O O @ @

    9

  • AI ..

    @ 11

    @ @ O O @ @ O O @ O @ O

    @ O @ O

    O @ @ O

    O @ O @

    O @ O @ O O @ O O O @ @

    (path)

    9

    (complete path) (Depth first search) (back tracking)

    British Museum Algorithm

    (Heuristic function)

    3.2 (Hill Climbing)(Hill climbing)

  • AI ..

    @ 12

    generate-and-test generate and test (test function) yes no hill climbing

    3.2.1 Simple Hill Climbing1.

    (current state) 2

    2.

    2.1

    2.2

    2

  • AI ..

    @ 13

    OO @@@@ OO @@ OO

    @ O

    @@ OO

    12

    11

    @ O@O 9

    O@ O@ 8

    O O@@ 6

    @ O@O 8

    @O O@ 6

    @O @O 4

    @O @O 3

    O @@O 1

    OO @@ 0

    O@ @O 6

    O@ @O 5

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    3.2.2 (Steepest-Ascent Hill Climbing)1.

    (current state) 2

    2.

    2.1 SUCC 2.2

    SUCC SUCC

    2.3 SUCC SUCC

  • AI ..

    @ 14

    @@ OO

    @@ OO

    12

    11

    @ O@O 9

    O@ O@ 8 @ O@O 8

    @O O@ 6

    @O @O 4

    @O @O 3

    O @@O 1

    OO @@ 0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    @@ OO 11

    @@ OO 10

    steepest ascent

    Hill climbing generate andtest

    !!!! (Local Maximum): (a) 1 B C B C B C 1 C E 1 B

  • AI ..

    @ 15

    !!!! (Plateau): (b) 3 A

    !!!! (Ridge):

    3.2.3 (Simulated Annealing)

    (Kritpatrick., 1983) (annealing) ()

    A

    G

    CB

    ED F

    5 7

    8910 11

    A

    DB 7 7C 7

    (b)

    (a)

  • AI ..

    @ 16

    p = e - E/KT

    E K Boltmann T

    K T

    p = e - E/T

    T T P ( local maximum) T ( local maximum) T T T annealing schedule localmaximum (problem space) local maximum T T T simulated annealing

    1. (current state) 2

    2. BEST (pointer) SUCC 3. annealing schedule T4. SUCC

  • AI ..

    @ 17

    a) SUCCb)

    return

    SUCC BEST

    E = - p 0-1 1 p p p p SUCC

    c) T annealing schedule5. return BEST

    3.3 (Best-first search) (Depth first

    search) (Breadth first search) (most promising) 2.7 1 (root node) 2 B C B C 3 1 C ( ) C 3 D E 4 6 (terminal node) B 3 ( )

  • AI ..

    @ 18

    4 F G 6 5

    A A

    CB 3 1

    A

    CB 3

    D E 64A

    CB 3

    D E 64F G 56

    : 1. OPEN 2. OPEN

    OPEN

    i) OPEN

    ii)

    3.3.1 (Greedy Algorithm) (Best first search)

  • AI ..

    @ 19

    1. 2. 3.

    3.1 3.2

    4. 2

    A B C D 3

    A

    DB C20 30 50

    DC 15 20

    D 10

    D

    B C

    A

    20

    50

    30

    15

    20 10

    13

    13 A B C D A 20 30 50 B B C D 15 20 C C D 10 D A 20 + 15 + 10 + 50 = 95

    3.3.2 A*

  • AI ..

    @ 20

    A* A* A* 2 f g cost h' cost

    f = g + h A*(A* algorithm) A*

    (description) (indicator) (pointer) parent (list) parent-link recover

    2 + OPEN priority queue QUEUE + CLOSE

    f' f' 2 g = cost h'= cost

  • AI ..

    @ 21

    f=g+h' g

    1. OPEN (initial node) 0 g = 0 h' f=h'+0 CLOSED 2. :

    2.1 OPEN fail2.2 OPEN f BESTNODE

    OPEN CLOSED BESTNODE

    2.3 BESTNODE BESTNODE BESTNODE

    BESTNODE

    g(SUCCESSOR) = g(BESTNODE) + cost BESTNODE SUCCESSOR

    cost SUCCESSOR cost OPEN : OLD SUCCESSOR OLD BESTNODE parent link OLD BESTNODE ( SUCCESSOR OLD ) parent SUCCESSOR BESTNODE SUCCESSOR g OLD SUCCESSOR parent OLD BESTNODE g(OLD) update f(OLD)

  • AI ..

    @ 22

    SUCCESSOR OPEN CLOSE OLD OLD BESTNODE's successor ( ) parent g f' OLD (propagate) OLD OLD SUCCESSOR (terminal node) OPEN (propagate cost) depth-first traverse tree OLD g (f' ) traverse parent link parent parent g g current parent current parent parent

    SUCCESSOR OPEN CLOSE OPEN BESTNODE

    f'(SUCCESSOR) = g(SUCCESSOR) + h'(SUCCESSOR)

    A* 8-puzzle g h g h

  • AI ..

    @ 23

    2 8 3

    1 6 4

    7 5

    1 2 3

    4 5 6

    7 8 9

    2 3

    1 8 4

    7 6 5

    1 2 3

    8 4

    7 6 5

    g 1 0 1 2 3 4 0 5 1 8 1 1=0, 2=0, 3=0, 4=0, 5=1, 6=0, 7=0, 8=1, 9=0 g=2 h' 1=1, 2=0, 3=0, 4=1, 5=1, 6=0, 7=0, 8=0, 9=0 h'=3f = 2 + 3 = 5

  • AI ..

    @ 24

    2 8 3

    1 6 4

    7 5

    2 8 3

    1 6 4

    7 5

    2 8 3

    1 4

    7 6 5

    2 8 3

    1 6 4

    7 5

    2 8 3

    1 4

    7 6 5

    2 3

    1 8 4

    7 6 5

    2 8 3

    1 4

    7 6 5

    2 8 3

    7 1 4

    6 5

    2 3

    1 8 4

    7 6 5

    2 3

    1 8 4

    7 6 5

    1 2 3

    8 4

    7 6 5

    1 2 3

    8 4

    7 6 5

    1 8 3

    7 8 4

    6 5

    8 3

    2 1 4

    7 6 5

    f=0+4

    f=1+5f=1+3f=1+5

    f=2+3 f=2+3 f=2+4

    f=3+3

    f=3+4 f=3+2 f=3+4

    f=4+1

    f=5+0 f=5+2

    8-puzzle A*

    1.

    g=0

  • AI ..

    @ 25

    ( 1)

    2. h' h () h' perfect estimator h, A* algorithm

    h'= h'= 0 g g=0 random g 1 breadth-first

    3.3.2 Agendas Best-First Search: 1. most promising task 2. task (resource) time space task task (successor node)

    - agenda (justification) task agenda - task task

    3.3.3 Problem Reduction

  • AI ..

    @ 26

    AND-OR AND AND AND-OR

    2.8 AND

    Traverse 1. traverse (initial node) expand 2. f'( h' ) 3. f' 2 arcs (mostpromising)

    2.9 cost AND

    cost cost = 1 A ->B cost = 5+1 = 6 A ->C & D cost = 3+4+1+1 = 9

    AO*(AO* algorithm) 1. G INIT h'(INIT) 2. INIT SOLVED h' INIT FUTILITY

  • AI ..

    @ 27

    - Trace mark INIT NODE - NODE FUTILITY h' NODE NODE + SUCCESSOR G + SUCCESSOR SOLVED h'=0 + SUCCESSOR h' 3. S SOLVED h' parent S NODE S

    3.4 Constrain satisfaction

    3.5 Mean-End Analysis Mean-end analysis

    General Problem Solver(GPS) Mean end analysis Mean-End Analysis (precondition)

    Operator Precondition ResultPUSH(obj, loc) at(robot,obj)^

    large(obj)^clear(obj)^armempty

    at(obj, loc)^at(robot, loc)

    CARRY(obj.loc) at(robot,obj)^amall(obj)

    at(obj, loc)^at(robot, loc)

    WALK(loc) none at(robot, loc)

  • AI ..

    @ 28

    PICKUP(loc) at(robot, obj) holding(obj)PUTDOWN(obj) holding(obj) ~holding(obj)PLACE(obj1,obj2) at(robot,obj2)^

    holding(obj1)on(obj1, obj2)

    9

    Push Carry Walk Pickup Putdown PlaceMove object * *Move robot *Clear object *Get object on object *Get arm empty * *Be holding object *

    2.10

    2

    A walk pick up put down pick up put down B push C E place D

  • AI ..

    @ 29

    Heuristic Search 5 O @ simulated annealing