コンピュータプラクティ スⅠ 比較実験 水野嘉明. 本日の予定 計算量について 「比較実験」  パラメータを変化させての比較 ⇒ 実験1  二つのプログラムの比較 ⇒ 実験2  実験レポート R3として提出 2.

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
コンピュータプラクティ スⅠ 校正 水野嘉明. 本日の内容 「校正」 Word による自動校正  小論文:「校正の必要性」につい て 人による校正  前回作成したファイルを、他の人 と交換して校正 レポート提出  完成したファイルを R0 として提出 2.
コンピュータプラクティ スⅠ アンケート 水野嘉明 1. 本日の予定 「アンケート」  人間的な要因を評価するための 一手段として、アンケートの方 法について学ぶ  実験では、アンケートの集計を 行う 2.
プログラミング演習( 2 組) 第 9 回
エクセルと SPSS による データ分析の方法 社会調査法・実習 資料. 仮説の分析に使う代表的なモデ ル 1 クロス表 2 t検定(平均値の差の検定) 3 相関係数.
Determining Optical Flow. はじめに オプティカルフローとは画像内の明る さのパターンの動きの見かけの速さの 分布 オプティカルフローは物体の動きの よって変化するため、オプティカルフ ローより速度に関する情報を得ること ができる.
コンピュータプラクティス I 口頭発表 水野嘉明
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
コンピュータプラクティス I 再現性 水野嘉明
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング言語としてのR 情報知能学科 白井 英俊.
第2章 数値の入力と変数 scanfと変数をやります.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
プログラミングができるようになるには…. 一週間に1回では無理! 自分の力でできるだけがんばる
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
多重ループ 繰り返し構造:補足事項 第8回目 [6月8日、H.16(‘04)] 本日のメニュー 1)前回の課題について
多重ループ 繰り返し構造:補足事項 第8回目 [6月12日、H.15(‘03)] 本日のメニュー 1)前回の課題について
2009/10/9 良いアルゴリズムとは 第2講: 平成21年10月9日 (金) 4限 E252教室 コンピュータアルゴリズム.
C言語 配列 2016年 吉田研究室.
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
第6章 2重ループ&配列 2重ループと配列をやります.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
正規性の検定 ● χ2分布を用いる適合度検定 ●コルモゴロフ‐スミノルフ検定
湘南工科大学 2013年12月10日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
配列(1) 第9回目 [6月15日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)配列 4)課題
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
第7回 条件による繰り返し.
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
シミュレーション論 Ⅱ 第15回 まとめ.
C言語講座 第3回 ポインタ、配列.
コンピュータプラクティス I 時間の測定 水野嘉明
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
繰り返し計算 while文, for文.
第7回 条件による繰り返し.
関数の再帰呼び出しとは ハノイの塔 リダイレクト レポート課題
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
プログラミング 4 探索と計算量.
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
配列変数とポインタ 静的確保と動的確保 ポインタ配列 2次元配列 時間計測 第1回レポートの課題
11.再帰と繰り返しの回数.
プログラムの基本構造と 構造化チャート(PAD)
計算機プログラミングI 第6回 2002年11月14日(木) アルゴリズムと計算量 第1回課題の説明 平方根を計算するアルゴリズム 計算量
補講:アルゴリズムと漸近的評価.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
プログラミングⅡ 第2回.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
精密工学科プログラミング基礎 第7回資料 (11/27実施)
第5章 まだまだ続く反復処理!! ~繰り返しその2 for~
プログラミング基礎演習 第4回.
ループだよ!難しいよ! 第5章 while(ループ);.
プログラミング演習I 数値計算における計算精度と誤差
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
知能情報工学演習I 第10回( C言語第4回) 課題の回答
プログラミング論 バイナリーサーチ 1.
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
情報処理3 第4回目講義         担当 鶴貝 達政 12/17/2019.
Presentation transcript:

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

本日の予定 計算量について 「比較実験」  パラメータを変化させての比較 ⇒ 実験1  二つのプログラムの比較 ⇒ 実験2  実験レポート R3として提出 2

計算量の表現 速度の評価 ① 実行時間を実測 前回の実験 ② 文を実行する回数をカウント プログラムの文面を見て、計 算 できる (概算) 3

