形式言語とオートマトン...

28
形式言語とオートマトン 1オリエンテーションと導入 2016920中島 1

Transcript of 形式言語とオートマトン...

Page 1: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

形式言語とオートマトン第1回 オリエンテーションと導入

2016年9月20日

中島

1

Page 2: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

本日の授業内容

• オリエンテーション

• 導入

– オートマトンとは何か

– 形式言語とは何か

– 有限オートマトンの応用例

2

Page 3: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

オリエンテーション

3

Page 4: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

中島毅

• 研究室: ソフトウェア工学研究室

• 専門:

実践的ソフトウェア工学

– 品質要求分析・評価

– レビュー・テスト技術

– アーキテクチャ設計・評価

M2M/IoTシステムの構築技術

Page 5: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

授業の位置づけ

• 情報工学科 1年後期 選択科目

• 情報工学の基礎であるオートマトンと形式言語理論を学ぶ.

– オートマトン: 計算(機)の基礎的なモデル

– 形式言語理論: プログラミング言語の構造や解析の基礎

• 前提とする授業

– 離散数学1(集合,写像,有効グラフ,同値クラス 等)

• 関連する授業

– コンパイラ

– 自然言語処理

– プログラミング言語論

– ソフトウェア工学5

Page 6: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

学ぶこと

• 正規言語:

– 具体的な集合、状態遷移図、状態遷移表などを調べ、動きを把握できるようにする。

• 正規オートマトンの最小化:

– 正規言語に対応する正規オートマトンは複数の表現があるので、最小化して、単一の表現形式を求める。

6

Page 7: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

講師 及び TA

• 担当教員: 中島毅教授

– 豊洲校舎研究棟14階G-32室

• SA(学生アシスタント)4年 山﨑啓佑 君

7

Page 8: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

授業のスケジュールと内容 (1/2)

1. 概要 9/20・オートマトンと言語、チョムスキの4階層

2. 形式言語と帰納的表現 9/27・語、言語、クリーネ閉包、スター演算 教科書: pp. pp.32-39

3. 順序機械: 10/4・ミーリ機械、ムーア機械 教科書: pp.83-88

4. 有限オートマトン(1) 10/11・決定性オートマトン(DFA),言語の受理 教科書: pp.89-95

5. 正規言語 10/18・正規表現、正規方程式(DFAからの変換) 教科書: pp.96-104

6. 有限オートマトン(2) 10/25・非決定性オートマトン(NFA)、DFA化 教科書:pp.105-109

7. 有限オートマトン(3) 11/8・εNFA、NFA化 教科書:pp.109-112

8. 中間テスト、講評 11/15

8

Page 9: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

授業のスケジュールと内容 (2/2)

9. 有限オートマトン(3) 11/22・正規表現からε-NFA、NFA、DFAへの変換 教科書:pp.112-115

10. 有限オートマトン(4) 11/29・Myhill-Nerodeの定理、同値類 教科書:pp.115-119

11. 有限オートマトン(5) 12/6 ・最小化と演習 教科書:pp.121-123

12. 形式言語とBNF記法: 12/13・メタ言語、構文図式 教科書:pp.43-47

13. 形式言語としての数式と構文木 12/20・中置、ポーランド、逆ポーランド記法 教科書:pp.41-43,78-80

14. 文脈自由文法とPDA 1/10教科書:pp.145-153,125-131

15. テストと解説 1/17教科書:pp.30-123

9

Page 10: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

教科書

• 小倉久和 著: 「形式言語とオートマトン入門」コロナ社: 定価2,800円

• 授業は,テキストの例題と演習問題を中心に解説するので,購入のこと.(試験唯一の持ち込み資料)

• 利用箇所

– 主に4章のp.83-p.123– 2,3章:

• チョムスキの4階層

• クリーネ閉包、スター演算

• 逆ポーランド記法

• メタ言語、構文図式、BNF記法

10

Page 11: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

成績評価

• 期末試験 (70%)• 平常点 (30%)

– 小テスト(20%) 通常授業中に4,5回実施

– 中間テスト(10%)

11

Page 12: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

質問・相談時間

• 火曜授業後@大宮4号館3階 4301(教員控え室)

• 連絡先 (その他の時間の質問はメールにてアポ)

e-mail: [email protected]• 試験前の質問はOK• 試験後の陳情は無用

12

Page 13: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

授業中の注意事項

• 私語をしない、話は静かに聴く

• 携帯は電源を切る

• 出入りしない

13

Page 14: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

導入

14

Page 15: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

オートマトンとは何か

• オートマトン(Automaton,複数形 Automata):– 自動機械 あるいは からくり人形

– 自動販売機、電子計算機、コンピュータ の基本原理

– プログラムの動作原理

• からくり人形の例: 茶運人形

http://www.museum.kyoto-u.ac.jp/collection/materials/chakumiDoll.html より15

Page 16: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

オートマトンとは何か: 自動販売機

16

機械が状態をもっていて、状態×入力で異なる出力

をだすことができる

状態「50円投入済」

50円の商品○60円の商品×

10円投入

処理

内部状態

入力 出力

更新参照

状態「60円投入済」

10円投入

50円の商品○60円の商品○

Page 17: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

計算機の原理: 計算機の始まり

