数理論理

Size: px
Start display at page:

Download "数理論理"

Transcription

1 オートマトンと計算理論 第 1 部正規表現と有限オートマトン 火曜 5 6 限目必修科目 尾張正樹 居室 :J2415 ( 情報 2 号館 4 階 ) masakiowari@inf.shizuoka.ac.jp 講義資料 : fs.inf.in.shizuoka.ac.jp share class 218 オートマトン

2 本講義の評価について 本講義の成績評価は 課題提出 (web 小テスト ) 期末試験 誤植の指摘と再試験により行います 課題提出 ( メールで連絡します ) を 2 点満点 期末試験を 8 点満点で採点を行います 上記合計 1 点に 誤植の指摘 によるおまけの点数を加えた点が 6 点以上で合格とします

3 再試験は 2 月末から 3 月初旬を予定しています 再試験について 課題提出 + 期末試験 + 誤植の指摘 による評価の結果は 期末試験終了後 比較的早期にお知らせする予定です 課題提出 + 期末試験 + 誤植の指摘 が 6 点に満たなかったが 3 点以上を取った学生には 再試験を受ける機会を与えます 再試験は 1 点満点で採点をし 8 点以上取った場合にのみ単位を与えます

4 誤植の指摘によるおまけの点数 講義資料や期末試験候補問題集には 私の不注意から誤植 ( 書き間違い ) が含まれている可能性があります 講義中に私が気づけなかった誤植を後日メールなどで最初に指摘した学生には 誤植の程度 ( 重要さ ) により ~5 点を与えます 誤植の指摘による点数は 課題提出 + 期末試験 の点数に加算します てにおは の間違いや 漢字の書き間違い などの数学的内容に関係のない間違いは指摘をしても点数にはなりません ( 点加算 ) 数学的内容が異なってしまうような誤植 ( 添え字や変数が間違っているなど ) の場合は 1~5 点の点数を加算します 1 箇所の誤植につき点数をもらえる学生は 1 人のみです 早い者勝ちです 誤植の指摘は メールなどの証拠が残る方法で行い 名前と学籍番号を必ず書いてください

5 期末試験および再試験について (1) 制限時間は約 8 分です 参考書やノート PC などを試験中に見てはいけません 問題は 3~6 題ほど出題されます 問題は 期末試験候補問題集より出題します 問題中の一部のみが出題されたり 複数の問題が 1 題として出題されたりすることもあります 初回講義の時点で 正規表現と有限オートマトン (1-5 回ほど ) に関する候補問題が fs に up されています 残りの候補問題は後日お知らせします

6 期末試験および再試験について (2) 期末試験による成績の評価は 下記の要領で行います 問題 N 題中 M 題正解すれば 8 MM 点とする NN 課題提出(2 点満点 ) を加算して評価とする 再試験による成績の評価は 下記の要領で行います 問題 N 題中 M 題正解すれば 1 MM NN 点とする 1 点満点中 8 点以上取れば 課題提出 + 期末試験 が 6 点未満の場合でも単位を与える

7 課題の提出 (web 小テスト ) について (1) 2-4 回ほど 課題を提出してもらいます 課題提出は 学務情報システム (Livecampus) を用いた web 小テスト形式で行います 課題は講義中に説明しますが 学務情報システムからもメールが送られるようにします 課題提出の締め切りは次の講義の日の前日までとし 1 週間で課題を提出してもらいます

8 課題の提出 (web 小テスト ) について (2) 課題提出による成績の評価は 下記の要領で行います 各回の課題は 1 点満点で採点します N 回課題が提出された場合 II 回目の課題がSS ii 点であったとします この時 以下のようにTTを定義します : TT NN ii=1 SS ii 2 NN 1 このTT (2 点満点 ) と 期末試験の点数 (8 点満点 ) および誤植の指摘による点数を足したものが 最終的な成績になります

9 参考書 メイン : オートマトン 言語と計算理論 岩間一雄 ( コロナ社 ) サブ参考書 : 上記で足りないところの補足用 計算理論の基礎 ( 第 1 2 巻 ) Michael Sipser ( 共立出版 ) アルゴリズムと計算量 谷聖一 ( サイエンス社 SGC ライブラリ 43) 計算理論とオートマトン言語理論 丸山章 ( サイエンス社 ) オートマトン 言語理論 富田悦次 横森貴 ( 森北出版 ) など

10 講義予定 イントロダクション (1 回目 ) 第 1 部正規表現と有限オートマトン 1 章. 形式言語の導入 (1-2 回目 ) 2 章. 正規表現と有限オートマトン (2-5 回目 ) 第 2 部文脈自由文法とプッシュダウンオートマトン 1 章. 文脈自由文法 (5-7 回目 ) 2 章. プッシュダウンオートマトン (7-9 回目 ) 第 3 部チューリング機械と計算理論 1 章. チューリング機械と 型文法 (9-12 回目 ) 2 章. チューリング機械の停止性と決定問題 (12-13 回目 ) 3 章. NP 完全問題 (14-15 回目 )

11 第 部 : イントロダクション この講義で何を学ぶのか?

12 イントロダクション (1) 情報科学科で学んで欲しいこと : 計算機とは何か? Computer= 計算機 この講義の目的 : 計算機とは何か? を数学的に理解する

13 イントロダクション (2) 計算機とは何か? Computer= 計算機 = 計算 (computing) する機械 ( 注意 ) 我々の Computer は 通信 も行っているが この講義では計算のみを扱う ( ネットつながっていない PC)

14 イントロダクション (3) 計算 (computing) って何? 四則演算とその組み合わせ : = 15, 3 9 = 6, 12 1 = 12, 16 3 = 16 3 = ( ) + (4 2) 3 = 42, 微分積分 : dd 2xx2 +4xx 1 dddd xx=1 = 8 1 2xx 2 + 4xx 1 dddd = 5 3 = 線形代数や離散数学の計算も皆さんは知ってます

15 イントロダクション (4) 計算 (computing) って何? 四則演算とその組み合わせ : = 15, ff + : xx 1, xx 2 xx 1 + xx = 6, ff : xx 1, xx 2 xx 1 xx = 12, ff : xx 1, xx 2 xx 1 xx = 16 3 = ff : xx 1, xx 2 xx 1 xx 2 ( ) + (4 2) 3 = 42, gg xx 1, xx 2, xx 3, xx 4 ff ff + ff ff + xx 1, xx 2, xx 3, ff xx 3, xx 1, xx 4

16 イントロダクション (5) 計算 (computing) って何? 微分積分 : dd 2xx 2 + 4xx 1 dddd xx=1 = 8 1 gg xx, aa, bb, cc = aaxx 2 + bbbb + cc に対して 導関数を計算 :gg xx, aa, bb = 2aaaa + bb = ff + ff 2, ff aa, xx, bb. 2 dd 2xx2 +4xx 1 dddd xx=1 = ff + ff 2, ff 2,1, 4 = 8

17 イントロダクション (6) 計算 (computing) って何? 微分積分 : 1 2xx 2 + 4xx 1 dddd = 5 3 = gg xx, aa, bb, cc = aaxx 2 + bbbb + cc に対して 原始関数を計算 : GG xx, aa, bb, cc = aa 3 xx3 + bb 2 xx2 + cccc = ff + ( ff + ( ff ff aa, 3, ff ff xx, xx, xx, ff ff bb, 2, ff xx, xx ), ff cc, xx )

18 イントロダクション (7) 計算 (computing) って何? 微分積分 : 1 2xx 2 + 4xx 1dddd = 5 3 = xx 2 + 4xx 1 dddd = GG 1,2,4, 1 GG,2,4, 1 = ff + ( ff + ( ff ff 2,3, ff ff 1,1, 1, ff ff 4,2, ff 1,1 ), ff 1,1 ) ff + ( ff + ( ff ff 2,3, ff ff,,, ff ff 4,2, ff, ), ff 1, ) = 5 3 = 5 3 = 1.666

19 イントロダクション (8) 計算 (computing) って何? そもそも 何を 計算するのか? 与えられた入力に対して 関数 ff xx 1, xx 2,, xx nn の値を 計算 する 先ほどの例 : 1 ff xx 1, xx 2,, xx nn を四則演算 ff +, ff, ff, ff で表す ff xx 1, xx 2, xx 3, xx 4 = ff ff + ff ff + xx 1, xx 2, xx 3, ff xx 3, xx 1, xx 4 1 ff +, ff, ff, ff の計算の仕方は知っているので ff xx 1, xx 2,, xx nn の値が計算できる

20 イントロダクション (9) 先ほどの例 : 1 ff xx 1, xx 2,, xx nn を四則演算 ff +, ff, ff, ff で表す 2 ff +, ff, ff, ff の計算の仕方は知っているので ff xx 1, xx 2,, xx nn の値が計算できる 2は昔は そろばん でやっていた ( 最古の 計算機 )

21 イントロダクション (1) 与えられた入力に対して 関数 ff xx 1, xx 2,, xx nn の値を 計算 する ( 論理回路や数理論理より ) 通常の PC の中では ブール関数 ff:,1 nn,1 の値を論理回路を用いて計算している 例 : ff xx 1, xx 2, xx 3, xx 4 = xx 1 xx 2 xx 3 xx 1 xx 4 = ff ff ff xx 1, xx 2, ff xx 3, ff xx 1, ff xx 4 ここで xx 1, xx 2, xx 3, xx 4,1, ff xx, yy xx yy, ff xx xx など

22 イントロダクション (11) 通常の PC の中では ブール関数 ff:,1 nn,1 の値を論理回路を用いて計算している 例 : ff xx 1, xx 2, xx 3, xx 4 = xx 1 xx 2 xx 3 xx 1 xx 4 = ff ff ff xx 1, xx 2, ff xx 3, ff xx 1, ff xx 4 1 ff xx 1, xx 2,, xx nn を論理演算 ff, ff, ff, ff で表す 論理回路を描く ( プログラムを書く ) のと同じ 2 ff, ff, ff, ff の計算をする論理素子が実装されているので ff xx 1, xx 2,, xx nn の値が計算できる

23 イントロダクション (11 ) 複数ビットの出力を持つ関数 ff:,1 nn,1 kk kk 個のブール関数 ff 1,, ff ii,, ff kk ff ii :,1 nn,1 を用いて ff xx 1,, xx nn = ff 1 xx 1,, xx nn,, ff kk xx 1,, xx nn 1 ビット出力のブール関数 ff 1,, ff ii,, ff kk が計算できれば ff は計算できる

24 自然数 N を 2 進数表示すると nn xx 1 xx 2 xx mm と 自然数をビット列で表現できた ( 実際は mmbit では ~2 mm 1 までしか表現できない ) イントロダクション (12) 最初の例 : ff: N N N 論理回路の例 : ff:,1 nn,1 kk

25 イントロダクション (13) 自然数をビット列で表現できた 実際は nnbit では ~2 nn 1 までしか表現できない もっとも 大きな自然数を計算するには 非常に大きな そろばん が必要 メモリの有限性 メモリの制限がなければ いくらでも大きな論理回路を実装可能なはず 全てのビット列の集合を以下で定義 :,1 nn N,1 nn メモリの制限のない ( 架空の )PC は ff:,1,1 を計算

26 イントロダクション (14) 全てのビット列の集合を以下で定義 :,1,1 nn nn N メモリの制限のない ( 架空の )PC は ff:,1,1 を計算 離散数学で 可算集合の可算個の和集合は 可算集合 であることを習った,1 と N は対等 ( 全単射 gg:,1 N が存在 )

27 イントロダクション (15),1 と N は対等 ( 全単射 gg:,1 N が存在 ) 関数 ff: N N は ビット列の写像 gg 1 ff gg:,1,1 に変換できる ビット列の写像 ff:,1,1 関数 gg ff gg 1 : N N に変換できる ( 注意 ) 実際は gg は全単射でなくても 単射であればよく その場合 gg 1 の代わりに 別の単射 gg : N,1 を使う

28 イントロダクション (16) そもそも 通常 自然数 nn N は 1 進法で扱っている 1,2,3, 9, 1,11,12,.99, 1,11.,999, 1 進法では 自然数 nn に,1,, 9 の列 xx 1 xx 2 xx mm を対応させる 全ての,1,, 9 の列の集合を以下で定義 :,1,, 9 nn N,1,, 9 nn,1,, 9 と N も対等 全単射 gg:,1,, 9 N が存在

29 イントロダクション (17),1,, 9 と N も対等 全単射 gg:,1,, 9 N が存在 関数 ff: N N は,1,, 9 の列の写像 gg 1 ff gg:,1,, 9,1,, 9 に変換できる,1,, 9 の列の写像 ff:,1,, 9,1,, 9 関数 gg ff gg 1 : N N に変換できる

30 イントロダクション (18) 任意の自然数 mm に対して mm 進法が存在する (mm 2) 同様の議論により 関数 ff: N N は,1,, mm 1 の列の写像 fff:,1,, mm 1,1,, mm 1 に変換できる,1,, mm 1 nn N,1,, mm 1 nn

31 イントロダクション (19) そもそも アラビア数字を使う必要性はない 任意の記号 ( 文字 ) の集合 ( アルファベット )Σ aa 1,, aa mm は,1,, mm 1 と対等 Σ aa 1,, aa mm の列を以下で定義 : Σ = aa 1,, aa mm nn N aa 1,, aa mm nn Σ と N は対等なので 関数 ff: N N は Σ の列の写像 fff: Σ Σ に変換できる

32 イントロダクション (2) 計算 (computing) って何? そもそも 何を 計算するのか? 答え : 記号の列 Σ の写像 ff: Σ Σ Σ =,1 のときはビット列の写像になる Σ と N は対等な集合なので 自然数の関数 ff: N N を考えているのと同じである

33 イントロダクション (21) 計算 (computing) って何? どのように 計算するのか? 通常 人間 ( 手計算 そろばん ) や PC( 機械 ) は 定式化された手順 ( アルゴリズム ) に従って計算を進めている アルゴリズムは 人間や機械が 精確に順を追って従うことのできる規則のリストとして指定される 人間が計算を行う動作を 単純化していくことで 計算の仕方 を数学的に定義する

34 イントロダクション (22) 人間 (A さん ) が計算を行う動作を 単純化していくことで 計算の仕方 を数学的に定義する A さんは 紙とペンで計算を進めていくとする 左図のように 掛け算を計算する しかし この計算は一列に書いても 本質は失わない = =

35 イントロダクション (23) = = AA さんは マス目が書いてある一次元の非常に長いテープを使って 上記の計算を行うことにする = = AAさんは テープに沿って行ったり来たりしながら 記号を書きくわえたり 書き込まれた記号を消したりして計算を進めていく

36 イントロダクション (24) テープに沿って行ったり来たりしながら 記号を書きくわえたり 書き込まれた記号を消したり AA さんが 次にどの記号を書き込むか は AA さんが注意を向けている記号 と AA さんの心の状態 ( もしくは脳の状態 ) で決まる = =

37 イントロダクション (25) AA さんが 次にどの記号を書き込むか は AA さんが注意を向けている記号 と AA さんの心の状態 ( もしくは脳の状態 ) で決まる ここにAAさんの注意が向けられているとする = 1かける7は7なので Aさんは7を書き込む = 7

38 イントロダクション (26) ここに AA さんの注意が向けられているとする = = 7たすは7なので 7を書き込む 注意を動かす = = 7 7 たす 1 は 8 なので 8 を書き込む ( 先ほどは掛け算だった!) = = 8 7

39 イントロダクション (27) AA さんが掛け算をするのか 足し算をするのかは AA さんの心の状態に依存する 一般に 計算を遂行する人物 ( 機械 ) は 以下の制約の下で作業を行う : 1 計算過程の各段階において 少数の記号だけに注意が向けられる 2 各段階の動作の決定は 注意を向けられている記号と 計算を実行している人物の現在の心の状態だけに依存する

40 イントロダクション (27 ) 1 計算過程の各段階において 少数の記号だけに注意が向けられる どれだけの数の記号に同時に注意を向ける必要があるか? 同時に複数の記号に注意を向ける代わりに 一つずつ順番に それらの記号に注意を向けてもよい また 注意を向ける位置をテープのあるマス目から遠くの別のマス目に移動させることは マス目を一つずつ

41 イントロダクション (28) 1 計算過程の各段階において 少数の記号だけに注意が向けられる 注意を向ける位置の移動について : 注意を向ける位置をテープのあるマス目から遠くの別のマス目に一気に移動させる代わりに マス目を一つずつ移動させても本質的に同じ = = 7

42 イントロダクション (29) = = 7 結局 どのような計算作業も以下の手続きで実行できる : 計算は マス目で区切られた紙テープに記号を書くことで遂行される 計算過程の各ステップで ある 1 つのマス目に書かれた記号に注意を向ける 各ステップでの動作 : 1 注意を向けていたマス目に記号を書き込む ( 上書きする ) 2 注意を向ける位置を 右か左 に 1 マス移動させる この動作 ( 書き込む記号と 右か左 ) は 注意が向けられた記号と AA さんの心の状態で決定される

43 イントロダクション (3) = = 7 A さんを機械で置き換える A さんが注意を向ける記号 情報を読み書きするヘッド A さんの心の状態 機械の内部状態 1 1 ヘッド

44 イントロダクション (31) = = 7 機械 ( チューリング機械 ) は以下のように動作する : 機械は マス目で区切られた紙テープにヘッドを使って記号を読み書きして 計算を進める 計算過程の各ステップで ヘッドはある 1 つのマス目にある 各ステップでの動作 : 1 ヘッドのあるマス目に記号を書き込む ( 上書きする ) 2 ヘッド位置を 右 or 左 に 1 マス移動させる この動作 ( 書き込む記号と 右 or 左 ) は ヘッドの位置にある記号と 機械の内部状態で決定される 写像 δδ:( ヘッド位置の記号, 内部状態 ) ( 書き込む記号 右 or 左 ) が実質的に アルゴリズム になっている

