1 ソフトウェア工学 200 5 年 5セメスタ. 2 履修にあたって 教科書:「アルゴリズムとデータ構造」 平田富夫著 森北出版 講義:5セメスター開講、専門科目、 K318 、金曜4時限 担当: 草苅 良至 GI511, 2095、 参考書:「プログラミング作法」

Slides:



Advertisements
Similar presentations
SPSSによるHosmer-Lemeshow検定について
Advertisements

あなたは真夜中に 山の頂上を目指す登山者です
1 7.時間限定チューリングマシンと クラス P. 2 7 -1.入力サイズ チューリングマシンの入力記号 の長さ を 入力サイズという。 名称:合成数の問題 インスタンス:整数n 問:nは合成数か? 通常は、入力サイズとしてはもっとも短い表現での 長さが利用される。 例えば、次のような合成数の問題における入力サイズは、
7.n次の行列式   一般的な(n次の)行列式の定義には、数学的な概念がいろいろ必要である。まずそれらを順に見ていく。
9.線形写像.
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
時間的に変化する信号. 普通の正弦波 は豊富な情報を含んでいません これだけではラジオのような複雑な情報 を送れない 振幅 a あるいは角速度 ω を時間的に変化 させて情報を送る.
情報処理A 第10回 Excelの使い方 その3.
麻雀ゲーム 和島研究室 ソ 小林巧人
5.連立一次方程式.
相関.
1 情報量(2章). 2 物理的概念との対比1(入れ物と中 身) 塩水 塩 データ 情報 情報の量? 塩分の量! 情報の量は見た目ではわ からない。データと情報 は異なる概念。 塩分の量は見た目 ではわからない。 しかし、本質的な もの。
―本日の講義― ・平均と分散 -代表値 -ぱらつき(分散・標準偏差等) ・Excelによる演習
論理回路 第2回 今日の内容 前回の課題の説明 数の体系 – 数の表現 – 代表的な数 – 基数の変換 – 補数.
ノイズ. 雑音とも呼ばれる。(音でなくても、雑 音という) 入力データに含まれる、本来ほしくない 成分.
広告付き価格サービ ス 小園一正. はじめに 世の中には様々な表現方法の広告があり ます。その中でも私たち学生にとって身 近にあるものを広告媒体として取り入れ られている。 価格サービス(無料配布のルーズリー フ)を体験したことにより興味を惹かれ るきっかけとなった。主な目的は、これ.
素数判定法 2011/6/20.
フーリエ係数の性質. どこまで足す? 理想的には無限大であるが、実際に はそれは出来ない これをフーリエ解析してみる.
地球温暖化と 天候の関係性 ~温暖化は天候のせいなのではないのか~. 目的課題 地球温暖化現象 ただの気象条件によるものではないのか? 地球温暖化現象に天候は関係しているの か?
1章 行列と行列式.
プログラミングⅠ( 1 組) 第 9 回
フーリエ級数. 一般的な波はこのように表せる a,b をフーリエ級数とい う 比率:
プログラミング入門2 第4回 式文 代入式 論理演算子 ループの脱出、スキップ 情報工学科 篠埜 功.
3.エントロピーの性質と各種情報量.
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
Excelによる積分.
1 6.低次の行列式とその応用. 2 行列式とは 行列式とは、正方行列の特徴を表す一つのスカ ラーである。すなわち、行列式は正方行列からスカ ラーに写す写像の一種とみなすこともできる。 正方行列 スカラー(実数) の行列に対する行列式を、 次の行列式という。 行列 の行列式を とも表す。 行列式と行列の記号.
計算のスピードアップ コンピュータでも、sin、cosの計算は大変です 足し算、引き算、掛け算、割り算は早いです
線形符号(10章).
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
10.PとNP完全問題との境界.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
1 0章 数学基礎. 2 ( 定義)集合 集合については、 3セメスタ開講の「離散数学」で詳しく扱う。 集合 大学では、高校より厳密に議論を行う。そのために、議論の 対象を明確にする必要がある。 ある “ もの ” (基本的な対象、概念)の集まりを、 集合という。 集合に含まれる “ もの ” を、集合の要素または元という。
人工知能特論II 第7回 二宮 崇.
信号測定. 正弦波 多くの場合正弦波は 0V の上下で振動する しかし、これでは AD 変換器に入れら れないので、オフ セットを調整して データを取った.
1 9.線形写像. 2 ここでは、行列の積によって、写像を 定義できることをみていく。 また、行列の積によって定義される写 像の性質を調べていく。
通信路(7章).
アルゴリズムとデータ構造 補足資料 7-4 「単純交換ソート exsort.c 」 横浜国立大学 理工学部 数物・電子情報系学科 富井尚志.
1 情報理論 2008 年度 4 セメスター. 2 履修にあたって 担当 – 草苅 良至(部屋GI511、内線209 5 ) 教科書 平田廣則著「情報理論のエッセンス」 昭晃堂、 \2,700- ・参考書 今井秀樹著「情報理論」 昭晃堂、 \2,900-
3.プッシュダウンオートマトンと 文脈自由文法
6.符号化法(6章).
ビット. 十進数と二進数 十進数  0から9までの数字を使って 0、1、2、3、4、5、6、7、8、9、 10、11、12 と数える 二進数  0と1を使って 0、1、10、11、100、101、11 0、111 と数える.
アルゴリズムとデータ構造 補足資料14-1 「ハッシュ法」
3.正方行列(単位行列、逆行列、対称行列、交代行列)
プログラミング演習B ML編 第3回 2010/6/15 (コミ) 2010/6/16 (情報・知能) 住井 ~sumii/class/proenb2010/ml3/
論理回路 第1回. 今日の内容 論理回路とは? 本講義の位置づけ,達成目標 講義スケジュールと内容 受講時の注意事項 成績の評価方法.
方程式を「算木」で 解いてみよう! 愛媛大学 教育学部 平田 浩一.
データベース入門 日進高等学校 情報化推進委員会. 表計算ソフトとの比較 表計算ソフト (Excel) データベース ( Access ) 編集 二人目はデータの編集が ロックされる 複数の人が同時にデータ を 編集できる 信頼性 ファイルの数だけ データが存在する データは一つ データ処理 自由.
C言語応用 構造体.
測定における誤差 KEK 猪野 隆 論文は、自ら書くもの 誤差は、自分で定義するもの ただし、この定義は、 多数の人に納得してもらえるものであること.
3.多項式計算アルゴリズム べき乗の計算 多項式の計算.
プログラミング演習B ML編 第3回 2006/7/4 (通信コース) 2006/7/12 (情報コース) 住井 ~sumii/class/proenb2006/ml3/
HKS Analysis Log Jul 2006 Part1 D.Kawama. 第壱部 HKS Sieve Slit Analysis.
知能情報処理 第1回 この授業の概要 組合せ最適化問題とは.
HSPによる学習機能付き シューティングゲームの製作
移動エージェントプログラムの 動作表示のためのアニメーション言 語 名古屋大学情報工学コース 坂部研究室 高岸 健.
1 プログラミング言語論 第13回 プログラムの意味論と検証 (2) 表示的意味論 担当:犬塚. 2 表示的意味論 denotational semantics  表示的意味論では、プログラムの要素とそれが 意味するものを対応付ける。 変数 式 文 A B … A+2 2B+C A:=A+2 if.
プログラミングⅠ( 2 組) 第 1 回 / pLB1.pptx.
8.任意のデータ構造 (グラフの表現とアルゴリズム)
プログラミング入門2 第3回 複合文、繰り返し 情報工学科 篠埜 功.
第14回 プログラムの意味論と検証(3) 不動点意味論 担当:犬塚
実験5 規則波 C0XXXX 石黒 ○○ C0XXXX 杉浦 ○○ C0XXXX 大杉 ○○ C0XXXX 高柳 ○○ C0XXXX 岡田 ○○ C0XXXX 藤江 ○○ C0XXXX 尾形 ○○ C0XXXX 足立 ○○
ことばとコンピュータ 2007 年度 1 学期 第 1 回. 2 ことばとコンピュータ 授業科目名:言語情報処理論 授業題目名:ことばとコンピュータ 履修コード: 5067 教室: 323 一学期開講 授業の進め方 – 基本的に講義中心ですすめ,時々コンピュー タを使う.
オセロの思考アルゴリズムについて 1103072 岩間 隆浩.
1 アルゴリズムの高速化. 2 アルゴリズムにおける 大幅な性能アップ 多項式時間アルゴリズム VS 対数時間アルゴリズム (最大公約数の問題) 指数時間アルゴリズム VS 多項式時間アルゴリズム (フィボナッチ数列を求める問題)
音の変化を視覚化する サウンドプレイヤーの作成
プログラミングの基礎知識 プログラミングの手順と重要概念 アルゴリズム. プログラミングの手順 コーディング エディタなどでコードを記述 コンパイル・インタープリタ 実行可能な形に翻訳 デバッグ(虫取り、不具合の調整) 完成!
1 オペレーティングシステム #7 計算機工学 III オペレーティングシステム #7 主記憶管理:主記憶管理基礎 2006/05/26 津邑 公暁.
本文. 考えながら読みましょ う 「いろいろなこと」( 3 行目)は何で すか 「①電話料金はコンビニで支払いをしていま す。いつでも払えますから、便利です。」 「②夕食はコンビニで買います。お弁当やお かずがいろいろありますから。」今、若者に 人気のあるコンビニは、いろいろなことをす るのに非常に便利な場所になった。
IIR 輪講復習 #18 Matrix decompositions and latent semantic indexing.
Presentation transcript:

