オートマトンと言語

Similar documents
オートマトンと言語

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

PowerPoint プレゼンテーション

Microsoft PowerPoint - ad11-09.pptx

<4D F736F F F696E74202D D8C7689E682C68DC5934B89BB F A2E707074>

Taro-2分探索木Ⅰ(公開版).jtd

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

nlp1-04a.key

PowerPoint プレゼンテーション

Microsoft PowerPoint - アルデIII 02回目10月15日

alg2015-6r3.ppt

オートマトンと言語

Microsoft PowerPoint - kougi10.ppt

Microsoft PowerPoint - 09re.ppt [互換モード]

Microsoft PowerPoint - アルデIII 02回目10月14日

Microsoft PowerPoint - algo ppt [互換モード]

Microsoft PowerPoint - 1.ppt [互換モード]

Microsoft PowerPoint - algo ppt [互換モード]

オートマトンと言語

Microsoft PowerPoint - DA2_2018.pptx

情報数理学

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - 05.pptx

PowerPoint Presentation

14.Graph2

生命情報学

Microsoft PowerPoint - 13.ppt [互換モード]

Microsoft PowerPoint - DA2_2019.pptx

Microsoft PowerPoint - 3.ppt [互換モード]

Microsoft PowerPoint - mp11-06.pptx

Microsoft PowerPoint - アルデIII 10回目12月09日

Microsoft PowerPoint - DA2_2017.pptx

memo

前期募集 令和 2 年度山梨大学大学院医工農学総合教育部修士課程工学専攻 入学試験問題 No.1/2 コース等 メカトロニクス工学コース 試験科目 数学 問 1 図 1 は, 原点 O の直交座標系 x,y,z に関して, 線分 OA,OB,OC を 3 辺にもつ平行六面体を示す. ここで, 点 A

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - kougi11.ppt

C8

Microsoft PowerPoint - H21生物計算化学2.ppt

Microsoft PowerPoint - 2.ppt [互換モード]

Microsoft PowerPoint - 5.ppt [互換モード]

スライド タイトルなし

Microsoft PowerPoint - 06.pptx

PowerPoint プレゼンテーション

離散数学

計算幾何学入門 Introduction to Computational Geometry

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると

Microsoft PowerPoint - 7.pptx

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2018.pptx

離散数学

memo

vecrot

【】三平方の定理

Microsoft PowerPoint - 7.pptx

第2回

数学の世界

PowerPoint Presentation

2015-2018年度 2次数学セレクション(整数と数列)解答解説

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - 11Syntax.ppt

memo

untitled

Microsoft PowerPoint - 10.pptx

Taro-2分探索木Ⅱ(公開版).jtd

DVIOUT

040402.ユニットテスト

Microsoft PowerPoint - DA1_2019.pptx

Microsoft PowerPoint - LDW.ppt [互換モード]

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›]

立体切断⑹-2回切り

PowerPoint Presentation

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

<8D828D5A838A817C A77425F91E6318FCD2E6D6364>

Microsoft Word - 13

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx

重要例題113

ファイナンスのための数学基礎 第1回 オリエンテーション、ベクトル

比例・反比例 例題編 問題・解答

2015-2017年度 2次数学セレクション(複素数)解答解説

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

<4D F736F F D E4F8E9F82C982A882AF82E98D7397F1>

20~22.prt

アルゴリズムとデータ構造

Information Theory

二等辺三角形の性質 (2) 次の図の の大きさを求めなさい () = P=Q P=R Q 68 R P (2) (3) 五角形 は正五角形 = F 50 F (4) = = (5) === = 80 2 二等辺三角形の頂角の外角を 底角を y で表すとき y を の式で表しなさい y 2-5-2

離散数学

プログラム言語及び演習Ⅲ

2015年度 岡山大・理系数学

Microsoft PowerPoint - 09-search.ppt [互換モード]

< D8C6082CC90AB8EBF816989A B A>

機構学 平面機構の運動学

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

Chap3.key

Microsoft Word docx

DVIOUT-17syoze

簡単な検索と整列(ソート)

Transcription:

オートマトンと言語 4 回目 5 月 2 日 ( 水 ) 3 章 ( グラフ ) の続き 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/public/automaton/

