情報科学概論Ⅰ「計算とアルゴリズム」 2015・07・14 担当: 亀山幸義 プログラムHとG プログラムの実行の停止・非停止 1引数のJavaプログラムPと、 入力の文字列s に対して、 プログラムH P(s)↓ …この計算が停止して答えを出す プログラムG P(s)↑ … この計算が停止しない H(p,s)=1 … p(s) ↓ のとき H(p,s)=0 … それ以外 G(p)=無限ループ …H(p,p)=1のとき G(p)=1 …それ以外 なんと、既に矛盾している G(G)↓ → H(G,G)=1 → G(G) = 無限ループ G(G)↑ → H(G,G)=0 → G(G) = 1 1 コンピュータ科学の基本中の基本 1.Turing Machine (チューリング機械) コンピュータ科学の基本中の基本 2.Church-Turing’s thesis (チャーチとチューリングの提唱) Alan Turingが提唱した計算モデル 2 計算モデル=計算を表現するための抽象的な(しか し、厳密な)仕組み 機械(machine)=抽象的なコンピュータ 計算可能な部分関数とは、 これは、他のたくさんの計算モデルと同等 1本の無限長テープと、有限個の命令(プログラム)か ら構成される。 プログラム内蔵方式(フォン・ノイマン機械)を表す。 Turing機械で表現できるもののことである。 ラムダ計算で表現できるもの 帰納的部分関数として表現できるもの Javaなどのプログラム言語を理想化したもの(無限メモ リなど) 3 課題1 コンピュータ科学の基本中の基本 3.決定可能問題 文字列sの中に、tsukubaという文字列が含まれるか 文字列sは、1引数Javaプログラムを表しているか 与えられたプログラムが停止するかどうか 5 Turing機械 (学籍番号が3で割り切れる人) ラムダ計算 (3で割って1余る人) 帰納的関数(あるいは帰納的部分関数、あるいは、再帰的 関数) (3で割って2余る人) オプション課題:余力がある人向け 決定可能でない問題を決定不能という。 以下の計算モデルについて調査し、その内容をレポ ートに書きなさい。 決定問題:入力sに対して、yes/noを返す問題 決定問題の解が、計算可能な関数で表現できる場 合、その問題を決定可能という。 4 ゲーデルの不完全性定理について調べなさい。 エッシャーの絵は無限ループを表しているようにも見える。 止まらない計算で有意義なものはあるか? バッハはコンピュータ科学とどう関係するか。 6 1 情報科学概論Ⅰ「計算とアルゴリズム」 2015・07・14 担当: 亀山幸義 アルゴリズム Fibonacci数(1) Fib (n) 1 if n = 1, 2 = Fib(n-2) + Fib(n-1) if n > 2 アルゴリズム アルゴリズムとプログラムの違い Fib(1) = Fib(2) = 1 Fib(3) = Fib(1) + Fib(2) = 1 + 1 = 2 Fib(4) = Fib(2) + Fib(3) = 1 + 2 = 3 「問題」に対する「解き方」 与えられた基本命令をどう組み合わせて、解を求め るかを記述したもの。 プログラムは、特定のプログラム言語で記述。その言 語の処理系を用いて実行可能。 アルゴリズムは、特定のプログラム言語や実装方式 に関する記述を取り除いた記述。抽象的な(しかし、 手順が明確になった)記述。 7 Fib(n)に対する、より高速な方法(2) 8 Fib(n)に対する、より高速な方法(3) メモ化法: x = Fib(n-1) ⇒ x2 = y = Fib(n) y = Fib(n) y2 = x+y = Fib(n-1)+Fib(n) = Fib(n+1) 0 1 0 1 x x2 = y y2 1 n-1 1 = Fib(n) Fib(n+1) 1 1 A= 0 1 10 課題2 整数の 加算 Fib(n)-1 n-2 < 8 log n 1 n-1 1 = Fib(n) Fib(n+1) 1 1 9 「より高速な方法」は本当に高速か? 整数の 乗算 素朴法 0 メモ化法 0 より高速 < 16 log n な方法 1 1 A → A^2 → A^4 → …. → A^1024 1 1 問題 0 1 合計 自分の学籍番号の下7けたをNとするとき、Fib(N)の 下5けたを計算せよ。 Fib(n)-1 n-2 <24 log n 20151234567 の人は、N=1234567とせよ。 プログラムを書いてもよいし、他の手段を使ってもよい。 高速なアルゴリズムを使った場合は加点する。 オプション課題(余力がある人向け) 「P=NP問題」 が、コンピュータ科学における最大の難問として、今 も解かれていない。これがどういう問題かレポートに まとめよう。以下のキーワードを参考にしても良い。 11 これらを下2けたに修正します SAT問題、ナップザック問題、巡回セールスマン問題 非決定性、NP完全 12 2
© Copyright 2024 ExpyDoc