45 イントロダクション (32) = = 7 チャーチ=チューリングのテーゼ (Church-Turing thesis): 現実の計算機で計算できる関数は チューリング機械で計算できる関数である 逆に チューリング機械で計算できる関数は メモリが十分にあれば 現実の計算機で計算できる どのような新しい仕組みの計算機を設計しても その計算機で計算できる関数は チューリング機械で計算可能な関数になるという経験則もしくは予測

46 イントロダクション (33) = = 7 チューリング機械 = 通常の計算機の数学的モデル ( 計算モデル ) 一般に チューリング機械のように 次の動作 が 現在読んでいる記号 と 内部状態 に依存して決定される計算モデルをオートマトンと呼ぶ 通常の計算機より 低い能力 しか持たない より 簡単な仕組 みの計算機のモデルにも興味がある

47 イントロダクション (34) = = 7 チューリング機械より 低い能力 しか持たない より 簡単な仕組 みのオートマトン : 1 1 有限オートマトン : テープは読むことしかできない プッシュダウンオートマトン : テープは読むことしかできない スタックを持つ = 情報の出し入れが先頭からしかできないメモリ ) AA BB BB ヘッド 1 ヘッド

48 イントロダクション (35) 複数ビットの出力を持つ関数 ff:,1 nn,1 kk kk 個のブール関数 ff 1,, ff ii,, ff kk ff ii :,1 nn,1 を用いて ff xx 1,, xx nn = ff 1 xx 1,, xx nn,, ff kk xx 1,, xx nn 1 ビット出力のブール関数 ff 1,, ff ii,, ff kk が計算できれば ff は計算できる よって この講義では 当面の間 1 ビットの出力を持つ関数の計算のみを扱う

49 イントロダクション (36) この講義では 当面の間 1 ビットの出力を持つ関数の計算のみを扱う 1 ビットの出力しか持たないオートマトンのみを扱う 入力の記号列 xx Σ に対してオートマトンが1を出力するとき xxを受理するオートマトンがを出力するとき xxを拒否すると呼ぶ ( オートマトンは永遠に止まらない可能性もある )

50 イントロダクション (37) 1 ビットの出力の関数 ff: Σ,1 は ff xx = 1 となる列の集合 LL xx Σ ff xx = 1 を指定すると完全に決定できる ff は部分集合 LL の定義関数である ff があるオートマトン MM で計算可能 MM は xx LL を受理 xx LL を拒否する

51 イントロダクション (38) 記号集合 ( アルファベット ) Σ を固定したとき 記号の列全体の集合 Σ の部分集合を言語と呼ぶ LL が言語のとき 記号列 xx LL を LL に属する文章と呼ぶ オートマトン MM で言語 LL が認識可能 MM は xx LL を受理 xx LL を拒否する LL の定義関数 ff があるオートマトン MM で計算可能

52 イントロダクション (39) オートマトン MM で言語 LL が認識可能 MM は xx LL を受理 xx LL を拒否する オートマトンのクラス ( チューリング機械 有限オートマトン ) を固定する このクラスに属するあるオートマトンMMで認識可能な言語を このクラスのオートマトンで認識可能な言語と呼ぶ チューリング機械で認識可能な言語の集合 プッシュダウンオートマトンで認識可能な言語の集合 有限オートマトンで認識可能な言語の集合 などを知りたい

53 イントロダクション (4) 与えられた言語 LL を コンパクトに ( 簡潔に ) 指定したい 与えられた文章が日本語 ( 英語 ) であるかどうかは 文章が日本語 ( 英語 ) の文法に従って作られているかどうかで 判断できる 同様に 言語 LL に対して その文法に従って文章 xx が作られているかどうかで LL に入っているかどうかを判断できるもの ( 形式文法 生成文法 ) を定義することができる 形式言語理論

54 イントロダクション (41) 同様に 言語 LL に対して 文章 xx が LL に入っているかどうかを判断する文法 ( 形式文法 生成文法 ) を定義することができる 文法のクラスとオートマトンのクラスの対応 : チューリング機械で認識可能な言語の集合 = 型文法で生成可能な言語の集合プッシュダウンオートマトンで認識可能な言語の集合 = 文脈自由文法で生成可能な言語の集合有限オートマトンで認識可能な言語の集合 = 正規文法 ( 正規表現 ) で生成可能な言語の集合

55 言語のモデルと計算機のモデルの対応を理解する 講義全体の前 3 分の 2 = オートマトンと言語理論 主題は 2 つ オートマトン : 計算機のモデル ( 抽象機械 ) 有限オートマトン プッシュダウンオートマトン チューリング機械 形式言語 : ( プログラミング ) 言語のモデル 正規表現 正規言語 正規文法 文脈自由文法 文脈自由言語 型文法 型言語

56 講義全体の後ろ 3 分の 1 = 計算理論 計算模型やアルゴリズムを理論的に扱う分野 計算可能性理論 与えられた問題がコンピュータで解けるか? チューリング機械の停止性問題 計算複雑性理論時間計算量 : 計算にかかるステップ数空間計算量 : 計算に必要なメモリ量特に計算量クラスNPについて詳しく抗議する

57 第 1 部正規表現と有限オートマトン

58 第 1 章 : 形式言語の導入 1. 文章の意味を理解する 2. 文章の正しさを理解する 3. 形式言語を導入する

59 1. 文章の意味を理解する (1) 計算機に文章の意味を理解させるにはどうしたらよいか? 数式を文章の例にとって考える : (8 + 13) 二つの数の加減乗除しか知らない小学生にこの計算の仕方を教えよう!

60 1. 文章の意味を理解する (2) 木をつかって数式 ( 文章 ) を記述する木 = 連結で 閉路のない 無向グラフ ( 親 ) 根 枝 頂点 ( 子 ) 葉葉葉葉

61 1. 文章の意味を理解する (3) 15 木をつかって する + 根 葉 / 枝 + 51 (8 + 13) を記述 頂点 頂点に演算子を置く 葉に数字を置く

62 1. 文章の意味を理解する (3) 葉から初めて 子から親へ計算をしていく = = 葉 23 / 7 + 根 + + 枝 = 15 頂点 = =

63 1. 文章の意味を理解する (4) 文章 : (8 + 13) 対応する意味 : 木 木があれば 式の値を 簡単に計算できる 導出木と呼ぶ 文章から木を導くルールを文法と呼ぶ

64 2. 文章の正しさを解析する (1) 文章の意味が定まるためには 文章が 正しい 必要がある 正しい文章ってなに? 例 : カッコ文数式から数値や演算子を消しカッコだけ残した ( ( ) ( ( ) ) ( ( ) ) この文章は正しいだろうか?

65 2. 文章の正しさを解析する (2) 例 : カッコ文数式から数値や演算子を消しカッコだけ残した ( ( ) ( ( ) ) ( ( ) ) この文章は正しいだろうか? 答え : 正しくない理由 : 左カッコ ( が右カッコ ) よりも多いから (6 個 ) (5 個 ) 左カッコの数 = 右カッコの数が必要

66 2. 文章の正しさを解析する (3) カッコ文の二つ目の例 : ( ( ) ( ( ( ) ) ) ) ) ( ( ) ( ( ) ) この文章は正しいだろうか?

67 2. 文章の正しさを解析する (3 ) カッコ文の二つ目の例 : ( ( ) ( ( ( ) ) ) ) ) ( ( ) ( ( ) ) この文章は正しいだろうか? 答え : 正しくない ( ( ) ( ( ( ) ) ) ) ) ( ( ) ( ( ) ) 赤いところだけをみると 右カッコ ) が左カッコ ( よりも多い 既出のカッコが全て閉じられているのに 次に右カッコ ) が来ている

68 2. 文章の正しさを解析する (4) 結局 : カッコ文は次の条件を満たすときに 正しい 文全体に対して : 左カッコ ( の数 = 右カッコ ) の数 任意の n に対して 最初から n 文字目までで 左カッコ ( の数 右カッコ ) の数

69 2. 文章の正しさを解析する (4 ) 練習 : カッコ文の正しさを検証するにはどうしたら良いか考えよ ( どのようなプログラムを書けばよいか?) ヒント : スタックを使うと簡単 A A A A

70 2. 文章の正しさを解析する (5) 解答例 : カッコ文を左から読んでいく 左カッコを読む スタックを一つ積む 右カッコを読む スタックを一つ取り出す スタックが空のとき右カッコを読むと 正しくない と判断 最後まで文を読んだとき スタックが空なら正しいと判断 ( ) A ( ) プッシュダウンオートマトンの簡単な例になっている A A ( ) A A A ( ) A A A A

71 3. 形式言語の導入 (1) 形式言語 : ( プログラミング or 人工 ) 言語の ( 数学的 ) モデル 文字 ( もしくは記号 ) 日本語 : ひらがな カタカタ 漢字 形式言語 :,1,a,b,c, などの数字やローマ字 アルファベット 記号の有限集合 例 :,1, {aa, bb, cc} など この授業では アルファベットを Σ ( シグマ ) で通常表す

72 3. 形式言語の導入 (2) アルファベット Σ 上の列 ( もしくは文章もしくは記号列 ) Σ 上の記号を重複を許して一列に並べたもの ある nn N に対して Σ nn Σ Σ の元 例 : Σ =,1 のとき, 1, 1, 1, 111, 1111, などが列 Σ = aa, bb, cc のとき aa, bb, cc, aaaa, bbbb, bbbb,, aaaaaaaaaa, などが列

73 3. 形式言語の導入 (3) 列 xx の長さ xx := 列に含まれる記号の個数 例 : Σ =,1 のとき xx = 111 の長さは xx = 5 Σ = aa, ee, ss のとき xx = ssssss の長さは xx = 3 空列 εε := 長さが の列 よって εε =

74 3. 形式言語の導入 (4) 列 xx の逆 xx RR xx を後ろから順に読んだ列 xx = xx 1 xx 2 xx nn 1 xx nn (xx ii Σ) のとき xx RR = xx nn xx nn 1 xx 2 xx 1 xx = aa (aa Σ) のとき xx = xx RR = aa εε RR εε 例 : xx = 111, yy =, zz = 111 なら xx RR = 111, yy RR =, zz RR = 111

75 3. 形式言語の導入 (5) 列 xx と列 yy の連接 xxxx := 列 xx の後に列 yy をつけた列 例 :xx = 111, yy = なら xxxx = 111 同じ列の連接 : xx 2 : = xxxx, 例 :xx = 1 のとき xx 2 = 11, 空列 εε と任意の列 xx に対して εεεε = xxxx = xx

76 3. 形式言語の導入 (6) 3 つ以上の列の連接 列 xx, yy, zz に対して xxxxxx xxxx zz = xx yyyy xx 3 xx 2 xx = xxxxxx,, xx εε と約束しておく nn xx nn = xx nn 1 xx = xx xx 例 :xx = 1 のとき xx 2 = 11, xx 3 = 111, xx 4 = 1111, 連接は結合則を満たす

77 3. 形式言語の導入 (7) 列 xx の部分列 : 列 xx の一部分の列のこと 列 ww は列 xx の部分列 ある列 yy, zz が存在して xx = yyyyyy 例 xx = 111のとき yy =, zz = 1, ww = 11とすると yy zz wwはすべてxxの部分列である

78 3. 形式言語の導入 (8) アルファベット Σ 上の長さ nn の列の集合 :Σ nn nn Σ nn = Σ Σ Σ εε と定義する アルファベットΣ 上の全ての列の集合 :Σ Σ Σ nn = Σ Σ 1 Σ 2 nn

79 3. 形式言語の導入 (9) アルファベットΣ 上の言語 LL := Σ 上の列の集合つまり Σ の部分集合 (LL Σ ),1 上の言語の例 : 有限集合 :,1,,111 無限集合 : 1 nn nn nn } 1, 11, 111,. という集合 無限集合をいかにして書き表すか が前半の主題 言語の特別な例 : 全ての列の集合 :Σ 例えば,1 εε,,1,,1,1,, 空集合 : どのような列も含まない言語空列集合 εε : 空列 εεのみからなる言語

80 3. 形式言語の導入 (1) 例題 以下はどのような言語であるか推測しなさい LL 1 = 1, 1, 1, 1, 1, LL 2 = {εε,, 11,, 11, 11, 1111,, 11, 11, 1111, } LL 3 = {1, 1, 11, 11, 111, 1, 11, 11, 111, 11, 111, 111, 1111, 11, 111, 111, 1111, 111, 1111, 1111, 11111, 1, 11, }

81 3. 形式言語の導入 (11) 解答例 LL 1 = 1, 1, 1, 1, 1, = nn 1 nn nn } この授業では nn は整数にしか用いないとする LL 2 = {εε,, 11,, 11, 11, 1111,, 11, 11, 1111, } = xxxx xx Σ } LL 3 = {1, 1, 11, 11, 111, 1, 11, 11, 111, 11, 111, 111, 1111, 11, 111, 111, 1111, 111, 1111, 1111, 11111, 1, 11, } = xxxxx xx, yy Σ, xx = yy }

82 3. 形式言語の導入 (12) 例題 1.2 列 xx Σ の逆をより形式的に定義せよ 解答再帰的定義を用いる 逆 xx RR は 以下の (i) と (ii) により再帰的に定義される : (i) εε RR = εε (ii) 列 xx Σ と記号 ( 長さ1の列 )aa Σに対して aaaa RR = xx RR aa 例 : aaaaaa RR に上記の定義を適応する aaaaaa RR = aa bbbb RR = bbbb RR aa = bb cc RR aa = cc RR bbbb = cc εε RR bbbb = εε RR cccccc = εεεεεεεε = cccccc

83 3. 形式言語の導入 (13) 例題 列 xx で xx = xx RR を満たすものを回文と呼ぶ 回文の再帰的定義を与えよ ヒント : 回文を再帰的に作成するルールを考える

84 3. 形式言語の導入 (14) 例題 列 xx で xx = xx RR を満たすものを回文と呼ぶ 回文の再帰的定義を与えよ ( 回文の例 :εε,,11,11,,11, 11 など ) 解答 (i) 空列 εεと長さ1の列 ( 記号 ) は回文である (ii) 回文 wwと記号 xx Σに対して 列 xxxxxxは回文である (i) と (ii) を用いて生成できるものだけが回文である

85 3. 形式言語の導入 (15) 例題 1.3 xx と yy を列としたとき xxxx RR = yy RR xx RR を証明せよ 解答 列 xxxx の長さに関する数学的帰納法で証明する (i) xxxx = のとき xx = yy = εε なので εεεε RR = εε RR = εε = εεεε = εε RR εε RR で正しい

86 3. 形式言語の導入 (16) (ii) xxxx = nn のとき命題が正しいと仮定する xxxx = nn + 1 のときを考える : xx = εε のとき εεεε RR = yy RR = yy RR εε = yy RR εε RR で OK xx εεのとき あるaa Σが存在して xx = aaaaaと書ける xx yyは長さnnなので 帰納法の仮定より xx yy RR = yy RR xx RR よって xxxx RR = aaxx yy RR = aa xx yy RR = xx yy RR aa = yy RR xx RR aa 一方 yy RR xx RR = yy RR aaxx RR = yy RR xx RR aa なので OK (i) (ii) よりすべての nn に対して命題は証明された

87 3. 形式言語の導入 (17) 言語 LL 1 と LL 2 の連接 LL 1 LL 2 LL 1 LL 2 xx 1 xx 2 xx 1 LL 1, xx 2 LL 2 } 例 : LL 1 =,1, LL 2 = {1111,1} のとき LL 1 LL 2 = 1111, 1, 11111, 11 空列のみの言語 {εε}: 任意の言語 LL に対して εε LL = LL εε = LL

88 3. 形式言語の導入 (18) 例題 1.4 任意の言語 LL に対して LLL = LL = を示せ 解答 : LLL = を証明する LL = は同様に証明できる 任意の列 xxに対して xx LL 1 LL 2 xx 1 xx 2 (xx = xx 1 xx 2 and xx 1 LL 1 and xx 2 LL 2 ) である 今 LL 2 = なので xx 2 LL 2 となる xx 2 は存在しない したがって xx = xx 1 xx 2 and xx 1 LL 1 and xx 2 LL 2 を満たす xx 1 と xx 2 の組は存在しない LL 1 LL 2 = LLL に入る xx は存在しない よって LLL は空集合である

89 3. 形式言語の導入 (19) LL 2 = LLLL, LL 3 = LLLLLL, と定義する 一般に LL nn = LLLL nn 1 特別な場合として LL 1 = LL, LL = {εε} と定義する 言語 LLのクリーネ閉包 LL : LL = LL nn = LL LL 1 LL 2 nn のことをスター演算と呼ぶ Σ 上の全ての列の集合 Σ は Σ を長さ 1 の列すべてからなる言語と考えると 言語 Σ のクリーネ閉包になっている

90 3. 形式言語の導入 (2) 例題 1.6 長さが奇数の {,1} 上の列全体からなる言語を表現せよ 解答例 1: 長さが偶数の列全体は,1,1,11 である これに か 1 を一つ加えて :,1,1,11 {,1} 解答例 2: 全ての列の集合から長さが偶数の列の集合を引いて :,1,1,1,11

91 3. 形式言語の導入 (21) 鳩ノ巣原理 : 鳩が nn + 1 羽いて巣箱が nn 個しかないなら 必ず一つの巣箱には 2 羽以上入らなければならない あたりまえのことを言っているように思うが 今後 様々な定理の証明で重要な役割を果たす