1 ソフトウェア工学 200 5 年 5セメスタ

2 履修にあたって 教科書:「アルゴリズムとデータ構造」 平田富夫著 森北出版 講義:5セメスター開講、専門科目、 K318 、金曜4時限 担当: 草苅 良至 GI511, 2095、 参考書:「プログラミング作法」 カーニハン他著、共立出版 「データ構造とアルゴリズム」 エイホ他著、倍風館

3 評価 出席15% レポート25% 試験60%

4 本講義の目的 よいソフトウェアを作成するための基 礎を身に着ける。 良いソフトウェアであることの客観的 な評価法を身に着ける。

5 本講義のレポート 主に C 言語によるプログラミングが伴う。 レポート作成の際には、プログラミング 演習室を用いることができる。ただし、 木曜日と、金曜日の午後は、3セメス ターのプログラミング演習があるので、 他の時間帯に利用すること。

6 本講義では、 主にこの部分 に注目する。 よいソフトウェアとは 同じ処理を速く実行できるソフトウェ ア(同じハードウェアで動作させた場 合。) 同じ処理を少ないメモリで実行できる ソフトウェア 再利用が可能なソフトウェア 誤動作のないソフトウェア 使いやすいソフトウェア 等々

7 ソフトウェア作成の基礎 アルゴリズム プログラミング言語 ( C,Java, 等等) ソフトウェア (プログラム) + データ構造 基礎

