情報数理学

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

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

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

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

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

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

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

オートマトンと言語

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

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx


PowerPoint プレゼンテーション

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ

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

Microsoft PowerPoint L03-Syntex and Semantics-1-students ( )

プログラミング基礎

離散数学

数理論理

オートマトンと言語

C8

Microsoft PowerPoint - 10.pptx

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

PowerPoint Presentation

Microsoft PowerPoint - 7.pptx

航空機の運動方程式

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�)

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

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

プログラミング実習I

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

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

プレポスト【解説】

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

Microsoft PowerPoint - Compiler03.pptx

Information Theory

構造化プログラミングと データ抽象

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

2014 年度 SCCP s 古河智弥 目的 論理型プログラミング言語 Prolog の学習 宣言型言語であり 探索などに利用することができるプログラミング言語 Prolog の基本を習得し 機械学習の研究への応用および データベースの問い合せ言語として Prolog を記述する方法を

JavaプログラミングⅠ

スライド 1

Microsoft Word - thesis.doc

構造化プログラミングと データ抽象

ポインタ変数

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

Probit , Mixed logit

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

Microsoft Word - no103.docx

Microsoft PowerPoint - kyoto

Microsoft PowerPoint - 第3回2.ppt

情報量と符号化

PowerPoint Presentation

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

<4D F736F F D208CF68BA48C6F8DCF8A C30342C CFA90B68C6F8DCF8A7782CC8AEE967B92E8979D32288F4390B394C529332E646F63>

Microsoft PowerPoint - Compiler03note.pptx

プログラミング実習I

5_motif 公開版.ppt

Microsoft Word - 19-d代 試é¨fi 解ç�fl.docx

スライド 1

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A

Microsoft PowerPoint - mp11-06.pptx

_unix_text_command.pptx

2014年度 千葉大・医系数学

PowerPoint Presentation

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

koji07-02.dvi

