講義の目的 H27 情報数学特論 第1回 ―講義計画とウォーミングアップ― コンピュータ・サイエンスにおける諸問題を取り 扱うための道具としての数学を学ぶ (基本) それらの道具を用いて、データ構造やアルゴリ ズムを自分で設計する (応用) 設計した手法の効率を見積もる (解析) 坂本比呂志 九州工業大学大学院情報工学研究院 1 講義の内容 (予定) 第1回:ウォーミングアップ 講義の進め方と成績の評価 ―予備知識や例題― 第2回:動的計画法 第3回:並列計算 第4回:情報の隠蔽 第5回:通信量の削減 第6回:確率的アルゴリズム ―乱数の利用― 第9回:厳密アルゴリズム 演習課題を時間内に提出してください 第10回:幾何学的アルゴリズム 提出された演習課題で成績を評価します ―監視員の配置― ―協力して値を求める― 講義の後に演習時間を設けます ―厳密解をなんとか求めたい― ―相手に安全に情報を伝える― 第8回:近似アルゴリズム ―ほぼ最適に近い解― ―計算をみんなで分担する― 第7回:オンラインアルゴリズム ―現在における最適な選択― ―出来るだけ長い部分列を求める― 2 第11回:分散アルゴリズム ―信頼性の高い並列計算― . . . 講義内容は増減あり 九州工業大学 情報工学部 坂本比呂志 3 4 1 聴講する人へ この講義で使用する概念 以下の行為を認めません RAM (Random Access Machine) モデル 必要のない途中の入退室 課題の提出のみを行う行為 単位認定後の無意味なクレーム 必要な資料は配ります。教科書は必要なし。 アルゴリズムとデータ構造に関する科目を修得している ことを前提とします。 十分に大きな整数を保持できるメモリ、CPU、それらにランダムアクセ スできる制御部(プログラムを格納)からなる機構 単純化されているため、ハードウエアに依存しない 純粋なアルゴリ ズムの性能を見積もることができる 制御部 CPU メモリ RAM モデル 5 現実の計算機 データの読込速度の違い メモリ (一次記憶) 6 メモリ (一次記憶) の速度 6.4GB/s~12.8GB/s ハードディスク (二次記憶) の 速度 84MB/s ~133MB/s (連続領 域を読み込む場合) どの領域で計算するかでコス トが大幅に異なるため、アル ゴリズムの性能を測るための 統一的な尺度が必要 高速 読み書きが高速 容量が比較的小さい 高価格 メモリ(DRAM) ハードディスク (二次記憶) CPU メモリよりずっと遅い ほぼ無制限の容量 低価格 低速 CPUも千差万別 ハードディスク(内部) 7 ディスク内に分割配置 されたデータ 8 http://ja.wikipedia.org/ 九州工業大学 情報工学部 坂本比呂志 2 RAM モデル RAM モデルにおける演算 以下の命令を1単位時間で実行できる 時間計算量と領域計算量 if文の評価やgoto文の実行; 変数への値の代入(x=a); 論理演算と算術演算(ANDやa+bなど); より厳しい仮定:一様コストと対数コスト この講義で使用する計算量の概念 一様コスト:どの命令も1単位(時間/領域)で実行可能とする基 準 対数コスト:整数 n に対してlog n (時間/領域)で実行可能とする 基準 時間計算量:入力長 n に対してRAMが計算を終了す るまでに実行した命令の回数(実時間ではない) 領域計算量:計算を終了するまでに同時に占有した セルの最大個数 同一セルに m 回読み書きしても、そのセルしか使用しな ければ領域計算量はO(1) (定数領域)となる。 本講義では一様コストを仮定する 9 この講義で使用する計算量の概念 この講義で使用する計算量の概念 オーダ(O)記法 (‘高々このくらい’という意味) 10 厳密な定義:ある関数 f(n), g(n) に対して、 最悪計算量と漸近計算量 x2, x2 -10x に対して x2 =O(x2 -10x) O記法によって関数の支配的な項のみを考える 不等号の向きを逆にしたものは下限(Ω)を表す (‘少なくともこのくらい’) 11 九州工業大学 情報工学部 坂本比呂志 最悪(時間)計算量:入力長 n に対する、あるRAMの 最大命令回数 O(f(n)) 漸近計算量:最悪計算量の見積もりから支配的な項 のみを取り出した計算量 例:n 個の実数をソートするために nlogn +2logn+1 回 の比較を行うRAM → O(nlogn) 時間 12 3 ウォーミングアップ 2進符号を順序よく並べる 2進符号の列挙 大小関係による整列 グレイコードによる整列 グレイコードの生成方法 n 桁以下の2進数をすべて重複なく列挙したい 定義 効率的な生成法 右表は整数の2進表現と 対応するグレイコードの列 グレイコードは2進表現 にはない特別な性質が あるそれはなにか? 13 グレイコードとその応用 隣り合うグレイコード同士は、 ある1bitを反転させたもの (つ まり1bitしか違わない) 2進数の場合(信号の変化) 数 2進コード グレイコード 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 グレイコードの生成 n 桁のグレイコードgnの定義 ただしgnはn桁のグレイコードの列 1011→1111→1110→1100 光学センサーや画像認識 で活用:放射線上の隣り合う パターンは1カ所しか変化し ないため、入力が連続に変化 する場合でも誤検出しない グレイコードを用いた光学センサーの スリット円盤 15 この方法では、n+1 桁のグレイコードの生成に n 桁のグレイコードの列を保持しなければならない 他に方法はないか? 16 http://www.e-sensor.omron.com/jp/index.cfm 九州工業大学 情報工学部 坂本比呂志 4 補足 効率のよいグレイコードの生成 演習問題: 1-1:前述の定義で生成さ れるbit列がなぜグレイコー ドとなるのか? つまり、なぜ隣り合うコード が1bitだけ異なるのか? 1-2:整数 n が与えられたと き、n 番目のグレイコードを 高速に計算せよ [ヒント] 2進コードとそれを 右に1bitシフトしたコードを 用いる 九州工業大学 情報工学部 坂本比呂志 数 2進コード グレイコード 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000 グレイコード→2進コードの計算 17 グレイコードと対応する2進コードの最上位bitは常に 同じ 上位桁から決定していく グレイコードの n 桁目とすでに確定した2進コードの n+1 桁目の XOR (排他的論理和) が2進コードへの n 桁目 18 http://www.image.esys.tsukuba.ac.jp/ 5
© Copyright 2024 ExpyDoc