1. アルゴリズムと計算量.

Slides:



Advertisements
Similar presentations
授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
アルゴリズムと データ構造 第 3 回 基本的なデータ構造(2) : 配列 1. 前回の復習 アルゴリズムの計算量 最悪(最大)計算量 計算量の漸近的評価 (オーダ)  多項式時間アルゴリズム( polynomial time algorithm )  指数時間アルゴリズム( exponential.
プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
Ibaraki Univ. Dept of Electrical & Electronic Eng. Keiichi MIYAJIMA
0章 数学基礎.
富山大学 公開講座 2008 「QRコードを作ろう!」 ~ QRコードを作ろう! ~.
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
1辺が1cmの正方形のあつ紙を、下の図のように1だん、2だん、……とならべて、階だんの形を作ります。20だんのときの、まわりの長さを求めましょう。 3だん 4だん 20この図をかけばわかるけど…。 だんの数とまわりの長さには、どんな関係があるのかな。
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
ファーストイヤー・セミナーⅡ 第8回 データの入力.
香川大学工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学工学部 富永浩之
算法数理工学 第1回 定兼 邦彦.
Q q 情報セキュリティ 第6回:2005年5月20日(金) q q.
4-3:高度なソートアルゴリズム① (分割統治法にもとづくソート)
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
情報知能学科「アルゴリズムとデータ構造」
2009/10/9 良いアルゴリズムとは 第2講: 平成21年10月9日 (金) 4限 E252教室 コンピュータアルゴリズム.
アルゴリズムイントロダクション18章 D3照山順一.
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
情報科学1(G1) 2016年度.
香川大学工学部 富永浩之 情報数学1 第2-1章 合同式の性質と計算 香川大学工学部 富永浩之
1.Atwoodの器械による重力加速度測定 2.速度の2乗に比例する抵抗がある場合の終端速度 3.減衰振動、強制振動の電気回路モデル
データ構造と アルゴリズム 知能情報学部 新田直也.
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
算法数理工学 第1回 定兼 邦彦.
学習の流れ 本時のねらい 「2次方程式を利用して、いろいろな問題を解決しましょう。」 ↓ 課題の提示 カレンダー 図形での活用場面4
アルゴリズムとチューリングマシン 「もの」(商品)としてのコンピュータ 「こと」(思想)としてのコンピュータ アルゴリズム
本時の目標 かっこのついた式を分配法則を使って効率よく解くことができる。
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
第二回 VB講座 電卓を作ろう.
情報工学概論 (アルゴリズムとデータ構造)
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
情報セキュリティ  第8回 RSA暗号.
第3回 アルゴリズムと計算量 2019/2/24.
わんくま同盟茶藝部顧問 Microsoft MVP for VC episthmh
5.RSA暗号 素因数分解の困難性を利用した暗号.
多項式の乗法.
先進的計算基盤システムシンポジウム SACSIS2007併設企画 マルチコアプログラミングコンテスト 「Cellスピードチャレンジ2007」
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
整数データと浮動小数データ.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
学 正多角形のどんな性質を使えば,プログラミングで正多角形を描くことができるだろうか。
情報処理Ⅱ 第2回:2003年10月14日(火).
プログラミング 4 探索と計算量.
計測での注意事項 計測では、重さか厚さのどちらか1つを選択すること。 計測では誤差が生じますが、なるべく誤差が少なくなるように工夫すること。
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
11.再帰と繰り返しの回数.
計算機プログラミングI 第6回 2002年11月14日(木) アルゴリズムと計算量 第1回課題の説明 平方根を計算するアルゴリズム 計算量
中3数 三平方の定理の計算 三平方の定理の逆 中学校 3年数学 三平方の定理 授業第2時に実施する。
5.サーチ 5-1.線形探索 5-2.2分探索 5-3.ハッシュ.
香川大学創造工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学創造工学部 富永浩之
補講:アルゴリズムと漸近的評価.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
Q q 情報セキュリティ 第5回:2006年5月19日(金) q q.
香川大学工学部 富永浩之 情報数学1 第1-2章 最大公約数とユークリッドの互除法 香川大学工学部 富永浩之
香川大学創造工学部 富永浩之 情報数学1 第2-1章 合同式の性質と計算 香川大学創造工学部 富永浩之
Q q 情報セキュリティ 第6回:2005年5月26日(金) q q.
Q q 情報セキュリティ 第8回:2004年5月28日(金) の補足 q q.
高度プログラミング演習 (07).
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
@kagamiz (Jayson Sho Toma)
アルゴリズム ~すべてのプログラムの基礎~.
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

1. アルゴリズムと計算量

授業の説明

コンピュータ内でデータをどのように保持するのか 「データ構造」の講義で学ぶ内容 密接な関係 データ構造の話 アルゴリズムの話 コンピュータ内でデータをどのように保持するのか データを使って どのように 処理させるのか データ 処理結果

処理効率の向上=洗練されたアルゴリズム+データ構造の正しい選択 データ構造の重要性 処理効率の向上=洗練されたアルゴリズム+データ構造の正しい選択 アルゴリズムの設計 データ構造を考慮 コンピュータ資源を考慮 データ構造の選択 アルゴリズムを考慮 コンピュータ資源を考慮 データ 処理結果

他の科目との関連

アルゴリズムの話

手続きとは? 問題を解く手順が書かれている 基本的な演算・操作 記述は有限の長さ Jfkdsoaiejfl;ldsfdsajklaf kljklfjdajfkldldsfdsajklaf fkdjkfdsafjkdssfdsajklaf 基本的な演算・操作 Jfkdstioewpkmvm,ajklaf Jfkdsamekocigjkf;ajkdsf Jewojfdkvm,ladkfgiuako ldsfiewjfnmdaljcidoagjkf 記述は有限の長さ

アルゴリズムとは? 手続き どんな入力でも 必ず停止する 定義域 値域

アルゴリズムの例(ユークリッドの互助法)  m、nは自然数  (1) r ← (n を m で割った余り), (2)に移る。  (2) r = 0 ならば m が最大公約数と答え,計算を停止する。    r ≠ 0 ならば n ← m, m ← r, (1)に移る。 34 14 0 6 2 n m r

何故、「n を m で割った余り」を考えるのか? ユークリッドの互助法(イメージの構築) n=[長い方] m =[短い方] n を m で割った余り 何故、「 n ← m, m ← r 」の代入を行うのか? 何故、「n を m で割った余り」を考えるのか? 今まで短かった方が今度は長い方に 今まで余りだった方が今度は短い方に

ユークリッドの互助法(具体例) 34 6 6 14 2 14 34 14 6 2 0 n m r

停止しない手続きの例(問題設定) 最大公約数問題を市松模様問題として解釈 市松模様問題 → 入力:長方形(縦と横の長さ)    → 入力:長方形(縦と横の長さ)    → 出力:出来るだけ大きい正方形で市松模様を          つけたときの、その正方形のサイズ [長い方]を「短い方]で割った[余り]     =[長]- {[短]×切捨て([長]/[短])}