計算量の表現 次のプログラムを考える 4 sum = 0; for (i = 0; i < N; i++){ for (j = 0; j < N; j++) { sum += data[i][j]; } ①②③④①②③④

計算量の表現  各文の実行回数は、 ① : 1回 ② : N+1 回 ③ : N*(N+1) 回 ④ : N 2 回 合計は、2 N 2 + 2N + 2 回 5

計算量の表現 f(N)= 2 N 2 + 2N + 2  N=10 ⇒ f(N)= 222  N=100 ⇒ f(N)=  N=1000 ⇒ f(N)=  N=10000 ⇒ f(N)= ほぼN 2 に比例する と言える O(N2)O(N2)

計算量の表現 計算量を考える時、比例定数はあ まり意味がない  実行時間は、コンパイラやCP U能力により左右される パラメータ N について、どんなオー ダーであるかが重要 O(N) 、 O(N ・ log(N)) 、 O(N 2 ) 、 O(2 N ) ・・ 7

計算量の表現 アルゴリズムを評価する場合は、 その計算量のオーダーを考える  O(N ・ log(N)) のアルゴリズムは 、 O(2 N ) のアルゴリズムより は るかに速いといえる  実行回数を厳密に 数えるわけではない 8

比較実験 パラメータを変化させての比較 ⇒ 傾向分析 二つのプログラムの比較 ⇒ 比較実験 9

傾向分析 プログラムがパラメータにより異な る振る舞いをする場合 パラメータを変化させる 振る舞いの変化を明確にする (一度に複数の項目を変化させると、 変化の原因がわからなくなる) 10

実験1 プログラム L06Y01 について、  パラメータ RANGE を変化させ、 実行時間の変化を調べよ  また、グラフを描いてその傾向 について考察せよ (対数グラフがよい) 11

プログラムの説明 ( L06Y01 ) 「時間の測定」にて使用  RANGE 以下の素数の数を求める (数える範囲を、 #define 文で定 義している)  2~ RANGE の各々について、 kで割り切れるかどうかを調べ ている ( n%k は n を k で割っ た余り) 12

実験1についての注意 科学的方法を思い出すこと 観察により(つまり、プログラ ムの文面 を見て)仮説を立てる 実行時間 の測定により、仮説を 検証する 13

実験1についての注意 オーダーの考え方( O 記法)を用い て、仮説を立てること  『 RANGE が大きくなったら実行 時間も増大』 お粗末な仮説 実験しなくてもわかる! 14

実験1についての注意 実行時間の測定は、前回と同じ仕 組みを用いる (バッチではない! time() 関数に より、ラップを測る。実行時間 測定ツール (measure.cpp) を使う とよい。)  何桁の有効数字で求めるかを、 考えること 15

実験1についての注意 プログラムを繰り返すのは、測定 精度を上げるため (繰返し回数を増やしても速度は 変わらない 、つまり P10 の「複数 の項目」には入らない) 繰返し回数を固定してはならない 16

比較実験 他のプログラムとの比較により、 プログラムの評価を行なう  二つの実験対象を比較 比較実験 17

実験2 付録Aのプログラムは、任意の整 数を4つの整数の2乗和で表すプ ログラムである 付録Bは、付録Aの改良版 元のプログラム ( 付録A)と改良版 ( 付録B)を比較せよ  プログラムの文面と、実行時間 の両方を比較すること 18

プログラムの説明 (付録 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 文のオーダは ?

プログラムの説明 (付録 B ) A プログラムの繰り返し回数は、 減らすことができる  a > √x ( a 2 > x )の時、明らか に if 文の条件式は成り立たない  a 2 +b 2 > x の時も同様 B は、これらを改良 20

実験2についての注意 実行時間の測定は、前回および実 験1と同じ仕組みを用いる  scanf をループ内に入れないこ と(ループ内にあると、それだ けの回数キーボードからの入力 が必要) 21

実験2についての注意 測定のための繰返し回数は、必要 な有効数字の桁数が出るように適 当な値を設定する  固定する必要もないし、しては ならない  AプログラムとBプログラムで は、当然異なるはず 22

実験2についての注意 仮説を検証するためには、入力値 xはどのような値を何種類くらい 試せばよいのかを考える  悪い例 x = 1 のみで実験したら、どうなる か? 23

課題 O 記法について  O 記法の正確な定義について、 文献を調査せよ  O 記法の利点について、考察せ よ

実験レポート 実験1、2と課題を、レポートR 3として提出せよ  表題は、「比較実験」  章立ては、R1 と同じ (実験は二つなので、第4章が 課題、第5章が結論) 25

次回の予定 「再現性」  実験の再現と実験環境について  本日の実験1、2について、追 実験を行う  レポートR4 として提出 26

お疲れさまでした