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

Similar documents
オートマトンと言語

オートマトンと言語

オートマトンと言語

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

MultiWriter 5100F 活用マニュアル

MultiWriter 5650F 活用マニュアル

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

HLV1-TEL.indb

XF-E211D Telsh-V a e

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

TELEMORE-IP(824) 取扱説明書

UX-W40CL

オートマトンと言語


E115_FAX_J.book

Microsoft PowerPoint - w5.pptx

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

情報量と符号化

オートマトンと言語

L4432_000_.\..

Information Theory

2

Microsoft PowerPoint - mp11-06.pptx

B _00_J.indd

オートマトンと言語

プログラミングA

PowerPoint プレゼンテーション

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

SPP-C750

SPP-E777/E777PG

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

取扱説明書

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

HM-DR10000

取扱説明書

untitled

取扱説明書

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

nlp1-12.key

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

Information Theory

E115_UG_J.book

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

05設置1.indd

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

DocuPrint CM200 fw ユーザーズガイド

オートマトンと言語

スライド 1

ワトソンで体感する人工知能 フォローアップ情報 株式会社リックテレコム / 書籍出版部 ( 最終情報更新日 :2018 年 4 月 5 日 ) [INDEX] 2018 年 4 月 1 日時点の IBM Watson 仕様変更について ( 著者 : 井上研一氏からのフォロー情報 ) [ 変更点 -1

( )

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

FdData中間期末数学1年

<4D F736F F D AA90CD E7792E88D5A82CC8FF38BB5816A819A819B2E646F63>

PowerPoint プレゼンテーション

SAP11_03

スライド 1

Slide 1

MDX-J7_J9

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

Microsoft PowerPoint - lecture2_PPT.pptx

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

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

生命情報学

Microsoft PowerPoint ppt

言語モデルの基礎 2

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

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

C#の基本

スライド 1

データ構造

CAEシミュレーションツールを用いた統計の基礎教育 | (株)日科技研

9

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

Microsoft PowerPoint ppt

基礎プログラミング2015

データ解析

kantan_C_1_iro3.indd

補足資料

レイアウトエンジンカタログ

(822000) (842000)

Report#2.docx

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

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

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

文字列探索

ユーザ ガイド Cisco TelePresence SX10, SX20

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

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

PowerPoint プレゼンテーション

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

PowerPoint プレゼンテーション

AFP FORUM

今月の呼びかけ 添付資料 ファイル名に細工を施されたウイルスに注意! ~ 見た目でパソコン利用者をだます手口 ~ 2011 年 9 月 IPA に RLTrap というウイルスの大量の検出報告 ( 約 5 万件 ) が寄せられました このウイルスには パソコン利用者がファイルの見た目 ( 主に拡張子

JavaプログラミングⅠ

PowerPoint Presentation

RQT6953-1S

Microsoft Word - データベース.doc

そもそも情報とはなに? ある事柄に関して知識を得たり判断のより所としたりするために不可欠な 何らかの手段で伝達 ( 入手 ) された種々の事項 ( の内容 ) ( 新明解国語辞典第 6 版 三省堂より一部抜粋 ) コンピュータで取り扱う情報の定義 Claud Elwood Shannon( 情報理論

Microsoft PowerPoint ppt

memo

Transcription:

アルゴリズムとデータ構造 III 13 回目 :1 月 12 日 ( 木 ) 暗号, 符号化, テキスト圧縮 授業資料 http://ir.cs.yamanashi.ac.jp/~ysuzuki/public/algorithm3/ 授業の予定 ( 中間試験まで ) 1 10/06 スタック ( 後置記法で書かれた式の計算 ) 2 10/13 チューリング機械, 文脈自由文法 3 10/20 構文解析 CYK 法 4 11/10 構文解析 CYK 法 5 11/17 構文解析 ( チャート法 ), グラフ ( ダイクストラ法 ) 6 12/01 構文解析 ( チャート法 ), グラフ ( ダイクストラ法, DPマッチング ) 7 12/08 グラフ (DPマッチング,A* アルゴリズム ) 8 12/09 グラフ (A* アルゴリズム ), 前半のまとめ 9 12/15 中間試験 12/09: 1 時限 B2-31, 12/16: 4 時限 B2-41 授業の予定 ( 中間試験以降 ) 10 12/16 全文検索アルゴリズム (simple search, KMP) 11 12/22 全文検索アルゴリズム (BM, Aho-Corasick) 12 01/05 全文検索アルゴリズム (Aho-Corasick), データ圧縮 13 01/12 暗号 ( 黄金虫, 踊る人形 ) 符号化 ( モールス信号, Zipfの法則, ハフマン符号 ) テキスト圧縮 14 01/19 テキスト圧縮 (zip), 音声圧縮 (ADPCM,MP3,CELP), 画像圧縮 (JPEG) 15 01/26 期末試験 12/09: 1 時限 B2-31, 12/16: 4 時限 B2-41 レポート全文検索アルゴリズム (BM) Boyer-Moore 法のプログラムを作成 プログラミング言語は何でも良い プログラムの説明 データ text: 2 種類 1: ABCDABABCDEABCD 2: ZYXWVUTSABCDEFG Key: 2 種類 1: AB 2: ABCD 結果表示 (4 種類の実験に対して ) キーワード出現位置 ( あれば複数 ) 照合回数 締め切り :2 月 9 日 ( 木 ) 17:00 提出場所 : 鈴木の居室 (A3-K514) 前のレポート入れ 本日のメニュー 世の中は不公平 Zipfの法則 不公平を生かす 暗号 符号化 モールス信号 ハフマン符号 テキスト圧縮 世の中は不平等... だからおもしろい 頻度分布の偏り 例 : 株取引,FX, 麻雀, ブラックジャック 自分だけが知っている ( つもりの ) 頻度の偏りを 利用して得をする 株価チャートを解読 麻雀で山読みして勝つ ブラックジャックでカードカウンティングする 試験で山を掛ける ( 張る ) 確率を無理やり変える 偽情報を流して株価操作 ( 犯罪行為 ) スティング ( 映画 ) のポーカー (DVD で確認 ) 試験範囲を満遍なく勉強する ( 効果絶大 ) 授業中, 指名されないように下を向く ( 逆効果 ) 1

ジップの法則 (Zipf s law) あるタイプの現象が生起する確率はその現象の生起する順位に反比例する : 経験則定数 C 生起確率 = 順位 Zipf の法則が当てはまる事象 文字毎の出現頻度 コンピュータにおけるコマンドの使用頻度 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 KDDI 31,329,400329 28.4% 25.5% 5% 3 ソフトバンク 21,501,900 19.5% 17.0% 4 イー モバイル 2,048,200 1.8% 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 シーザー暗号 ( 解読 / 作成 ) プログラム hal? 順位文字出現確率 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 the 6.1 of the 0.9 one of the 0.03 2 of 3.5 in the 0.5 as well as 0.02 3 and 2.7 to the 0.3 the United 0.02 States 4 to 2.5 on the 0.2 out of the 0.02 5 a 2.1 and the 0.2 some of the 0.01 6 in 1.9 for the 0.1 the end of 0.01 7 that 0.9 to be 0.1 the fact that 0.01 単語の出現頻度分布 ジップの法則 (Zipf s law): 単語の出現順位 (r) と出現頻度 (f) は反比例の関係にある C C 順位文字出現確率 0.065/ 順位 r f 1 the 0.061 0.065 f n番目の単語の出現確率 P C Pn n C は定数低頻度の語には当てはまらない r 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 2

データの頻度分布の偏りを利用した技術 暗号 ( 換字式 ) の解読 小説 ( ポー, ドイルなど ) シーザー暗号 データ圧縮 ( ロスレス ) キー入力時の打鍵回数の削減 モールス符号 ハフマン符号 ( 情報理論 2 年前期宮本先生 ) 小説中での暗号解読の解説 黄金虫 (The gold bug) 著者 : エドガー アラン ポー 作品 : 翻訳版 http://www.aozora.gr.jp/cards/000094/card2525.html p// / / 作品 : 原文 前回はここまで 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) 人形の形 暗号の元の言語旗頻出する形 AM HERE ABE SLANEY アルファベット 英語単語の区切り E What one man can invent another can discover. 携帯電話のアルファベットキー abc def ghi jkl mno pqrs tuv wxyz _ ehp tdy alw ofb ncv rmk iuxq sgjz _ 一般的なアルファベットキー アルファベット順に 26 文字を 8 つのキーに割り振っている pqrs と wxyz は 4 文字を 1 つのキーに割り振られている キー配置による打鍵数の違い 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 3

シフト暗号 シーザー暗号 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のナバホ族がいる ( 訓練しなくても理解できる ) 蛇足 頻度分布の偏りを推定 勝つ! ブラックジャックのカードカウンティング 映画 : レインマン ( 原題 :RAIN MAN) 映画 : ラスベガスをぶっつぶせ ( 原題 :21) 麻雀の山読み 蛇足 頻度分布の偏りのデータ圧縮への利用 モールス信号 ハフマン符号 モールス信号の符号 ( 短点 ) とー ( 長点 : 短点 3つ分の長さ ) を用いてアルファベットを表現する 区切り記号 文字の切れ目 : 短点 3つ分の間隔 単語の切れ目 : 短点 7つ分の間隔 L: ー (LifeカードのCMに使われていた) SOS: ーーー 4

モールス信号の符号情報を早く送るための工夫 よく使われる文字 ( 例えば e,t) は短い e: ( 短点 1 文字 ) t: - ( 長点 1 文字 ) あまり使われない文字 ( 例えば q は 4 文字 ) は長い q: -- - ハフマン符号 2 分木を使って文字の出現頻度順に並べる 葉 = 文字 浅い : 符号長が短い, 深い : 符号長が長い 平均符号長が最小になることが保証されている ハフマン符号の作り方 1/5 文字頻度 A 0.25 B 020 0.20 C 0.10 D 0.05 E 0.40 頻度の低い文字を 2 文字 (DC) を選び, 頻度の低い方を左の葉, 頻度の高い方を右の葉に置き,2 分木をつくる. ルートノードには 2 つの葉の頻度の和を書き込む 文字頻度 A 0.25 B 0.20 (DC) 0.15 E 0.40 ハフマン符号の作り方 2/5 (DC) 統合後, 頻度の低い B と (DC) 連合を選ぶ.B と (DC) 連合の頻度を比較し, 頻度の高い B を右ノードに, 低い (DC) 連合を左ノードに配置する. ルートノードには頻度の和を書き込む ハフマン符号の作り方 3/5 ((DC)B) 統合後, 頻度の低い A と ((DC)B) 連合を選ぶ.A と ((DC)B) 連合の頻度を比較し, 頻度の高い ((DC)B) 連合を右 文字頻度 A 0.25 ((DC)B) 0.35 E 0.40 ノードに, 低い A を左ノードに配置する. ルートノードには頻度の和を書き込む 文字 ハフマン符号の作り方 4/5 頻度 (A((DC)B)) 0.60 E 0.40 (A((CD)B)) 統合後, 頻度の低い E と (A((CD)B)) 連合を選ぶ.E と (A((CD)B)) 連合の頻度を比較し, 頻度の高い (A((CD)B)) 連合を右ノードに, 低い E を左ノードに配置する. ルートノードには頻度の和を書き込む 5

ハフマン符号の作り方 5/5 左のノードに 0, 右のノードに 1 を付与する 文字頻度符号 A 0.25 10 B 0.20 111 C 0.10 1101 D 0.05 1100 E 0.40 0 文字 ハフマン符号の変換 文字頻度符号 A 0.25 10 B 020 0.20 111 C 0.10 1101 D 0.05 1100 E 0.40 0 10111110111000 10 111 1101 1100 0 A B C D E BBCEDA 11111111010110010 111 111 1101 0 1100 10 ASCII 文字コード (8bit) からハフマン符号へ A 文字頻度符号 A 0.25 10 ASCII: 01000001 (0x41) 8bit B 020 0.20 111 Huffman: 10 : 2bit C 0.10 1101 D 0.05 1100 E E 0.40 0 ACSII: 01000101 (0x45) 8bit F-Z 0.00 Huffman: 0 : 1bit 練習問題 1 練習問題 1 解答例 0/7 練習問題 1 解答例 1/7 6

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

ハフマン符号の特徴 各記号がリーフノード ( 葉 ) に対応している ハフマン符号列を左からトレースすることで, 記号の区切りが分かる 区切り記号を入れる必要がない 平均符号長 エントロピーの良い近似 レポート全文検索アルゴリズム (BM) Boyer-Moore 法のプログラムを作成 言語は何でも良い プログラムの説明 データ text: 2 種類 1: ABCDABABCDEABCD 2: ZYXWVUTSABCDEFG Key: 2 種類 1: AB 2: ABCD 結果表示 (4 種類の実験に対して ) キーワード出現位置 ( あれば複数 ) 照合回数 締め切り :2 月 9 日 ( 木 ) 17:00 提出場所 : 鈴木の居室 (A3-K514) 前のレポート入れ 8