停止しない手続きの例(手続き) 市松模様問題を解く手続き 計算誤差は無いものとする(現実的な仮定ではない)  (1) r ← ([長い方]を[短い方]で割った[余り]), (2)に移る。  (2) r = 0 ならば [短い方] が正方形のサイズと答え,計算を停止する。    r <> 0 ならば [長い方] ← [短い方], [短い方] ← [余り], (1)に移る。 計算誤差は無いものとする(現実的な仮定ではない)

停止しない手続きの例(定義域) 横 市松模様を解く手続き 縦:横 縦 縦横比が 実数 値域 縦横比が 有理数

自分で考えてみよう 縦横比が有理数だと必ず停止することを証明してみよう 停止しないような縦横比を見つけてみよう

ロシア乗算法(ハードに適した方法) ÷2 ×2 端数を保存 45 → 101101 22 → 101101 2で割る 45 × 19 22 38 19 × + 19 → 10011 38 → 100110 2を掛ける 11 76 × 5 152 76 × + 2 304 152 × + 10進数で10倍 →右に0を追加 2進数で2倍 1 608 × = 合計 855

効率の良し悪しの尺度 プログラムの評価 運転技術の評価 最速F1ドライバーとは? 高速プログラムとは? 最新型マシーンと旧型マシーン 短距離と長距離 優勝回数と平均順位 プログラムの評価 高速プログラムとは? 最新型コンピュータと旧型コンピュータ 大規模データと小規模データ 最悪計算量と平均計算量

計算量(物差と量り方) テストコースで車を50回走らせた 何を量るか(物差) どう評価するか(量り方) 何を量るか(物差) 速度を量る 燃費を量る どう評価するか(量り方) 最悪のタイムで評価 平均で評価 何を量るか(物差) 計算時間を量る   → 時間計算量 使用メモリを量る → 空間計算量 どう評価するか(量り方) 最悪の場合で評価 → 最悪計算量 平均で評価  → 平均計算量

漸近的計算量 良いアルゴリズムはどっち?

時間計算量の例 A B “何倍か?“はアルゴリズムに依存する A 10 B A 100 B A 1000 B 何倍? 何倍? 10×10の 10倍 10倍 何倍? 何倍? 10×10の 計算時間 100×100 の計算時間 1000×1000 の計算時間

時間計算量の例 c :Pの1回の(最悪)処理時間 Pはn3回行われる  ⇒ 計算時間は(最悪) c n3    (計算時間はn3に比例) ←無視 P

何を気にしているのか? 例:(行列の積の計算時間)と(正方形の体積) ⇒ 体積は辺の長さの3乗に比例 ⇒ 計算時間はデータサイズの3乗に比例 (体積の増え方)と(辺の長さの増え方)の関係は?    ⇒ 体積は辺の長さの3乗に比例       (辺が2倍になれば体積は23=8倍になる) (データサイズ)と(計算時間)の関係は?    ⇒ 計算時間はデータサイズの3乗に比例       O(n3)と表記する

計算量のオーダ t(n)はO(f(n))

計算量のオーダ t(n)はΩ(f(n))

計算量のオーダ