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

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

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

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

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

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

オートマトンと言語

Microsoft PowerPoint - 9.pptx

PowerPoint プレゼンテーション

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

離散数学

オートマトンと言語

PowerPoint Presentation

Microsoft PowerPoint - 10.pptx

プログラミング基礎

プログラミング実習I

画像解析論(2) 講義内容

航空機の運動方程式

Information Theory

文法と言語 ー文脈自由文法とLR構文解析2ー

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

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

JavaプログラミングⅠ

Microsoft Word - thesis.doc

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

a n a n ( ) (1) a m a n = a m+n (2) (a m ) n = a mn (3) (ab) n = a n b n (4) a m a n = a m n ( m > n ) m n 4 ( ) 552

OCW-iダランベールの原理

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

Microsoft PowerPoint - mp11-06.pptx

Microsoft Word - 18環設演付録0508.doc

Microsoft PowerPoint - LogicCircuits01.pptx

Microsoft PowerPoint - 第3回2.ppt

プログラミング実習I

線形代数とは

スライド 1

2014年度 千葉大・医系数学

Microsoft PowerPoint - kyoto

2014年度 筑波大・理系数学

PowerPoint プレゼンテーション

02: 変数と標準入出力

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位

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

文字コード略歴 よこやままさふみ社内勉強会 2012/05/18 文字コード略歴 Powered by Rabbit 2.0.6

Probit , Mixed logit

PowerPoint Presentation

パソコンシミュレータの現状

学習指導要領

プログラミング基礎

スライド 1

2015年度 信州大・医系数学

Si 知識情報処理

Excel2013基礎 数式と表編集

Transcription:

第 回オートマトンと正規表現 8//5( 火 ) 履修にあたって 8 年度情報数理学 8 年度大学院奇数セメスター ( 前期 ) 開講教室 : K6 大学院棟 D6( 次回から ) 担当 時限 : 火曜日 時限 (:5-:) 草苅良至 講義予定 計算機のいろいろな理論モデル言語理論 計算の限界計算量理論 問題の難しさ 現実問題と計算アルゴリズム論 参考書. Sipser 著 計算理論の基礎 共立出版 997,ISBN:--98-8 岩間一雄 オートマトン 言語と計算理論 コロナ社 ISBN:-9-8-X 岩間一雄 アルゴリズム理論入門 昭晃堂 ISBN:-7856-5- ホップクロフト ウルマン オートマトン 言語理論 計算論 I,II サイエンス社 98,ISBN:-789-7-6,-789--7.R. Garey and D.S.Johnson, "Computers And Intractability:A guide to the Theoryof NP-Completeness," Freeman,979,ISBN:-767-5-5 V.V. ヴィジラーニ著 浅野孝夫訳 近似アルゴリズム シュプリンガー フェアラーク東京 ISBN:--799-6 -. 有限オートマトン メモリがほとんどなく はい と いいえ しか答えられない計算機を考える 自動機械. オートマトンと正規表現 入力テープ ランプ 入力テープを 一度だけ 走査したあと はい ならランプ点灯 いいえ ならランプ消灯 このような自動機械を ( 有限 ) オートマトンという 5 6

第 回オートマトンと正規表現 8//5( 火 ) 有限オートマトンの概略 テープ ヘッド 有限制御部 オートマトンを定める要素入力テープテープに書ける文字有限制御部内部状態初期状態状態変化受理かどうかの判断 7 有限オートマトンの数学的定義 定義 : ( 有限オートマトン ) 有限オートマトンは = ( Q,, δ,, F) の5 項組で与えられる ここで. Q は有限集合で 状態を表す. は有限集合で 入力記号の集合を表す. δ は Q から Q への写像 ( δ :Q Q ) で 状態遷移を表す δ を状態遷移関数という. Q は 初期状態を表す 5. F Q は受理状態の集合を表す とする 8 有限オートマトンの図式表現 ( 状態遷移図 ) 有限オートマトンは 状態遷移図で表現できる オートマトン 次のオートマトンの数学的表現を与えよ このオートマトンの形式的定義 ( 数学的定義 ) は = ({,,{,, δ,,{ ) であり δ は次の状態遷移表により定義される δ 9 -. 言語 ここで 計算機で扱える対象について再考する 計算機が扱える対象は {, で表された数と考えがちである しかし {, の並びを一種の言語とみなすこともできる 以下では 言語の数学的定義を与える 定義 : ( 言語 ) 任意の有限集合をアルファベットという アルファベットの要素を文字という アルファベットの任意の列を文字列という 文字列の集合を ( アルファベット上の ) 言語という 言語の アルファベット : = {a,b,c,d,,z,( スペース ),( ピリオド ) 上の文字列 : a aa ab book 上の言語 : = { w wは a で始まる文字列 = {a,aa,ab,ac,ad,,a,a.,aaa, = {this,that,is,a,pen,this is a pen.,that is a pen. = { 全ての英単語 { = ( 以外の記号を無視した ) 全ての英文

