講義url: …yamanaka/lecture/automata/automata01.pdf講義の進め方と成績 成績:...

23
オートマトンと言語理論 1回(ガイダンス) 山中克久 講義URL: http://www.kono.cis.iwate-u.ac.jp/~yamanaka/Lecture/Automata/index.html

Upload: others

Post on 05-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

オートマトンと言語理論

第1回(ガイダンス)

山中克久

講義URL: http://www.kono.cis.iwate-u.ac.jp/~yamanaka/Lecture/Automata/index.html

Page 2: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

講義の進め方と成績

講義形態: 座学 (スライド and 板書)

丸岡 章 = 著

教科書: 計算理論とオートマトン言語理論

(ポイントを絞って教科書の内容を説明していきます)

科目名: 形式言語とオートマトン

時間: 水曜1限 (8:40~10:10)

対象: 3年生

Page 3: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

講義全体の流れ

4/15: 講義を理解するために必要な数学的知識 4/22: 有限オートマトンの定式化と認識能力 5/8: 非決定性有限オートマトンの定式化と認識能力 5/13: 正規表現と有限オートマトンが認識する言語の関係 5/20: 有限オートマトンの限界 5/27: 正規言語の性質 6/3(出張で移動予定): 有限オートマトンの簡単化 6/10: 中間試験(正規言語) 6/17: 文法と文脈自由文法 6/24: 文脈自由文法の標準形 7/1: 文脈自由文法の限界 7/8: プッシュダウンオートマトンと文脈自由文法の関係 7/15: 文脈自由言語の性質 7/22: チューリング機械と計算可能性 7/29(出張で移動予定): 期末試験

Page 4: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

講義の進め方と成績

成績: 以下のことを考慮して判定

中間テスト(50%)+ 期末テスト(50%) の合計点 (全体のバラツキを考慮するが,基本的には6割以上)

出席(足切りに使うのみ,1/3 以上の欠席は不合格)

Page 5: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

受講のポイント

予習・復習 ⇒人間は忘れやすい・・・

申し訳ないのですが前の方に座ってください ⇒ スライドの文字が小さいことが多々あります

例題・演習問題 など,自分で書いて解く

⇒ パズル感覚で「意外とおもしろいんじゃん!!」   という気持ちになれます

分からなくなったら定義に戻る ⇒ 分からなくなるのは当然,   重要なのは,分からないことを解決しようとする努力!!

証明することに慣れる

Page 6: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

本講義で学ぶもの: オートマトン

オートマトン 状態の変化を表したもの ≒ 要は

電球のスイッチの例

ON

OFF

電気が ついていない

電気が ついている

Page 7: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

便利なオートマトン Part 1

制御のシステムを設計するときに便利 !! 例:

自動販売機を制御したい

100円玉と50円玉しかない世界を考える

(話を簡単にするために,以下を仮定)

場合1: 100円玉1枚 & 50円玉1枚 → おつり0円

150円のジュースを売っている

場合2: 100円玉2枚 & 50円玉1枚 → おつり50円

50

0

100

50

50 100

150 50

200

100

100

ジュース & おつり0円

ジュース & おつり50円

オートマトン で表現:

Page 8: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

便利なオートマトン Part 2

文字列を処理するときに便利!! 例:

C言語 プログラムソース中のコメント部分を全て消したい

“/*” と “*/” で囲まれた部分をコメントとみなす

/********************************* Enumerating All Ladder Lotteries By K. Yamanaka, 16th, Apr. 2010 *********************************/ #include<stdio.h> /* Structures */ /* A vertex */ typedef struct vertex{ struct vertex *up; struct vertex *down; struct vertex *left; struct vertex *right; int line, routeNum; } vertex;   ・・・

#include<stdio.h> typedef struct vertex{ struct vertex *up; struct vertex *down; struct vertex *left; struct vertex *right; int line, routeNum; } vertex;   ・・・

Page 9: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

便利なオートマトン Part 2

文字列を処理するときに便利!! 例:

C言語 プログラムソース中のコメント部分を全て消したい

“/*” と “*/” で囲まれた部分をコメントとみなす

‘/’ 0 1

(1文字読み込むごとに状態が変化していくオートマトンを考える)

‘*’ 2

3

‘*’ ‘/’

その他の 文字(出力) その他の

文字(出力) その他の文字 (出力しない)

4 その他の文字 (出力しない)

EOF

Start

Page 10: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

以上が導入でした

続いて,今日の講義内容に入っていきます

Page 11: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

集合:「もの」の集まりのことを集合という 集合を構成しているものを要素という

自然数からなる 集合N

1 2

3 4 5

6 8 7

0 -1

3.14

集合

例: 自然数を集めたものは,自然数からなる集合という 自然数からなる集合を {1,2, … } と書く

無限集合:無限個の要素からなる集合

有限集合:有限個の要素からなる集合

空集合: 0個の要素からなる集合

※1 同じ要素は出現しない({1,1,2,3}はナシ) ※2 順番は考慮しない({1,2,3} = {3,2,1})

Page 12: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

集合A中の,どの要素も集合Bの中に含まれるならば,A を B の部分集合という

部分集合

