• Tidak ada hasil yang ditemukan

期末試験のお知らせ - Sophia

N/A
N/A
Protected

Academic year: 2024

Membagikan "期末試験のお知らせ - Sophia"

Copied!
39
0
0

Teks penuh

(1)

期末試験

のお知らせ

729 日(月) 10:5511:55

60 分試験)

6-203 教室(四谷キャンパス)

最終回 (7/22) の講義内容まで

学生証必携

(2)

レポート提出

について

期日:

85 日(月) 20 時頃まで

内容:

配布プリントのレポート問題の例のような内容 及び授業に関連する内容で、

授業内容の理解または発展的な取組みを

アピールできるようなもの

提出方法:

市谷本館1106室前のメイルポスト

電子メイル

(3)

本講義最後の話題は、

計算量

について

問題の難しさを如何に計るか?

(4)

Church-Turingの提唱

「全てのアルゴリズム(計算手順)は、

チューリングマシンで実装できる」

(アルゴリズムと呼べるのは

チューリングマシンで実装できるものだけ)

· · · 「アルゴリズム」の定式化

(5)

計算量 (complexity)

時間計算量:計算に掛かるステップ数

TMでの計算の遷移の回数)

空間計算量:計算に必要なメモリ量

TMでの計算で使うテープの区画数)

通常は、決まった桁数の四則演算 1 回を

1 ステップと数えることが多い 入力データ長 n に対する

増加のオーダー(Landau の O-記号)で表す

(6)

Landau の O-記号・o-記号 f, g:N→R>0 に対し、

f=O(g)⇐⇒ N > 0,C > 0:n:

(nN=⇒f(n)Cg(n)) f=o(g)⇐⇒ f(n)

g(n) →0 (n→ ∞)

⇐⇒ε > 0:N > 0:n:

(nN=⇒f(n)εg(n))

(7)

計算量 (complexity)

問題を解くアルゴリズムによって決まる

· · · アルゴリズムの計算量

→ アルゴリズムの効率の評価 問題の計算量:

その問題を解くアルゴリズムの計算量の下限 最も効率良く解くと、どれ位で解けるか

= どうしてもどれ位必要か

= どれ位難しい問題か

→ 問題の難しさの評価

(8)

基本的な例

加法:O(n)

乗法:O(n2)かと思いきや O(nlognlog logn)

(高速フーリエ変換 (FFT)

(9)

例:互除法

入力:正整数 x, y 入力データ長:

n=log2x+log2y∼max{logx,logy}

出力:最大公約数 d=gcd(x, y) 計算量の評価:

割算の回数:O(n)

1回の割算:素朴な方法でも O(n2)

FFT を使えば O(nlognlog logn))

→ 併せて O(n3)(FFTで O(n2lognlog logn))

· · · 充分に高速なアルゴリズム

(10)

重要な難しさのクラス 多項式時間 P · · · ∃k:O(nk)

事実上計算可能な難しさ

計算モデルの変更に関して頑健

(複数テープTMなどに変更しても不変)

「しらみつぶし」が入ると

