• Tidak ada hasil yang ditemukan

計算量

N/A
N/A
Protected

Academic year: 2024

Membagikan "計算量"

Copied!
21
0
0

Teks penuh

(1)

集合の濃度

集合 A, B に対し、

AB⇐⇒ ι:A→B: 単射

⇐⇒π:B→A: 全射

(⇐= には選択公理が必要)

A∼B⇐⇒ φ:A→B: 全単射

⇐⇒AB かつ BA

Bernsteinの定理)

∼ は 集合全体の集まり の上の 同値関係

(2)

集合の濃度

A の属する 同値類 :A の濃度(cardinality)

(#A,|A|,card(A) 等と書く)

0= a :=#N:可算濃度

(countable, enumerable)

ℵ= c :=#R:連続体濃度 (continuum) 濃度の比較:#A#B⇐⇒ AB

#A#A

#A#B,#B#A=⇒#A=#B

#A#B,#B#C=⇒#A#C

は濃度の間の 順序関係 である)

(3)

対角線論法の例:冪集合の濃度 集合 X の冪集合(power set)

P(X) = {S SX} について、

#X⪇#P(X)

応用:#N=#Q=ℵ0(可算濃度)だが、

#R=ℵ⪈ℵ0(連続体濃度)

注:ℵ は ℵ0 の 次の 大きさ、とは言えない

(連続体仮説)

(4)

定理

チューリングマシンで認識可能でない言語が 存在する。

チューリングマシン全体の集合

言語全体の集合

の濃度とを比較せよ

(5)

定理

チューリングマシンで認識可能でない言語が 存在する。

チューリングマシン全体の集合

言語全体の集合

の濃度とを比較せよ

(6)

さて、本講義最後の話題は、

計算量

について

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

(7)

さて、本講義最後の話題は、

計算量

について

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

(8)

Church-Turingの提唱(再掲)

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

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

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

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

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

(9)

計算量 (complexity)

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

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

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

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

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

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

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

(10)

計算量 (complexity)

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

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

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

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

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

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

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

(11)

計算量 (complexity)

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

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

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

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

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

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

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

(12)

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))

(13)

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))

(14)

計算量 (complexity)

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

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

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

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

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

= どれ位難しい問題か

→ 問題の難しさ の評価

(15)

計算量 (complexity)

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

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

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

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

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

= どれ位難しい問題か

→ 問題の難しさ の評価

(16)

計算量 (complexity)

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

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

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

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

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

= どれ位難しい問題か

→ 問題の難しさ の評価

(17)

計算量 (complexity)

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

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

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

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

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

= どれ位難しい問題か

→ 問題の難しさ の評価

(18)

基本的な例

加法:O(n)

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

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

(19)

基本的な例

加法:O(n)

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

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

(20)

例:互除法

入力:正整数 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))

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

(21)

例:互除法

入力:正整数 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))

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

Referensi

Dokumen terkait

直接原価計算と原価計算基準 高 橋 賢 1.はじめに 「原価計算基準」(以下「基準」)は,大蔵省企業会計審議会の中間報告として1962年に公表さ れた1.今年(2022年)は公表されてから60年の節目にあたる.その節目に,『企業会計』2022 年4月号では「『原価計算基準』は生きた化石か」という特集が組まれた.その特集で筆者は総

RSA暗号の安全性 結局、RSA暗号の安全性は、 素因数分解問題の(計算量的)困難さ に掛かっている 現在の所、 充分速い計算法(多項式時間アルゴリズム)は 知られていない −→ 多くの数学者・計算機科学者が鋭意研究中... RSA暗号の安全性 結局、RSA暗号の安全性は、 素因数分解問題の(計算量的)困難さ に掛かっている 現在の所、

それぞれの「問題」に対し、 定められた計算モデルで、 受理/拒否判定が可能(問題が解ける)か? 受理される文字列が 「文法に適っている」文字列だと思えば、 「問題」とは「文法(言語)」である 「文法に適っている」かどうかの判定 · · ·「構文解析syntactic analysis」... それぞれの「問題」に対し、 定められた計算モデルで、

例: 素数判定PRIMES n=log2N : N の二進桁数 試行除算小さい方から割っていくだと Onk2n/2 くらい掛かりそう 実は多項式時間で解ける!!. Agrawal-Kayal-Saxena “PRIMES is in P” 2002 出版は

例:素数判定 PRIMES n=log2N:N の二進桁数 試行除算(小さい方から割っていく)だと Onk2n/2 くらい掛かりそう 実は多項式時間で解ける!! Agrawal-Kayal-Saxena “PRIMES is in P” 2002 (出版は Ann... 例:素数判定 PRIMES n=log2N:N の二進桁数

例:素数判定 PRIMES n=log2N:N の二進桁数 試行除算(小さい方から割っていく)だと Onk2n/2 くらい掛かりそう 実は多項式時間で解ける!! Agrawal-Kayal-Saxena “PRIMES is in P” 2002 (出版は Ann... 例:素数判定 PRIMES n=log2N:N の二進桁数

計算の理論 或る問題の「計算が可能」 m その計算を行なうプログラムが存在 ⇓ 計算機の機能 =「計算」のモデル を決めて議論 −→

論理回路 • 組合せ回路: 入力の組によって出力が決まる −→ 演算に用いる • 順序回路: 内部状態を保持し、 入力と入力前の状態とによって 出力と出力後の状態とが決まる −→ データbit情報の保持に用いる —電子計算機概論I