31
前回の練習問題 前回の練習問題 ABACABADACABADLZ77法により符号化せよ ABACABADACABADLZ77法により符号化せよ 4文字前 長さ3 A B AC ABAD ACABAD 2文字前 6文字前 符号語系列は 2文字前 長さ1 長さ6 符号語系列は (0, 0, A), (0, 0, B), (2, 1, C), (4, 3, D), (6, 6, *) 上記問題により得られた符号語系列を復号せよ 上記問題により得られた符号語系列を復号せよ 符号化と逆の手順を行えばよい 4文字前 長さ3 A B AC ABAD ACABAD 2文字前 6文字前 1 2文字前 長さ1 6文字前 長さ6

前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

Embed Size (px)

Citation preview

Page 1: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

前回の練習問題前回の練習問題

ABACABADACABADを LZ77法により符号化せよABACABADACABADを,LZ77法により符号化せよ4文字前長さ3

A B AC ABAD ACABAD

2文字前 6文字前符号語系列は2文字前

長さ1

文字前長さ6 符号語系列は

(0, 0, A), (0, 0, B), (2, 1, C), (4, 3, D), (6, 6, *)

上記問題により得られた符号語系列を復号せよ上記問題により得られた符号語系列を復号せよ

符号化と逆の手順を行えばよい 4文字前長さ3

A B AC ABAD ACABAD

2文字前 6文字前

1

2文字前長さ1

6文字前長さ6

Page 2: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

前回の練習問題前回の練習問題

LZWアルゴリズムの特許に関し どのような問題がLZWアルゴリズムの特許に関し,どのような問題が

発生したか調べよ

UNISYS社が特許権を保有していたUNISYS社が特許権を保有していた

当初は特許権の行使をしないと言明 ⇒後に方針転換

GIF 画像を扱うソフトウェアの取り扱いに混乱GIF 画像を扱うソフトウェアの取り扱いに混乱

2003年に米国,2004年に日本での特許失効

非可逆符号化を実現するアルゴリズムにはどのような

ものがあるか調べよものがあるか調べよ

(アルゴリズムとデータフォーマットの区別が明確でないが)

JPEG MPEG GIF 等

2

JPEG, MPEG, GIF 等

Page 3: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

本日の講義本日の講義

乱数 擬似乱数について 「情報理論」からは少し寄り道乱数,擬似乱数について...「情報理論」からは少し寄り道

乱数,擬似乱数

Kolmogorovによる乱数の定義Kolmogorovによる乱数の定義

擬似乱数の統計的検定

x2検定x2検定

擬似乱数の生成法

3

Page 4: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

乱数とは乱数とは

乱数 乱数系列(random numbers random sequence)乱数,乱数系列(random numbers, random sequence)広辞苑による記述:

0から9までの数字から無作為復元抽出を繰り返して得られる数0から9までの数字から無作為復元抽出を繰り返して得られる数

の列.完全に無秩序でかつ全体としては出現の頻度が等しい.

工学の立場からは,上記の記述では不十分

「0から9までの数字」というのは本質的でない「0から9までの数字」というのは本質的でない

⇒ 0 と 1 だけからなる乱数を考える場合も多い

「完全に無秩序」が どのような状態を示すのか明確でない「完全に無秩序」が,どのような状態を示すのか明確でない

4

Page 5: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

「無秩序さ」の定式化「無秩序さ」の定式化

「無秩序さ」:統計的に記述するのが一般的だが「無秩序さ」:統計的に記述するのが 般的だが...計算機の出現により,「無秩序さ」にも新しい定式化が出現

有限系列 x を出力するプログラムの集合を (x) とする

プログラム 入力なしの決定性プログラム(毎回同じ動作)プログラム...入力なしの決定性プログラム(毎回同じ動作)

プログラム pの記述長を |p| と書く(文字数,行数等)