授業の予定 ( 中間試験まで ) 回数月日 内容 4 月 日オートマトンとは, オリエンテーション 2 4 月 8 日 2 章 ( 数式の記法, スタック,BNF) 3 4 月 25 日 2 章 (BNF),3 章 ( グラフ ) 4 5 月 2 日 3 章 ( グラフ ) 5 5 月 9 日 4 章有限オートマトン 6 5 月 6 日有限オートマトン 2 2 3 章の小テスト 7 5 月 23 日正規表現 8 5 月 3 日正規表現, 非決定性有限オートマトン 9 6 月 6 日中間試験, 前半のまとめ出張などにより, 授業日が変更になる場合があります.

授業の予定 回数月日 内容 6 月 3 日 NFA DFA 6 月 2 日 DFA の最小化 2 6 月 27 日 DFAの最小化, 有限オートマトン の応用 3 7 月 4 日 プッシュダウンオートマトン, チューリング機械 4 7 月 日 形式言語理論, 文脈自由文法 5 7 月 8 日 期末試験, まとめ 出張などにより, 授業日が変更になる場合があります.

前回のまとめ 2 章 3 章 BN(F) 記法 ( 離散 ) グラフ 多重グラフ 単純グラフ 連結グラフ ( コンピュータで扱う場合の ) グラフの表現

前回の宿題 演習問題 4(BNF 構文図式 ) グラフの説明内の用語を覚える 集合表現 隣接行列 隣接リスト 表現を変換し表示するプログラムを作る

前回の復習 3 章離散グラフと木グラフ ( 離散 ) グラフ (49 ページ ) 節点 ( ノード ) の集合と節点を結ぶ辺 ( エッジ, アーク ) の集合 節点 ( ノード ) 辺 ( エッジ ) 弧 ( アーク )

離散グラフの例ラベル付き無 向グラフ (49 ページ ) a b 節点 ( ノード ) 頂点, 点 5 4 6 8 辺 ( エッジ ) 弧 ( アーク ) c 7 d

離散グラフの例有向グラフ (49 ページ ) 辺 ( アーク ) に向きが有る

多重グラフ (5 ページ ) 同じ節点をつなぐ辺が複数ある 同じ節点対を結ぶ辺が 2 つある ( 多重辺 ) 節点 辺 始点と終点が同一節点の辺がある ( ループ ) 辺 節点 多重グラフ

多重グラフの部分グラフ (5 ページ ) 多重グラフ 多重グラフの部分グラフ あるグラフの部分集合がグラフをなしている ( 部分集合のすべての辺の両端がその部分集合の節点 )

単純グラフ ループも多重辺も含まないグラフ 多重グラフ以外のグラフ 節点 辺

節点ラベル付き単純グラフと節 点次数 (5 ページ ) 節点の次数 : 節点に接続する辺の数 ( 隣接節点の数 ) a b c 節点 aの次数 :2 節点 bの次数 : 節点 cの次数 : 節点 dの次数 :2 節点 eの次数 :3 d e

単純グラフの 次数, 径路, 小径, 順路, 閉路 次数 : 節点に接続する辺の数 ( 隣接節点の数 ) 偶節点 : 次数が偶数の節点 奇節点 : 次数が奇数の節点 孤立点 : 次数 の節点 径路 : ある二つの節点を結ぶ節点と辺の列 径路の長さ : 径路をなす辺の数 小径 : 辺が重複しない径路 順路 : 節点が重複しない径路 閉路 : 両端が同じ節点で, それ以外は節点の重複がない径路

径路, 小径, 順路, 閉路の例 (5 ページ ) b a c 径路の例 :a-d-c-a-d-b 長さ =5 小径の例 :a-b-e-c-a-d 長さ =5 順路の例 :a-d-c-e-b 長さ =4 閉路の例 :a-b-e-c-a 長さ =4 径路 小径 順路, 閉路 d e

前回はここまで 連結グラフ (5 ページ ) 連結グラフ : 任意の二つの節点間に径路が存在するグラフ 2 節点間の距離 : 二つの節点間の最短の順路の長さ グラフの直径 : 連結グラフの任意の 2 点間の距離の最大値 切断点 ( カットポイント ): ある節点とそれに連結する辺を除くと非連結になる節点 橋 ( ブリッジ ): その辺を除くと非連結になる辺