92 3. 形式言語の導入 (22) 例題 1.7 nn を 1 以上の整数とし 集合 AA はその大きさが nn + 1 で AA {1,2,, 2nn} を満たすとする このとき AA の元 xx 1, xx 2 で xx 1 が xx 2 を割り切るものが存在することを示せ 解答 :AA = {aa 1, aa 2,, aa nn+1 } とする 各 aa ii を 2 で割れるだけ割って aa ii = 2 bb ii pp ii と書く ここで pp ii は奇数 よって pp ii 1,3,, 2nn 1 集合 1,3,, 2nn 1 の大きさは nn なのに AA の大きさは nn + 1 なので ある pp ii と pp jj (ii jj) は pp ii = pp jj を満たす よって aa ii = 2 bb ii pp ii と aa jj = 2 bb jj pp ii と書ける よって bb ii bb jj なら aa ii が aa jj で bb jj > bb ii なら aa jj が aa ii で割り切れる

93 第 2 章 : 正規表現と有限オートマトン 1. 正規表現 2. 有限オートマトン 3. 非決定性有限オートマトン 4. 有限オートマトンと正規表現の等価性 5. 有限オートマトンの能力の限界

94 1. 正規表現 (1) 言語 ( 列の集合 ) を表現する方法の一つ ( こっちがオリジナル ) アルファベット Σ 上の正規表現 SS および SS が表現する言語 LL(SS) は以下のように再帰的に定義される : 1 は正規表現であり LL =. 2 εε は正規表現であり LL εε = εε. 3 aa Σ なら aa は正規表現であり LL aa = {aa}. 4 RR 1 とRR 2 が正規表現なら RR 1 + RR 2, RR 1 RR 2, (RR 1 ) も正規表現であり LL RR 1 + RR 2 = LL RR 1 LL RR 2, LL RR 1 RR 2 = LL RR 1 LL(RR 2 ), LL RR 1 = LL RR 1 である

95 1. 正規表現 (2) Σ 上の正規表現 SS および SS が表現する言語 LL(SS) の定義 : 1 は正規表現であり LL =. 2 εε は正規表現であり LL εε = εε. 3 aa Σ なら aa は正規表現であり LL aa = {aa}. 4 RR 1 とRR 2 が正規表現なら RR 1 + RR 2, RR 1 RR 2, (RR 1 ) も正規表現であり LL RR 1 + RR 2 = LL RR 1 LL RR 2, LL RR 1 RR 2 = LL RR 1 LL RR 2, LL RR 1 = LL RR 1 である ( 例 ) 1 + : まず は 3 より正規表現. 次に 1 は 4 より正規表現. よって 1 も 4 より正規表現. 最後に 全体が 4 より正規表現になる

96 1. 正規表現 (3) 1 LL =. 2 LL εε = εε. 3 aa Σ なら LL aa = {aa}. 4LL RR 1 + RR 2 = LL RR 1 LL RR 2, LL RR 1 RR 2 = LL RR 1 LL RR 2, LL RR 1 = LL RR 1. 記法の省略 : 1 + を 1 + と書く 連接と + は結合則が成り立つので を と書く RR + RRRR, RR 2 = RRRR,, RR 5 = RRRRRRRRRR, なども用いる

97 1. 正規表現 (4) 1 LL =. 2 LL εε = εε. 3 aa Σ なら LL aa = {aa}. 4LL RR 1 + RR 2 = LL RR 1 LL RR 2, LL RR 1 RR 2 = LL RR 1 LL RR 2, LL RR 1 = LL RR 1. 例題 2.1 次の正規表現はどのような言語を表現しているか : (i) RR 1 = (ii) RR 2 = + εε (iii) RR 3 = ( 解答 ) (i) 正規表現のルール4より LL RR 1 = LL =. = だが = εε, ii = ii 1 より LL RR 1 = = εε (ii) RR = + εε とすると RR 2 = RRRと書ける ルール4と1より LL RR 2 = LL RRR = LL RR LL = LL RR =. (iii) LL + 1 =,1 となり すべての列の集合になる よって LL RR 3 =,1,1 となり どこかに 3 個以上の が連続して現れる,1 上の列の全体となる

98 1. 正規表現 (5) 例題 2.2 RR 4 = cc aa + bbcc はどのような言語を表現しているか ( 解答 ) LL(RR 4 ) は部分列 aaaa を含まない {aa, bb, cc} 上の列全体になる 証明の概略 : LL RR 4 = LL cc aa + bbcc = LL cc LL aa + bbcc = {cc} aa, bb, bbbb, bbbbbb, bbbbbbbb, よって AA = aa, bb, bbbb, bbbbbb, bbbbbbbb, とすると xx LL(RR 4 ) ならば xx = cc jj yy 1 yy 2 yy ii yy nn, yy ii AA cc jj には aaaa は現れない cc jj と yy 1 の境界でも aaaa は現れない yy ii の中では aaaa は現れない 最後に yy ii と yy ii+1 の境界でも現れない よって xx LL(RR 4 ) ならば xx は aaaa を部分列に含まない

99 1. 正規表現 (6) 例題 2.2 RR 4 = cc aa + bbcc はどのような言語を表現しているか ( 解答 ) LL(RR 4 ) は部分列 aaaaを含まない {aa, bb, cc} 上の列全体になる 証明の概略 : 次に xx が aaaa を部分列に含まないならば xx LL(RR 4 ) を証明する xx が aaaa を部分列に含まないと仮定する 列 xx を左から見て行って 記号 cc の前以外 ( つまり aa の前と bb の前 ) と列全体の前と後ろに 切目 を入れる : 例えば xx = cccccc aa aa bbbbbb bb bbbb aa bbbbbbbb bb bb

100 1. 正規表現 (7) xx が aaaa を部分列に含まないと仮定する 列 xx を左から見て行って 記号 cc の前以外 ( つまり aa の前と bb の前 ) と列全体の前と後ろに 切目 を入れる : 今 xx = yy, と書けたとすると 以下の場合が考えられる : (yy の右端が aa の場合 ) aa の左にも切れ目が入り yy = aa (yy の右端が bb の場合 ) bb の左にも切れ目が入り yy = bb (yy の右端が cc の場合 ) この cc から左に見ていくと cc の左には切れ目が入らないし 次がまた cc でも同様 もし cc の左に bb が来るとその左に切目が入る 仮定より cc の左には aa は来ない よって yy = bbcc ii (ii 1) と書ける

101 1. 正規表現 (8) xx が aaaa を部分列に含まないと仮定する 列 xx を左から見て行って 記号 cc の前以外 ( つまり aa の前と bb の前 ) と列全体の前と後ろに 切目 を入れる : xx = yy, と書けたとする いずれの場合も yy AA = aa, bb, bbbb, bbbbbb, bbbbbbbb, なので 結局 xx cc AA = LL(cc aa + bbcc ) となる

102 1. 正規表現 (9) xx,1 にたいして # 1 (xx) を列 xx に含まれる 1 の個数と定義 # (xx) も同様 例題 2.3 LL RR = xx xx,1 かつ # 1 (xx) が偶数 } の正規表現を求めよ ( 解答 ) 例えば xx = LL(RR) は xx = 2 ( )(1 1 )( ) と書ける よって RR = 1 1 が LL(RR) に対応する正規表現

103 1. 正規表現 (1) 例題 : LL 1 : = xx,1 かつ # 1 xx = # xx かつ xx の任意のプレフィックス yy に対して # 1 yy # yy 1} の正規表現を求めよ ただし プレフィックスとは列の先頭から始まる部分列のこと : つまり yy = xx 1 xx 2 と書けるとき xx 1 は yy のプレフィックス ( 解答例 ) xx が から始まるとする # 1 # の次は 1 になる = 2 なので # 1 1 # 1 = なので その次は でも 1 でもよい もし xx = 1 なら 最後の の次は 1 でなければならない 同様に xx = 11 なら 最後の 1 の次は でなければならない 結局 正規表現は と書ける

104 LL 1 を使って LL 2 がどのように書けるかを考えるとよい 例えば xx = は 1LL 1 と書ける 1. 正規表現 (11) 練習問題 : 言語 LL 2 : = xx,1 # 1 xx = # xx かつ xxの任意のプレフィックスyyに対して # 1 yy # yy 2} の正規表現を求めよ ただし プレフィックスとは列の先頭から始まる部分列のこと : つまり yy = xx 1 xx 2 と書けるとき xx 1 は yy のプレフィックス ヒント LL 1 : = xx,1 かつ # 1 xx = # xx かつ xx の任意のプレフィックス yy に対して # 1 yy # yy 1} の正規表現は と書けることを使う

105 1. 正規表現 (12) LL 2 : = xx xx,1 かつ xx の任意のプレフィックス yy に対して # 1 yy # yy 2} LL 1 : = xx xx,1 かつ xx の任意のプレフィックス yy に対して # 1 yy # yy 1} の正規表現は と書ける ( 解答例 ) まず 具体的な例で考える xx: LL 1 # 1 yy # yy : xx: LL 1 LL 1 1LL 1 # 1 yy # yy : xx: LL 1 LL 1 1 # 1 yy # yy : LL 1

106 1. 正規表現 (13) LL 2 : = xx xx,1 かつ xx の任意のプレフィックス yy に対して # 1 yy # yy 2} LL 1 : = xx xx,1 かつ xx の任意のプレフィックス yy に対して # 1 yy # yy 1} の正規表現は と書ける ( 解答例 ) xx: LL 1 LL 1 1LL 1 # 1 yy # yy : xx: LL 1 LL 1 1 # 1 yy # yy : 結局 LL 2 = 1LL 1 + LL 1 1 LL 1 =

107 1. 正規表現 (14) 定理 2.1 言語 LL 1 と LL 2 が正規表現で表現できるなら LL 1 LL 2, LL 1 LL 2, LL 1 もまた正規表現で表現できる ( 証明 ) 正規表現の定義 : 4 RR 1 と RR 2 が正規表現なら RR 1 + RR 2, RR 1 RR 2, (RR 1 ) も正規表現であり LL RR 1 + RR 2 = LL RR 1 LL RR 2, LL RR 1 RR 2 = LL RR 1 LL RR 2, LL RR 1 = LL RR 1 である より定理は自明である

108 問題 以下の正規表現 RRに対して RRが表現する言語 LL RR に含まれる文字列を2つ LL RR に含まれない文字列を2つそれぞれ挙げよ 1 aa bb 2 aa bbbb bb 3 aa + bb 4 aaaaaa 5 aa + bb aa aa + bb bb aa + bb aa aa + bb 6 aaaaaa + bbbbbb 7 εε + aa bb 8 aa + bbbb + bbbb aa + bb

109 問題 以下の言語に対する正規表現を与えよ ただし アルファベットは {,1} とする ( つまり ww,1 ): ww ww は 1 で始まり で終わる ww ww は少なくとも三つの 1 を含む ww ww は部分列 11 含む 4 ww 3 ww かつ ww の 3 番目の文字が 5 ww ww は で始まり長さが奇数 もしくは 1 で始まり長さが偶数 } 6 ww ww は部分列 11 を含まない } 7 ww ww 5

110 問題 ( 前ページの続き ) 8 ww ww 11 かつ ww ww wwの全ての奇数番目は1 1 ww # 1 ww 2 かつ # ww 1 11, εε 12 ww # ww が偶数 もしくは # 1 ww = 2} ww ww εε 15 ww ww が偶数 もしくは ww が3の倍数 }

111 2. 有限オートマトン (1) 正規表現 言語に属する列を 生成 する 有限オートマトン 与えられた列が言語に属するかどうかを 判定する機械 ただし あくまでも イメージ で オートマトンは言語を表現するための 数学的手段 である

112 2. 有限オートマトン (1-1) 有限オートマトン = メモリ容量が著しく制限された計算機のモデル 例 ) 一方通行の自動ドアの制御部 フロントパッド リアパッド ドア

113 2. 有限オートマトン (1-1) 有限オートマトン = メモリ容量が著しく制限された計算機のモデル 例 ) 一方通行の自動ドアの制御部 フロントパッド リアパッド ドア

114 2. 有限オートマトン (1-1) 有限オートマトン = メモリ容量が著しく制限された計算機のモデル 例 ) 一方通行の自動ドアの制御部 フロントパッド リアパッド ドア

115 2. 有限オートマトン (1-1) 有限オートマトン = メモリ容量が著しく制限された計算機のモデル 例 ) 一方通行の自動ドアの制御部 フロントパッド リアパッド ドア

116 2. 有限オートマトン (1-1) 有限オートマトン = メモリ容量が著しく制限された計算機のモデル 例 ) 一方通行の自動ドアの制御部 フロントパッド リアパッド ドア

117 2. 有限オートマトン (1-2) 例 ) 一方通行の自動ドアの制御部 制御部の状態 : OPEN か CLOSED フロントパッド リアパッド ドア

118 2. 有限オートマトン (1-3) 例 ) 一方通行の自動ドアの制御部 制御部の状態 : OPEN か CLOSED フロントパッド リアパッド 入力 : FRONT : 人がフロントパッドにだけいる ドア CLOSED なら OPEN になる OPEN なら OPEN のまま

119 2. 有限オートマトン (1-4) 例 ) 一方通行自動ドアの制御部 制御部の状態 : OPEN か CLOSED フロントパッド リアパッド 入力 : REAR : 人がリアパッドにだけいる ドア フロントからリアへ移動中なら OPEN なので OPEN のまま 逆に CLOSED なら リアからフロントに移動しようとしているので CLOSED のまま

120 2. 有限オートマトン (1-5) 例 ) 一方通行自動ドアの制御部 制御部の状態 : OPEN か CLOSED 入力 : BOTH : 人がフロントとリアの両パッドにいる OPEN なら OPEN のまま CLOSED なら OPEN にする

121 2. 有限オートマトン (1-6) 例 ) 一方通行自動ドアの制御部 制御部の状態 : OPEN か CLOSED フロントパッド リアパッド 入力 : NEITHER : どちらのパッドにも人はいない ドア OPEN なら CLOSED にする CLOSED なら CLOSED のまま

122 2. 有限オートマトン (1-7) 例 ) 自動ドアの制御部 制御部の状態 : OPEN か CLOSED フロントパッド リアパッド 入力 : FRONT : 人がフロントパッドにだけいる REAR : 人がリアパッドにだけいる BOTH : 人がフロントとリアの両パッドにいる NEITHER : どちらのパッドにも人はいない ドア

123 2. 有限オートマトン (1-8) 自動ドアの制御部の状態遷移図 : FRONT REAR BOTH NEITHER NEITHER REAR OPEN FRONT, BOTH CLOSED

124 2. 有限オートマトン (1-9) 自動ドアの制御部の状態遷移図 : 入力 : REAR : OPENならOPENのまま CLOSEDならCLOSEDのまま FRONT REAR BOTH NEITHER NEITHER REAR OPEN FRONT, BOTH CLOSED

125 2. 有限オートマトン (1-1) 自動ドアの制御部の状態遷移図 : 入力 : BOTH : OPEN なら OPEN のまま CLOSED なら OPEN にする FRONT REAR BOTH NEITHER NEITHER REAR OPEN FRONT, BOTH CLOSED

126 2. 有限オートマトン (1-11) 入力を頭文字のみ残して消す FRONT REAR BOTH NEITHER NEITHER REAR OPEN FRONT, BOTH CLOSED

127 2. 有限オートマトン (1-12) 4 つの記号 {F,R,B,N} を入力として受け取って状態を変える機械 今の状態と入力で 次の状態が決まる 有限オートマトン F,R,B N,R OPEN N F, B CLOSED

128 2. 有限オートマトン (1-13) 最後の状態を出力と考える 初期状態 :CLOSED 入力列 : F B R N N R B 出力 :OPEN

129 2. 有限オートマトン (1-14) 初期状態 :CLOSED 入力列 : F B R N N R B 出力 :OPEN 出力が OPEN である入力列が 受理される と考える 受理される 列の集合を言語 LL とする : e.g. FBRNNRB LL LL はこのオートマトンで認識される言語と呼ばれる

130 2. 有限オートマトン (2) 有限オートマトンの概念図 1 1 ヘッド テープ 有限制動部 テープと有限制動部からなる ヘッドがテープを左から右にスキャンする テープはマス目に分かれていて 各マスには記号が書いてあるつまり テープ全体で 列 になっている テープをスキャンした後で 列が言語に属しているかどうかを判定する

131 2. 有限オートマトン (3) 1 1 ヘッド テープ 有限制動部 定義 : 有限オートマトン (fa) は MM = KK, Σ, δδ, ss, FF で与えられる KK, Σ, FF は有限集合 KK : 状態の集合 ( 有限制動部の状態 ) Σ : 入力記号の集合 ( テープに書かれている記号 ) FF KK : 受理状態の集合 ( 状態が FF で止まると入力を受理 ) ss KK : 初期状態 ( 状態は最初 ss である ) δδ :KK Σ KK 状態遷移関数 (ss = δδ ss, aa なら 状態 ss で記号 aa を読むと状態は sss に変わる )

132 2. 有限オートマトン (4) 定義 : 有限オートマトン (fa) はMM = KK, Σ, δδ, ss, FF で与えられる KK : 状態の集合 Σ : 入力記号の集合 FF KK : 受理状態の集合 ss KK : 初期状態 δδ :KK Σ KK 状態遷移関数 ( 例 ) KK = OPEN, CLOSED, Σ = F, R, B, N, FF = {OPEN} 初期状態 ss = CLOSED δδ OPEN, F = OPEN, δδ OPEN, N = CLOSED, δδ CLOSED, F = OPEN, δδ CLOSED, N = CLOSED, etc