第 回オートマトンと正規表現 8//5( 火 ) 言語の アルファベット : = {, 上の文字列 : 上の言語 : = { w wは で終わる文字列 = {,,,,,,, = { w wは が奇数個である文字列 = {,,,,,,,, 言語に関する諸概念 ここでは 文字列に関する諸概念の定義を与える 定義 : ( 文字列関連 ) 文字列の長さ : 文字列 wに含まれる文字数を 文字列 wの長さといい という記号で表す w 空列 : 長さが の文字列を空列といい 記号 ε で表す 連結 : 文字列 xの後ろに文字列 y を繋げてえられる文字列をとの連結といい次のような記号で表す x y xy x y k x = xx x k = {, 上の文字列を考える w=, x =, y = とする このとき 次式が成り立つ w =, x =, y = 5 w = x = y = ε ε = y = wx y xw w =, w = 文字列の連結演算は 交換不可 5 言語に関する諸概念 ここでは 言語に関する諸概念の定義を与える 定義 : ( 言語関連 ) A と B を言語とする 言語の和集合 ( 和集合演算 ): A B = { x x Aまたはx B 言語の連結 ( 連結演算 ): A B = AB = { xy x Aかつy B 言語の閉包 ( スター演算 ): A = xx xk k かつ xx xk A {,,, 6 = {, = {,, 上の言語を考える = {, このとき 次式が成り立つ とする = {,,, = {,, = {, ε = = {,, = = {,,, = { ε,,,,,,,, 要素の無い言語と空列だけの言語 要素の無い言語と空列だけの言語は異なる = { = φ, = { ε とする このとき である 7 8

第 回オートマトンと正規表現 8//5( 火 ) オートマトンと言語 オートマトンによって受理される入力の集合は 入力記号上の言語になっている オートマトン 次の言語を受理するオートマトン を作成せよ ( ) = { w wは で終わる文字列 オートマトンは 状態遷移図および 形式的定義の両方で示す事 このオートマトンで受理される言語を ( と書く ) えば ( ) = { w wは で終わる文字列 である 9 -. 非決定性 ( 有限 ) オートマトン オートマトンの略記 オートマトンでは 入力記号にしたがって 状態遷移は一意に定められていた この制限を緩和した計算機モデルが考えられる 非決定性オートマトンとは 同じ入力に対して複数の遷移をゆるす オートマトン である これに対して 同じ入力に対して 一つの遷移しかおこなえない オートマトン を決定性オートマトンという 決定性オートマトンは 英語では Deterministic Finite Automaton であり DFA と略記される 非決定性オートマトンは 英語では Non-determinisc Finite Automaton であり NFA と略記される NFA の形式的定義 定義 : ( 非決定性オートマトン ) 非決定性有限オートマトンは N = ( Q,, δ ',, F) の5 項組で与えられる ここで. Q は有限集合で 状態を表す. は有限集合で 入力記号の集合を表す. δ ' は Q から P ( Q) への写像 δ ': Q P ( Q) で 状態遷移を表す δ を状態遷移関数という. Qは 初期状態を表す 5. F Q は受理状態の集合を表す とする NFA の状態遷移図 N,,, このオートマトンの形式的定義 ( 数学的定義 ) は N = ({,,,,{,, δ,,{ ) であり δ は次の状態遷移表により定義される δ { {, { { { { φ φ

第 回オートマトンと正規表現 8//5( 火 ) このオートマトン N で受理される言語 ( N は ) w N ( ) は最後から 文字目が, w = である文字列 である 性質 : ( 決定性オートマトンと非決定性オートマトン ) 実は 非決定性オートマトンが受理する言語と同じ言語を受理する決定性オートマトンが常に存在する 言語 DFA wは最後から 文字目が, w である文字列 を示す を受理する モデル自体の能力に差がない あとで 証明する 5 6 = {, 上の 言語 wは最後から 文字目が, w である文字列 を受理する非決定性オートマトンと決定性オートマトンをトマトンを示せ DFA と NFA の状態遷移 と N をにして DFAとNFAの状態遷移を調べる 入力 : とする 入力 N 7 8 NFA の受理 NFA の受理とは 入力系列を受理する遷移の系列が存在することである 受理系列 と N に対して 入力 の状態遷移を木によって示し 受理か不受理かを確認せよ N 9 5

