オートマトンと言語

Similar documents
オートマトンと言語

Microsoft PowerPoint - アルデIII 13回目01月12日 [互換モード]

オートマトンと言語

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

MultiWriter 5100F 活用マニュアル

MultiWriter 5650F 活用マニュアル

HLV1-TEL.indb

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

XF-E211D Telsh-V a e

TELEMORE-IP(824) 取扱説明書

UX-W40CL

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


オートマトンと言語

E115_FAX_J.book

.W.....\..1-2.o...p

Microsoft PowerPoint - w5.pptx

L4432_000_.\..

2

オートマトンと言語

情報量と符号化

Information Theory

B _00_J.indd

【FdData中間期末過去問題】中学数学1年(負の数/数直線/絶対値/数の大小)

Microsoft PowerPoint - mp11-06.pptx

SPP-C750

プログラミングA

PowerPoint プレゼンテーション

オートマトンと言語

Microsoft Word - 中間試験 その1_解答例.doc

取扱説明書

SPP-E777/E777PG

HM-DR10000

取扱説明書

untitled

取扱説明書

nlp1-12.key

E115_UG_J.book

電話機の取り扱い濁点 半濁点の入力方法 文字の入力方法 文字を入力するには 入力画面で入力モードを選択し ダイヤルボタンを押して文字を入力します 入力モードによって 入力できる文字が異なります 同じ文字を続けて入力する場合は を押してカーソルを右移動してから 2 文字目を入力します 例 : を押すた

FdData中間期末数学1年

Microsoft PowerPoint ppt

共有辞書を用いた 効率の良い圧縮アルゴリズム

DocuPrint CM200 fw ユーザーズガイド

PCS-XG80/XG80S/XG55/XG55S/XA80/XA55

(Microsoft Word - \207U\202P.doc)

MDX-J7_J9

( )

Microsoft PowerPoint ppt

文字の装飾 / 配置について 文字の装飾 ( ボールド / イタリック / アンダーライン等 ) 網掛けは行わないでください 背景色は バーコード部分とのコントラストが低下する色を避けてください 文字の回転を行う場合 回転角度は 90 度 180 度 270 度以外は指定しないでください 文字間隔の

Bluemix いつでもWebinarシリーズ 第15回 「Bluemix概説(改訂版)」

スライド 1

Microsoft PowerPoint - security-04

マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

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

<4D F736F F D AA90CD E7792E88D5A82CC8FF38BB5816A819A819B2E646F63>

Microsoft PowerPoint ppt

9

