1 / 25

人工知能 ( Artificial Intelligence ) 状態空間表現と探索 State Space Representation and Search Lecture 2

人工知能 ( Artificial Intelligence ) 状態空間表現と探索 State Space Representation and Search Lecture 2. 田中美栄子. 状態( state )と演算( operator ). プログラミング. 人工知能 (AI). 作業 の 自動化. 変数・定数・演算を決めてモデル化. 問題設定を行うこと. 解くべき問題の決定      ↓ 解ける形に変形・単純化・離散化、 …. 状態と演算(作用). 状態 (state)  →  次状態 (next state)          ↑

bikita
Download Presentation

人工知能 ( Artificial Intelligence ) 状態空間表現と探索 State Space Representation and Search Lecture 2

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. 人工知能 (Artificial Intelligence)状態空間表現と探索State Space Representation and SearchLecture 2 田中美栄子

  2. 状態(state)と演算(operator) プログラミング 人工知能(AI) 作業の 自動化 変数・定数・演算を決めてモデル化

  3. 問題設定を行うこと • 解くべき問題の決定      ↓ • 解ける形に変形・単純化・離散化、…

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

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

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

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

  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)}  まで操作を行う. A C B 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. Example 2:ロボットの迷路抜け(Robot maze) • 入り口から出口への経路を見つける           (ロボットは地図を知らない)

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

  14. ロボットの迷路抜け • 格子点上を一歩ずつ歩く:(1,1)から(4,4)へ D E (4,4) B Goal (1,4) • 注)この場合 • 分岐点に座標を • 書く場合もある. F A H (2,2) • 注)また, • 分岐点に名前を • 適時つける場合も. C (3,1) (1,1) I Start

  15. ロボットの迷路抜け S(1,1) (1,1) • (1,1)から(4,4)へ 3 A(2,3) (3,4) G(4,4) (2,4) (2,3) (1,4) C(2,2) B(2,4) (2,4) (2,2) (2,3) (3,3) E(3,4) D(1,4) 2 H(3,2) I(3,1) (3,2) (1,4) (3,4) (3,2) (3,1) (2,2) G(4,4) F(3,3) 4 (3,3) (4,4) (3,1) S(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)へ A(2,3) E(3,4) G(4,4) B(2,4) D(1,4) C(2,2) B(2,4) (3,3) E(3,4) A(2,3) I(3,1) D(1,4) H(3,2) (3,2) (2,2) G(4,4) F(3,3) (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(1,1) • 深さ優先の場合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) A(2,3) C(2,2) B(2,4) E(3,4) I(3,1) D(1,4) H(3,2) G(4,4) F(3,3)

More Related