133 2. 有限オートマトン (5) 定義 : 有限オートマトン (fa) はMM = KK, Σ, δδ, ss, FF で与えられる KK : 状態の集合 Σ : 入力記号の集合 FF KK : 受理状態の集合 ss KK : 初期状態 δδ :KK Σ KK 状態遷移関数 ( 例 ) KK = ss, ss 1, ss 2, ss 3, Σ =,1, FF = {ss } ss ss 1 ss ss 3 状態遷移図 状態は丸で示す 初期状態を で示す 1 受理状態は二重丸 状態遷移は矢の形で示す e. g. δδ ss, = ss 1, δδ ss, 1 = ss 2

134 2. 有限オートマトン (6) 11 をこの順で読むと ss ss 2 ss ss 1 となる 写像 δδ を δδ ss, 11 = ss 1 となるように ( 再帰的 ) 定義をする : 定義 ( δδ: KK ΣΣ KK) ss KK, aa ΣΣ, xx ΣΣ に対して δδ ss, εε = ss かつ δδ ss, xxxx = δδ δδ ss, xx, aa

135 2. 有限オートマトン (7) 定義 ( δδ: KK ΣΣ KK) ss KK, aa ΣΣ, xx ΣΣ に対して δδ ss, εε = ss かつ δδ ss, xxxx = δδ δδ ss, xx, aa ( 例 ) 11 をこの順で読むと ss ss 2 ss ss 1 δδ ss, εε = ss, δδ ss, 1 = δδ ss, εε1 = δδ δδ ss, εε, 1 = δδ ss, 1 = ss 2, δδ ss, 11 = δδ δδ ss, 1, 1 = δδ ss 2, 1 = ss δδ ss, 11 = δδ δδ ss, 11, = δδ ss, = ss 1

136 2. 有限オートマトン (8) 定義 ( δδ: KK ΣΣ KK) ss KK, aa ΣΣ, xx ΣΣ に対して δδ ss, εε = ss かつ δδ ss, xxxx = δδ δδ ss, xx, aa 記号 aa Σ に対して δδ ss, aa = δδ(ss, aa) なので ハット ^ を省略しても混乱が生じない 結局 δδ の定義域が KK Σ から KK Σ に自然に拡張された 定義 fa MM = KK, ΣΣ, δδ, ss, FF と xx Σ に対して δδ ss, xx FF のとき xx は MM に受理されると呼ぶ MM が受理する列の全体を MM が認識する言語と呼ぶ

137 2. 有限オートマトン (9) fa MM 1 の状態遷移図 例題 2.4 MM 1 の認識する言語を求めよ ( 解答 ) ss ss 1 の個数と 1 の個数がともに偶数となる {,1} 上の列となる 列 xx,1 に対し δδ ss, xx = ss とすると ss = ss であるなら # xx と # 1 xx はともに偶数 ss = ss 1 なら # xx が奇数 # 1 xx は偶数 ss = ss 2 なら # xx が偶数 # 1 xx が奇数 ss = ss 3 なら # xx と # 1 xx はともに奇数 であることを証明する 1 1 ss 2 1 ss 3 1

138 2. 有限オートマトン (1) 列 xx,1 に対し δδ ss, xx = ss とすると ss = ss であるなら # xx と # 1 xx はともに偶数 ss = ss 1 なら # xx が奇数 # 1 xx は偶数 ss = ss 2 なら # xx が偶数 # 1 xx が奇数 ss = ss 3 なら # xx と # 1 xx はともに奇数 ( 証明 ) i) 列 xx の長さが のとき 定義より δδ ss, εε = ss となり OK ii) 列 xx の長さが nn のとき成立していると仮定する 長さ nn + 1 の列 yy は yy = xxxx と書ける # xx が偶数 # 1 xx が奇数で aa = のときを考える 仮定より xx を読み終わった後の状態は ss 2. 状態遷移図より aa = を読むと ss 2 ss 3 となる yy は # xx と # 1 xx がともに奇数なので OK 他もすべて調べると証明が終わる ( 以下省略 )

139 2. 有限オートマトン (11) 例題言語 LL 1 : = xx xx,1 かつ xx の任意のプレフィックス yy に対して # 1 yy # yy 2} を認識する fa を与えよ 解答 : tt 1 1 tt 1 tt 2 1 tt 3,1 tt 3 に行くとかえって来れない

140 2. 有限オートマトン (12) 例題 言語 LL 2 : = xx xx aa, bb, cc かつ xx は部分列 aaaa を含まない } を認識する fa を与えよ 解答 bb, cc aa aa, bb, cc ss aa bb cc ss 1 ss 2 ss 1 は 直前に aa を読んだことを記憶するための状態 ss と ss 1 で aa を読むと ss 1 に行く その次に cc を読むと ss 2 に行き受理されなくなる

141 問題 以下の言語に認識するdfaの状態遷移図を書け ただし アルファベットは {,1} とする ( つまりww,1 ): 1 ww wwは1で始まりで終わる 2 ww wwは少なくとも三つの1を含む 3 ww wwは部分列 11を含む 4 ww 3 ww かつ wwの3 番目の文字が 5 ww wwは で始まり長さが奇数 もしくは 1で始まり長さが偶数 } 6 ww wwは部分列 11を含まない } 7 ww ww 5

142 問題 ( 前ページの続き ) 8 ww ww 11 かつ ww ww wwの全ての奇数番目は1 1 ww # 1 ww 2 かつ # ww 1 11, εε 12 ww # ww が偶数 もしくは # 1 ww = 2} ww ww εε 15 ww ww が偶数 もしくは ww が3の倍数 }

143 2. 有限オートマトン (13) 直積オートマトン ( 直積 fa) 入力アルファベットが等しい二つの fa MM 1 = KK 1, Σ, δδ 1, ss 1, FF 1 と MM 2 = KK 2, Σ, δδ 2, ss 2, FF 2 に対して 状態 : ss 1, ss 2 KK 1 KK 2 状態遷移関数 :δδ ss 1, ss 2, aa δδ 1 ss 1, aa, δδ 2 ss 2, aa 直積オートマトンの初期状態と受理状態は 利用目的によって異なったものを指定する

144 2. 有限オートマトン (14) 定理 2.2 言語 LL 1 と LL 2 が fa で認識できるなら LL 1 LL 2 も fa で認識できる 証明 LL 1 と LL 2 を認識する fa をそれぞれ MM 1 = KK 1, Σ, δδ 1, ss 1, FF 1 とMM 2 = KK 2, Σ, δδ 2, ss 2, FF 2 とする それらの直積 faを以下の初期状態と受理状態集合で作る : 初期状態 : ss 1, ss 2 受理状態集合 : FF ss 1, ss 2 ss 1 FF 1, ss 2 FF 2 xx LL 1 LL 2 なら δδ 1 ss 1, xx FF 1 かつ δδ 2 ss 2, xx FF 2. δδ ss 1, ss 2, xx = δδ 1 ss 1, xx, δδ 2 ss 2, xx FF 直積オートマトンは xx を受理

145 2. 有限オートマトン (15) xx LL 1 LL 2 なら δδ 1 ss 1, xx FF 1 もしくは δδ 2 ss 2, xx FF 2. δδ ss 1, ss 2, xx = δδ 1 ss 1, xx, δδ 2 ss 2, xx FF 直積オートマトンは xx を受理しない よって 直積オートマトンは LL 1 LL 2 を認識する

146 2. 有限オートマトン (16) 直積オートマトンの例 : 以前の2つのオートマトン ss ss ss 2 1 ss 3 1 と で表現される言語 LL 1 とLL 2 に対して LL 1 LL 2 を認識するオートマトンを直積オートマトンで与える : 状態の数は ss, tt,, (ss 3, tt 3 ) の 16 個初期状態は (ss, tt ) 受理状態は ss, tt, ss, tt 1, (ss, tt 2 )

147 2. 有限オートマトン (17) ss, tt 3 ss 1, tt 3 ss 2, tt ss, t ss 2, tt 1 ss, tt 2 ss 3, tt ss 3, tt 3 ss, tt ss1, tt 1 ss 1, tt 1 ss 3, tt ss 2, tt 2 1 ss 3, tt ss 2, tt 1 ss 1, tt 2 1

148 2. 有限オートマトン (18) fa の記憶容量 = 状態の個数 同じ言語を認識する限り より状態の少ない fa が効率の良い fa. 初期状態から到達できない状態は排除しても認識する言語は変わらない ( 冗長な状態 ) 先ほどの直積オートマトンの例では (ss, tt 1 ) は初期状態から到達できないので 削除しても認識する言語は変わらない

149 2. 有限オートマトン (19) 練習問題 : (ss, tt 1 ) 以外にも 初期状態から到達できない状態が 5 つ存在するので探してみよ

150 2. 有限オートマトン (2) 解答例 ss, tt 3 ss 1, tt 3 ss 2, tt ss, t ss 2, tt 1 ss, tt 2 ss 3, tt ss 3, tt 3 ss, tt ss1, tt 1 ss 1, tt 1 ss 3, tt ss 2, tt ss 3, tt ss 2, tt 1 ss 1, tt 2 1

151 2. 有限オートマトン (21) ss, tt 3 ss 1, tt ss 2, tt 3 1 ss, t ss 2, tt 1 ss, tt 2 1 ss 3, tt ss 3, tt 1 1 ss 1, tt 1 ss 3, tt 2 状態を 6 つ削除したオートマトン削除前の直積オートマトンと同じ言語を認識する 1 1

152 2. 有限オートマトン (22) 今後 fa は初期状態から到達できない状態は含まないと仮定する しかし それでもなお冗長な状態が存在する可能性がある 定義 ( 状態の等価性 ) fa MM = KK, Σ, δδ, ss, FF の二つの状態 ss 1 と ss 2 は 全ての列 xx Σ に対して δδ ss 1, xx FF δδ ss 2, xx FF を満たすとき等価であるという

153 2. 有限オートマトン (23) 定理 2.3 (i) fa MM が等価な 2 個の状態を有するならば MM と同じ言語を認識して状態数が MM より 1 個少ない fa MMM が存在する (ii) fa MM には 初期状態から到達できない状態は存在しないとする このとき MM と同じ言語を認識して状態数がより少ない fa MMM が存在するならば MM には ( 少なくとも )2 個の等価な状態が存在する

154 2. 有限オートマトン (24) (i) fa MM が等価な 2 個の状態を有するならば MM と同じ言語を認識して状態数が MM より 1 個少ない fa MMM が存在する ( 証明の概要 ) ss 1 と ss 2 が等価だとする 状態 s から ss 2 への遷移が存在するなら それらを全て ss から ss 1 への遷移に変更する すると ss 2 への遷移がなくなるので ss 2 を削除した fa を MMM とすると MMM は MM より状態が一つ少ない MM と MMM の等価性も証明できる sss ssss sssss sss ssss sssss ss 2 ss 1 ss 2 ss 1

155 2. 有限オートマトン (25) (ii) fa MM には 初期状態から到達できない状態は存在しないとする このとき MM と同じ言語を認識して状態数がより少ない fa MMM が存在するならば MM には必ず 2 個の等価な状態が存在する 証明は複雑なので省略する ( 知りたい人は参考書 )

156 2. 有限オートマトン (26) 定理 2.4 Σ 上の言語 LL が fa で認識できるなら LL の補集合 Σ LL も fa で認識できる ( 証明 ) LL を受理する fa を MM とする MM が受理しない列 を受理する fa を作りたい MM が列 xx を受理しない 列 xx を読み終わると非受理状態にある よって MM の受理状態と非受理状態を入れ替えた fa を MMM とすると MMM は Σ LL を認識する

157 問題 以下の言語に認識する dfa の状態遷移図を書け ただし アルファベットは {aa, bb} とする (ww aa, bb ) 1 ww # aa ww 3, かつ, # bb ww 2 2 ww # aa ww = 2, かつ, # bb ww 2 3 ww # aa ww は偶数, かつ, # bb ww 1,2 4 {ww # aa ww は偶数, かつ, 各々の aa は bb の直後にある } 1 ww ww は aa で始まり, かつ, # bb ww 1} 2 ww # aa ww は奇数, かつ, ww は bb で終わる } 3 ww ww は偶数, かつ, # aa ww は奇数, Hint: 上記の言語は全て 2 つのより簡単な言語の共通部分である

158 3. 非決定性有限オートマトン (1) 今までの fa ( 決定性有限オートマトン dfa): 現在の状態と 読む入力記号から 一意的に次の状態が定まる 非決定性有限オートマトン (nfa): 次の状態として二つ以上の可能性があってもよい 例 : ( 次の行先が無くてもよい ),1 ss 1 ss 1 ss 2 1 ss 3 ss 4 ss 5

159 3. 非決定性有限オートマトン (2) 定義 : 非決定性有限オートマトン (nfa) MM = KK, Σ, δδ, ss, FF 状態遷移関数 δδ が dfa と異なり 状態の集合への写像になる : δδ: KK Σ 2 KK 例,1 2 KK : べき集合 ( KK の全ての部分集合からなる集合 ) ss 1 ss 1 ss 2 1 ss 3 ss 4 ss 5 δδ ss, 1 = ss, ss 1, δδ ss 1, 1 =, δδ ss 2, =, など

160 3. 非決定性有限オートマトン (3) 非決定性有限オートマトン (nfa) MM = KK, Σ, δδ, ss, FF 状態遷移関数 δδ: KK Σ 2 KK に対して 写像 δδδ: KK Σ 2 KK を以下のように再帰的に定義する : ss KK, xx Σ, aa Σ に対して 1 δδ ss, εε = ss 2 δδ ss, xxxx = qq KK pp KK pp δδδ ss, xx かつ qq δδ pp, aa 例 = pp δδ ss,xx δδ pp, aa

161 3. 非決定性有限オートマトン (4) 1 δδ ss, εε = ss 2 δδ ss, xxxx = qq KK pp KK pp δδδ ss, xx かつ qq δδ pp, aa 例 δδ ss, 11 = qq KK pp KK pp δδ ss, 1 qq δδ pp, 1 } δδ ss, 1 = qq KK pp KK pp δδ ss, 1 qq δδ pp, } = qq KK pp KK pp ss, ss 1 qq δδ pp, } = δδ ss, δδ ss 1, = {ss, ss 2 } δδ ss, 11 = qq KK pp KK pp {ss, ss 2 } qq δδ pp, 1 } = δδ ss, 1 δδ ss 2, 1 = {ss, ss 1, ss 3 }

162 3. 非決定性有限オートマトン (5) δδ ss, 1 = {ss, ss 1 } を ss で 1 を読むと状態 ss と ss 1 のいずれにも行ける と解釈する δδ ss, 11 = {ss, ss 1, ss 3 } は ss で 11 を読むと状態 ss と ss 1 と ss 3 のいずれにも行ける と解釈する δδ ss 1, 1 = は ss で 1 を読むと行ける状態が存在しない と解釈する

163 3. 非決定性有限オートマトン (6) 定義 : 非決定性有限オートマトン (nfa) MM = KK, Σ, δδ, ss, FF と列 xx に対して δδ ss, xx FF のとき つまり δδ ss, xx に少なくとも一つの受理状態が含まれるときに MM は xx を受理する と呼ぶ 要するに 初期状態から列 xx を読んである受理状態に到達することができるなら 受理 である 例 : 最後が 11 で終わる列の全体を受理するオートマトン,1 ss 1 ss 1 ss 2 1 ss 3 ss 4 ss 5

164 3. 非決定性有限オートマトン (7) 例題 2.7 言語 xxxxx xx,1 を認識する nfa を与えよ 解答 :,1 1 あってもなくてもよい ss 1 1 ss 1 ss 2 1 ss 3

165 3. 非決定性有限オートマトン (8) 練習問題 : 言語 xxxxx xx,1 を認識するdfa( 決定性有限オートマトン ) を 与えよ あってもなくてもよい ヒント : 上記の言語を認識するnfa,1 1 ss 1 1 ss 1 ss 2 1 ss 3

166 3. 非決定性有限オートマトン (9) 練習問題 : 言語 xxxxx xx,1 を認識するdfa( 決定性有限オートマトン ) を 与えよ 解答 : 1 ss 1 1 ss 1 ss 2 1 ss 3

167 3. 非決定性有限オートマトン (1) 例題 : nfa が認識する言語 (11 で終わる列すべて ) を認識する dfa( 決定性有限オートマトン ) を与えよ 解答例???:,1 ss 1 ss 1 ss 2 1 ss 3 ss ,1 ss 5

168 3. 非決定性有限オートマトン (11) 例題 : nfa が認識する言語 (11 で終わる列すべて ) を認識する dfa( 決定性有限オートマトン ) を与えよ 解答例 : ss 1 ss 1 ss 2 1 ss 3 ss ,1 ss 5

169 3. 非決定性有限オートマトン (12) 例題 : 11で終わる列全てからなる言語を認識するdfaを与えよ 間違った解答例 : 例えば 言語に入っている 111 を読むと ss ss 1 ss 2 ss 3 ss 4 ss ss ss となり受理されない ss 4 ss がおかしい ss 1 は 1 を ss 2 は 1 を ss 3 は 11 を ss 4 は 11 を直前に読んだことを記憶するための状態である ss 4 で 1 を読むと 111 を読んだことになるので ss ではなく ss 3 に行かなくてはならない