第 回オートマトンと正規表現 8//5( 火 ) -. 正規表現 ( 正則表現 ) DFAで受理できる言語に対して 正規表現と呼ばれる別の表現法が知られている 定義 :( 正規表現 ) をアルファベットとする 上の正規表現とは 下記のつにより帰納的に定義される. φ で その表す集合は 空集合である. ε で その表す集合は { ε である. の各元 a に対して a は正規表現で その表す集合は { a である r s R S. とがそれぞれ言語と言語を表す正規表現のとき ( r+ s),( rs),( r) は正規表現で それぞれ を表す R S, RS, R 正規演算の優先順位 正規表現の演算記号に優先順位をつけることによって 括弧を省略できる + < < <() 通常は 上のように優先順位があると考えて 不必要な括弧は省略する アルファベット ={, 上の正規表現を考える ε = {, ε = {, = {, = {, = { ε = {, + = {,, + = {,, = {a,b,c,d,,z アルファベットをとする このとき 次の正規表現で表される言語に含まれる文字列をいくつか示し その直感的な意味を述べよ ( + )(+ ) = {,,, () m(a+e)n = { ε,,,,,, = {,,,,,, = ( + ) = {, = { ε,,,,,,,,, = { 全ての 進数 () () () (5) bo a b ( a+ b+ c) 正規表現の応用 UNIX シェルでは 正規表現で引数を指定できる ただし UNIX の正規表現は UNIX 独特のものなので注意する : 任意の文字列を表す +: 一文字以上の文字列 { ε [ cc cn ] : c から c n までのいずれかの 文字 ( c + c + + c n ) [ c c ] n : c から c n までのいずれかの 文字 ( c+ c + + c n ) 5 ~$ls.c average.c hello.c sort.c sum.c ~$ls [ab] average average.c ~$ls [h-s].c hello.c sort.c sum.c ~$.c は.c で終わる文字列 ( 拡張子で区別すると 特定種類のファイルだけを指定できる ) [ab] はaかbで始まる文字列 ( 長いファイル名を一括して扱える ) [h-s].cはhからsのどれかの文字で始まり.cで終わる文字列 ( 組み合わせてファイルを絞り込める ) 6 6

第 回オートマトンと正規表現 8//5( 火 ) -5. 拡張 NFA DFA NFA 共に 入力記号 文字に対して つの遷移を行っていた この制限を緩和した計算機モデルが考えられる 拡張 NFA とは 遷移のラベルとして正規表現を許すとし NFAである 拡張 NFA:Generalized Non-deterministic finite Automaton なのでGNFAと略する 7 GNFA の形式的定義 定義 :( 拡張非決定性オートマトン ) GNFAは G = ( Q,, δ, s, a ) の5 項組で与えられる ここで. Q は有限集合で 状態を表す. は有限集合で 入力記号の集合を表す. は Q { Q { から R への写像 δ ( a ) ( s ) δ :( Q { ) ( Q { ) R a s で 状態遷移を表す δ を状態遷移関数という ただし R は 上の正規表現すべてからなる集合 ( 上の正規言語 ) を表す. s Qは 初期状態を表す 5. a Q は受理状態を表す とする 8 GNFA の状態遷移図 GNFA に関する注意 G s (+ ) ( + )( + ) このオートマトンの形式的定義 ( 数学的定義 ) は であり G = ({,, s, a,{,, δ, s, a) δ は次の状態遷移表により定義される δ s a ( + ) φ φ φ φ φ φ ( + )( + ) a 9 初期状態受理状態 s a には 他の状態からの遷移がない からは 他の状態への遷移がない 初期状態と 受理状態はそれぞれ つづつしかない 特に 受理状態が つであることに注意する G s (+ ) ( + )( + ) 入ってくる矢印 ( アーク ) が無い a 出て行く ( アーク ) が無い = {, 上の 言語 wは最後から 文字目が, w である文字列 を受理する 状態の拡張 NFA を状態遷移図と 形式的定義の両方で示せ 7