NOTE P, A,. A P ( A, P ),,.,. P A. (set) (set), (). (element), (element).,.,. ( A, B, X, Y, P ), { } (),..3 (union) A, B,A B, A B (union),. A B = {x x

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

Microsoft PowerPoint - LogicCircuits01.pptx

Information Theory

PowerPoint プレゼンテーション

02: 変数と標準入出力

Functional Programming

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

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

An Automated Proof of Equivalence on Quantum Cryptographic Protocols

Prog1_6th

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 文字列 文字列リテラル プログラムの中で文字列を表す方法は幾つか有るが 基本的な方法は下記の 2 種で有る 対象と成る文字の集まりをダブルクオーテーション ( " ) で囲うか シングルクオーテーション ( ' ) で囲う PYTHON3 "

Excel2013基礎 数式と表編集

論理と計算(2)

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

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

PowerPoint プレゼンテーション

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

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

データベースS

Microsoft PowerPoint - w5.pptx

オートマトンと言語

初めてのプログラミング

Microsoft PowerPoint - ad11-09.pptx

線形代数とは

プログラミング基礎

スライド 1

計算機シミュレーション

Microsoft PowerPoint - 13approx.pptx

A Constructive Approach to Gene Expression Dynamics

ポインタ変数

スライド 1

Transcription:

2007 年度 情報数理学

履修にあたって 2007 年度大学院奇数セメスター ( 前期 ) 開講 教室 : K336 大学院棟 D46( 次回から ) 時限 : 火曜日 3 時限 (2:50-4:20) 担当 草苅良至 2

講義予定 計算機のいろいろな理論モデル 言語理論 計算の限界 問題の難しさ 現実問題と計算 計算量理論 アルゴリズム論 3

参考書 M. Sipser 著 計算理論の基礎 共立出版 997,ISBN:4-320-02948-8 岩間一雄 オートマトン 言語と計算理論 コロナ社 2003 ISBN:4-339-082-X 岩間一雄 アルゴリズム理論入門 昭晃堂 200 ISBN:4-7856-325-2 ホップクロフト ウルマン オートマトン 言語理論 計算論 I,II サイエンス社 984,ISBN:4-789-0374-6,4-789-0432-7 M.R. Garey and D.S.Johnson, "Computers And Intractability:A guide to the Theoryof NP-Completeness," Freeman,979,ISBN:0-767-045-5 V.V. ヴィジラーニ著 浅野孝夫訳 近似アルゴリズム シュプリンガー フェアラーク東京 2002 ISBN:4-43-7099-6 4

. オートマトンと正規表現 5

-. 有限オートマトン メモリがほとんどなく はい と いいえ しか答えられない計算機を考える 自動機械 0 入力テープ ランプ 0 入力テープを 一度だけ 走査したあと はい ならランプ点灯 いいえ ならランプ消灯 このような自動機械を ( 有限 ) オートマトンという 6

有限オートマトンの概略 テープ ヘッド 0 有限制御部 オートマトンを定める要素入力テープテープに書ける文字有限制御部内部状態初期状態状態変化受理かどうかの判断 7

有限オートマトンの数学的定義 有限オートマトンは ここで M = ( Q, Σ, δ, q, F) 0 の 5 項組で与えられる. Q は有限集合で 状態を表す 2. Σ は有限集合で 入力記号の集合を表す 3. δ は Q Σ から Q への写像 ( δ : Q Σ Q ) で 状態遷移を表す δ を状態遷移関数という 4. q0 Q は 初期状態を表す 5. F Q は受理状態の集合を表す とする 8

有限オートマトンの図式表現 ( 状態遷移図 ) 有限オートマトンは 状態遷移図で表現できる オートマトン例 0 M q このオートマトンの形式的定義 ( 数学的定義 ) は M = ({ q, q },{0,}, δ, q,{ q }) 2 2 であり δ は次の状態遷移表により定義される δ 0 q q q 2 q q q 2 2 0 q 2 9

練習 次のオートマトンの数学的表現を与えよ M q 0 q 2 0 q 0 3 0

-2. 言語 ここで 計算機で扱える対象について再考する 計算機が扱える対象は {0,} で表された数と考えがちである しかし {0,} の並びを一種の言語とみなすこともできる 以下では 言語の数学的定義を与える 任意の有限集合をアルファベットという アルファベットの要素を文字という アルファベットの任意の列を文字列という 文字列の集合を ( アルファベット上の ) 言語という

言語の例 アルファベット例 : Σ = {a,b,c,d,,z,( スペース ),( ピリオド )} Σ 上の文字列例 : a aa ab book Σ 上の言語例 : L = { w wは a で始まる文字列 } = {a,aa,ab,ac,ad,,a,a.,aaa, } L 2 = {this,that,is,a,pen,this is a pen.,that is a pen.} L 3 = { 全ての英単語 } { Σ } L = ( 以外の記号を無視した ) 全ての英文 4 2

言語の例 2 アルファベット例 : Σ 2 = {0,} Σ 上の文字列例 : 2 0 00 00 0000000 Σ 上の言語例 : 2 L3 = { w wは で終わる文字列 } = {, 0,, 00, 0,0,, } L4 = { w wは が奇数個である文字列 } = {,0,0,00,00,00,,0000000000, } 3

言語に関する諸概念 ここでは 文字列に関する諸概念の定義を与える 文字列の長さ : 文字列 w に含まれる文字数を 文字列 w の長さといい w という記号で表す 空列 : 長さが0の文字列を空列といい 記号 ε で表す 連結 : 文字列 xの後ろに文字列 y を繋げてえられる文字列をとの連結といい次のような記号で表す x y xy x y k x = xx x k 4

例 Σ 2 = {0,} 上の文字列を考える w= 0, x= 0, y = 00 とする このとき 次式が成り立つ w = 2, x = 3, y = 5 w 0 = x 0 = y 0 = ε ε = 0 y = wx y xw 文字列の連結演算は 交換不可 w = 00, w = 000 2 3 5

言語に関する諸概念 2 ここでは 言語に関する諸概念の定義を与える A と B を言語とする 言語の和集合 ( 和集合演算 ): A B = { x x Aまたはx B} 言語の連結 ( 連結演算 ): A B = AB = { xy x Aかつy B} 言語の閉包 ( スター演算 ): * A = xx 2 xk k かつ xx2 xk A { 0,,, } 6

例 Σ 2 = {0,} L = {0,}, 上の言語を考える L 2 = {0,} このとき 次式が成り立つ とする L L2 = {0,, 0,} L L 2 = {00,0,} 0 L = {}, ε 2 L = L = {0,}, L = LL = {00,0,0,} * L = { ε,0,,00,0,0,,000, } 7

要素の無い言語と空列だけの言語 要素の無い言語と空列だけの言語は異なる L = {} = φ, L = { ε} とする 2 このとき である L L 2 8

オートマトンと言語 オートマトンによって受理される入力の集合は 入力記号上の言語になっている Σ オートマトン例 0 M q q 2 0 このオートマトン M で受理される言語をと書く L( M ) 例えば LM ( ) = { w wは で終わる文字列 } である 9

練習 次の言語を受理するオートマトン M を作成せよ LM ( ) = { w wは 0で終わる文字列 } オートマトンは 状態遷移図および 形式的定義の両方で示す事 20

-3. 非決定性 ( 有限 ) オートマトン オートマトンでは 入力記号にしたがって 状態遷移は一意に定められていた この制限を緩和した計算機モデルが考えられる 非決定性オートマトンとは 同じ入力に対して複数の遷移をゆるす オートマトン である これに対して 同じ入力に対して 一つの遷移しかおこなえない オートマトン を決定性オートマトンという 2

オートマトンの略記 決定性オートマトンは 英語では Deterministic Finite Automaton であり DFA と略記される 非決定性オートマトンは 英語では Non-determinisc Finite Automaton であり NFA と略記される 22

NFA の形式的定義 非決定性有限オートマトンは N = ( Q, Σ, δ ', q0, F) で与えられる ここで の 5 項組. Q は有限集合で 状態を表す 2. Σ は有限集合で 入力記号の集合を表す 3. δ ' は Q Σ から P ( Q) への写像 δ ': Q Σ P ( Q) で 状態遷移を表す δ を状態遷移関数という 4. q0 Qは 初期状態を表す 5. F Q は受理状態の集合を表す とする 23

NFA の状態遷移図 N q 0, 0, 0, q 2 q3 q4 このオートマトンの形式的定義 ( 数学的定義 ) は N = ({ q, q, q, q },{0,}, δ, q,{ q }) 2 3 4 4 であり δ は次の状態遷移表により定義される δ 0 q q q, q q2 q3 q3 q3 q4 q4 q φ φ { } { } 2 4 { } { } { } { } 24

N L N ( ) このオートマトンで受理される言語は LN ( ) である wは最後から3 文字目が, w = である文字列 実は 非決定性オートマトンが受理する言語と同じ言語を受理する決定性オートマトンが常に存在する モデル自体の能力に差がない あとで 証明する 25

言語 wは最後から3 文字目が, w である文字列 M 2 DFA を示す M 2 q 000 0 0 0 0 q 00 q 00 q 0 を受理する 0 0 0 q 00 q 0 q 0 q 26

練習 Σ= {0,} 上の 言語 wは最後から2 文字目が, w である文字列 を受理する非決定性オートマトンと決定性オートマトンを示せ 27

DFA と NFA の状態遷移 M N 2 と調べる 入力 : 00 入力 を例にして DFA と NFA の状態遷移を とする M N 2 q 000 q q 00 q q 2 0 0 q 0 q 0 q 00 q q q 2 q q 4 q 3 q q4 3 28

NFA の受理 NFA の受理とは 入力系列を受理する遷移の系列が存在することである q 受理系列 qqqqq 2 3 4 q q 2 N q q 2 q 3 q q q4 3 q q 4 29

練習 M N 2 とに対して 入力 0の状態遷移を木によって示し 受理か不受理かを確認せよ 30

-4. 正規表現 ( 正則表現 ) DFA で受理できる言語に対して 正規表現と呼ばれる別の表現法が知られている 正規表現の形式的定義 Σ をアルファベットとする Σ 上の正規表現とは 下記の4つにより帰納的に定義される φ. で その表す集合は 空集合である ε {} ε Σ a {} a 2. で その表す集合は である 3. の各元に対して は正規表現で その表す集合は である r s R S 4. とがそれぞれ言語と言語を表す正規表現のとき ( r+ s),( rs),( r*) は正規表現で それぞれ * を表す R SRSR,, a 3

正規演算の優先順位 正規表現の演算記号に優先順位をつけることによって 括弧を省略できる * +< < <() 通常は 上のように優先順位があると考えて 不必要な括弧は省略する 32

例 アルファベット Σ = {0,} 上の正規表現を考える ε = {}, ε 0 = {0}, = {}, 0 = {0}, 0 = {0} ε = {}, 0+ = {0,}, 0+ 0 = {0,0}, ( + 0)(0+ 0) = {0,0,00,00} * = { ε,,,,,, } * 0 = {0, 0, 0, 0, 0, 0, } Σ = (0 + ) * * = {0,} * = { ε,0,,00,0,0,,000,00, } = { 全ての2 進数 } 33

練習 アルファベットを Σ = {a,b,c,d,,z} とする このとき 次の正規表現で表される言語に含まれる文字列をいくつか示し その直感的な意味を述べよ () m(a+e)n (2) (3) (4) (5) * bo * aσ Σ bσ * * ( a+ b+ c) * 34

正規表現の応用 UNIX シェルでは 正規表現で引数を指定できる ただし UNIX の正規表現は UNIX 独特のものなので注意する *: 任意の文字列を表す Σ * +: 一文字以上の文字列 [ cc c ] 2 n [ c c ] n * Σ c c n c+ c2 + + c n {} ε : からまでのいずれかの 文字 ( ) : c から c n までのいずれかの 文字 ( c+ c2 + + c n ) 35

例 ~$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で終わる文字列 ( 組み合わせてファイルを絞り込める ) 36

-5. 拡張 NFA DFA NFA 共に 入力記号 文字に対して つの遷移を行っていた この制限を緩和した計算機モデルが考えられる 拡張 NFA とは 遷移のラベルとして正規表現を許す NFA である 拡張 NFA:Generalized Non-deterministic finite Automaton なので GNFA と略する 37

GNFA の形式的定義 GNFAは G = ( Q, Σ, δ, qs, qa ) で与えられる ここで の 5 項組. Q は有限集合で 状態を表す 2. Σ は有限集合で 入力記号の集合を表す 3. は Q { q } Q { q } から R への写像 δ ( a ) ( s ) :( Q { q }) ( Q { q }) δ R a s で 状態遷移を表す δ を状態遷移関数という ただし R は Σ 上の正規表現すべてからなる集合 ( Σ 上の正規言語 ) を表す 4. qs Qは 初期状態を表す 5. qa Q は受理状態を表す とする 38

GNFA の状態遷移図 G q s * (+ 0) ( + 0)( + 0) q q 2 q a このオートマトンの形式的定義 ( 数学的定義 ) は であり G = ({ q, q, q, q },{0,}, δ, q, q ) δ 2 s a s a は次の状態遷移表により定義される δ q q q s 2 q q q ( + 0) 2 * φ φ φ φ φ ( + 0)( + 0) a φ 39

GNFA に関する注意 初期状態受理状態 q s q a には 他の状態からの遷移がない からは 他の状態への遷移がない 初期状態と 受理状態はそれぞれ つづつしかない 特に 受理状態が つであることに注意する G q s * (+ 0) ( + 0)( + 0) q q 2 q a 入ってくる矢印 ( アーク ) が無い 出て行く ( アーク ) が無い 40

練習 Σ= {0,} 上の 言語 w wは最後から4 文字目が, 0である文字列 を受理する 4 状態の拡張 NFA を状態遷移図と 形式的定義の両方で示せ 4