このとき,A は N の部分集合であるといい,A ⊆ N と書く

自然数からなる集合を N = {1,2, … } とする 1, 2, 3, 4, からなる集合を A とする

自然数からなる 集合N

5

6 8 7

0

-1

3.14

部分集合:

集合A 1

2 3 4

とくに,A ≠ N の場合, A は N の真部分集合であるといい,A ⊊ N と書く

Page 13: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

{共通,和,差,補} 集合

共通集合(積集合): 集合Aと集合Bの両方に含まれる要素からなる集合

A B A B A B

和集合: 集合A,または,集合B に含まれる集合 差集合: 集合Aに含まれ,かつ,集合Bに含まれない要素からなる集合 補集合: 集合Aに含まれない要素からなる集合

A A A∪B A ∩ B

U

A – B (A \ B)

Page 14: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

冪(べき)集合,直積

冪集合: Aの部分集合すべてからなる集合をAの冪(べき)集合という

A={1,2,3} ならば その冪集合P(A)は: P(A) = {Φ, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}

直積: 集合Aと集合Bの直積A×B は A×B = { (a,b) | a ∊ A, b ∊ B} と定義される

A = {1,2},B = {u,v,w}ならば, A×B = {(1,u), (1,v), (1,w), (2,u), (2,v), (2,w)}

Page 15: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

系列

集合Σ上の系列:

Σ={0,1} としたとき,Σ上の系列の例: 0, 1, 01, 10, 111000, 10101001001, etc

Σ中の要素を並べたもの

Σ*: Σ上の系列すべてからなる集合

Σ={0,1} としたとき, Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, 001, …}

連接: 2つの系列を繋げること,“・” という記号を使う

A = a1a2 … an,B = b1b2 … bm を2つの系列とする. このとき,A・B = a1a2 … anb1b2 … bm である

Page 16: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

命題と証明

基本的な証明方法を紹介

対偶

背理法

数学的帰納法

Page 17: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

命題

命題: 記号や文章で1つの主張を表したもので,正しい(真)か,正しくない(偽)がはっきりしているもの

命題の例: 「nは6で割り切れる」

(n を自然数とする)

「nは3で割り切れる」 「nは2で割り切れる」

命題ではない例: 「彼は背が高い」 (「背が高い」の基準が曖昧)

Page 18: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

対偶

命題 P と P’ について「P が成り立つならば Q が成り立つ」とき,P ⇒ Q と書く. P ⇒ Q に対して,Q ⇒ P を対偶という

P ⇒ Q が真ならば,Q ⇒ P も真であり,逆もまた同様

対偶の例:

P(n): nは6で割り切れる Q(n): nは3で割り切れる

P(n) ⇒ Q(n) は真 Q(n) ⇒ P(n) も真 nが6で割り切れるならば, nは3でも割り切れる

nが3で割り切れないならば, nは6でも割り切れない

Page 19: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

背理法

示したいことの反対を仮定して,矛盾を導く証明方法

「矛盾が導かれるということは,もともとの仮定が間違っていたんだ,つまり示したいことが成り立つんだ!」 という論法

P ⇒ Q を示したいとする 1. P と Q を仮定する 2. 矛盾を導く

背理法による証明の手順

3. P ⇒ Q が導けたことになる ※なぜこれで正しいのかは教科書を参照してください

Page 20: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

例2.2(背理法による証明)

主張

素数は無限個存在する

証明 素数の個数は有限個であると仮定

このとき,p1p2・・・pm+1 は素数である 全ての素数を p1,p2, … , pm とする

これは,全ての素数がm個であることに矛盾 よって,素数の個数は有限個ではない(無限個である)

Page 21: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

数学的帰納法

自然数 n をパラメータとする命題をP(n) とする 1. P(1)が真であることを示す 2. 任意の n > 1 について,P(n)が真であると   仮定したとき,P(n+1)も真であることを示す

数学的帰納法による証明手順

P(1)が真である P(2)が真である P(3)が真である

Page 22: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

例2.4

P(n)を「n3 – n は 3 で割り切れる」とする 主張

n≧1 について P(n) が成立することを示せ

証明 数学的帰納法で証明する n=1 のとき 13 – 1 = 0 なので P(1) は真である P(n) が真と仮定する

(n+1)3 – (n+1) = (n3+3n2+3n+1) – (n+1) = (n3 – n) + 3n2 + 3n

仮定より n3 – n = n(n2 – 1) は 3 で割り切れるので, (n+1)3 – (n-1) も 3 で割り切れる

Page 23: 講義URL: …yamanaka/Lecture/Automata/automata01.pdf講義の進め方と成績 成績: 以下のことを考慮して判定 中間テスト(50%)+ 期末テスト(50%)

練習問題

練習問題3

S がある無限集合 U の有限部分集合であれば, S の補集合 T は無限集合であることを示せ

背理法で証明しましょう

練習問題1

A = {a1,a2, … , an} の冪集合をP(A)とする. P(A)の要素数 |P(A)| はいくつになるか?

練習問題2

A = {a1,a2, … ,an},B = {b1,b2, … ,bm} とする. AとBの直積の要素数 |A×B| はいくつになるか?