1 / 25

2009 人工知能(2) April 21,2009

2009 人工知能(2) April 21,2009. 状態空間表現 探索法(知識を用いない探索). 状態( state )と演算( operator ). 人工知能( AI) コンピュータで作業の自動化 プログラムを用いて作成 変数や定数 , 演算を決めてモデル化. 状態と演算(作用). 状態 (state)  →  次状態 (next state)          ↑ 演算 , 作用 (operator) 問題を状態遷移図(グラフ)化することで解く . 力まかせ探索 ( 英 : Brute-force search ).

devon
Download Presentation

2009 人工知能(2) April 21,2009

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2009人工知能(2)April21,2009 状態空間表現 探索法(知識を用いない探索)

  2. 状態(state)と演算(operator) • 人工知能(AI) • コンピュータで作業の自動化 • プログラムを用いて作成 • 変数や定数,演算を決めてモデル化

  3. 状態と演算(作用) • 状態(state) → 次状態(next state)          ↑ 演算,作用(operator) • 問題を状態遷移図(グラフ)化することで解く 

  4. 力まかせ探索(英: Brute-force search) • 単純で汎用的な計算機科学の問題解決法 アルゴリズム • 全ての可能性のある解候補を体系的に算出 • 各解候補が問題の解となるかを確認

  5. 力まかせ探索(利点,問題点) 利点 • 実装が容易 • 解が存在する場合,必ず解くことが可能 問題点 • 解候補数が組合せ爆発を起こす場合,コストが   急激に増大 利用場面 • 解候補数を処理可能程度まで縮小できる問題固有のヒューリスティクスがある場合

  6. 例1 積み木 AとCの間にBを入れる • Aを左手で持ち上げ,その間に右手でBをCの上に置き,その上にAを載せる • 片手しか使えない,又は1台のクレーンで持ち上げる場合も存在する A A B C C B 方法

  7. 拘束条件 • on(A,C)のA,on(B,table)のBは移動可 • on(A,C)のCの場合は移動不可 状態変化例 • on(A,C)→on(A,table) • on(B,table) →on(B,A) A C B C A B B A C

  8. 状態空間を定義 • on(X,Y)=XはYのすぐ上に乗っていることを示す A C B Table • 状態:初期状態 • {on(A,C),on(C,table),on(B,table)}

  9. 状態空間を操作 • 終了状態:{on(A,B),on(B,C),on(C,table)}  まで操作を行う. C B A Table • 状態:1 • {on(A,table),on(C,table),on(B,table)}

  10. 状態空間を操作 • 終了状態:{on(A,B),on(B,C),on(C,table)}  まで操作を行う. B C A Table • 状態:2 • {on(A,table),on(C,table),on(B,C)}

  11. 終了状態 • 終了状態:{on(A,B),on(B,C),on(C,table)}  なので操作終了. A B C Table • 状態:終了状態 • {on(A,B), on(B,C), on(C,table)}

  12. 例2:ロボットの迷路抜け • 入り口から出口への経路を見つける           (ロボットは地図を知らない)

  13. ロボットの迷路抜け 制約条件 • 道の真ん中を歩く(両壁から均等の距離を保つ)

  14. ロボットの迷路抜け • 格子点上を一歩ずつ歩く:(1,1)から(4,4)へ (4,4) (1,4) (2,2) (3,1) (1,1)

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

  16. 状態空間移動(オペレータ利用) オペレータ • 状態遷移=状態空間の位置移動 (迷路問題と共通点) • 「状態」「オペレータ」「拘束条件」の定義が必要   (与えられているとは限らない) • 「前提条件」「適用後に削除される状態記述」「適用後に追加される状態記述」を定義が必要

  17. 状態空間のグラフ表現 • グラフの構成 node(節),edge(枝) • 有向グラフと無向グラフ • tree(木) 閉路(ループ)のないグラフ

  18. 状態空間のグラフ表現 • 始節点(start node)から目標節点(goal node)へ グラフの探索 ・ rootから始める,Bottom up=前向き推論 ・ goalから始めるtop down=後ろ向き推論 (※:各状態を重要と考えれば区別なし)

  19. グラフ探索(基本的には前向き推論) • 目標節点(goal):探査を終了する節点 • open list :今後調べる節点を記載  (探査後openから削除) • 始節点がgoalか探査(異なる場合は)

  20. 探索の基本アルゴリズム(木の場合) • Search algorithm{ • 1.初期節点をopenリストに入れる • 2.if(open==empty)break;(探索失敗) • 3.n=first(open); • 4.if(goal(n))print(n);break;(探索終了) • 5.remove(n,open); • 6. 次に調べる節点をopenに入れる • 7. 2へもどる}

  21. Depth-1ST-search(木の場合) Depth-first-search algorithm{ • 1.初期節点をopenリストへ • 2.if(open==empty)break;(探索失敗) • 3.n=first(open); • 4.if(goal(n))print(n);break;(探索終了) • 5.remove(n,open); • 6. 次探査を行う節点をopenへ (nを展開し,全子節点niをopenの先頭に入れる) niからnへポインタを付けておく • 7. 2へ }

  22. 例題:S→A→B→D→E→G S(1,1) • S(1,1)からG(4,4)へ (3,4) (4,4) (2,4) A(2,3) (1,4) B(2,4) C(2,2) (2,3) (3,3) 2 H(3,2) D(1,4) E(3,4) (3,2) I(3,1) (2,2) 4 F(3,3) G(4,4) (3,1) (1,1)

  23. Depth-1ST深さ優先探索(graph) Depth-first-search algorithm{ • 1.初期節点をopenリストに入れる • 2.if(open==empty)break;(探索失敗) • 3.n=first(open); • 4.if(goal(n))print(n);break;(探索終了) • 5.remove(n,open);add(n,closed); • 6. 次探査を行う節点をopenへ (nを展開し全子節点niをopenの先頭へ) niからnへポインタを付けておく • 7. 2へ }

  24. Breadth-1ST幅優先探索(graph) Breadth-first-search algorithm{ • 1.初期節点をopenリストへ • 2.if(open==empty)break;(探索失敗) • 3.n=first(open); • 4.if(goal(n))print(n);break;(探索終了) • 5.remove(n,open);add(n,closed); • 6. 次探査を行う節点をopenへ (nを展開し,全子節点niをopenの最後へ) niからnへポインタを付けておく • 7. 2へ }

  25. Open list の変化 • 深さ優先の場合S→A→BC→DEC→EC→GF • (状態遷移はS→A→B→E→G) • 幅優先の場合 S→A→BC→CDE→DEHI→EHI→HIGF→ IGF→GF • (状態遷移はS→A→B→E→G)

More Related