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

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

©2008 Ikuo Tahara探索 状態空間と探索木 基本的な探索アルゴリズム 横形探索と縦形探索 評価関数を利用した探索アルゴリズム 分岐限定法 山登り法 最良優先探索 A ( A* )アルゴリズム.
ロボット制御のソフトウェ ア: シミュレータ試作 情報理工学部 情報知能学科 H 207051 中谷聡太郎.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
Information このスライドは「イラ ストで学ぶ人工知能概 論」を講義で活用した り,勉強会で利用した りするために提供され ているスライドです.イラ ストで学ぶ人工知能概 論.
白井 良明 立命館大学情報理工学部 知能情報学科
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
Ex7. Search for Vacuum Problem
Ex8. Search for Vacuum Problem(2)
    有限幾何学        第8回.
2章 データ構造.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
先を読んで知的な行動を選択するエージェント
17.プランニング(Planning) 1G01P069 飛田伸一 2004/5/17.
第8回  問題解決.
人 工 知 能 第3回 探索法 (教科書21ページ~30ページ)
Natural Semantics 実行過程の、最初と最後の状態(state)の関係を考える。
整数計画法を用いた ペグソリティアの解法 ver. 2.1
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
第4章 空間解析 2.ネットワーク分析 (3) ネットワーク構造分析
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
最短経路.
A First Course in Combinatorial Optimization Chapter 3(前半)
二分探索木によるサーチ.
知識なしの探索 ─ しらみつぶしの探索 ─ (Uninformed Search)
問題解決 問題の表現 定性的,論理的関係を対象とした問題 問題解決プロセスの表現 状態空間 問題の分解・還元.
アルゴリズムとデータ構造 2011年7月4日
盲目的探索 ─ 知識を用いない探索 ─ (Blind Search)
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
計算機科学概論(応用編) 人工知能のこれまでとこれから
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
人工知能概論 第2回 探索(1) 状態空間モデル,基本的な探索
第9回 優先度つき待ち行列,ヒープ,二分探索木
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
Cプログラミング演習 第10回 二分探索木.
フルート運指の最適化 動機 管楽器:各音に対し複数の運指がある. 速い部分で滑らかに指を動かすため どの運指を用いるべきか?
(1)序論 人工知能とは 歴史 方法論 人工知能の基礎 問題解決 探索 推論 知識.
Ex7. Search for Vacuum Problem
ぷよゲーの作り方入門 うでぃおふ 11th サカモトトマト Push key F5 Enter で 次のページへ.
アルゴリズムとデータ構造 2011年7月8日課題の復習
先を読んで知的な行動を選択するエージェント
モデル検査(5) CTLモデル検査アルゴリズム
盲目的探索 ─ 知識を用いない探索 ─ (Blind Search)
15.cons と種々のデータ構造.
第2回  発見的探索(1).
問題作成、解説担当:中島 副担当:坪坂、松本
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
第9回 優先度つき待ち行列,ヒープ,二分探索木
離散数学 06. グラフ 序論 五島.
アルゴリズムとデータ構造 2012年7月2日
5.チューリングマシンと計算.
パターン認識 ークラスタリングとEMアルゴリズムー 担当:和田 俊和 部屋 A513
アルゴリズムとデータ構造1 2006年6月23日
基本情報技術概論(第6回) 埼玉大学 理工学研究科 堀山 貴史
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 2013年7月2日
アルゴリズムとデータ構造 2013年7月8日
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
分枝カット法に基づいた線形符号の復号法に関する一考察
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
参考:大きい要素の処理.
データ構造と アルゴリズムI 第三回 知能情報学部 新田直也.
第4章 空間解析 2.ネットワーク分析 (2) 最大流問題
アルゴリズム ~すべてのプログラムの基礎~.
アルゴリズムとデータ構造 2012年7月9日
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

グラフ探索(基本的には前向き推 論) 目標節点 (goal): 探査を終了する節点 open list : 今後調べる節点を記載しておく (探査し終わった節点は open から削除) 始節点が goal ならば終了、 そうでなければ探査開始

探索の基本アルゴリズム(木の場 合) 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へもどる}

Depth-1 ST -search (木の場合) Depth-first-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 へ (n を展開し, 全子節点 n i を open の先頭に入れる ) n i から n へポインタを付けておく 7. 2へ }

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

S(1,1) A(2,3) B(2,4) D(1,4) E(3,4) F(3,3) C(2,2) H(3,2) I(3,1) G(4,4)

Depth-1 ST 深さ優先探索( graph ) Depth-first-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 を展開し全子節点 n i を open の先頭へ ) n i から n へポインタを付けておく 7. 2へ }

Breadth-1 ST 幅優先探索( graph) Breadth-first-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 を展開し, 全子節点 n i を open の最後へ ) n i から n へポインタを付けておく 7. 2へ }

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 ) S(1,1) A(2,3) B(2,4) D(1,4) E(3,4) F(3,3) C(2,2) H(3,2) I(3,1) G(4,4)