演習問題 下に示す連結グラフについて どこが切断点, 橋になるか示しなさい グラフの直径の長さを答えなさい a b d f c e g

演習問題 の解答 下に示す連結グラフについて どこが切断点, 橋になるか示しなさい そのグラフの直径の長さを答えなさい a b d f 切断点 : 橋 : 直径の長さ :3 c e g

グラフの表現の例 52 ページ (a) グラフ図表現 a b c d 計算機にグラフの情報を格納する方法 :(b),(c),(d)

グラフの表現の例 52 ページ (b) 集合表現 V = { a, b, c, d} 節点の集合 E = {( a, b),( a, c),( b, c),( b, d )} 辺の集合 a b c d

グラフの表現の例 52 ページ (c) 隣接行列表現 a b c d a b c d a b c d a と b が隣接 a 行 b 列 :,b 行 a 列 :

グラフの表現の例 52 ページ (d) 隣接リスト表現 (( a,( b, c)), a は b と c に隣接している ( b,( a, c, d )), ( c,( a, b)), a b ( d,( b))) c d

完全グラフ, 正則グラフ, 2 部グラフ, 木グラフ (53 ページ ) 完全グラフ : すべての節点が他のすべての節点と, 辺で結ばれているグラフ 正則グラフ : すべての節点の次数が等しいグラフ a b a c b d 2 部グラフ : 節点集合を 2 つに分けて, それぞれの集合内の節点同士を結ぶ辺がないグラフ c d a b 木グラフ : 閉路のない連結グラフ a b c d c d

演習問題 2 例題 3.2 図 3.6 のグラフについて答えよ (AからFへの小径( 小道 ) はいくつあるか ) (AからFへの順路( 道 ) はいくつあるか ) AとFの間の距離を求めよ このグラフの直径を求めよ (Bを含む異なる閉路はいくつあるか) A B C D E F

演習問題 2の解答例題 3.2 (52ページ) A から F への小径はいくつあるか 2 A から F への順路はいくつあるか A と F の間の距離を求めよ 2 このグラフの直径を求めよ 3 B を含む異なる閉路はいくつあるか 6

演習問題 3 例題 3.3 図 3.7のグラフについて答えよ グラフの隣接行列を求めよ (FからIへの順路はいくつあるか) グラフの直径を求めよ 切断点はどれか, すべて示せ ブリッジはどれか, すべて示せ A B C D E F G H I

演習問題 3 の解答 例題 3.3 (52 ページ ) グラフの隣接行列を求めよ 次ページ F から I への順路はいくつあるか 2 F と I の間の距離を求めよ 4 グラフの直径を求めよ 5 切断点はどれか すべて示せ B,D,H ブリッジはどれか すべて示せ A-B, D-H

例題 3.3 a グラフの隣接行列 A B C D E F G H I A B C D E F G H I

グラフ理論 (56 ページ ) グラフの性質について研究する学問 アルゴリズム, コンピュータのデータ構造などに応用されている 2 分探索木 平衡木,AVL 木 B 木

同型なグラフの例 二つのグラフの 節点集合間の写像が全単射 節点の隣接関係を保存 二つのグラフは互いに同型 B C A D E A B C D E A B C D E q s p t r p s r q t p s r q t ( A -> p, B -> s, C -> r, D -> q, E -> t )

グラフとその補グラフの例 完全グラフ グラフ G G の補グラフ G

ここまで a b 完全 自己補グラフの例 グラフ c d G G a b a b 同じ d c c d c d a b 同型