大体 O(2n) 程度以上になる(指数時間 EXP

事実上計算不可能

(11)

例:素数判定 (PRIMES) n=log2N:N の二進桁数

試行除算(小さい方から割っていく)だと

O(nk2n/2) くらい掛かりそう 実は多項式時間で解ける!!

Agrawal-Kayal-Saxena

“PRIMES is in P” (2002)

(出版は

Ann. of Math. 160(2) (2004), 781-793.

(12)

素数判定と素因数分解との違い このような効率の良い素数判定は、

具体的に素因数を見付けている訳ではない 素因数分解は P であるかどうか未解決

(多項式時間アルゴリズムが知られていない)

現状で知られているのは、

準指数時間 LN[u, v] (0 < u < 1)

のアルゴリズム

(現時点で最高速なのは u=1/3)

(13)

素数判定と素因数分解との違い このような効率の良い素数判定は、

具体的に素因数を見付けている訳ではない 素因数分解は P であるかどうか未解決

(多項式時間アルゴリズムが知られていない)

現状で知られているのは、

準指数時間 LN[u, v] (0 < u < 1)

のアルゴリズム

(現時点で最高速なのは u=1/3)

(14)

素因数分解アルゴリズム等の計算量を表すのに LN[u, v] :=exp(v(logN)u(log logN)1−u)

が良く用いられる n=logN(Nの桁数)とおくと、

LN[0, v] =evlog logN =nv:多項式時間

LN[1, v] =evlogN=evn:指数時間

(15)

代表的な素因数分解法

(p−1)-

楕円曲線法 (Elliptic Curve Method)

二次篩法 (Quadratic Sieve)

数体篩法 (Number Field Sieve)

(16)

二次篩法の原理

y2 z2 (mod N) となる y, z を探す

→ y2−z2 = (y−z)(y+z) が N で割切れる

y≡ ±z (mod N) でない限り、

gcd(y±z, N) が N の非自明な約数!! 注:最大公約数は高速に計算可能(互除法)

(17)

二次篩法の原理

y2 z2 (mod N) となる y, z を探す

→ y2−z2 = (y−z)(y+z) が N で割切れる

y≡ ±z (mod N) でない限り、

gcd(y±z, N) が N の非自明な約数!! 注:最大公約数は高速に計算可能(互除法)

(18)

二次篩法の原理

y2 z2 (mod N) となる y, z を探す

→ y2−z2 = (y−z)(y+z) が N で割切れる

y≡ ±z (mod N) でない限り、

gcd(y±z, N) が N の非自明な約数!! 注:最大公約数は高速に計算可能(互除法)

(19)

二次篩法の原理

y2 z2 (mod N) なる y, z の組を見付けるには?

→ x を沢山取って、

x2 を N で割った余り r を沢山作る x2 r (mod N)

→ r=z2 なら y=x でOK

そんなにうまくいくのか?

x を

N の近くにとって、

x2−N が小さくなるようにする

それを組み合わせて(掛け合わせて)

うまく作れることがある

(20)

二次篩法の原理

y2 z2 (mod N) なる y, z の組を見付けるには?

→ x を沢山取って、

x2 を N で割った余り r を沢山作る x2 r (mod N)

→ r=z2 なら y=x でOK

そんなにうまくいくのか?

x を

N の近くにとって、

x2−N が小さくなるようにする

それを組み合わせて(掛け合わせて)

うまく作れることがある

(21)

二次篩法の原理

y2 z2 (mod N) なる y, z の組を見付けるには?

→ x を沢山取って、

x2 を N で割った余り r を沢山作る x2 r (mod N)

→ r=z2 なら y=x でOK

そんなにうまくいくのか?

x を

N の近くにとって、

x2−N が小さくなるようにする

それを組み合わせて(掛け合わせて)

うまく作れることがある

(22)

二次篩法の原理

y2 z2 (mod N) なる y, z の組を見付けるには?

→ x を沢山取って、

x2 を N で割った余り r を沢山作る x2 r (mod N)

→ r=z2 なら y=x でOK

そんなにうまくいくのか?

x を

N の近くにとって、

x2−N が小さくなるようにする

それを組み合わせて(掛け合わせて)

うまく作れることがある

(23)

例:N=18281,

[ 18281

]

=135

1452 2744 = 23 · 73 1492 3920 = 24 · 51 · 72 1592 7000 = 23 · 53 · 71 (145·149·159)2 210 · 54 · 76

( 25 · 52 · 73 )2

145·149·15916648=: y 25·52·73 185=: z gcd(y−z, N) =101

:N=18281 の非自明な約数!!

(24)

例:N=18281,

[ 18281

]

=135

1452 2744 = 23 · 73 1492 3920 = 24 · 51 · 72 1592 7000 = 23 · 53 · 71 (145·149·159)2 210 · 54 · 76

( 25 · 52 · 73 )2

145·149·15916648=: y 25·52·73 185=: z gcd(y−z, N) =101

:N=18281 の非自明な約数!!

(25)

例:N=18281,

[ 18281

]

=135

1452 2744 = 23 · 73 1492 3920 = 24 · 51 · 72 1592 7000 = 23 · 53 · 71 (145·149·159)2 210 · 54 · 76

( 25 · 52 · 73 )2

145·149·15916648=: y 25·52·73 185=: z gcd(y−z, N) =101

:N=18281 の非自明な約数!!

(26)

二次篩法の原理

うまく組み合わさるには、

x2 を N で割った余りの

素因数の重なりが多いと良い

始めに小さい素数を幾つか決めておく(因子底)

x2 を N で割った余り r で、

素因数が因子底の素数のみから成るものを貯める

必要なだけ貯ったら、

平方数を作る組合せを探す計算に移行

(27)

二次篩法の原理

うまく組み合わさるには、

x2 を N で割った余りの

素因数の重なりが多いと良い

始めに小さい素数を幾つか決めておく(因子底)

x2 を N で割った余り r で、

素因数が因子底の素数のみから成るものを貯める

必要なだけ貯ったら、

平方数を作る組合せを探す計算に移行

(28)

何が「篩」か?

候補の x を沢山計算するときに、

採用され易そうな候補 x だけ選んで計算 x2−N が因子底の幾つかで割れることが

予め判っているものを選ぼう 或る x2−N が p で割れていたら、

(x±p)2−N,(x±2p)2−N, . . .

も p で割れることが予め判る!!

→ 因子底の素数毎に、

候補に残り易そうな x が等間隔に並ぶ

「篩法」

(29)

何が「篩」か?

候補の x を沢山計算するときに、

採用され易そうな候補 x だけ選んで計算 x2−N が因子底の幾つかで割れることが

予め判っているものを選ぼう 或る x2−N が p で割れていたら、

(x±p)2−N,(x±2p)2−N, . . .

も p で割れることが予め判る!!

→ 因子底の素数毎に、

候補に残り易そうな x が等間隔に並ぶ

「篩法」

(30)

何が「篩」か?

候補の x を沢山計算するときに、

採用され易そうな候補 x だけ選んで計算 x2−N が因子底の幾つかで割れることが

予め判っているものを選ぼう 或る x2−N が p で割れていたら、

(x±p)2−N,(x±2p)2−N, . . .

も p で割れることが予め判る!!

→ 因子底の素数毎に、

候補に残り易そうな x が等間隔に並ぶ

「篩法」

(31)

何が「篩」か?

候補の x を沢山計算するときに、

採用され易そうな候補 x だけ選んで計算 x2−N が因子底の幾つかで割れることが

予め判っているものを選ぼう 或る x2−N が p で割れていたら、

(x±p)2−N,(x±2p)2−N, . . .

も p で割れることが予め判る!!

→ 因子底の素数毎に、

候補に残り易そうな x が等間隔に並ぶ

「篩法」

(32)

計算困難な問題の数理技術としての利用 素因数分解の困難さを利用した暗号方式

· · · RSA暗号 (Rivest-Shamir-Adleman) 鍵となる整数 n の素因数分解を

知っていれば解読できるが、

知らないと解読できない

→ 詳しくは暗号理論などの授業で

(33)

計算困難な問題の数理技術としての利用 素因数分解の困難さを利用した暗号方式

· · · RSA暗号 (Rivest-Shamir-Adleman) 鍵となる整数 n の素因数分解を

知っていれば解読できるが、

知らないと解読できない

→ 詳しくは暗号理論などの授業で

(34)

例:巨大な指数の冪の計算

RSA暗号では、次の計算が必要になる:

CMe (mod N) ここで、 C, M, e, N はどれも数百桁程度

(500〜1000 bit) 単純に M を e 回掛けるのでは、

数百桁回の乗算(とmodNの計算)が必要

→ 事実上不可能(指数時間)

計算を実行するには高速化の工夫が必要

(35)

例:巨大な指数の冪の計算

RSA暗号では、次の計算が必要になる:

CMe (mod N) ここで、 C, M, e, N はどれも数百桁程度

(500〜1000 bit) 単純に M を e 回掛けるのでは、

数百桁回の乗算(とmodNの計算)が必要

→ 事実上不可能(指数時間)

計算を実行するには高速化の工夫が必要

(36)

例:巨大な指数の冪の計算

RSA暗号では、次の計算が必要になる:

CMe (mod N) ここで、 C, M, e, N はどれも数百桁程度

(500〜1000 bit) 単純に M を e 回掛けるのでは、

数百桁回の乗算(とmodNの計算)が必要

→ 事実上不可能(指数時間)

計算を実行するには高速化の工夫が必要

(37)

例:巨大な指数の冪の計算(Me の高速計算)

e=e0+e1·2+e2·22+· · ·+en−1·2n−1+en·2n

:e の二進法表示(二進 n 桁、ei =0, 1)

M2k は、次の漸化式で、k 回の乗算で計算できる

M20 =M

M2k+1 = (M2k)2 Me は、

Me =

n

k=0

(M2k)ek = ∏

k:ek=1

M2k

により、O(n) 回の乗算で計算できる(多項式時間)

(38)

例:巨大な指数の冪の計算(Me の高速計算)

e=e0+e1·2+e2·22+· · ·+en−1·2n−1+en·2n

:e の二進法表示(二進 n 桁、ei =0, 1)

M2k は、次の漸化式で、k 回の乗算で計算できる

M20 =M

M2k+1 = (M2k)2 Me は、

Me =

n

k=0

(M2k)ek = ∏

k:ek=1

M2k

により、O(n) 回の乗算で計算できる(多項式時間)

(39)

例:巨大な指数の冪の計算(Me の高速計算)

e=e0+e1·2+e2·22+· · ·+en−1·2n−1+en·2n

:e の二進法表示(二進 n 桁、ei =0, 1)

M2k は、次の漸化式で、k 回の乗算で計算できる

M20 =M

M2k+1 = (M2k)2 Me は、

Me =

n

k=0

(M2k)ek = ∏

k:ek=1

M2k

により、O(n) 回の乗算で計算できる(多項式時間)

Referensi

Dokumen terkait

報道関係各位 2010 年 2 月吉日 子どもの“夢実現”を応援する教育情報誌 ―『―『DDrreeaamm NNavavii』[』[トドリ゙リーームム・・ナナヒビ゙]]創創刊刊ののおお知知ららせせ!!―― 創刊号は、四谷大塚 OB の子ども時代の「夢」をかなえたきっかけを大特集! 中学受験の四谷大塚(本社:東京都中野区 理事長:永瀬昭幸)は、2 月

2022年1月24日 交流会延期のお知らせ 愛知学泉大学豊田同窓会 平素は本同窓会活動にご理解、ご協力を賜り、厚く御礼申し上げます。 1 月 29 日土曜日に開催を予定しておりました交流会につきまして、新型コロナウイルス感染症の感染者 が急激に増え、まん延防止等重点措置が適用されている期間のため、皆様の安全と安心を第一に考えた結果、

5 参加に関するお願い ア)中学校の制服で参加してください。 イ)保護者の皆さんにも活動の様子をご覧いただきたいと考えています。保護者の方も一緒に クラブの様子をご覧ください。 ウ)感染防止の観点から、管楽器については中学校で使用されている楽器をご持参ください。 大型管楽器であってもお貸しすることはできません。コントラバスについても同様です。

