━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
計算量の関数 と 実行時間
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
次のグラフは,計算量を表す関数と実行時間との関係を表している.



基本単位の処理の総回数を,問題のサイズ n の関数 f(n) で表す.
グラフには,基本単位の実行時間を 1/10^8 秒 (10ナノ秒) と想定したときの,
基本処理 f(n) 回の総実行時間が示されている.

横軸の問題のサイズ n は,左のグラフでは線形目盛り,右のグラフでは対数目盛り,
縦軸の回数や時間 f(n) は,二つのグラフとも対数目盛りである.
このため,左のグラフでは,指数関数が直線となることに注意する.

左のグラフでは,指数的に値が増える関数は左上にあり,サイズが n=50 でも,
処理時間が1か月を超える.一方,多項式時間の関数は右下にあり,
問題のサイズが増えるときに実行時間が比較的緩やかに増える.
右のグラフから分かるように,計算量が多項式時間の関数であっても,
大規模な問題に対して,現実的な時間内に計算できるものは限られる.

なお,単位時間がここでの想定の1000倍(=10^3倍)に変われば,
時間の太線の目盛り(秒,時間,月 など)は細線の1目盛り分だけ下へ平行移動し,
1000分の1(=10^(-3)倍)になれば1目盛り上に移動する.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
授業のホームページ

山田 俊行
https://www.cs.info.mie-u.ac.jp/~toshi/