170 3. 非決定性有限オートマトン (13) 例題 : 11で終わる列全てからなる言語を認識するdfaを与えよ 改良した解答例??: ss 1 ss 1 ss 2 1 ss 3 ss ,1 ss 5 まだ 三つ間違いが残っている ss 1 は 1 を ss 2 は 1 を ss 3 は 11 を ss 4 は 11 を直前に読んだことを記憶するための状態である

171 3. 非決定性有限オートマトン (15) 例題 : 11で終わる列全てからなる言語を認識するdfaを与えよ 本当に正しい解答例 1 ss 1 ss 1 ss 2 1 ss 3 ss ss 5 ss 1 は 1 を ss 2 は 1 を ss 3 は 11 を ss 4 は 11 を直前に読んだことを記憶するための状態である

172 3. 非決定性有限オートマトン (16) 今までのfaの1ステップは 以下の三つの動作からなる : 1 入力を読む 2 ヘッドを (1コマ右に) 動かす 3 状態を変える ( 状態遷移関数にしたがって ) 2 ヘッドを動かす ことをしないことを許す つまり 入力を読まずに状態を変えることができる オートマトンを考える : ε 入力付非決定性有限オートマトン (εnfa)

173 3. 非決定性有限オートマトン (17) ε 入力付非決定性有限オートマトン (εnfa) 1 ss ss 1 ss 3,1 ss 1 から入力を読まずに ( ヘッドを動かさずに ) ss 4 へ遷移することができる 1 ε ε 1 ss 2 ss 4 ε 状態が ss 1 でヘッドの下の記号が なら ss 3 に行ってヘッドを右に一つ動かす他に ヘッドを動かさずに ss 2, ss 4 に遷移することも可能

174 3. 非決定性有限オートマトン (18) 定義 ε 入力付非決定性有限オートマトン (εnfa) MM = (KK, Σ, δδ, ss, FF) nfa との違いは δδ の定義域が KK Σ εε となっていること つまり δδ: KK Σ εε 2 KK 右の例なら δδ ss 1, = ss 3, δδ ss 1, εε = {ss 2, ss 4 }, テープを読み終わったときに 受理状態に到達できれば受理される 例では 111 も ss ss 1 ss 2 ss ss 1 ss 3 とすれば受理される

175 3. 非決定性有限オートマトン (18) オートマトンの動作途中の状況を表すために xx Σ, pp KK に対して様相 (xx, pp) を定義する xx はテープのまだ読んでいない部分の列 pp はそのときの状態 読み終わった部分は将来の動作に影響しない 例 : まだよんでいないテープの部分 様相 11, ss ss 5

176 3. 非決定性有限オートマトン (19) 定義 : 以下の (i) もしくは (ii) を満たすとき 様相 cc 1 = (xx 1, pp 1 ) から様相 cc 2 = (xx 2, pp 2 ) へ 1 ステップで移れる (cc 1 cc 2 と書く ) と呼ぶ : (i) xx 1 = xx 2 かつ pp 2 δδ pp 1, εε (ii) aa Σ に対して xx 1 = aaxx 2 かつ pp 2 δδ pp 1, aa 例 : 11, ss 1 (11, ss 3 ) 11, ss 1 11, ss 4 である

177 3. 非決定性有限オートマトン (2) 定義 :cc cc 1 cc kk のとき 様相 cc から cc kk へ何ステップかで移れる (cc cc kk と書く ) と呼ぶ ステップの場合も含む ( つまり cc = cc kk のとき ) 定義 : 列 xx Σ は 初期状態 ss ある受理状態 ss FF に対し xx, ss εε, ss FF であるとき受理されると呼ぶ この定義より 最後が εε 入力でも受理される : xx, ss εε, ss εε, ss FF で ss FF でも xx は受理される

178 3. 非決定性有限オートマトン (21) 練習問題 : 左図のオートマトンで 列 11 が受理されることを示せ ヒント : 11, ss (εε, ss 3 ) の形の様相の列を作ればよい

179 3. 非決定性有限オートマトン (22) 練習問題 : 左図のオートマトンで 列 11 が受理されることを示せ ( 解答例 ) 11, ss 1, ss 1 1, ss 4 1, ss, ss 1 (εε, ss 3 )

180 4. 有限オートマトンと正規表現の等価性 (1) 定義正規表現を持つ言語を正規言語と呼ぶ この節の目的 : ( 決定性 ) 有限オートマトン (dfa) と正規表現が等価であることを示す 任意の言語 LL に対して LL が dfa で認識可能であることは LL が正規言語であることの必要十分条件 証明の方針 :dfa nfa εnfa 正規言語の集合を L dfa L nfa L εεεεfa L( 正規言語 ) と書く L dfa = L nfa = L εεεεfa = L( 正規言語 ) を証明することを目指す

181 4. 有限オートマトンと正規表現の等価性 (2) L dfa = L nfa = L εεεεfa = L( 正規言語 ) を証明することを目指す dfa は特殊な nfa nfa は特殊な εnfa なので L dfa L nfa L εεεεfa は明らか nfa が dfa で模倣できる こと (LL L nfa LL L dfa ) と ( nfa の動作を fa で 真似 して同じ言語を認識するようにできる ) εnfa が nfa で模倣できる こと (LL L εεnfa LL L nfa ) を証明した後で L εεεεfa = L( 正規表現 ) を証明すればよい

182 4. 有限オートマトンと正規表現の等価性 (3) 補題 2.1 言語 LL が nfa で認識できるならば dfa でも認識できる ( 証明の概要 ) 与えられた nfa NN に対し それが認識する言語を変えずに dfa DD に直せることを示す < アイデア : 部分集合構成 > NN にテープを途中まで読ませたときに 到達可能な状態の集合を SS 1 KK とする ここから さらに記号 aa を読んだときに到達できる状態の集合 SS 2 は以下で与えられる SS 2 = qq pp SS 1 qq δδ pp, aa SS 1 と SS 2 を単独の状態とみなす ( 群状態 ) ことで SS 1 から SS 2 へ入力記号 aa を読むことで決定的に遷移する dfa DD が得られる 初期状態は {ss } とし NN の受理状態を一つでも含む状態集合を DD の受理状態とする

183 4. 有限オートマトンと正規表現の等価性 (4),1 SS 2 = qq pp SS 1 qq δδ pp, aa ss 1 1, ss 1 ss 2 1, ss 3 1, ss 4 に対応する dfa を部分集合構成で作る : {ss } 1 1 {ss, ss 1 } {ss, ss 2 } {ss, ss 3 } {ss, ss 4 } {ss, ss 1, ss 2 } {ss, ss 1, ss 3 } {ss, ss 1, ss 4 } 途中まで ( 未完成 )

184 4. 有限オートマトンと正規表現の等価性 (6) 補題 2.2 言語 LL が εnfa で認識できるならば nfa でも認識できる ( 証明の概要 ) 与えられた εnfa EE に対し それが認識する言語を変えずに nfa NN に直せることを示す < アイデア > 状態は同じで 遷移 εε を消して 通常の遷移 aa で置き換えたい EEの状態 ssに対して ssから入力信号を読まないで ( εε で ) 遷移できる状態の集合をSS ss とする ss, SS ss をssに対応するNNの状態とする あるtt 1 SS ss に対して tt 1 からtt 2 へ記号 aa( εε) によるEEの遷移が存 在するときに限って 状態 ss, SS ss から tt 2, SS tt 2 へ記号 aaで遷移 できるとする ss, SS ss aa tt 2, SS tt 2 tt 1 SS ss tt 1 aa tt 2

185 4. 有限オートマトンと正規表現の等価性 (7) 初期状態は ss, SS ss 例 : とする ss, SS ss aa tt 2, SS tt 2 tt 1 SS ss tt 1 aa tt 2 1,1 (ss, {ss }) 1 (ss 1, {ss, ss 1, ss 2, ss 4 }) (ss 3, {ss 3 }) (ss 2, {ss 2 }) (ss 4, {ss, ss 4 })

186 4. 有限オートマトンと正規表現の等価性 (8) ここまでで LL dfa = LL nfa = LL εεεεfa が証明できたので LL 正規言語 LL εεεεfa と LL nfa LL 正規言語を示せば完成 補題 2.3 言語 LL が正規言語なら LL はある εεnfa EE によって認識される 証明 : 一般に 正規表現 RR は 別の正規表現 RR 1 と RR 2 を使って RR 1 + RR 2, RR 1 RR 2, RR 1 のどれかの形に書くことができる 例えば RR = は RR 1 = , RR 2 = に対して RR = RR 1 RR 2 と書ける

187 4. 有限オートマトンと正規表現の等価性 (9) RR = は RR 1 = , RR 2 = に対してRR = RR 1 RR 2 と書ける RR 3 = とすると RR 1 = RR 3 と書ける これを続けてどんどん RR 4, RR 5, RR 6 を作っていくと RR 5, RR 6 はどんどん簡単になる 最終的に これ以上分解できない以下の 3 通りの正規表現になる : や 1 のような 1 個の記号 空列 εε 空集合

188 4. 有限オートマトンと正規表現の等価性 (1) こうして得られた分解を元に RR に対応する εnfa を構成する 1 個の初期状態と受理状態を矢で結ぶ RR これを 正規表現の分解 RR 1 + RR 2, RR 1 RR 2, RR 1 に対応して下記で置き換えていく RR 1 RR 2 RR 1 εε RR 2

189 4. 有限オートマトンと正規表現の等価性 (11) これを 正規表現の分解 RR 1 + RR 2, RR 1 RR 2, RR 1 に対応して下記で置き換えていく RR 1 RR 2 RR 1 εε RR 2 RR 1 εε RR 1 εε RR 1 RR 1 + RR 2 εε εε RR 2 εε εε εε εε

190 4. 有限オートマトンと正規表現の等価性 (12) この置き換えを続けていくと 最終的に各矢の上について いるのは 1 個の記号 εε の何れかになる の場合のみ その矢を取り去る これで εnfa が完成する どうしてこの方法が正しいのか?

191 4. 有限オートマトンと正規表現の等価性 (13) どうしてこの方法が正しいのか? RR 最初の遷移図を LL RR に入る文字列を読むと初期状態から受理状態に遷移できると解釈する RR 1 RR 2 RR 1 εε RR 2 左は LL RR 1 RR 2 に入る文字列 xxxx を読むと遷移できる 右は xx LL(RR 1 ) を読んで ( 最初の矢 ) から yy LL(RR 2 ) を読む ( 最後の矢 ) と遷移できる

192 4. 有限オートマトンと正規表現の等価性 (14) RR 1 εε RR 1 εε 左は LL RR 1 に入る文字列を読むと遷移できる 右は LL(RR 1 ) に入る文字列を何回か ( 回でもよい ) 読むと遷移できる εε RR 1 εε RR 1 + RR 2 εε RR 2 εε εε εε 左は LL RR 1 + RR 2 = LL RR 1 LL(RR 2 ) に入る文字列を読むと遷移 右は LL(RR 1 ) に入る文字列もしくは LL(RR 2 ) に入る文字列を読むと遷移

193 4. 有限オートマトンと正規表現の等価性 (15) 結局 これらの置き換えを行っても 初期状態から受理状態へ与えられた正規表現 RR で表現される言語に属する列を読んで遷移する という事実が保存される つまり 受理される列は変わらない よって この置き換えを続けて最終的に得られた εεnfa は 言語 LL(RR) を認識する

194 4. 有限オートマトンと正規表現の等価性 (16) 例 : 正規表現 1 + が表現する言語を認識する εεnfa 1 + εε 1 + εε εε εε εε εε 1 + εε εε εε εε

195 4. 有限オートマトンと正規表現の等価性 (17) 例 : 正規表現 1 + が表現する言語を認識する εεnfa εε εε εε εε εε εε εε εε 1 εε εε εε εε εε

196 4. 有限オートマトンと正規表現の等価性 (18) 例 : 正規表現 1 + が表現する言語を認識する εεnfa εε εε εε εε εε εε εε εε εε 1 εε εε εε εε εε εε εε εε εε

197 4. 有限オートマトンと正規表現の等価性 (19) 例 : 正規表現 1 + が表現する言語を認識する εεnfa εε εε εε εε εε εε εε εε 1 εε εε εε εε εε εε εε εε εε εε

198 4. 有限オートマトンと正規表現の等価性 (19) 例 : 正規表現 1 + が表現する言語を認識するεεnfa この状態は無くて良い εε この部分は初期状態 εε εε から到達ができない εε εε εε εε εε 1 εε εε εε εε εε εε εε εε εε εε

199 4. 有限オートマトンと正規表現の等価性 (2) 例 : 正規表現 1 + が表現する言語を認識する εεnfa εε εε εε εε εε εε εε εε 1 εε εε εε

200 4. 有限オートマトンと正規表現の等価性 (21) 例 : 正規表現 1 + が表現する言語を認識するεεnfa εε εε εε εε εε εε 1 εε εε εε そもそもよく考えると LL 1 + = LL 1 が成立している

201 問題 以下の正規表現で表される言語を認識する εεnfa の状態遷移図を書け ただし アルファベットは {,1} とする Hint:

202 問題 以下の正規表現で表される言語を認識する εεnfa の状態遷移図を書け ただし アルファベットは {aa, bb} とする 1 aa aaaaaa + bb 2 aa aa + aaaa aaaa 3 aa + bb bb aa aa bb bb Hint:

203 4. 有限オートマトンと正規表現の等価性 (22) 補題 2.4 (LL nfa LL 正規言語 ) 言語 LL が nfa NN で認識されるなら LL はある正規表現 RR よって表わせる ( 証明の概要 ) 与えられた nfa NN = (KK, Σ, δδ, ss, FF) の正規表現を より矢の数が少ない nfa の正規表現に帰着させていく nfa NN に対応する正規表現を RRRRRR NN で表す まず 矢が一つもない nfa は ss FF のとき RRRRRR NN = εε そうでないとき RRRRRR NN = である

204 4. 有限オートマトンと正規表現の等価性 (23) 与えられたnfa NN = (KK, Σ, δδ, ss, FF) の矢の一つに注目する 1 ss ss 1 ss ss 2 ss 4 この矢を一つ取り除いた nfa を MM とする 1 ss ss 1 ss ss 2 ss 4

205 4. 有限オートマトンと正規表現の等価性 (24) MM の初期状態を vv に受理状態集合を VV に変更した nfa を MM(vv, VV) とする つまり MM = MM ss, FF 例えば : MM(ss, {ss 2 }) 1 ss ss 1 ss ss ss 2 4 MM(ss 4, FF) 1 ss ss 1 ss ss 2 ss 4

206 4. 有限オートマトンと正規表現の等価性 (25) NN: で認識される言語は を1 回も通らないで認識される言語にを1 回以上通って認識される言語を加えたものである

207 4. 有限オートマトンと正規表現の等価性 (26) を 1 回も通らないで認識される言語 とは NN から を除いた MM: で認識される言語である

208 4. 有限オートマトンと正規表現の等価性 (27) を 1 回以上通って認識される言語は を 1 回通って認識される言語と を 2 回通って認識される言語と を 3 回通って認識される言語と を全て合わせたものである

209 4. 有限オートマトンと正規表現の等価性 (28) を 1 回通って認識される言語は で認識される言語と で認識される言語と で認識される言語を連接したものである

210 4. 有限オートマトンと正規表現の等価性 (29) を 2 回通って認識される言語は で認識される言語と の言語と の言語と の言語と の言語を連接したもの

211 4. 有限オートマトンと正規表現の等価性 (3) を 3 回通って認識される言語は で認識される言語と 2 の言語との言語と の言語と の言語を連接したもの

212 4. 有限オートマトンと正規表現の等価性 (31) を nn 回通って認識される言語は で認識される言語と nn 1 の言語との言語と の言語と の言語を連接したもの

213 4. 有限オートマトンと正規表現の等価性 (32) を 1 回以上通って認識される言語は で認識される言語と の言語との言語と の言語と の言語を連接したもの

214 4. 有限オートマトンと正規表現の等価性 (33) 結局 で認識される言語は で認識される言語と の言語と の言語との言語と の言語と の言語の連接の足し算

215 4. 有限オートマトンと正規表現の等価性 (34) よって RRRRRR = RRRRRR +RRRRRR RRRRRR RRRRRR

216 4. 有限オートマトンと正規表現の等価性 (35) 書き直すと ( 状態の名前を変えて とする ) RRRRRR NN = RRRRRR MM ss, FF +RRRRRR MM ss, ss aa RRRRRR MM ss, ss aa ss ss aa RRRRRR MM ss, FF ここで NN は aa ss ss MM は MM の初期状態を vv に受理状態集合を VV に変更した nfa を MM(vv, VV) とする つまり MM = MM ss, FF また を aa と書いた

217 4. 有限オートマトンと正規表現の等価性 (36) 書き直すと ( 状態の名前を変えて とする ) RRRRRR NN = RRRRRR MM ss, FF +RRRRRR MM ss, ss aa RRRRRR MM ss, ss aa ss ss aa RRRRRR MM ss, FF MM は NN よりも矢の数が 1 本少ないので NN の正規表現を 矢の数が 1 つ少ない nfa の正規表現に帰着できた 実は 上記の式はどんな nfa のどんな矢に対しても成立する よって この式を何度も使うことで 最終的に矢の一つもない nfa の正規表現に帰着できる 矢が一つもない nfa は ss FF のとき RRRRRR NN = εε そうでないとき RRRRRR NN = である よって この方法で任意の nfa の正規表現が求まる

218 4. 有限オートマトンと正規表現の等価性 (37) よって LL nfa LL 正規言語が証明できた すでに LL 正規言語 LL dfa = LL nfa = LL εεεεfa は証明しておいたので 結局 LL dfa = LL nfa = LL εεεεfa = LL( 正規言語 ) が証明できた 定理 : fa と正規表現は等価である 即ち fa で認識できる言語は正規表現で生成できるし 逆もまた真である 正規言語 : 有限オートマトンで認識できる (= 正規表現を持つ ) 言語

