• 検索結果がありません。

コンピュータプラクティ スⅠ 比較実験

N/A
N/A
Protected

Academic year: 2021

シェア "コンピュータプラクティ スⅠ 比較実験"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

コンピュータプラクティ スⅠ

比較実験

水野嘉明

(2)

本日の予定

計算量について

「比較実験」

パラメータを変化させての比較 ⇒ 実験1

二つのプログラムの比較 ⇒ 実験2

実験レポート R3として提出

2

(3)

計算量の表現

速度の評価

① 実行時間を実測 前回の実験

② 文を実行する回数をカウント プログラムの文面を見

て、計算 できる (概算)

3

(4)

計算量の表現

次のプログラムを考える

4

sum = 0;

for (i = 0; i < N; i+

+){

for (j = 0; j < N;

j++) {

sum += data[i][j];

} }

① ②

③ ④

(5)

計算量の表現

各文の実行回数は、

① : 1回

② : N+1 回

③ : N*(N+1) 回

④ : N

合計は、2 N + 2N + 2 回

5

(6)

計算量の表現

f(N)= 2 N + 2N + 2

N=10 ⇒ f(N)= 222

N=100 ⇒ f(N)= 20202

N=1000 ⇒ f(N)= 2002002

N=10000 ⇒ f(N)= 200020002

6

ほぼNに比例する と言える O

(

)

N が 大 き け れ ば

(7)

計算量の表現

計算量を考える時、比例定数はあ まり意味がない

実行時間は、コンパイラやCP U能力により左右される

パラメータ N について、どんな オーダーであるかが重要

O(N) 、 O(N ・ log(N)) 、 O(N

2) 、 O(2N) ・・

7

(8)

計算量の表現

アルゴリズムを評価する場合は、

その計算量のオーダーを考える

O(N ・ log(N)) のアルゴリズム は、 O(2N) のアルゴリズムより はるかに速いといえる

実行回数を厳密に 数えるわけではない

8

(9)

比較実験

パラメータを変化させての比較 ⇒ 傾向分析

二つのプログラムの比較 ⇒ 比較実験

9

(10)

傾向分析

プログラムがパラメータにより異な る振る舞いをする場合

パラメータを変化させる

振る舞いの変化を明確にする

(一度に複数の項目を変化させる 変化の原因がわからなくなる)と、

10

(11)

実験1

プログラム L06Y01 について、

パラメータ RANGE を変化させ

、実行時間の変化を調べよ

また、グラフを描いてその傾向 について考察せよ

(対数グラフがよい)

11

(12)

プログラムの説明 ( L06Y0 1 )

「時間の測定」にて使用

RANGE 以下の素数の数を求める

(数える範囲を、 #define 文で 定義している)

2~ RANGE の各々について、

kで割り切れるかどうかを調べ ている ( n%k は n を k で 割った余り)

12

(13)

実験1についての注意

科学的方法を思い出すこと

観察により(つまり、プログ ラムの文面 を見て)仮説を立て る

実行時間 の測定により、仮説 を検証する

13

(14)

実験1についての注意

オーダーの考え方( O 記法)を用 いて、仮説を立てること

『 RANGE が大きくなったら実行 時間も増大』

お粗末な仮説

実験しなくてもわかる!

14

(15)

実験1についての注意

実行時間の測定は、前回と同じ仕 組みを用いる

(バッチではない! time() 関数 により、ラップを測る。実行時 間測定ツール (measure.cpp) を 使うとよい。)

何桁の有効数字で求めるかを、

考えること

15

(16)

実験1についての注意

プログラムを繰り返すのは、測定 精度を上げるため

(繰返し回数を増やしても速度は 変わらない 、つまり

P10 の「複

数の項目」には入らない)

繰返し回数を固定してはならない

16

(17)

比較実験

 他のプログラムとの比較により、

プログラムの評価を行なう

二つの実験対象を比較

比較実験

17

(18)

実験2

 付録Aのプログラムは、任意の整

数を4つの整数の2乗和で表すプ ログラムである

 付録Bは、付録Aの改良版

 元のプログラム ( 付録A)と改良 版

(

付録B)を比較せよ

プログラムの文面と、実行時間

の両方を比較すること

18

(19)

プログラムの説明 (付録 A )

if 文

 xが4個の整数の二乗和となっ

たとき printf で表示

a,b,c,d の for 文

変数 a が 0 からxまで変化

その各々の値について、

b

が a から

x

まで変化

c,d も同様

19

⇒ O(x)

⇒ O(x

2

)

⇒ if

文のオーダは ?

(20)

プログラムの説明 (付録 B )

A プログラムの繰り返し回数は、

減らすことができる

a > √x ( a

> x )の時、

明らかに if 文の条件式は成り 立たない

a +b

> x の時も同様

 B

は、これらを改良

20

(21)

実験2についての注意

実行時間の測定は、前回および実 験1と同じ仕組みを用いる

scanf をループ内に入れないこ と(ループ内にあると、それだ けの回数キーボードからの入力 が必要)

21

(22)

実験2についての注意

測定のための繰返し回数は、必要 な有効数字の桁数が出るように適

当な値を設定する

 固定する必要もないし、しては

ならない

 AプログラムとBプログラムで

は、当然異なるはず

22

(23)

実験2についての注意

仮説を検証するためには、入力値

xはどのような値を何種類くらい 試せばよいのかを考える

 悪い例

x = 1 のみで実験したら、どう

なるか?

23

(24)

課題

 O

記法について

 O

記法の正確な定義について、

文献を調査せよ

 O

記法の利点について、考察せ よ

(25)

実験レポート

実験1、2と課題を、レポートR 3として提出せよ

表題は、「比較実験」

 章立ては、

R1 と同じ

(実験は二つなので、第4章が

課題、第5章が結論)

25

(26)

次回の予定

「再現性」

実験の再現と実験環境について

本日の実験1、2について、追 実験を行う

レポートR4 として提出

26

(27)

お疲れさまでした

参照

関連したドキュメント

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

※ 硬化時 間につ いては 使用材 料によ って異 なるの で使用 材料の 特性を 十分熟 知する こと

「かぼちゃ玉」、「ニンニク玉」などがあり、測定する表面によって使い分けている。図3はタ

測定結果より、凝縮器の冷却水に低温のブライン −5℃ を使用し、さらに凝縮温度 を下げて、圧縮比を小さくしていくことで、測定値ハ(凝縮温度 10.6℃ 、圧縮比

(1)  研究課題に関して、 資料を収集し、 実験、 測定、 調査、 実践を行い、 分析する能力を身につけて いる.

関係の実態を見逃すわけにはいかないし, 重要なことは労使関係の現実に視

サーモカメラ温度測定結果の 色調と温度の関係は昼間と夜

常時 測定 ※1 可能な状態において常に測定 ※1 することを意味しており,点 検時等の測定 ※1 不能な期間を除く。.