アルゴリズムの効率

.
アルゴリズムの効率とは
........
.
.
山崎浩一
経営学部 経営学科
プログラム言語特論, Summer 2009
.
アルゴリズムの効率とは
........
アルゴリズムとは? の復讐
アルゴリズムとは? の復讐
アルゴリズム (algorithm)
「計算のためのプロセスまたは規則」
(The Concise Oxford Dictionary (1976 年版))
20 世紀になるまでは厳密に定義されていなかった
Turing 機械 (やそれと等価な概念) により定義される
(チャーチの提唱)
アルゴリズム (手順) 次第で効率が大きく変わり得る
.
.
..
.
.
アルゴリズムの効率
.
アルゴリズムの効率とは
........
アルゴリズムの効率とは
アルゴリズムの効率とは
「効率の良いアルゴリズム」という言い方をする
→ 「無駄の少ない処理の手順」
→ 「資源を無駄に使わない処理の手順」
(コンピュータの) 資源とは、
メモリ (空間的)
処理時間 (時間的)
.
アルゴリズムの効率とは
........
アルゴリズムの効率とは
2 の冪上計算の (具体) 例
.
例: 28 を計算する 2 つのアルゴリズム
..
アルゴリズム 1:
.1. 1 に 2 を 8 回かける
.
.
...
...
.
. ..
..
1
2 × 2 をする (結果は 4) [つまり 22 の計算]
2
4 × 4 をする (結果は 16) [つまり (22 )2 の計算]
3
16 × 16 をする (結果は 256) [つまり ((22 )2 )2 の計算]
評価方法: 掛け算の回数で評価 (少ない方が良い)
(2 × 2 も 16 × 16 も同じ 1 回と数えるのは不公平では?)
同じ計算をする手間を省いている
.
.
.
アルゴリズム 2:
.
アルゴリズムの効率とは
........
アルゴリズムの効率とは
2 の冪上計算の (一般化した) 例
.
k
例: 22 を計算する 2 つのアルゴリズム
..
アルゴリズム 1:
.. 1 に 2 を 2k 回かける
1
.
.
アルゴリズム 2:
1
1 回目:2 × 2 をする (結果は 4) [21 × 21 の計算]
2
2 回目:4 × 4 をする (結果は 16) [22 × 22 の計算]
3
3 回目:16 × 16 をする (結果は 256) [24 × 24 の計算]
4
4 回目:256 × 256 をする (結果は 65536) [28 × 28 の計算]
5
同様に繰り返して
6
x 回目:2y × 2y をする (結果は 22 ) [2y × 2y = 22 の計算]
k
k
.
.
...
...
...
...
...
.
. ..
..
.
アルゴリズムの効率とは
........
効率のはかり方
2 の冪上計算の (一般化した) 例の効率
.
k
例: 22 を計算する 2 つのアルゴリズム
..
アルゴリズム 2:
.. 1回目:2 × 2 をする (結果は 4) [21 × 21 の計算]
1
.2. 2回目:4 × 4 をする (結果は 16) [22 × 22 の計算]
.
.
...
...
...
.
. ..
..
.
3
3回目:16 × 16 をする (結果は 256) [24 × 24 の計算]
4
4回目:256 × 256 をする (結果は 65536) [28 × 28 の計算]
5
同様に繰り返して
6
x 回目:2y × 2y をする (結果は 22 ) [2y × 2y = 22 の計算]
k
k
.
.
.
問題
.
..
.1. x, y , k にはどんな関係があるか?
.2. 22k を計算するために必要な回数を f (k ) とするとき、 k の関数
f (k ) を数式で表現せよ
.
..
.
.
.
.
.
.
アルゴリズムの効率とは
........
効率のはかり方
関数としての表現
ある人の仕事の効率を測るには?
一般に、作業量が多いと時間がかかる
どの程度の作業量ならば、どの程度の作業時間がかかるかを知
りたくなる
アルゴリズムの効率を測るには?
アルゴリズムの世界での作業時間とは? → 計算の処理時間
アルゴリズムの世界での作業量とは? → 入力データのサイズ
アルゴリズムの効率を評価するために、入力データのサイズと
処理時間の関係を、関数として表現する
.
アルゴリズムの効率とは
........
効率のはかり方
確認問題
.
問題
..
.1. A6 サイズのメモ書きが 1 枚ある
.2. 最大 A3 までコピーできるコピー機とはさみがある
3
用紙のサイズに関係なく 1 回のコピーに 10 円かかる
4
用紙のサイズの関係は、 A6 → 2 倍 → A5 → 2 倍 → A4 → 2
倍 → A3
...
...
.
. ..
..
.
5
そのメモ書きを、オリジナルを含めて 16 枚用意したい
6
いくら必要か?
7
コピーの劣化は気にしなくてよい
.
.
.
.
...
...
.
.
アルゴリズムの効率とは
........
コラム
n vs. 2n
豊臣秀吉の家臣で曾呂利新左衛門(そろりしんざえもん)とい
う人がいた
ある日秀吉から「望む褒美をやろう」と言われ、「1 日目は米
一粒、 2 日目は倍の米二粒、 3 日目はその倍の米四粒、次は八
粒というように倍倍で米粒を頂いていき、 50 日分を頂けれ
ば」と答えた
50 日目には1 億俵以上になってしまう
n が大きくなると 2n は爆発的にとても大きくなってしまう
.
.