219 5. 有限オートマトンの能力の限界 (1) 有限オートマトン 正規表現は 様々な場面 用途で使われており重要である しかし 言語表現能力は低い 例えば カッコ文 (((( )))) が左カッコ ( の数 = 右カッコ ) の数という性質を持つかどうかを確かめたいとする ( を, ) を 1 として 言語 nn 1 nn nn } は fa で認識できるか? 定理 : 言語 nn 1 nn nn } はいかなる fa によっても認識できない 証明は次のページ

220 5. 有限オートマトンの能力の限界 (2) ( 証明 ) 鳩ノ巣原理を使う 言語 mm 1 mm mm } がfa MMによって認識できたとする MMの状態数をnnとする 状態 tt ii を tt ii δδ ss, ii で定義する 状態数が nn なので tt, tt 1,, tt nn+1 の中に少なくとも 2 個の同じ状態が含まれる これらを tt ll と tt ll+kk とする (tt ll = tt ll+kk ) MM は列 ll 1 ll を受理する よって δδ(tt ll, 1 ll ) は受理状態 ll kk しかし tt ll = tt ll+kk なので δδ tt ll, 1 ll = δδ tt ll+kk, 1 ll よって ll+kk 1 ll も受理される これは矛盾 1 ll tt ll = tt kk+ll

221 5. 有限オートマトンの能力の限界 (3) 例 2.13: 言語 xxxx ( 証明 ) xx,1 } はいかなる fa によっても認識できない 同様に鳩ノ巣原理で証明できる この言語を認識できる fa MM を考える MM の状態の数を nn とする MM は 1 nn 1 nn を認識するので 状態遷移関数 δδ を用いて tt = ss, tt 1 = δδ ss, 1 tt ii = δδ ss, 1 ii 1 とする tt, tt 1,, tt nn のうち 同じ状態が少なくとも 2 個ある それを tt ll と tt ll+kk とする (kk 1 ) i) ll = のとき : δδ tt, 1 nn 1 nn = δδ(tt kk, 1 nn 1 nn ) は受理状態 これでは 1 k 1 1 nn 1 nn を受理するので矛盾 ii) ll 1のとき : δδ tt ll, nn ll+1 1 nn = δδ tt ll+kk, nn ll+1 1 nn が受理状態 この場合 1 ll+kk 1 nn ll+1 1 nn = 1 nn+kk 1 nn が受理され矛盾 よって この言語はfaでは認識できない

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

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦   形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110, オートマトン 形式言語及び演習 1 有限オートマトンとは 酒井正彦 wwwtrscssinagoya-uacjp/~sakai/lecture/automata/ 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110, } 形式言語 : 数学モデルに基づいて定義された言語 認識機械 : 文字列が該当言語に属するか? 文字列 機械 受理

More information

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

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦   正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語 オートマトン 形式言語及び演習 3. 酒井正彦 www.trs.css.i.nagoya-u.ac.jp/~sakai/lecture/automata/ とは ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械 : 言語を記号列で定義 - 記述しやすい ( ユーザフレンドリ ) 例 :01 + 10 - UNIX の grep コマンド - UNIX の

More information

情報数理学

情報数理学 2007 年度 情報数理学 履修にあたって 2007 年度大学院奇数セメスター ( 前期 ) 開講 教室 : K336 大学院棟 D46( 次回から ) 時限 : 火曜日 3 時限 (2:50-4:20) 担当 草苅良至 2 講義予定 計算機のいろいろな理論モデル 言語理論 計算の限界 問題の難しさ 現実問題と計算 計算量理論 アルゴリズム論 3 参考書 M. Sipser 著 計算理論の基礎 共立出版

More information

オートマトンと言語

オートマトンと言語 オートマトンと言語 回目 4 月 8 日 ( 水 ) 章 ( 数式の記法, スタック,BNF 記法 ) 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/public/automaton/ 授業の予定 ( 中間試験まで ) 回数月日 内容 4 月 日オートマトンとは, オリエンテーション 4 月 8 日 章 ( 数式の記法, スタック,BNF) 3 4 月 5 日

More information

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

Microsoft PowerPoint - 1.ppt [互換モード] 第 回オートマトンと正規表現 8//5( 火 ) 履修にあたって 8 年度情報数理学 8 年度大学院奇数セメスター ( 前期 ) 開講教室 : K6 大学院棟 D6( 次回から ) 担当 時限 : 火曜日 時限 (:5-:) 草苅良至 講義予定 計算機のいろいろな理論モデル言語理論 計算の限界計算量理論 問題の難しさ 現実問題と計算アルゴリズム論 参考書. Sipser 著 計算理論の基礎 共立出版

More information

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

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦   正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 www.trs.css.i.nagoya-u.ac.jp/~sakai/lecture/automata/ 正規言語の性質 正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると仮定してを使い 矛盾を導く 閉包性正規言語を演算により組み合わせて得られる言語が正規言語となる演算について調べる

More information

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

Microsoft PowerPoint - 3.ppt [互換モード] 3. プッシュダウンオートマトンと文脈自由文法 1 3-1. プッシュダウンオートマトン オートマトンはメモリがほとんど無かった この制限を除いた機械を考える 理想的なスタックを利用できるようなオートマトンをプッシュダウンオートマトン (Push Down Automaton,PDA) という 0 1 入力テープ 1 a 1 1 0 1 スタッb 入力テープを一度走査したあと ク2 入力テプを度走査したあと

More information

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