8 本講義での主な注目点 同じ処理を速く実行できるアルゴリズ ムの作成と評価 – なお、アルゴリズムとは、計算機の基本操 作の有限個の組み合わせである。すわわち、 機械的な手順で、有限であるもの。厳密に は、チューリング機械や RAM(Random Access Machine) を用いて定義されるが、本 講義では省略する。

9 アルゴリズムの解析 速度の解析 – 数学的解析 O 記法による時間量解析 – 実験的解析 実装と時間計測 正当性 – 数学的証明 帰納法や背理法 – 実験的解析 実装とテスト

10 アルゴリズムの計算量 (complexity)

11 アルゴリズムの計算量1 時間計算量( time complexity) – 総ステップ数(基本演算の総数、アルゴリ ズムでは ∞ にはならない。) – 同じハードウェアでも速く実行できるプロ グラム作成のための指標。 領域計算量( space complexity ) – アルゴリズム実行時に、開始から終了まで の間に使用するメモリやディスクなどの利 用量 – 記憶量ともいう。

12 start end アルゴリズム1 start end アルゴリズム2 時間計算量

13 start end アルゴリズム1 start end アルゴリズム2 領域計算量 記憶量

14 アルゴリズムの計算量2 最大時間計算量 ( worst case time complexity) – 同じ入力サイズの問題に対して、最も遅く動作す る場合を想定したときの時間計算量。 – 最悪計算量ともいう。 平均時間計算量 ( average case time complexity ) – 同じ入力サイズの問題に対して、入力の分布を考 えて、時間計算量を平均したもの。

15 アルゴリズム1 start end 最大時間計算量 start end start end start end ソートアルゴリズム 13467 13674 13467 67143 13467 13476 13467 入力サイズn

16 アルゴリズム1 start end 平均時間計算量 start end start end start end ソートアルゴリズム 13467 13674 13467 67143 13467 13476 13467 入力サイズn

17 アルゴリズムの解析例

18 簡単なアルゴリズム例 (最大値を求める。) 1.big=A[0]; 2.for(i=1;i<n;i++){ 3. if(A[i]>big){ 4. big=A[i]; 5. } 6.} n 回の比較 n-1 回の比較 最悪 n-1 回の代入 最大時間計算量 T (n)=3n-1のアルゴリズム 1回の代入 アルゴリズム max

19 アルゴリズム max の正当性 次の命題を帰納法によって証明する。 for ループが i 回実行されたとき、 big には A[0]~A[i] の最大値が保持されている。 命題1 基礎 i=0 このときは、 big には A[0] が保持されており、明らかに命題 は成り立つ。 証明 帰納 i= kの時、命題1が成り立つと仮定する。(帰納法の仮定) このとき、 i= k+1を考える。

20 帰納法の仮定より、 big=max{A[0],A[1],…,A[k]} A[k+1]>big のとき。 このとき、2つの場合に分けて考える。 場合1 このときは、アルゴリズム max の3.の if 文の条件分岐 が真なので、 big=A[k+1] に更新される。 よって、 k+1 回目の繰り返し終了時には、 big=max{A[0],A[1],…,A[k+1]} A[k+1]<=big のとき。 場合 2 max{A[0],A[1],…,A[k+1]} =max{max{A[0],A[1],…,A[k]},A[k+1]} =max{big,A[k+1]} =big どちらの場合も命題が成り立つ。 QED