• 1939年:ABC (世界最初の電子計算機)

– 2進数の採用

– 論理回路を使った演算装置

– メモリの利用

• 1946年:ENIAC(米国陸軍 弾道計算用)

• 1946年:プログラム内蔵方式電子計算機の提案 ⇒ ノイマン型コンピュータ (EDVAC開発チーム)

• 1949年:EDSAC(世界初のプログラム内蔵方式コンピュータ)

17

Page 18: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

計算機の原理: ノイマンの理論

フォン・ノイマン(von Neumann)

現在のコンピュータのほとんどがこの方式

• ノイマン型コンピュータ• ゲーム理論• 原爆開発(爆縮レンズの開発)

ノイマン型コンピュータの特徴

• プログラム可変内蔵方式• 逐次処理方式• 単一メモリ方式 (プログラムと

データは同じメモリ内に格納)

18

Page 19: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

計算機の原理: そのさきがけとして

アラン・チューリング Alan Turing

• チューリングマシン• 計算可能性理論• 暗号解読 (映画『イミテーション』)

チューリングマシン

メモリセル

テープ(無限長)

ヘッド

制御部

上下に一つずつ移動

内部状態

入力: 現在のメモリ値と状態出力: 新しいメモリセルの値

新しい状態、ヘッドの移動

「計算可能な問題(アルゴリズムが存在する)」ならどんな計算も可能

19

Page 20: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

形式言語とは何か

• 自然言語

– 日本語、英語など人間が話したり、書いたり、読んだり、聞いたりする言語

– 文法はあるが、例外が多い

• 形式言語

– コンピュータを動作させるプログラム言語

– 文法規則が明確

20

Page 21: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

形式言語 : 正規表現

チョムスキーの言語の分類

言語の階層 文法 受理するオートマトン

3 正規言語 有限オートマトン2 文脈自由言語 プッシュダウンオートマトン

1 文脈依存言語 線形拘束オートマトン

0 句構造言語(自由言語)

チューリングマシン

制限

• 正規言語は正規表現が表す言語である• 正規表現と有限オートマトンは等価である

正規言語<文脈自由言語<文脈依存言語<句構造言語

21

Page 22: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

形式言語 :その他の言語 (参考)

チョムスキーの言語の分類

言語の階層 文法 受理するオートマトン

3 正規言語 有限オートマトン

2 文脈自由言語 プッシュダウンオートマトン

1 文脈依存言語 線形拘束オートマトン

0 句構造言語(自由言語)

チューリングマシン

• ほとんどのプログラミング言語は文脈自由文法で定義ALGOL型の言語(C, Java, C++, C# …)

• 文脈依存文法は、自然言語のモデルとして十分強力

22

Page 23: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

有限オートマトンの応用例:

• 正規表現による言語処理・検索

• 要求分析・設計における仕様記述/検証

• コンパイラ(文脈自由文法)へつながる

• 認識技術

– 自然言語理解

– 文字認識

• セルオートマトン

– 計算可能性理論

– 複雑適応系、数理生物学

– 微小構造モデリング

23

Page 24: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

クイズ

古代人の遺跡• すべての部屋を一度だけ通る最短の経路で,

元の部屋まで戻れ.そのとき宝を授ける.

古文書より• 入口の部屋は1つ.

• いくつかの部屋があり多くとも6部屋しかない.

• 各部屋(入口の部屋も含めて)には白い扉と黒い扉があり,各々

– 必ずどこかの部屋につながっている

– つながっている先は異なる部屋

– 行先は一定

村人の経験• どんなに迷っても出てくるときは,黒い扉も白い扉も偶数回通っていた.

24

出展: 川添愛: 白と黒のとびら オートマトンと形式言語をめぐる冒険,東京大学出版会 (2013)

空けると別々の部屋に瞬時に移る

Page 25: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

クイズ(つづき)

• 3人の挑戦者の経験(失敗)

1.Aさん

2.Bさん

3.Cさん

25

入口の部屋 入口の部屋竜

人形置く

入口の部屋 入口の部屋竜

人形気づく

・・・

入口の部屋 入口の部屋竜 竜

人形気づかず

1円置く

10円発見

10円置く

竜: 竜の部屋

人形気づく 人形気づく

Page 26: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

図を書こう!

26

入口の部屋

A

B

C

白白

Aさんのルート

Page 27: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

まとめ

• 計算機の原理と、オートマトンとは関係が深い

• 形式言語とオートマトンとは対をなしている

• 有限オートマトンの応用は広い

27

Page 28: 形式言語とオートマトン 第1回オリエンテーションと導入tsnaka/lecture/automaton/... · 2016-11-21 · • チューリングマシン • 計算可能性理論

Basic(初心者用言語)

Visual Basic

FORTRAN77 FORTRAN90/95

COBOL65COBOL言語(事務処理用言語)

COBOL2002

FORTRAN言語(科学計算用言語)

アセンブラ言語

Algol(BNF)

BCPL C ANSI C

C++

Simula Smalltalk Smalltalk80

Objective-C

Java

C#

Ruby

Lisp(関数型言語)

Prolog(論理型言語)

Lisp1.5 Common Lisp

Perl

PHP

JavaScript

awk

Python

スクリプト型言語

文脈自由文法

戻る 28