Microsoft PowerPoint - 5.ppt [互換モード] 5. チューリングマシンと計算 1 5-1. チューリングマシンとその計算 これまでのモデルでは テープに直接書き込むことができなかった また 入力テープヘッドの操作は右方向だけしか移動できなかった これらの制限を取り除いた機械を考える このような機械をチューリングマシン (Turing Machine,TM) と呼ぶ ( 実は TMは 現実のコンピュータの能力を持つ ) TM の特徴 (DFA との比較

More information

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

Microsoft PowerPoint - 09re.ppt [互換モード] 3.1. 正則表現 3. 正則表現 : 正則表現 ( または正規表現 ) とは 文字列の集合 (= 言語 ) を有限個の記号列で表現する方法の 1 つ 例 : (01)* 01 を繰り返す文字列 つまり 0(0+1)* 0 の後に 0 か 1 が繰り返す文字列 (01)* = {,01,0101,010101,01010101, } 0(0+1)*={0,00,01,000,001,010,011,0000,

More information

31 33

31 33 17 3 31 33 36 38 42 45 47 50 52 54 57 60 74 80 82 88 89 92 98 101 104 106 94 1 252 37 1 2 2 1 252 38 1 15 3 16 6 24 17 2 10 252 29 15 21 20 15 4 15 467,555 14 11 25 15 1 6 15 5 ( ) 41 2 634 640 1 5 252

More information

PowerPoint Presentation

PowerPoint Presentation 付録 2 2 次元アフィン変換 直交変換 たたみ込み 1.2 次元のアフィン変換 座標 (x,y ) を (x,y) に移すことを 2 次元での変換. 特に, 変換が と書けるとき, アフィン変換, アフィン変換は, その 1 次の項による変換 と 0 次の項による変換 アフィン変換 0 次の項は平行移動 1 次の項は座標 (x, y ) をベクトルと考えて とすれば このようなもの 2 次元ベクトルの線形写像

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション コンパイラとプログラミング言語 第 3 4 週 プログラミング言語の形式的な記述 2014 年 4 月 23 日 金岡晃 授業計画 第 1 週 (4/9) コンパイラの概要 第 8 週 (5/28) 下向き構文解析 / 構文解析プログラム 第 2 週 (4/16) コンパイラの構成 第 9 週 (6/4) 中間表現と意味解析 第 3 週 (4/23) プログラミング言語の形式的な記述 第 10 週

More information

融合規則 ( もっとも簡単な形, 選言的三段論法 ) ll mm ll mm これについては (ll mm) mmが推論の前提部になり mmであるから mmは常に偽となることがわかり ll mmはllと等しくなることがわかる 機械的には 分配則より (ll mm) mm (ll mm) 0 ll m

融合規則 ( もっとも簡単な形, 選言的三段論法 ) ll mm ll mm これについては (ll mm) mmが推論の前提部になり mmであるから mmは常に偽となることがわかり ll mmはllと等しくなることがわかる 機械的には 分配則より (ll mm) mm (ll mm) 0 ll m 知識工学 ( 第 5 回 ) 二宮崇 ( ninomiya@cs.ehime-u.ac.jp ) 論理的エージェント (7 章のつづき ) 証明の戦略その 3 ( 融合法 ) 証明の戦略その 1 やその 2 で証明できたときは たしかにKKKK ααとなることがわかるが なかなか証明できないときや 証明が本当にできないときには KKKK ααが成り立つのか成り立たないのかわからない また どのような証明手続きを踏めば証明できるのか定かではない

More information

知識工学 II ( 第 2 回 ) 二宮崇 ( ) 論理的エージェント (7 章 ) 論理による推論 命題論理 述語論理 ブール関数 ( 論理回路 )+ 推論 ブール関数 +( 述語 限量子 ( ) 変数 関数 定数 等号 )+ 推論 7.1 知識

知識工学 II ( 第 2 回 ) 二宮崇 ( ) 論理的エージェント (7 章 ) 論理による推論 命題論理 述語論理 ブール関数 ( 論理回路 )+ 推論 ブール関数 +( 述語 限量子 ( ) 変数 関数 定数 等号 )+ 推論 7.1 知識 知識工学 II ( 第 回 ) 二宮崇 ( ninomiya@cs.ehime-u.ac.jp ) 論理的エージェント (7 章 ) 論理による推論 命題論理 述語論理 ブール関数 ( 論理回路 )+ 推論 ブール関数 +( 述語 限量子 ( ) 変数 関数 定数 等号 )+ 推論 7. 知識に基づくエージェント知識ベース (knowledge base, KB): 文 の集合 他の 文 から導出されない

More information

スライド 1

スライド 1 ブール代数 ブール代数 集合 { 0, 1 } の上で演算 AND, OR, NOT からなる数学的体系 何のため? ある演算をどのような回路で実現すればよいのか? どうすれば回路が小さくなるのか? どうすれば回路が速く動くのか? 3 復習 : 真理値表とゲート記号 真理値表 A B A B 0 0 0 0 1 0 1 0 0 1 1 1 A B A+B 0 0 0 0 1 1 1 0 1 1 1

More information

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 10.pptx m u. 固有値とその応用 8/7/( 水 ). 固有値とその応用 固有値と固有ベクトル 行列による写像から固有ベクトルへ m m 行列 によって線形写像 f : R R が表せることを見てきた ここでは 次元平面の行列による写像を調べる とし 写像 f : を考える R R まず 単位ベクトルの像 u y y f : R R u u, u この事から 線形写像の性質を用いると 次の格子上の点全ての写像先が求まる

More information

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

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ 2-1 / 32 4. 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリティ n を持つ関数記号からなる Σ の部分集合 例 : 群 Σ G = {e, i, } (e Σ

More information

オートマトンと言語

オートマトンと言語 オートマトンと言語 4 回目 5 月 2 日 ( 水 ) 3 章 ( グラフ ) の続き 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/public/automaton/ 授業の予定 ( 中間試験まで ) 回数月日 内容 4 月 日オートマトンとは, オリエンテーション 2 4 月 8 日 2 章 ( 数式の記法, スタック,BNF) 3 4 月 25 日 2

More information

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

Microsoft Word - 19-d代 試é¨fi 解ç�fl.docx 2019 年度ディジタル代数期末試験解答例 再評価試験は期末試験と同程度の難しさである. しっかり準備して受けるように. 1. アドレスが 4 バイトで表わされた画像処理専用プロセッサが幾つかのデータを吐き出して停まってしまった. そのデータの 1 つはレジスタ R0 の中身で,16 進表示すると (BD80) 16 であった. このデータに関して, 以下の問に対する回答を対応する箱内に書け. (1)

More information

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

Microsoft PowerPoint - 2.ppt [互換モード] 0 章数学基礎 1 大学では 高校より厳密に議論を行う そのために 議論の議論の対象を明確にする必要がある 集合 ( 定義 ) 集合 物の集まりである集合 X に対して X を構成している物を X の要素または元という 集合については 3 セメスタ開講の 離散数学 で詳しく扱う 2 集合の表現 1. 要素を明示する表現 ( 外延的表現 ) 中括弧で 囲う X = {0,1, 2,3} 慣用的に 英大文字を用いる

More information

Information Theory

Information Theory 前回の復習 情報をコンパクトに表現するための符号化方式を考える 情報源符号化における基礎的な性質 一意復号可能性 瞬時復号可能性 クラフトの不等式 2 l 1 + + 2 l M 1 ハフマン符号の構成法 (2 元符号の場合 ) D. Huffman 1 前回の練習問題 : ハフマン符号 符号木を再帰的に構成し, 符号を作る A B C D E F 確率 0.3 0.2 0.2 0.1 0.1 0.1

More information

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

アルゴリズムとデータ構造 講義 アルゴリズムとデータ構造 第 2 回アルゴリズムと計算量 大学院情報科学研究科情報理工学専攻情報知識ネットワーク研究室喜田拓也 講義資料 2018/5/23 今日の内容 アルゴリズムの計算量とは? 漸近的計算量オーダーの計算の方法最悪計算量と平均計算量 ポイント オーダー記法 ビッグオー (O), ビッグオメガ (Ω), ビッグシータ (Θ) 2 お風呂スケジューリング問題 お風呂に入る順番を決めよう!

More information

Microsoft PowerPoint - Prog05.ppt

Microsoft PowerPoint - Prog05.ppt 本日の内容 プログラミング言語第五回 担当 : 篠沢佳久櫻井彰人 平成 20 年 5 月 19 日 制御構造 条件式 論理式 ( 復習 ) if 式 繰り返し (1) 無限の繰り返し 1 2 Ruby vs. Excel 浮動小数点数の計算能力は同じ 整数の計算能力は Ruby が上 Ruby なら何桁でも計算できる Excel には 整数計算だけやって! ということができない欠点がある 使いやすさは

More information

Microsoft PowerPoint - mp11-02.pptx

Microsoft PowerPoint - mp11-02.pptx 数理計画法第 2 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 前回の復習 数理計画とは? 数理計画 ( 復習 ) 数理計画問題とは? 狭義には : 数理 ( 数学 ) を使って計画を立てるための問題 広義には : 与えられた評価尺度に関して最も良い解を求める問題

More information

様々なミクロ計量モデル†

様々なミクロ計量モデル† 担当 : 長倉大輔 ( ながくらだいすけ ) この資料は私の講義において使用するために作成した資料です WEB ページ上で公開しており 自由に参照して頂いて構いません ただし 内容について 一応検証してありますが もし間違いがあった場合でもそれによって生じるいかなる損害 不利益について責任を負いかねますのでご了承ください 間違いは発見次第 継続的に直していますが まだ存在する可能性があります 1 カウントデータモデル

More information

プログラミングA

プログラミングA プログラミング A 第 5 回 場合に応じた処理 繰り返し 2019 年 5 月 13 日 東邦大学金岡晃 場合に応じた処理 1 こういうプログラムを作りたい 5 教科のテスト 100 点以上各科目の点数の合計が 100 点未満 おめでとう! これで 100 点越えのプレゼントを獲得! というメッセージを出力 残念!100 点越えのプレゼントまであと ** 点! というメッセージを出力 5 教科の点数の合計が

More information

離散数学

離散数学 離散数学 ブール代数 落合秀也 前回の復習 : 命題計算 キーワード 文 複合文 結合子 命題 恒真 矛盾 論理同値 条件文 重条件文 論法 論理含意 記号 P(p,q,r, ),,,,,,, 2 今日のテーマ : ブール代数 ブール代数 ブール代数と束 そして 順序 加法標準形とカルノー図 3 今日のテーマ : ブール代数 ブール代数 ブール代数と束 そして 順序 加法標準形とカルノー図 4 ブール代数の法則

More information

C8

C8 システムソフトウェア講義の概要. 計算機システムの復習 : 中央演算処理装置 (CPU), プログラムの実行, 主記憶装置, 補助記憶装置 2. 時分割処理 : プロセス, スレッド, スケジューリング. スレッド間の排他制御 : フラグ, セマフォ, モニタ, デッドロック 4. デバイス管理,HDD へのアクセス制御 5. 記憶管理 : メモリ割り当て, ページング, セグメンテーション 6.

More information

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

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�) Cellulr uo nd heir eigenlues 東洋大学総合情報学部 佐藤忠一 Tdzu So Depren o Inorion Siene nd rs Toyo Uniersiy. まえがき 一次元セルオ-トマトンは数学的には記号列上の行列の固有値問題である 固有値問題の行列はふつう複素数体上の行列である 量子力学における固有値問題も無限次元ではあるが関数環上の行列でその成分は可換環である

More information

プログラミングA

プログラミングA プログラミング A 第 5 回 場合に応じた処理 繰り返し 2017 年 5 月 15 日 東邦大学金岡晃 前回の復習 (1) このプログラムを作成し実行してください 1 前回の復習 (2) このプログラムを作成し実行してください 2 前回の復習 (3) 3 前回の復習 演算子 代入演算子 インクリメント シフト演算子 型変換 4 場合に応じた処理 5 こういうプログラムを作りたい 5 教科のテスト

More information

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X ( 第 週ラプラス変換 教科書 p.34~ 目標ラプラス変換の定義と意味を理解する フーリエ変換や Z 変換と並ぶ 信号解析やシステム設計における重要なツール ラプラス変換は波動現象や電気回路など様々な分野で 微分方程式を解くために利用されてきた ラプラス変換を用いることで微分方程式は代数方程式に変換される また 工学上使われる主要な関数のラプラス変換は簡単な形の関数で表されるので これを ラプラス変換表

More information

PowerPoint Presentation

PowerPoint Presentation 最適化手法 第 回 工学部計数工学科 定兼邦彦 http://researchmap.jp/sada/resources/ 前回の補足 グラフのある点の隣接点をリストで表現すると説明したが, 単に隣接点の集合を持っていると思ってよい. 互いに素な集合のデータ構造でも, 単なる集合と思ってよい. 8 3 4 3 3 4 3 4 E v 重み 3 8 3 4 4 3 {{,},{3,8}} {{3,},{4,}}

More information

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx 9. 線形写像 ここでは 行列の積によって 写像を定義できることをみていく また 行列の積によって定義される写像の性質を調べていく 行列演算と写像 ( 次変換 3 拡大とスカラー倍 p ' = ( ', ' = ( k, kk p = (, k 倍 k 倍 拡大後 k 倍拡大の関係は スカラー倍を用いて次のように表現できる ' = k ' 拡大前 拡大 4 拡大と行列の積 p ' = ( ', '

More information

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

文法と言語 ー文脈自由文法とLR構文解析2ー 文法と言語ー文脈自由文法とLR 構文解析 2 ー 和田俊和資料保存場所 http://vrl.sys.wakayama-u.ac.jp/~twada/syspro/ 前回までの復習 最右導出と上昇型構文解析 最右導出を前提とした場合, 上昇型の構文解析がしばしば用いられる. 上昇型構文解析では生成規則の右辺にマッチする部分を見つけ, それを左辺の非終端記号に置き換える 還元 (reduction)

More information

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - 9.pptx 9/7/8( 水 9. 線形写像 ここでは 行列の積によって 写像を定義できることをみていく また 行列の積によって定義される写像の性質を調べていく 拡大とスカラー倍 行列演算と写像 ( 次変換 拡大後 k 倍 k 倍 k 倍拡大の関係は スカラー倍を用いて次のように表現できる p = (, ' = k ' 拡大前 p ' = ( ', ' = ( k, k 拡大 4 拡大と行列の積 拡大後 k 倍

More information

Microsoft PowerPoint - 第3回2.ppt

Microsoft PowerPoint - 第3回2.ppt 講義内容 講義内容 次元ベクトル 関数の直交性フーリエ級数 次元代表的な対の諸性質コンボリューション たたみこみ積分 サンプリング定理 次元離散 次元空間周波数の概念 次元代表的な 次元対 次元離散 次元ベクトル 関数の直交性フーリエ級数 次元代表的な対の諸性質コンボリューション たたみこみ積分 サンプリング定理 次元離散 次元空間周波数の概念 次元代表的な 次元対 次元離散 ベクトルの直交性 3

More information

<4D F736F F D208CF68BA48C6F8DCF8A C30342C CFA90B68C6F8DCF8A7782CC8AEE967B92E8979D32288F4390B394C529332E646F63>

<4D F736F F D208CF68BA48C6F8DCF8A C30342C CFA90B68C6F8DCF8A7782CC8AEE967B92E8979D32288F4390B394C529332E646F63> 2. 厚生経済学の ( 第 ) 基本定理 2 203 年 4 月 7 日 ( 水曜 3 限 )/8 本章では 純粋交換経済において厚生経済学の ( 第 ) 基本定理 が成立することを示す なお より一般的な生産技術のケースについては 4.5 補論 2 で議論する 2. 予算集合と最適消費点 ( 完全 ) 競争市場で達成される資源配分がパレート効率的であることを示すための準備として 個人の最適化行動を検討する

More information

Microsoft Word - thesis.doc

Microsoft Word - thesis.doc 剛体の基礎理論 -. 剛体の基礎理論初めに本論文で大域的に使用する記号を定義する. 使用する記号トルク撃力力角運動量角速度姿勢対角化された慣性テンソル慣性テンソル運動量速度位置質量時間 J W f F P p .. 質点の並進運動 質点は位置 と速度 P を用いる. ニュートンの運動方程式 という状態を持つ. 但し ここでは速度ではなく運動量 F P F.... より質点の運動は既に明らかであり 質点の状態ベクトル

More information

計算機シミュレーション

計算機シミュレーション . 運動方程式の数値解法.. ニュートン方程式の近似速度は, 位置座標 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます. 本来は が の極限をとらなければいけませんが, 有限の小さな値とすると 秒後の位置座標は速度を用いて, と近似できます. 同様にして, 加速度は, 速度 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます.

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 解けない問題 を知ろう 保坂和宏 ( 東京大学 B2) 第 11 回 JOI 春合宿 2012/03/19 概要 計算量に関して P と NP NP 完全 決定不能 いろいろな問題 コンテストにおいて Turing 機械 コンピュータの計算のモデル 計算 を数学的に厳密に扱うためのもの メモリのテープ (0/1 の列 ), ポインタ, 機械の内部状態を持ち, 規則に従って状態遷移をする 本講義では

More information

<4D F736F F D208C51985F82CD82B682DF82CC88EA95E A>

<4D F736F F D208C51985F82CD82B682DF82CC88EA95E A> 群論はじめの一歩 (6) 6. 指数 2の定理と2 面体群 命題 H を群 G の部分群とする そして 左剰余類全体 G/ H 右剰 余類全体 \ H G ともに指数 G: H 2 と仮定する このとき H は群 G の正規部分群である すなわち H 注意 ) 集合 A と B があるとき A から B を引いた差集合は A \ B と書かれるが ここで書いた H \ Gは差集合ではなく右剰余類の集合の意味である

More information

æœ•å¤§å–¬ç´—æŁ°,æœ•å°‘å–¬å•“æŁ°,ã…¦ã…¼ã‡¯ã…ªã……ã…›ã†®äº™éŽ¤æ³Ł

æœ•å¤§å–¬ç´—æŁ°,æœ•å°‘å–¬å•“æŁ°,ã…¦ã…¼ã‡¯ã…ªã……ã…›ã†®äº™éŽ¤æ³Ł 最大公約数, 最小公倍数, ユークリッドの互除法 最大公約数, 最小公倍数とは つ以上の正の整数に共通な約数 ( 公約数 ) のうち最大のものを最大公約数といいます. と 8 の公約数は,,,,6 で, 6 が最大公約数 つ以上の正の整数の共通な倍数 ( 公倍数 ) のうち最小のものを最小公倍数といいます. と の公倍数は, 6,,8,,... で, 6 が最小公倍数 最大公約数, 最小公倍数の求め方

More information

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

Microsoft PowerPoint - アルデIII 02回目10月15日 アルゴリズムとデータ構造 III 2 回目 :10 月 15 日 文脈自由文法,CYK 法 授業資料 http://ir.cs.ymnshi.c.jp/~ysuzuki/lgorithm3/inde.html 1 2 3 4 5 6 7 8 9 授業の予定 ( 中間試験まで ) 10/01 スタック ( 後置記法で書かれた式の計算 ) 10/15 文脈自由文法, 構文解析,CYK 法 10/22 構文解析

More information

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

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y  小幡智裕 Java Script プログラミング入門 3-6~3-7 茨城大学工学部情報工学科 08T4018Y 小幡智裕 3-6 組み込み関数 組み込み関数とは JavaScript の内部にあらかじめ用意されている関数のこと ユーザ定義の関数と同様に 関数名のみで呼び出すことができる 3-6-1 文字列を式として評価する関数 eval() 関数 引数 : string 式として評価する文字列 戻り値 :

More information

論理と計算(2)

論理と計算(2) 情報科学概論 Ⅰ アルゴリズムと計算 亀山幸義 http://logic.cs.tsukuba.ac.jp/~kam 計算とは? コンピュータが計算できることは? 1 2 関数 = 計算? NO 部分関数と計算 入力 1 入力 2 関数 出力 入力 1 入力 2 部分関数 出力 停止しない 入力 1 入力 2 コンピュータ 止まらないことがある出力 3 入力 1 入力 2 コンピュータ 出力 停止しない

More information

数理言語

数理言語 知識工学 第 13 回 二宮崇 1 教科書と資料 教科書 Artificial Intelligence: A Modern Approach (3rd Edition): Stuart Russell, Peter Norvig ( 著 ), Prentice Hall, 2009 この講義のウェブサイト http://aiweb.cs.ehime-u.ac.jp/~ninomiya/ke/ 2

More information

Microsoft PowerPoint - lec4.ppt

Microsoft PowerPoint - lec4.ppt 本日の内容 繰り返し計算 while 文, for 文 例題 1. 最大公約数の計算例題 2. 自然数の和 while 文例題 3. フィボナッチ数列例題 4. 自然数の和 for 文例題 5. 九九の表繰り返しの入れ子 今日の到達目標 繰り返し (while 文, for 文 ) を使って, 繰り返し計算を行えるようになること ループカウンタとして, 整数の変数を使うこと 今回も, 見やすいプログラムを書くために,

More information

Microsoft PowerPoint - mp11-06.pptx

Microsoft PowerPoint - mp11-06.pptx 数理計画法第 6 回 塩浦昭義情報科学研究科准教授 shioura@dais.is.tohoku.ac.jp http://www.dais.is.tohoku.ac.jp/~shioura/teaching 第 5 章組合せ計画 5.2 分枝限定法 組合せ計画問題 組合せ計画問題とは : 有限個の もの の組合せの中から, 目的関数を最小または最大にする組合せを見つける問題 例 1: 整数計画問題全般

More information

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

書式に示すように表示したい文字列をダブルクォーテーション () の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf( 情報処理基礎 ); printf(c 言語の練習 ); printf 情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている

More information

Functional Programming

Functional Programming PROGRAMMING IN HASKELL プログラミング Haskell Chapter 7 - Higher-Order Functions 高階関数 愛知県立大学情報科学部計算機言語論 ( 山本晋一郎 大久保弘崇 2013 年 ) 講義資料オリジナルは http://www.cs.nott.ac.uk/~gmh/book.html を参照のこと 0 Introduction カリー化により

More information

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

Microsoft PowerPoint - enshu4.ppt [äº™æ‘łã…¢ã…¼ã…›] 4. リスト, シンボル, 文字列 説明資料 本日の内容 1. リストとは 2. Scheme プログラムでのリストの記法 list 句 3. リストに関する演算子 first, rest, empty?, length, list-ref, append 4. 数字, シンボル, 文字列を含むリスト 1. Scheme でのシンボルの記法 2. Scheme での文字列の記法 リストとは 15 8

More information

Microsoft PowerPoint - 13approx.pptx

Microsoft PowerPoint - 13approx.pptx I482F 実践的アルゴリズム特論 13,14 回目 : 近似アルゴリズム 上原隆平 (uehara@jaist.ac.jp) ソートの下界の話 比較に基づく任意のソートアルゴリズムはΩ(n log n) 時間の計算時間が必要である 証明 ( 概略 ) k 回の比較で区別できる場合の数は高々 2 k 種類しかない n 個の要素の異なる並べ方は n! 通りある したがって少なくとも k n 2 n!

More information

nlp1-04a.key

nlp1-04a.key 自然言語処理論 I. 文法 ( 構文解析 ) その 構文解析 sytctic lysis, prsig 文の構文的な構造を決定すること句構造文法が使われることが多い文法による構文木は一般に複数ある 構文木の違い = 解釈の違い 構文解析の目的 句構造文法の規則を使って, 文を生成できる構文木を全て見つけだすこと 文法が入力文を生成できるかどうかを調べるだけではない pro I 構文解析とは 構文木の違い

More information

DVIOUT-SS_Ma

DVIOUT-SS_Ma 第 章 微分方程式 ニュートンはリンゴが落ちるのを見て万有引力を発見した という有名な逸話があります 無重力の宇宙船の中ではリンゴは落ちないで静止していることを考えると 重力が働くと始め静止しているものが動き出して そのスピードはどんどん大きくなる つまり速度の変化が現れることがわかります 速度は一般に時間と共に変化します 速度の瞬間的変化の割合を加速度といい で定義しましょう 速度が変化する, つまり加速度がでなくなるためにはその原因があり

More information

< 文字式問題文の意味を文字式で表す > No. 桁 ( ケタ ) の整数 自然数 例 ) 8 という整数は が つ が 8 つ集まってできている整数である これを踏まえて 8 = + 8 と表すことができる (1) 十の位の数字が χ 一の位の数字が у である 桁の整数は χ と у を用いてど

< 文字式問題文の意味を文字式で表す > No. 桁 ( ケタ ) の整数 自然数 例 ) 8 という整数は が つ が 8 つ集まってできている整数である これを踏まえて 8 = + 8 と表すことができる (1) 十の位の数字が χ 一の位の数字が у である 桁の整数は χ と у を用いてど < 文字式問題文の意味を文字式で表す > No. 1 なに算? (1) 兄はχ 円 弟はу 円持っています 人合わせて何円持っていますか ( 円 ) () a 円のケーキと b 円のケーキを買って 10 円の箱に入れてもらう時の代金の合計はいくらか ( 円 ) () A 中学校には r 人 B 中学校には s 人 C 中学校には t 人の生徒がいる 校全てで何人の生徒がいるか ( 人 ) つまり (

More information

スライド 1

スライド 1 順序回路 (2) 1 順序回路の設計 組合せ論理回路の設計法 構造や規則性に着目した手設計 ( 先人の知恵を使う ) 入力 出力の関係に基づく自動合成 ( カルノー図など ) 順序回路の設計法 構造や規則性に着目した手設計 ( 前回の各例 ) 入力 出力 状態の関係に基づく自動合成 2 同期式順序回路の入力 出力 状態の関係 x 1 x 2 組合せ回路 y 1 y 2 x n q 2 q p q 1

More information

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63> C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う

More information

2015年度 2次数学セレクション(整数と数列)

2015年度 2次数学セレクション(整数と数列) 05 次数学セレクション問題 [ 千葉大 文 ] k, m, を自然数とする 以下の問いに答えよ () k を 7 で割った余りが 4 であるとする このとき, k を 3 で割った余りは であることを示せ () 4m+ 5が 3 で割り切れるとする このとき, m を 7 で割った余りは 4 ではないことを示せ -- 05 次数学セレクション問題 [ 九州大 理 ] 以下の問いに答えよ () が正の偶数のとき,

More information

Microsoft Word - no103.docx

Microsoft Word - no103.docx 次は 数える例です ex19.c /* Zeller の公式によって 1 日の曜日の分布を求めるプログラム */ int year, month, c, y, m, wnumber, count[7] = {0, i; for(year = 2001; year

More information

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - mp13-07.pptx 数理計画法 ( 数理最適化 ) 第 7 回 ネットワーク最適化 最大流問題と増加路アルゴリズム 担当 : 塩浦昭義 ( 情報科学研究科准教授 ) hiour@di.i.ohoku.c.jp ネットワーク最適化問題 ( 無向, 有向 ) グラフ 頂点 (verex, 接点, 点 ) が枝 (edge, 辺, 線 ) で結ばれたもの ネットワーク 頂点や枝に数値データ ( 距離, コストなど ) が付加されたもの

More information

<4D F736F F F696E74202D2091E6824F82538FCD8CEB82E88C9F8F6F814592F990B382CC8CB4979D82BB82CC82505F D E95848D8682CC90B69

<4D F736F F F696E74202D2091E6824F82538FCD8CEB82E88C9F8F6F814592F990B382CC8CB4979D82BB82CC82505F D E95848D8682CC90B69 第 章 誤り検出 訂正の原理 その ブロック符号とその復号 安達文幸 目次 誤り訂正符号化を用いる伝送系誤り検出符号誤り検出 訂正符号 7, ハミング符号, ハミング符号生成行列, パリティ検査行列の一般形符号の生成行列符号の生成行列とパリティ検査行列の関係符号の訂正能力符号多項式 安達 : コミュニケーション符号理論 安達 : コミュニケーション符号理論 誤り訂正符号化を用いる伝送系 伝送システム

More information

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

構造化プログラミングと データ抽象 計算の理論 後半第 3 回 λ 計算と型システム 本日の内容 λ 計算の表現力 ( 前回の復習 ) データの表現 不動点演算子と再帰 λ 計算の重要な性質 チャーチ ロッサー性 簡約戦略 型付き λ 計算 ブール値 組 ブール値と組の表現 true, false を受け取り 対応する要素を返す関数 として表現 T = λt.λf.t F = λt.λf.f if e 1 then e 2 else

More information

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

Microsoft PowerPoint - ca ppt [互換モード] 大阪電気通信大学情報通信工学部光システム工学科 2 年次配当科目 コンピュータアルゴリズム 良いアルゴリズムとは 第 2 講 : 平成 20 年 10 月 10 日 ( 金 ) 4 限 E252 教室 中村嘉隆 ( なかむらよしたか ) 奈良先端科学技術大学院大学助教 y-nakamr@is.naist.jp http://narayama.naist.jp/~y-nakamr/ 第 1 講の復習

More information

JavaScriptで プログラミング

JavaScriptで プログラミング JavaScript でプログラミング JavaScript とは プログラミング言語の 1 つ Web ページ上でプログラムを動かすことが主目的 Web ブラウザで動かすことができる 動作部分の書き方が C や Java などに似ている 2 JavaScript プログラムを動かすには の範囲を 1. テキストエディタで入力 2..html というファイル名で保存

More information

Microsoft PowerPoint - DA2_2019.pptx

Microsoft PowerPoint - DA2_2019.pptx Johnon のアルゴリズム データ構造とアルゴリズム IⅠ 第 回最大フロー 疎なグラフ, 例えば E O( V lg V ) が仮定できる場合に向いている 隣接リスト表現を仮定する. 実行時間は O( V lg V + V E ). 上記の仮定の下で,Floyd-Warhall アルゴリズムよりも漸近的に高速 Johnon のアルゴリズム : アイデア (I) 辺重みが全部非負なら,Dikra

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 条件分岐 : if 文, if~else 文 条件分岐 条件分岐とは ある条件が成立したときとしないときで処理の内容を変更する場合に応じた, 複雑な処理を行うことができる 条件分岐 yes 成績が良かったか? no ご褒美に何か買ってもらう お小遣いが減らされる C 言語では,if 文,if~else 文,if~else if~else 文,switch 文で条件分岐の処理を実現できる

More information

Functional Programming

Functional Programming PROGRAMMING IN HASKELL プログラミング Haskell Chapter 12 Lazy Evaluation 遅延評価 愛知県立大学情報科学部計算機言語論 ( 山本晋一郎 大久保弘崇 2011 年 ) 講義資料オリジナルは http://www.cs.nott.ac.uk/~gmh/book.html を参照のこと 0 用語 評価 (evaluation, evaluate)

More information

Microsoft PowerPoint - ad11-09.pptx

Microsoft PowerPoint - ad11-09.pptx 無向グラフと有向グラフ 無向グラフ G=(V, E) 頂点集合 V 頂点の対を表す枝の集合 E e=(u,v) 頂点 u, v は枝 e の端点 f c 0 a 1 e b d 有向グラフ G=(V, E) 頂点集合 V 頂点の順序対を表す枝の集合 E e=(u,v) 頂点 uは枝 eの始点頂点 vは枝 eの終点 f c 0 a 1 e b d グラフのデータ構造 グラフ G=(V, E) を表現するデータ構造

More information

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

Microsoft PowerPoint - qcomp.ppt [互換モード] 量子計算基礎 東京工業大学 河内亮周 概要 計算って何? 数理科学的に 計算 を扱うには 量子力学を計算に使おう! 量子情報とは? 量子情報に対する演算 = 量子計算 一般的な量子回路の構成方法 計算って何? 計算とは? 計算 = 入力情報から出力情報への変換 入力 計算機構 ( デジタルコンピュータ,etc ) 出力 計算とは? 計算 = 入力情報から出力情報への変換 この関数はどれくらい計算が大変か??

More information

Microsoft PowerPoint - 3.pptx

Microsoft PowerPoint - 3.pptx 条件分岐 ( if 文 ) 第 2 回の講義資料で出題した練習問題や演習問題の計算は, 勿論電卓でもでき, わざわざプログラムを作ってまでするほどの計算ではありませんでした. プログラムによる計算と電卓の計算の きな違いの つが, プログラムには, 条件による処理の分岐, 繰り返しがあることです. まず今回は, 条件による処理の分岐 ( 処理の切り替え と う が適切かもしれません ) の書き について学んでいきます.

More information

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

パソコンシミュレータの現状 第 2 章微分 偏微分, 写像 豊橋技術科学大学森謙一郎 2. 連続関数と微分 工学において物理現象を支配する方程式は微分方程式で表されていることが多く, 有限要素法も微分方程式を解く数値解析法であり, 定式化においては微分 積分が一般的に用いられており. 数学の基礎知識が必要になる. 図 2. に示すように, 微分は連続な関数 f() の傾きを求めることであり, 微小な に対して傾きを表し, を無限に

More information

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

Microsoft PowerPoint - tm ppt [互換モード] 1 計算理論 I( チューリング機械と決定不能性 ) 平成 21 年度第 I 期 ソフトウェア基礎学講座安本慶一 スケジュール 2 講義日程 (6 回 ) 5 月 11,14,18,21,25,28 日 ( 月曜 1 限, 木曜 2 限 ) テスト :6 月 1 日 ( 月 )1 限 ( 資料, 参考書持込可 ) 講義資料 以下の URL で配布 http://ito-lab.naist.jp/~yasumoto/lecture/tm/

More information

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

構造化プログラミングと データ抽象 計算の理論 後半第 3 回 λ 計算と型システム 本日の内容 λ 計算の表現力 ( 前回のつづき ) 前回の復習 不動点演算子と再帰 λ 計算の重要な性質 チャーチ ロッサー性 簡約戦略 型付き λ 計算 ブール値 組 ブール値と組の表現 ( 復習 ) true, false を受け取り 対応する要素を返す関数 として表現 T = λt.λf.t F = λt.λf.f if e 1 then e

More information

040402.ユニットテスト

040402.ユニットテスト 2. ユニットテスト ユニットテスト ( 単体テスト ) ユニットテストとはユニットテストはプログラムの最小単位であるモジュールの品質をテストすることであり その目的は結合テスト前にモジュール内のエラーを発見することである テストは機能テストと構造テストの2つの観点から行う モジュールはプログラムを構成する要素であるから 単体では動作しない ドライバとスタブというテスト支援ツールを使用してテストを行う

More information

æœ•å¤§å–¬ç´—æŁ°,æœ•å°‘å–¬å•“æŁ°,ã…¦ã…¼ã‡¯ã…ªã……ã…›ã†®äº™éŽ¤æ³Ł

æœ•å¤§å–¬ç´—æŁ°,æœ•å°‘å–¬å•“æŁ°,ã…¦ã…¼ã‡¯ã…ªã……ã…›ã†®äº™éŽ¤æ³Ł 最大公約数, 最小公倍数, ユークリッドの互除法 最大公約数, 最小公倍数とは つ以上の正の整数に共通な約数 ( 公約数 ) のうち最大のものを最大公約数といいます. 1 と 18 の公約数は, 1,,,6 で, 6 が最大公約数 つ以上の正の整数の共通な倍数 ( 公倍数 ) のうち最小のものを最小公倍数といいます. と の公倍数は, 6,1,18,,... で, 6 が最小公倍数 最大公約数, 最小公倍数の求め方

More information

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

Microsoft PowerPoint L03-Syntex and Semantics-1-students ( ) プログラミング言語論 A (Concepts on Programming Languages) 趙建軍 (Jianjun Zhao) http://stap.ait.kyushu-u.ac.jp/~zhao/course/2018/concepts of Programming Languages.html 1 第 3 回 構文と意味 (1) (Syntax and Semantics) 2017.04.26

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション グラフの禁止構造条件について 古谷倫貴 ( 北里大学一般教育部 ) 話の流れ 1. 禁止部分グラフ a. 問題設定 b. ハミルトン閉路のための禁止部分グラフ c. 完全マッチングのための禁止部分グラフ d. 禁止部分グラフ条件の完全決定の難易 2. 自明な禁止部分グラフ条件 3. 禁止部分グラフ条件の比較 問題設定 グラフのある性質 P について,P のための ( 十分 ) 条件として良いものを考えたい.

More information

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

2015-2018年度 2次数学セレクション(整数と数列)解答解説 015 次数学セレクション問題 1 [ 千葉大 文 ] k, m, n を自然数とする 以下の問いに答えよ (1) k を 7 で割った余りが 4 であるとする このとき, k を 3 で割った余りは であることを示せ () 4m+ 5nが 3 で割り切れるとする このとき, mn を 7 で割った余りは 4 ではないことを示せ -1- 015 次数学セレクション問題 [ 九州大 理 ] 以下の問いに答えよ

More information

Microsoft Word - Chap17

Microsoft Word - Chap17 第 7 章化学反応に対する磁場効果における三重項機構 その 7.. 節の訂正 年 7 月 日. 節 章の9ページ の赤枠に記載した説明は間違いであった事に気付いた 以下に訂正する しかし.. 式は 結果的には正しいので安心して下さい 磁場 の存在下でのT 状態のハミルトニアン は ゼーマン項 と時間に依存するスピン-スピン相互作用の項 との和となる..=7.. g S = g S z = S z g

More information

DVIOUT

DVIOUT 第 章 離散フーリエ変換 離散フーリエ変換 これまで 私たちは連続関数に対するフーリエ変換およびフーリエ積分 ( 逆フーリエ変換 ) について学んできました この節では フーリエ変換を離散化した離散フーリエ変換について学びましょう 自然現象 ( 音声 ) などを観測して得られる波 ( 信号値 ; 観測値 ) は 通常 電気信号による連続的な波として観測機器から出力されます しかしながら コンピュータはこの様な連続的な波を直接扱うことができないため

More information

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

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード] 情報工学実験 II 実験 2 アルゴリズム ( リスト構造とハッシュ ) 実験を始める前に... C 言語を復習しよう 0. プログラム書ける? 1. アドレスとポインタ 2. 構造体 3. 構造体とポインタ 0. プログラム書ける? 講義を聴いているだけで OK? 言語の要素技術を覚えれば OK? 目的のプログラム? 要素技術 データ型 配列 文字列 関数 オブジェクト クラス ポインタ 2 0.

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2018 年度クラス C3 D1 D2 D3 情報科学基礎 I 10. 組合せ回路 ( 教科書 3.4~3.5 節 ) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 組合せ論理回路 x1 x2 xn 組合せ論理回路 y1 y2 ym y i = f i (x 1, x 2,, x n ), i

More information

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

Microsoft PowerPoint - アルデIII 02回目10月14日 アルゴリズムとデータ構造 III 2 回目 :10 月 14 日 文脈自由文法,CYK 法 授業資料 http://ir.cs.ymnshi.c.jp/~ysuzuki/lgorithm3/inde.html 1 2 3 4 5 6 7 8 9 授業の予定 ( 中間試験まで ) 10/07 スタック ( 後置記法で書かれた式の計算 ) 10/14 チューリング機械, 文脈自由文法 10/21 構文解析

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

人工知能入門

人工知能入門 藤田悟 黄潤和 探索とは 探索問題 探索解の性質 探索空間の構造 探索木 探索グラフ 探索順序 深さ優先探索 幅優先探索 探索プログラムの作成 バックトラック 深さ優先探索 幅優先探索 n 個の ueen を n n のマスの中に 縦横斜めに重ならないように配置する 簡単化のために 4-ueen を考える 正解 全状態の探索プログラム 全ての最終状態を生成した後に 最終状態が解であるかどうかを判定する

More information

Microsoft PowerPoint - while.ppt

Microsoft PowerPoint - while.ppt 本日の内容 繰り返し計算 while 文, for 文 例題 1. 自然数の和例題 2. 最大公約数の計算例題 3. ベクトルの長さ while 文例題 4. 九九の表 for 文と繰り返しの入れ子例題 5. ド モアブルの公式計算誤差の累積 今日の到達目標 繰り返し (while 文, for 文 ) を使って, 繰り返し計算を行えるようになること ループカウンタとして, 整数の変数を使うこと 今回も,

More information

論理と計算(2)

論理と計算(2) 情報科学概論 Ⅰ アルゴリズムと計算量 亀山幸義 http://logic.cs.tsukuba.ac.jp/~kam 亀山担当分の話題 アルゴリズムと計算量 Fibonacci 数列の計算を例にとり アルゴリズムと計算量とは何か 具体的に学ぶ 良いアルゴリズムの設計例として 整列 ( ソーティング ) のアルゴリズムを学ぶ 2 Fibonacci 数 () Fibonacci 数 (2) = if

More information

<4D F736F F F696E74202D208AF489BD8A7782C CF97CA82A882DC82AF2E B8CDD8AB B83685D>

<4D F736F F F696E74202D208AF489BD8A7782C CF97CA82A882DC82AF2E B8CDD8AB B83685D> 幾何学と不変量 数学オリンピックの問題への応用 北海道大学 高等教育推進機構西森敏之 この講演では, 数学の長い歴史の中で見つけられた, 不変量 とよばれるものの考え方を, 実際に数学オリンピックの問題を解きながら, 紹介します 1. ウオーミング アップ まず, 少し脳細胞のウオーミング アップをします 定義 ( 分割合同 ) 平面上の 2 つの多角形 P と Q が分割合同とは, 多角形 P をいくつかの直線で切って小片に分けてから,

More information

スライド 1

スライド 1 東北大学工学部機械知能 航空工学科 2016 年度 5 セメスター クラス C3 D1 D2 D3 計算機工学 10. 組合せ回路 ( 教科書 3.4~3.5 節 ) 大学院情報科学研究科 鏡慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 組合せ論理回路 x1 x2 xn 組合せ論理回路 y1 y2 ym y i = f i (x 1, x 2,, x

More information

<4D F736F F D FCD B90DB93AE96402E646F63>

<4D F736F F D FCD B90DB93AE96402E646F63> 7 章摂動法講義のメモ 式が複雑なので 黒板を何度も修正したし 間違ったことも書いたので メモを置きます 摂動論の式の導出無摂動系 先ず 厳密に解けている Schrödiger 方程式を考える,,,3,... 3,,,3,... は状態を区別する整数であり 状態 はエネルギー順に並んでいる 即ち は基底状態 は励起状態である { m } は相互に規格直交条件が成立する k m k mdx km k

More information

Microsoft Word - K-ピタゴラス数.doc

Microsoft Word - K-ピタゴラス数.doc - ピタゴラス数の代数と幾何学 津山工業高等専門学校 菅原孝慈 ( 情報工学科 年 ) 野山由貴 ( 情報工学科 年 ) 草地弘幸 ( 電子制御工学科 年 ) もくじ * 第 章ピタゴラス数の幾何学 * 第 章ピタゴラス数の代数学 * 第 3 章代数的極小元の幾何学の考察 * 第 章ピタゴラス数の幾何学的研究の動機 交点に注目すると, つの曲線が直交しているようにみえる. これらは本当に直交しているのだろうか.

More information

切片 ( 定数項 ) ダミー 以下の単回帰モデルを考えよう これは賃金と就業年数の関係を分析している : ( 賃金関数 ) ここで Y i = α + β X i + u i, i =1,, n, u i ~ i.i.d. N(0, σ 2 ) Y i : 賃金の対数値, X i : 就業年数. (

切片 ( 定数項 ) ダミー 以下の単回帰モデルを考えよう これは賃金と就業年数の関係を分析している : ( 賃金関数 ) ここで Y i = α + β X i + u i, i =1,, n, u i ~ i.i.d. N(0, σ 2 ) Y i : 賃金の対数値, X i : 就業年数. ( 統計学ダミー変数による分析 担当 : 長倉大輔 ( ながくらだいすけ ) 1 切片 ( 定数項 ) ダミー 以下の単回帰モデルを考えよう これは賃金と就業年数の関係を分析している : ( 賃金関数 ) ここで Y i = α + β X i + u i, i =1,, n, u i ~ i.i.d. N(0, σ 2 ) Y i : 賃金の対数値, X i : 就業年数. ( 実際は賃金を就業年数だけで説明するのは現実的はない

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

<8D828D5A838A817C A77425F91E6318FCD2E6D6364>

<8D828D5A838A817C A77425F91E6318FCD2E6D6364> 4 1 平面上のベクトル 1 ベクトルとその演算 例題 1 ベクトルの相等 次の問いに答えよ. ⑴ 右の図 1 は平行四辺形 である., と等しいベクトルをいえ. ⑵ 右の図 2 の中で互いに等しいベクトルをいえ. ただし, すべてのマス目は正方形である. 解 ⑴,= より, =,= より, = ⑵ 大きさと向きの等しいものを調べる. a =d, c = f d e f 1 右の図の長方形 において,

More information

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

Microsoft PowerPoint - H21生物計算化学2.ppt 演算子の行列表現 > L いま 次元ベクトル空間の基底をケットと書くことにする この基底は完全系を成すとすると 空間内の任意のケットベクトルは > > > これより 一度基底を与えてしまえば 任意のベクトルはその基底についての成分で完全に記述することができる これらの成分を列行列の形に書くと M これをベクトル の基底 { >} による行列表現という ところで 行列 A の共役 dont 行列は A

More information

次の病院 薬局欄は 氏名 欄に入力された値によって入力すべき値が変わります 太郎の行く病院と花子の行く病院が必ずしも同じではないからです このような違いを 設定 シートで定義しておきましょう 太郎の行く病院のリストを 太郎 花子の行く病院のリストを 花子 として 2 つのリストが定義されています こ

次の病院 薬局欄は 氏名 欄に入力された値によって入力すべき値が変わります 太郎の行く病院と花子の行く病院が必ずしも同じではないからです このような違いを 設定 シートで定義しておきましょう 太郎の行く病院のリストを 太郎 花子の行く病院のリストを 花子 として 2 つのリストが定義されています こ 医療費の入力と集計 まえがき 医療費は一年間の合計を計算し 10 万円を超えていれば税務申告に際して医療費控除を受けることができます そこで 医療費を記入するたびに自動集計される仕組みを考えてみましょう ここで紹介する 医療費の入力と集計 は 税務申告で必要となる医療費のデータを作成するのに使うものです 特徴は ドロップダウンリストから簡便に入力ができ 入力と同時に自動集計されるようにしてあることです

More information

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

Microsoft PowerPoint - アルデIII 10回目12月09日 アルゴリズムとデータ構造 III 9 回目 : 月 9 日 全文検索アルゴリズム (Simple Serh, KMP) 授業資料 http://ir.s.ymnshi..jp/~ysuzuki/puli/lgorithm/index.html 授業の予定 ( 中間試験まで ) / スタック ( 後置記法で書かれた式の計算 ) / チューリング機械, 文脈自由文法 / 構文解析 CYK 法 / 構文解析

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.

More information

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n を入力してもらい その後 1 から n までの全ての整数の合計 sum を計算し 最後にその sum

More information