(Microsoft Word - 01PowerPoint\217\343\213\211C\203p\203^\201[\203\223\222m\216\257\225\\\216\206.doc)

SAP11_03

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

Slide 1

_unix_text_command.pptx

mycards の使い方 1. カードの登録方法 2. カードセットの作成と編集 3. STUDY モードについて 4. CHALLENGE モードについて 5. カード閲覧 について 6. 設定 について 1. カードの登録方法 mycards のトップページから 以下の方法で登録ができます レッ

スライド 1

(822000) (842000)

untitled

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

問題 1 次の文章は Excel の作業環境について述べたものである 下線部の記述の正誤を判断し 解答群 { } の記号で答えよ ただし 下線部以外の記述に誤りはないものとする 設問 1. クイックアクセスツールバーには アプリケーション名やファイル名が表示される 設問 2. 数式バーのる ボタンを

ユーザ ガイド Cisco TelePresence SX10, SX20

コンピュータ応用・演習 情報処理システム

2 Web ページの文字のサイズを変更するには 以下を実行します Alt + P キーを押して [ ページ ] メニューを選択します X キーを押して [ 文字のサイズ ] を選択します 方向キーを押して 文字のサイズを [ 最大 ] [ 大 ] [ 中 ] [ 小 ] [ 最小 ] から選択します

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

PowerPoint プレゼンテーション

スライド 1

生命情報学

文字列探索

データ構造

情報C 4月スクーリング プリント

RQT6953-1S

基礎プログラミング2015

05設置1.indd

PowerPoint プレゼンテーション

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

Report#2.docx

PowerPoint プレゼンテーション

【】 1次関数の意味

FinePix Z800EXR

SPP-C333/C333PG

スライド 1

untitled

kantan_C_1_iro3.indd

Lesson2 下のファイルを開いておきましょう H21hyo3_Ver フォルダ - ドリルフォルダ - ドリル _ 提供データの中の - Lesson2 提供.xls - 問題 1 問題 1 シートを開いておきます ( 問 1)C 列の条件に従って G 列にセルの内容をコピーまたは移

スライド 1

PowerPoint プレゼンテーション

使用上の注意 はじめに ( 必ずお読みください ) この SIGN FOR CLASSROOM の英語の動画資料について 作成の意図の詳細は 2 ページ以降に示されているので できるだけすべてを読んでいただきたい 要約 このビデオは 聴覚障がいを持つ生徒たちに英語を教える時 見てわかる会話を表 出さ

オートマトンと言語

第2回

埼玉県学力 学習状況調査 ( 中学校 ) 復習シート第 3 学年数学 組 番 号 名 前 ( 数と式 を問う問題 ) 1 次の計算をしなさい レベル 6~8 1 (27x-36y+18) (-9) 答え 2 15x 2 y 5xy 2 3 答え 2 次の各問いに答えなさい レベル 9 10 (1)

DVIOUT

Microsoft Word - データベース.doc

Transcription:

アルゴリズムとデータ構造 III 13 回目 :1 月 7 日 ( 木 ) 暗号, 符号化, テキスト圧縮 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/algorithm3/

授業の予定 ( 中間試験まで ) 1 10/01 スタック ( 後置記法で書かれた式の計算 ) 2 3 4 5 6 7 8 9 10/15 文脈自由文法, 構文解析,CYK 法 10/22 構文解析 CYK 法 10/29 構文解析 CYK 法 11/12 構文解析 CYK 法, 動的計画法 11/19 構文解析 ( チャート法 ), グラフ ( ダイクストラ法 ) 11/26 グラフ ( ダイクストラ法,DPマッチング,A* アルゴリズム ) 12/03 グラフ (A* アルゴリズム ), 前半のまとめ 12/04 4 時限 教室 :A1-41 全文検索アルゴリズム (simple search, KMP)

授業の予定 ( 中間試験以降 ) 10 12/10 中間試験 (8 回目までの範囲 ) 11 12 13 14 15 12/11 4 時限 教室 :A1-41 全文検索アルゴリズム (BM, Aho-Corasick) 12/17 全文検索アルゴリズム (Aho-Corasick), データ圧縮 01/07 暗号 ( 黄金虫, 踊る人形 ) 符号化 ( モールス信号, Zipfの法則, ハフマン符号 ) テキスト圧縮 01/14 テキスト圧縮 (zip), 音声圧縮 (ADPCM,MP3,CELP), 画像圧縮 (JPEG) 02/04 期末試験

中間試験の結果 受験者 今年 09 年度 08 年度 07 年度 33 人 49 人 48 人 平均点 86 点 79 点 75 点 満点獲得者数 4 人 1 人 0 人

中間試験の結果 中間試験結果 得点 100 90 80 70 60 50 40 30 20 10 0 2009 年度 2008 年度 2007 年度 1 3 5 7 9 1113151719212325272931333537394143454749 成績順位

問題別得点結果 問毎の平均点 問 9 問 10 0.8 0.6 0.4 0.2 問 1 1 0 文脈自由文法文脈依存文法 問 2 問 3 問 8 問 4 問 7 ダイクストラ法情報処理技術者試験 問 6 問 5

中間試験の解答例 http://ir.cs.yamanashi.ac.jp/~ysuzuki/algorithm3/ の 12 月 10 日の授業資料

本日のメニュー Zipf の法則 暗号 黄金虫 (The gold bug) 踊る人形 (The Adventure of the Dancing Men) 符号化 モールス信号 ハフマン符号 テキスト圧縮

ジップの法則 (Zipf s law) あるタイプの現象が生起する確率はその現象の生起する順位に反比例する : 経験則 Zipf の法則が当てはまる事象 定数 C 生起確率 = 順位 文字毎の出現頻度 コンピュータにおけるコマンドの使用頻度 Webページのアクセス頻度 都市の人口 文献の参照回数 会社でのランク ( 役職 ) と給料など ケータイのシェア (docomo, au, softbank, e-mobile)

携帯電話 : 各グループ毎の加入者数累計 (2009 年 12 月ケータイ Watch より ) 順位事業者累計割合 ( 確率 ) Zipf s law C=0.51 1 NTTドコモ 55,297,200 50.2% 51.0% 2 3 4 KDDI ソフトバンクイー モバイル 31,329,400 21,501,900 2,048,200 28.4% 19.5% 1.8% 25.5% 17.0% 12.8% 定数 C 生起確率 = 順位

自然言語の統計的性質 文字の使用頻度 ( 英語 ) _ はスペース 順位 文字 % 2 % 3 % 4 % 1 _ 17.4 e_ 3.0 _th 1.6 _the 1.2 2 e 9.7 _t 2.4 the 1.3 the_ 1.0 3 t 7.0 th 2.0 he_ 1.3 _of_ 0.6 4 a 6.1 he 1.9 _of 0.6 and_ 0.4 5 o 5.9 _a 1.7 of_ 0.6 _and 0.4 6 i 5.5 s_ 1.7 ed_ 0.5 _to_ 0.4 7 n 5.5 d_ 1.5 _an 0.5 ing_ 0.3

文字の使用頻度 (caesar より ) E T A O N R I S H D L F C M U G P Y W B V K X J Q Z 順位文字出現確率 1 E 0.1300 2 T 0.1050 3 A 0.0810 4 O 0.0790 5 N 0.0710 6 R 0.0680 7 I 0.0630 8 S 0.0610 9 H 0.0520 10 D 0.0380 11 L 0.0340 12 F 0.0290 13 C 0.0270 順位文字出現確率 14 M 0.0250 15 U 0.0240 16 G 0.0200 17 P 0.0190 18 Y 0.0190 19 W 0.0150 20 B 0.0140 21 V 0.0090 22 K 0.0040 23 X 0.0015 24 J 0.0013 25 Q 0.0011 26 Z 0.0007

単語の使用頻度 順位単語 % 2 % 3 % 1 2 3 4 5 6 7 the 6.1 of the 0.9 one of the 0.03 of 3.5 in the 0.5 as well as 0.02 and 2.7 to the 0.3 the United 0.02 States to 2.5 on the 0.2 out of the 0.02 a 2.1 and the 0.2 some of the 0.01 in 1.9 for the 0.1 the end of 0.01 that 0.9 to be 0.1 the fact that 0.01

単語の出現頻度分布 ジップの法則 (Zipf s law): 単語の出現順位 (r) と出現頻度 (f) は反比例の関係にある r = P C f n番目の単語の出現確率 n = C n C f = 順位文字出現確率 0.065/ 順位 r 1 the 0.061 0.065 C は定数低頻度の語には当てはまらない P n 2 of 0.035 0.0325 3 and 0.027 0.0108333 4 to 0.025 0.0027083 5 a 0.021 0.0005417 6 in 0.019 0.00009028 7 that 0.009 0.0000129

データの頻度分布の偏りを利用 した技術 暗号 ( 換字式 ) の解読 小説 ( ポー, ドイルなど ) Code talker ( 戦時中の暗号通信兵米映 Windtalkers) データ圧縮 ( ロスレス ) キー入力時の打鍵回数の削減 モールス符号 ハフマン符号 ( 情報理論 2 年前期宮本先生 ) Boyer-Moore 法 ( 全文検索アルゴリズム ) キーワードに含まれない文字を積極的に利用

小説中での暗号解読の解説 黄金虫 (The gold bug) 著者 : エドガー アラン ポー 作品 : 翻訳版 http://www.aozora.gr.jp/cards/000094/card2525.html 作品 : 原文 http://en.wikisource.org/wiki/the_gold-bug 踊る人形 (The Adventure of the Dancing Men) 著者 : アーサー コナン ドイル 作品 : 翻訳版題 : 暗号舞踏人の謎 http://www.aozora.gr.jp/cards/000009/card45340.html 作品 : 原文 http://en.wikisource.org/wiki/the_adventure_of_the_dancing_men

黄金虫 ( エドガー アラン ポー ) に出てくる暗号 ( 換字式 ) 小説内で暗号解読 暗号は多分英語 英語は文字によって出現確率が違う 出現確率の高い方から並べると e a o i d h n r s t u y c f g l m w b k p q x z (e は頻出 ) eeも頻出 theも頻出 対応がとれた文字は置き換え, 前後の文字を推理する

踊る人形 アーサー コナン ドイル (The Adventure of the Dancing Men) 人形の形 暗号の元の言語旗頻出する形 アルファベット 英語 単語の区切り E AM HERE ABE SLANEY What one man can invent another can discover.

携帯電話のアルファベットキー abc def ghi jkl mno pqrs tuv wxyz 一般的なアルファベットキー アルファベット順に 26 文字を 8 つのキーに割り振っている pqrs と wxyz は 4 文字を 1 つのキーに割り振られている _ ehp tdy alw ofb ncv rmk iuxq sgjz _ キー配置による打鍵数の違い i h a v e a p e n 合計 上 3 1 2 1 3 2 1 1 1 1 2 2 20 下 1 1 2 1 3 1 1 1 1 3 1 1 17 出現頻度を考慮したアルファベットキー ( 鈴木考案 ) 出現頻度が低い文字を入力するには複数回打鍵 キーの場所を覚え直す必要

おまけ Scrabble ( 英単語作成ボードゲーム ) の得点 Scrabble 対戦型英単語作成ゲーム ボード上に手持ちの文字をならべ英単語を作成 作成した単語の文字に書かれている得点を合計し, 高得点を競う 英単語を作りにくい文字には高得点が割り振られている. 1 点 :E, A, I, O, R, N, T, L, S, U... 10 点 :Q, Z

シフト暗号 ( 蛇足 ) シーザー暗号 ROT13, ROT47 2001 年宇宙の旅 のHAL IBM ( 俗説?)

Caesar ( シーザー式暗号法の解 読 ) Unix のアプリケーション kki ではオンラインマニュアルはあるがプログラム自身はインストールされていない CentOS や Ubuntu では ( インストールすれば ) 使用可能 ( のはず ) 使用例 >caesar J ibwf b qfo >I have a pen I have a pen を1 文字ずらして入力各文字の出現頻度を利用し, 何文字ずらしたかを推測し答えを出力する

Code talker ( 暗号通信兵 ) Windtalkers ( アメリカ映画 2002 年 ) アメリカインディアンのナバホ族が暗号通信兵 ナバホ族の言葉を使って暗号通信 サイパン島での日本軍との戦い ナバホ族の言葉 文法も発音も独特 (native にしか理解できない ) 日本軍は知らない アメリカには native のナバホ族がいる ( 訓練しなくても理解できる )

頻度分布の偏りのデータ圧縮への利用 モールス信号 ハフマン符号

モールス信号の符号 ( 短点 ) とー ( 長点 ) を用いてアルファベットを表現する 情報を早く送るための工夫 よく使われる文字 ( 例えば e,t) は短い e: ( 短点 1 文字 ) t: - ( 長点 1 文字 ) あまり使われない文字 ( 例えば q は 4 文字 ) は長い q: -- -

モールス信号の符号 ( 短点 ) とー ( 長点 : 短点 3 つ分の長さ ) を用いてアルファベットを表現する 区切り記号 文字の切れ目 : 短点 3 つ分の間隔 単語の切れ目 : 短点 7 つ分の間隔 L: ー (Life カードの CM に使われていた ) SOS: ーーー

ハフマン符号 2 分木を使って文字の出現頻度順に並べる 葉 = 文字 浅い : 符号長が短い, 深い : 符号長が長い 平均符号長が最小になることが保証されている

ハフマン符号の作り方 1/5 文字頻度 A 0.25 B 0.20 C 0.10 D 0.05 E 0.40 頻度の低い文字を2 文字 (DC) を選び, 頻度の低い方を左の葉, 頻度の高い方を右の葉に置き,2 分木をつくる. ルートノードには2つの葉の頻度の和を書き込む

ハフマン符号の作り方 2/5 文字頻度 A 0.25 B 0.20 (DC) 0.15 E 0.40 (DC) 統合後, 頻度の低い B と (DC) 連合を選ぶ.B と (DC) 連合の頻度を比較し, 頻度の高い B を右ノードに, 低い (DC) 連合を左ノードに配置する. ルートノードには頻度の和を書き込む

ハフマン符号の作り方 3/5 文字 A ((DC)B) E 頻度 0.25 0.35 0.40 ((DC)B) 統合後, 頻度の低い A と ((DC)B) 連合を選ぶ.A と ((DC)B) 連合の頻度を比較し, 頻度の高い ((DC)B) 連合を右ノードに, 低い A を左ノードに配置する. ルートノードには頻度の和を書き込む 0.25+0.35=0.60 A 0.25 < 0.35 0.15 < B 0.20 D < C 0.05 0.10

ハフマン符号の作り方 4/5 文字 (A((DC)B)) E 頻度 0.60 0.40 (A((CD)B)) 統合後, 頻度の低い E と (A((CD)B)) 連合を選ぶ.E と (A((CD)B)) 連合の頻度を比較し, 頻度の高い (A((CD)B)) 連合を右ノードに, 低い E を左ノードに配置する. ルートノードには頻度の和を書き込む 0.40+0.60=1.00 E 0.40 < 0.60 A 0.35 0.25 < 0.15 < B 0.20 D < C 0.05 0.10

ハフマン符号の作り方 5/5 左のノードに 0, 右のノードに 1 を付与する 文字頻度 A 0.25 B C D E 0.20 0.10 0.05 0.40 符号 10 111 1101 1100 0 0 1 0.60 E 0.40 1.00 0 1 A 0.35 0.25 0 1 0.15 B 0.20 0 1 D C 0.05 0.10

文字 ハフマン符号の変換 文字頻度 A 0.25 B C D E 0.20 0.10 0.05 0.40 符号 10 111 1101 1100 0 10111110111000 10 111 1101 1100 0 A B C D E BBCEDA 11111111010110010 111 111 1101 0 1100 10

ASCII 文字コード (8bit) からハフ マン符号へ 文字頻度 A 0.25 B 0.20 C 0.10 D 0.05 E 0.40 符号 10 111 1101 1100 0 A ASCII: 01000001 (0x41) 8bit Huffman: 10 : 2bit E ACSII: 01000101 (0x45) 8bit Huffman: 0 : 1bit

練習問題 1 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号頻度 B 0.17 D 0.20 E 0.33 F 0.12 J 0.06 K 0.08 Q 0.04 合計 1.00

練習問題 1 解答例 1/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号頻度 B 0.17 D 0.20 E 0.33 F 0.12 J 0.06 K 0.08 Q 0.04 合計 1.00

練習問題 1 解答例 1/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号頻度 B 0.17 D 0.20 E 0.33 F 0.12 J 0.06 K 0.08 Q 0.04 合計 1.00 記号頻度 E 0.33 D 0.20 B 0.17 F 0.12 K 0.08 J 0.06 Q 0.04 合計 1.00

練習問題 1 解答例 2/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号頻度 E 0.33 D 0.20 B 0.17 F 0.12 (Q J) 0.10 K 0.08 合計 1.00 0.08+0.10=0.18 K 0.08 < 0.10 Q < J 0.04 0.06

練習問題 1 解答例 3/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号頻度 E 0.33 D 0.20 (K(Q J)) 0.18 B 0.17 F 0.12 合計 1.00

練習問題 1 解答例 4/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号頻度 E 0.33 (F B) 0.29 D 0.20 (K(Q J)) 0.18 合計 1.00 K 0.08 0.18 < 0.38 < 0.10 D 0.20 Q < J 0.04 0.06 0.29 F < B 0.12 0.17

練習問題 1 解答例 5/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号頻度 ((K(Q J))D) 0.38 E 0.33 (F B) 0.29 合計 1.00 K 0.08 0.18 < 0.38 < 0.10 D 0.20 Q < J 0.04 0.06 0.29+0.33=0.62 0.29 < F < B 0.12 0.17 E 0.33

練習問題 1 解答例 6/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号 頻度 ((F B) E) 0.62 ((K(Q J))D) 0.38 合計 1.00 K 0.08 0.38+0.62=1.00 0.18 < 0.38 < D 0.29 0.20 < 0.10 Q < J 0.04 0.06 < 0.62 F < B 0.12 0.17 E 0.33

練習問題 1 解答例 7/7 下の表のような記号の出現頻度のとき, ハフマン符号をつくりなさい. 但しハフマン符号作成のための二分木も書くこと. 記号 頻度 コード B 0.17 101 D E F J K Q 合計 0.20 0.33 0.12 0.06 0.08 0.04 1.00 01 11 100 0011 000 0010 0 K 0.08 1.00 0 1 0.38 0.62 0 1 0 0.18 D 0.29 0.20 1 0 1 0.10 F B 0.12 0.17 0 1 Q J 0.04 0.06 1 E 0.33

ハフマン符号の特徴 各記号がリーフノード ( 葉 ) に対応している ハフマン符号列を左からトレースすることで, 記号の区切りが分かる 区切り記号を入れる必要がない

レポート Boyer-Moore 法のプログラムを作成 言語は何でも良い プログラムの説明 データ text: 1: ABCDABABCDEABCD 2: ZYXWVUTSABCDEFG Key: 1: AB 2: ABCD 結果表示 (4 種類の実験に対して ) キーワード出現位置 ( あれば複数 ) 照合回数 締め切り :2 月 12 日 ( 金 ) 17:00 提出場所 : 鈴木の居室前のレポート入れ