a 事前の期待利得は、投資するとp−5 + 1−p10で投資しないと0であるから、投資するのが最適なp の範囲はp≦2/3である。(等号を含む。投資するのとしないのが両方最適ということなだけ。) b 完全ベイジアン均衡があるとすれば、整合性からBlack/Black’後の信念は r=pとなる。このとき、投 資家IBが投資するのはaで見たように

以下の2人標準形ゲームを考える。プレイヤーはXとYであり、それぞれ純戦略としてSX ={x1, x2, x3}と SY ={y1, y2, y3}を持つ。2人の利得関数は以下の(双)行列表現のようになっているが、純戦略の集合はお

b 展開形ゲームbにおけるIn の後の利得ベクトルは2人の行動A, Bの組み合わせにのみ依存し、aの場合 と同じであるとし、bの樹形図内の1, 2, 3, 4に当てはまる利得ベクトルを(uK, uW の順に)答えな さい。また、純戦略による部分ゲーム完全均衡を全て求めなさい。(Kさんの戦略を正確に書かないと減点。)

経済統計分析Ⅰ 期末試験 以下のすべてに答えなさい.導出過程も適切に記述すること.持込は一切不可 担当:別所俊一郎 次の表は,2005 年の各国の 1 人当たり GDP(以下では変数Yiとも表す)の度数分布などを 示した表である.表の情報に基づいて,以下の問に答えなさい.ただし,単位は 1000ドルで ある. 累積度数 度数分布...

, s∗nをそこに制限したものがその部分ゲームのナッシュ均衡になって いるもの。 (戦略の制限を定義してあったら追加点を与える!) b Γ1:完全情報なので、後ろ向きに解いて、s∗1=Down, b, c, f, gとs∗2 =B,Cの組み合わせ。(各 プレイヤーの戦略の定義で、どの情報集合のときの行動かも明記すると厳密ですばらしいが、この