21 アルゴリズム max の停止性 次の命題を証明する。 for ループの反復部分は、丁度 n-1 回実行される。 命題2 証明 ループカウンタ i は1からはじまる。 また、ループカウンタ i が繰り返し事に1増加する。 ループカウンタが i = n になったときには、ループの反復 部分は実行されない。したがって、丁度 n-1 回反復部分は 実行される。 QED 命題1と命題2より、アルゴリズム max は正しいことがわかる。

22 漸近的解析 ( Asymptotic Analysis)

23 計算量の漸近的評価 ある関数 f(n) に対して、計算量 T(n )が O( f( n)) であ るとは、 適当な2つの正定数n 0 とcが存在して、n 0 以上のす べてのnに対して T( n )≦cf( n) が成り立つことである。 定義:オーダー記法 T(n)実際の計算計算量は、 一般に複雑になることが多い。 n0n0 f(n) O- 記法を用いれば、 簡単な関数で時間計算量を見積 もれる。 入力サイズ

24 計算量の漸近的評価2 ある関数 g(n) に対して、計算量 T(n )が Ω(g ( n)) であ るとは、 適当な2つの正定数n 0 とcが存在して、n 0 以上のす べてのnに対して T( n )≧c g ( n) が成り立つことである。 定義:オメガ記法 T(n) n0n0 g(n) Ω は計算時間の下限を あらわすのに用いる。 入力サイズ

25 計算量の漸近的評価3 ある関数 h(n) に対して、計算量 T(n )が Θ ( h ( n)) であ るとは、適当な3つの正定数n 0 、c 1 、c 2 が存在し て、n 0 以上のすべてのnに対して c 1 h ( n) ≦T( n )≦ c 2 h ( n) が成り立つことである。 定義 : シータ記法 T(n) n0n0 Θ は漸近的な時間計算量を 定数倍の差で細かく見積もれ る。 Θ で表されるとき、その時間 計算量はタイト( tight) といわ れる。 c 1 h ( n) c 2 h ( n) 入力サイズ

26 アルゴリ ズム 入力 サイ ズ 100MIPS の計算機(1命令あたり 秒) 単位:秒 (sec)

27 関数の漸近的ふるまい (関数の増加率による分類) 指数時間アルゴリズム

28 アルゴリズムの入力について ・問題と問題例 ・入力サイズ

29 問題と問題例 ( problem and problem instances) 問題:現実の問題を定義したもの。 同じような入力と出力の関係を定めたもの。 ・でたらめに並んだ数値を順番にならべる。 ->ソート問題(入力:でたらめな列、 出力:順序列) ・2つの数字の最大公約数を求める。 ー>gcd問題(入力:2つの整数、 出力:1つの最大公約数) ・数の集合から最大値を求める ー>最大値問題(入力:数の集合、 出力:入力中の最大値) ・・・

30 問題例:具体的に数値を与えたもの。 問題は、問題例の集合としてとらえられる。 ・ソート問題例 3 4 2 8 7 → 2 3 4 7 8 1 2 9 7 3 5 6 → 1 2 3 5 6 7 9 4 2 → 2 4 7 1 3 8 → 1 3 7 8 ソート問題 3 4 2 8 7 4 2 7 1 3 8 1 2 9 7 3 5 6 問題 問題例

31 ・最大値問題 3 4 2 8 7 → 8 1 2 9 7 3 5 6 → 9 4 2 → 4 7 1 3 8 → 8 最大値問題 3 4 2 8 7 4 2 7 1 3 8 1 2 9 7 3 5 6 問題 問題例

32 入力サイズ 入力を計算機で表現するときの大きさ。 一つ問題例を定めると入力サイズも定まる。 ソート問題 3 4 2 8 7 4 2 7 1 3 8 1 2 9 7 3 5 6 5 入力サイズ 4 27

33 一様コスト基準(一様コストモデル) どの数の計算も一定時間(定数時間)でき るとき (一つの数の入力サイズは1) 対数コスト基準(対数コストモデル) 数の表現を桁数まで考えて数を扱う。 桁の大きい数同士の計算は大変なので。 (数 a の入力サイズは log a) 本講義では 主にこの基準を用いる この基準を用いるときは、 その都度ことわる

34 対数コストモデルについて (計算機内での数の表現と桁 数) 10進数 2進数 上のように相互変換されるとき、 である。

35 証明 に注意して対数をとる。 また、 とおく。

36 ・最大値問題の入力サイズ 33 424 21 996 1242 → 1242 33 424 21 996 1242 5 一様コスト基準 23234 2+3+2+3+4 =14 対数コスト基準 本講義では、 主にこちらを用いる。