グラフの行列表現 単純グラフの隣接行列 = = 節点を結ぶ辺が存在しないとき節点と節点を結ぶ辺が存在するとき節点と行列 j i j i a n n a A ij ij ) ( 4 3 2 対称正方行列 2 3 4 2 3 4 節点節点

グラフの行列表現 単純グラフの接続行列 = = 辺と接続していないとき節点が辺と接続しているとき節点が行列 j i j i m m n m M ij ij ) ( 4 3 2 2 3 2 3 4 2 3 節点辺

オイラーグラフとハミルトングラフ オイラー閉路 : グラフの全ての辺をちょうど 度ずつ通る閉路 ( 一筆書きが可能 ) オイラーグラフ : オイラー閉路が存在するグラフ ハミルトン閉路 : グラフの全ての節点をちょうど 度ずつ通る閉路 ( 巡回セールスマン問題 ) ハミルトングラフ : ハミルトン閉路が存在するグラフ

オイラーグラフ, ハミルトングラフ オイラーグラフ ハミルトングラフ 全ての辺を 度ずつ通る閉路が存在するグラフ 一筆書きが出来る 全ての節点を 度ずつ通る閉路が存在するグラフ 巡回セールスマン問題

3.3 木グラフ 木 : 連結可能な有向グラフで, つの入力節点 ( 入次数 =)( 根 ) といくつかの出力節点 ( 出次数 =)( 葉 ) があり, かつ入口からすべての出口へ至る有向順路がそれぞれつだけ存在する.

木の特徴 2 進木 (2 分木 ) 入次数 : ルート, 根 (root) 分岐数 2 節点の次数 2 分岐節点 枝 (branch) 葉 (leaf) 出次数 : 部分木 深さ ( 高さ )2

木グラフの例 コンピュータのファイルシステム / bin boot var etc 親節点 home spool log ysuzuki nana 子節点兄弟 ( 姉妹 ) 節点

演習問題 例題 3.48( 改 ) 節点が 4 個以下で構成される木をすべて描け

演習問題 例題 3.48( 改 ) の答え 節点が 4 個以下で構成される木をすべて描け 8 種類

グラフの探索と探索木 B 有向グラフ A D AからFへの探索探索木初期節点 A C B C D E E E E と F には 2 種類のルートがある F ゴール F F

順序木 順序木の定義 任意の x,y S (S は木の節点集合 ) に対し, x,y が祖先 子孫関係の順序集合 (S; t ) で比較可能なとき,x が y の祖先ならば x o y x,y が (S; t ) で比較不能のとき,x,y の共通の祖先 (S における {x,y} の上限節点 ) での枝の集合で,x の属する枝の根が y の属する枝の根より上位であれば ( 左にあれば ),x o y 親の親 親 y X 共通の祖先 親 X y x t y x o y x o y

演習問題 2 例題 3.59 図 3.24 の順序木の節点を, 全順序関係 o により, 降順に並べよ. a b c d e f g h i j k

演習問題 2 例題 3.59 の答え a b c d e f g h i j a-b-e-f-g-c-h-d-i-k-j k 前置記法の順序

数式の構文と構文解析 (p.78) + 中置記法 ((a a)+(a (a+a))) + + a a a + : 部分木 構文木 a a

各数式記法と構文木の関係 前置記法 : 中 左 右 +xy 節点の左を通過したときに書き出す 左 中 右 x + y 中置記法 : 左 中 右 x+y 節点の下を通過したときに書き出す 左 中 右 x + y 後置記法 : 左 右 中 xy+ 節点の右を通過したときに書き出す 左 中 右 x + y

例題 3.7 () 計算順序を見やすくするため括弧を追加 後置記法 :xxx+*xx+* ((x(xx+)*)(xx+)*) 構文木 * + x + x x x x * 前置記法 :**x+xx+xx 中置記法 :(x*(x+x))*(x+x)

例題 3.7 (2) 中置記法 :x+x*x+x + 2 + 構文木 + x * x + x x * x x x x (x+(x*x))+x (((x+x)*x)+x) 前 :+*+xxxx 前 :++x*xxx 後 :xx+x*x+ 後 :xxx*+x+ 5 種類の構文木 3 * + + x x x x (x+x)*(x+x) 前 :*+xx+xx 後 :xx+xx+*

例題 3.7 (3) 中置記法 :x+x*x+x 構文木 4 + x + x * x x+((x*x)+x) 前 :+x+*xxx 後 :xxx*x++ x x 5 + x * x + x+(x*(x+x)) x 前 :+x*x+xx 後 :xxxx+*+

今回のまとめ ( 離散 ) グラフ 多重グラフ 単純グラフ 連結グラフ ( コンピュータで扱う場合の ) グラフの表現 ( 完全 正則 2 部 木 ) グラフ 同型グラフ 補グラフ 構文木

今回の宿題 演習問題,2,3 グラフの説明内の用語を覚える 集合表現 隣接行列 隣接リスト 表現を変換し表示するプログラムの作成