のコルモゴロフ複雑さ(K l l it )x のコルモゴロフ複雑さ(Kolmogorov complexity)||)( min

)(pxK

xp

)(xp

(x を出力する最小のプログラムのサイズ)

5

Page 6: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

コルモゴロフ複雑さの例(1)コルモゴロフ複雑さの例(1)

x = “0101010101010101010101010101010101010101” 40文字x1 = 0101010101010101010101010101010101010101 ... 40文字

x1 を出力するプログラム

プログラムp : printf(“010101 01”); 51文字プログラムp1 : printf( 010101...01 ); ...51文字

プログラム p2 : for(i=0;i<20;i++)printf(“01”); ...30文字

⇒K(x ) 30 < 40⇒K(x1) 30 < 40

“0110100010101101001011010110100100100010” 40文字x2 = “0110100010101101001011010110100100100010”... 40文字

x2 を出力するプログラム

プログラム i tf(“011010 10”) 51文字プログラムp1 : printf(“011010...10”); ...51文字

⇒K(x2) 51

6

Page 7: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

コルモゴロフ複雑さの例(2)コルモゴロフ複雑さの例(2)

x = “11235813213455891442333776109871597 ” 100万文字x3 = 11235813213455891442333776109871597... ... 100万文字

x3 を出力するプログラム

プログラムp : printf(“1123 ”); 100万+11文字プログラムp1 : printf( 1123... ); ...100万+11文字

プログラム p2 :フィボナッチ数列を計算して出力⇒数百文字で十分フィボナッチ数列を計算して出力⇒数百文字で十分

⇒K(x3) は数百文字以下

コルモゴロフ複雑さ K(x):の統計量ではなく の持つ構造 規則性の指標とな ているx の統計量ではなく,x の持つ構造・規則性の指標となっている

7

Page 8: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

コルモゴロフ複雑さと無秩序さコルモゴロフ複雑さと無秩序さ

コルモゴロフ複雑さが大きいほど「無秩序」の程度が大きいコルモゴロフ複雑さが大きいほど「無秩序」の程度が大きい

ただし,コルモゴロフ複雑さを実際に計算することは困難

「無秩序さ」を定式化するための概念的なもの「無秩序さ」を定式化するための概念的なもの

エントロピーとの違いは?エントロピーとの違いは?

エントロピーは,記号発生の統計的側面だけに着目

コルモゴロフ複雑さは 記号発生のメカニズムも考慮にコルモゴロフ複雑さは,記号発生のメカニズムも考慮に

8

Page 9: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

コルモゴロフ的な乱数の定義コルモゴロフ的な乱数の定義

コルモゴロフ複雑さに基づく乱数の定義:コルモゴロフ複雑さに基づく乱数の定義:

系列 x について,K(x) |x| のとき,x を乱数(系列)という

x を記述するには x を「ベタ書き」するしかないx を記述するには,x を「ベタ書き」するしかない

x をコンパクトに表現することができない(圧縮不能)

プログラムもデータも2進系列で表現すると考えると...長さ の2進系列 2n 個存在長さ n の2進系列...2n 個存在

長さ n 未満の2進系列...2n – 1 個しか存在しない

⇒必ず K( ) である系列(圧縮不能な系列)が存在する⇒必ず,K(x) x である系列(圧縮不能な系列)が存在する

⇒任意長の(コルモゴロフの意味での)乱数が必ず存在する

9

Page 10: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

乱数の存在確率乱数の存在確率

Vn:長さ n の2進系列集合 |Vn| = 2n, |V1|+ |V2|+ +|Vn–1| = 2n–1V :長さ n の2進系列集合,|V | = 2 , |V |+ |V |+...+|V | = 2 –1もし,Vn に属する系列のうち 2n – 1 個が圧縮可能だとすると,

V1 Vn–1 に属する系列はいずれも圧縮不能ということになるV1, ..., Vn 1 に属する系列はいずれも圧縮不能ということになる

サイズn未満のプログラムはすべて,長さ n の系列を出力

1 n–2 n–1 n n+α

長さ n 未満の系列は,サイズ n以上のプログラムでしか作れない

10⇒ほとんどすべての系列は圧縮不能(乱数である)ことを導ける

Page 11: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

乱数の計算可能性乱数の計算可能性

ほとんどすべての系列は乱数である:ほとんどすべての系列は乱数である:

乱数の存在は保証しているが,具体的な作り方は不明

サイコロを振る,無作為に生成されるデータを利用 etc.十分に無秩序で良い乱数を得ることができる十分に無秩序で良い乱数を得ることができる

大量の乱数を得るには効率が悪い

専用の乱数生成装置を利用専用の乱数生成装置を利用

大量の乱数を効率よく生成できる

特殊なハ ドウ アが必要でコスト高特殊なハードウェアが必要でコスト高

真の乱数(真性乱数)を 大量かつ安価に生成するのは困難

11

真の乱数(真性乱数)を,大量かつ安価に生成するのは困難

Page 12: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

擬似乱数擬似乱数

擬似乱数 (pseudorandom numbers):擬似乱数 (pseudorandom numbers):ある種の規則性にしたがって生成される「乱数のようなもの」

コルモゴロフ的な意味での乱数ではないコルモゴロフ的な意味での乱数ではない

コンピュータプログラム等により,大量かつ安価に生成可能

⇒各種の実験やシミュレーション等の実施に有益⇒各種の実験やシミュレーション等の実施に有益

擬似乱数にも良いものと悪いものがある擬似乱数にも良いものと悪いものがある

⇒各種の検定により,擬似乱数の品質を評価することが必要

(検定法を頭に入れた後で,具体的な擬似乱数生成法を学ぶ)

12

Page 13: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

統計的検定統計的検定

擬似乱数の評価尺度:擬似乱数の評価尺度:

予測が困難か?

暗号等の用途では重要だが 評価が難しい暗号等の用途では重要だが,評価が難しい

十分に無秩序か?

数列の統計的性質を検定すれば良い 比較的容易数列の統計的性質を検定すれば良い...比較的容易

本講義では 統計的検定法について紹介本講義では,統計的検定法について紹介

「あるプログラムから生成された十分長い系列が,

どれだけ真性乱数に近い統計的性質を有するか」を議論どれだけ真性乱数に近い統計的性質を有するか」を議論

「特定の系列が乱数か否か」を判定する問題ではない

13

Page 14: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

復習 確率 確率密度関数復習:確率,確率密度関数

確率変数:ある試行にともなって なんらかの値を取る変数確率変数:ある試行にともなって,なんらかの値を取る変数

確率分布:確率分布:

確率変数が,どの確率でどの値を取るかをあらわしたモノ

確率変数が離散的な場合 確率分布は表の形で与えられる確率変数が離散的な場合,確率分布は表の形で与えられる

確率変数が連続的な場合,確率分布は関数により与えられる

晴曇

0.30.4

確率密度関数

雨雪

0.20.1

14

Page 15: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

確率密度関数について確率密度関数について

確率密度関数(probability density function pdf )確率密度関数(probability density function, pdf )連続的な確率変数の確率分布を表現する関数

確率変数が x 以上 y 未満の値を取る確率= y dttf )(確率変数が x 以上 y 未満の値を取る確率= x dttf )(

ここの面積

面積

x yx y

x →最小値 y →最大値のとき 面積=1

15

x → 最小値,y → 最大値のとき,面積=1

Page 16: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

2値の定義x2値の定義

確率変数Xの取る値を 有限個のクラス C C C に分割する確率変数Xの取る値を,有限個のクラス C1, C2, ..., Cl に分割する

たとえば X が 0 から 100 の値を取る場合...C = [0 10) C = [10 30) C = {30以上の偶数} C =その他C1 = [0, 10), C2 = [10, 30), C3 = {30以上の偶数}, C4 =その他

理想的なケースにおいて X が C に属する確率は p とする理想的なケースにおいて,X が Ci に属する確率は pi とする

実際に観測された値の系列を a = a1, a2, ... an とする

系列 が どれだけ理想に近いか評価したい系列 a が,どれだけ理想に近いか評価したい

⇒以下の x2 値(x2 value, Chi square value)を評価すれば良い

2(カイ2乗値)

l

i i

ii

npnpnx

1

22 )((カイ2乗値)

16ni...系列 a において Ci に属する要素の個数

Page 17: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

2値の解釈x2値の解釈

n 系列 a において C に属する要素の個数ni...系列 a において Ci に属する要素の個数

npi...長さnの理想的系列における ni の期待値

lii npnx

22 )( 系列 a が理想的な系列に近ければ...

⇒分子部分は 0 に近づくi inp1 ⇒ x2 値も 0 に近づく

17

Page 18: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

2値の計算例x2値の計算例

1 2 6 からなる42文字の系列(n = 42)を考える1, 2, ...6 からなる42文字の系列(n = 42)を考える

これが真性乱数なら,pi = 1/6 ⇒ npi = 7

a1 = 145325415432115341662126421535631153154363n = 10 n = 5 n = 8 n = 6 n =8 n = 5n1 = 10, n2 = 5, n3 = 8, n4 = 6, n5 =8, n6 = 5x2 = 32/7 + 22/7 + 12/7 + 12/7 + 12/7 + 22/7 = 20/7

a2 = 11211142111533111154411154411113441115111425 2 3 8 4 0n1 = 25, n2 = 2, n3 = 3, n4 = 8, n5 =4, n6 = 0

x2 = 182/7 + 52/7 + 42/7 + 12/7 + 32/7 + 72/7 = 424/7のほうが よりも理想的なケ スに近い

18

a1 のほうが a2 よりも理想的なケースに近い

Page 19: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

2値の計算例(続)x2値の計算例(続)

a = 111111111111222222 666666 (長さ 72)a3 = 111111111111222222...666666 (長さ 72)n1 = 12, n2 = 12, n3 = 12, n4 = 12, n5 =12, n6 = 12x2 = 02/12 + 02/12 + 02/12 + 02/12 + 02/12 + 02/12 = 0/12x2 = 02/12 + 02/12 + 02/12 + 02/12 + 02/12 + 02/12 = 0/12理想的な乱数? 当然 no

長さ2のブロック化を考える...n = 36ブロック

理想は “11” “66” が1/36 の確率で発生 1理想は, 11”, ... “66” が1/36 の確率で発生,npi = 1n11 = 6, n12 = 0, ..., n22 = 6, ...

2 (6 1)2/1 + (0 1)2/1 + 180 ⇒かなり大きいx2 = (6 – 1)2/1 + (0 – 1)2/1 + ... = 180 ⇒かなり大きい

様々なクラス分割により 多面的に評価する必要がある

19

様々なクラス分割により,多面的に評価する必要がある

Page 20: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

2値の評価x2値の評価

理想的な系列であっても x2 値が必ず0になるとは限らない理想的な系列であっても,x 値が必ず0になるとは限らない

理想的系列における x2 値の分布と,実測値とを比較すべき

[定理]分割クラス数が l のとき 理想的系列における x2 値の分布は分割クラス数が l のとき,理想的系列における x2 値の分布は,

自由度が l – 1 のx2 分布 (Chi square distribution)にしたがう

自由度 2 自由度 4自由度 6自由度 6

2

20

x2O

Page 21: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

2値の比較x2値の比較

a = 111111111111222222 666666 (長さ 72)a3 = 111111111111222222...666666 (長さ 72)x2 = 02/12 + 02/12 + 02/12 + 02/12 + 02/12 + 02/12 = 0/12クラス数が6 ⇒自由度が 5 の x2 分布に従うはずクラス数が6 ⇒自由度が 5 の x2 分布に従うはず

自由度 5自由度

x2O

理想系列では 2値が 0 になる確率はきわめて小さい理想系列では,x2 値が 0 になる確率はきわめて小さい観測系列の x2 値が 0 ⇒理想系列では考えにくい振る舞い

21x2 値の大小だけでなく,理想的なx2分布と比較することが重要

Page 22: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

2値検定の実施例x2値検定の実施例

x2 値の大小だけでなく 理想的なx2分布と比較することが重要x 値の大小だけでなく,理想的なx 分布と比較することが重要

実際には実際には...1. 元のデータをいくつかのデータセット(部分集合)に分割

2 各データセットに対して x2 値を計算2. 各データセットに対して x2 値を計算

3. 得られた x2 値の集合の妥当性を検証

再び統計的検定を行う再び統計的検定を行う

上下パーセント点と比較する

上側1%点上側1%点...100回に1回くらいは,この値を超えるかもという点

22

Page 23: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

その他の統計的検定手法その他の統計的検定手法

KS検定 (Kolmogorov-Smirnov検定)KS検定 (Kolmogorov-Smirnov検定)

x2 検定の連続変数バージョン(クラス分割不要)

ラン長検定ラン長検定

長さ k のラン発生確率 = 0.5×長さ k – 1 のラン発生確率

(2元の無記憶定常情報源で 通報発生が等確率のとき)(2元の無記憶定常情報源で,通報発生が等確率のとき)

ランの発生個数について,x2検定を行う手法

ポ カ 検定 衝突検定 間隔検定 etcポーカー検定,衝突検定,間隔検定 etc.

いずれの方法も 十分長い系列に対して行う必要があるいずれの方法も,十分長い系列に対して行う必要がある

(短い系列では,統計的性質が出現しにくい)

23

Page 24: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

擬似乱数生成アルゴリズムについて擬似乱数生成アルゴリズムについて

様々な擬似乱数生成アルゴリズムが提案されている様々な擬似乱数生成アルゴリズムが提案されている

その多くが,少量の乱数の種(シード, seed)から,多量の

擬似乱数系列を生成するもの擬似乱数系列を生成するもの

線形合同法 (linear congruent method)線形合同法 (linear congruent method)漸化式に基づいて擬似乱数を生成する方式

i 番目の値が X のとき X X + mod M とするi 番目の値が Xi のとき,Xi+1 = aXi + c mod M とする

a, c, M は適当なパラメータ(選び方にはコツがある)

得られる値は 0 から M 1の整数値得られる値は 0 から M – 1の整数値

24

Page 25: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

線形合同法の性質について線形合同法の性質について

得られる擬似乱数列の周期は 必ず M 以下となる得られる擬似乱数列の周期は,必ず M 以下となる

M は,ある程度大きな値にすべき

M の選択がまずいと,Xiの下位ビットのランダム性が悪化する

M は素数にするのが良いM は素数にするのが良い

処理を簡便にするため,M = 2e とする実装もある

パラメータ a や c の選択についても,ある程度経験則が存在

25

Page 26: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

線形合同法の問題点線形合同法の問題点

(X X ) で与えられる2次元平面上の点を考える(Xi, Xi+1) で与えられる2次元平面上の点を考える

(Xi, Xi+1) の点が,平面全体に広がることが理想的

線形合同法では X が決まれば X が一意に決まる線形合同法では,Xi が決まれば Xi+1 が 意に決まる

⇒直線 x = a 上には,高々一個の点しか配置されない

初期値がXi+1 = 5Xi + 1 mod 7 のとき... 6

5

(初期値が5のとき)

43

1 2 3 4 5 6O

12

平面上の点を一個選んで...という用途には使えない

26

1 2 3 4 5 6O

Page 27: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

M系列法M系列法

M系列法 (M sequence method)M系列法 (M-sequence method)線形フィードバックシフトレジスタを利用して擬似乱数を生成

p 段シフトレジスタ ⇒状態数は 2p通り存在するp 段シフトレジスタ ⇒状態数は 2p 通り存在する

結線方法によっては,周期2p–1の擬似乱数系列が生成可能

特異点(全ゼロ状態)以外のすべての状態を経由特異点(全ゼロ状態)以外のすべての状態を経由

⇒ 2p–1 という周期は,レジスタ数 p 段では最大値(Max)

Xi結線

or断線

XX X X

断線

27

Xi–1Xi–p Xi–p+1 Xi–p+2

Page 28: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

M系列法についてM系列法について

結線方法は 原始多項式の係数にしたがって決定(省略)結線方法は,原始多項式の係数にしたがって決定(省略)

生成される系列は 非常に優れた統計的性質を持つ生成される系列は,非常に優れた統計的性質を持つ

レジスタの初期値の違い ⇒生成される系列の位相の違いレジスタの初期値の違い ⇒生成される系列の位相の違い

シフト加法性シフト加法性

高い自己相関性を持つ ⇒ CDMA などの通信方式でも利用高い自己相関性を持つ ⇒ CDMA などの通信方式でも利用

28

Page 29: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

その他の擬似乱数生成法その他の擬似乱数生成法

メルセンヌ・ツイスタ法 (MT法 Mersenne Twister method)メルセンヌ ツイスタ法 (MT法,Mersenne Twister method)松本眞氏(現広島大),西村拓士氏(現山形大)により提案

メルセンヌ素数を使い シフトレジスタ法を一捻りした方メルセンヌ素数を使い,シフトレジスタ法を 捻りした方

高品質の擬似乱数を高速に生成することが可能

予測不能な擬似乱数生成法

いわゆる「記憶のない」乱数生成 ⇒暗号的用途に向くいわゆる「記憶のない」乱数生成 ⇒暗号的用途に向く

Blum 法など

線形合同法 M系列法 MT法は 暗号用途には使えない線形合同法,M系列法,MT法は,暗号用途には使えない

29

Page 30: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

まとめまとめ

コルモゴロフ的な乱数の定式化コルモゴロフ的な乱数の定式化

擬似乱数の統計的検定

x2検定x2検定

具体的な擬似乱数生成アルゴリズム

線形合同法 M系列法線形合同法,M系列法

30

Page 31: 前回の練習問題 - 情報科学研究科 | NAIST 国立大学 ...isw3.naist.jp/~kaji/lecture/10/inf-theory/6.pdf · 前回の練習問題 abacabadacabadを,lz77法により符号化せよ法により符号化せよ

練習問題練習問題

a = 110010111110001000110100101011101100とする(|a|=36)a = 110010111110001000110100101011101100とする(|a|=36)a を長さ2のブロックに区切り,x2値を計算せよ

長さ3 4のブロックに区切り それぞれx2値を計算せよ長さ3,4のブロックに区切り,それぞれx2値を計算せよ

線形合同法を実装し 擬似乱数を生成せよ線形合同法を実装し,擬似乱数を生成せよ

上記で生成した擬似乱数を,2次元平面にプロットせよ

(スライドの26ペ ジ参照)(スライドの26ページ参照)

レポ ト課題 htt // i t j / k ji/ 参照 5/10提出レポート課題: http://www.naist.jp/~kaji/ 参照,5/10提出

report assignment: available from the above URL, due by May 10

31