• Tidak ada hasil yang ditemukan

計算機数学 - Sophia

N/A
N/A
Protected

Academic year: 2024

Membagikan "計算機数学 - Sophia"

Copied!
54
0
0

Teks penuh

(1)

2012年度春期

計算機数学 ( 情報理工学科 ) 電子計算機概論 I ( 数学科 )

(担当: 角皆)

(2)

本講義の概要

「計算」を対象とする数学

「計算」の定式化

「計算」の実現

「計算」の量と質

→ 「計算する」 とは ?

(3)

本講義の概要

「計算」を対象とする数学

「計算」の定式化

「計算」の実現

「計算」の量と質

→ 「計算する」 とは ?

(4)

「計算する」とは?

「計算」

k

計算機で行なえること

では、計算機では何を行なっているのか ?

(5)

「計算する」とは?

「計算」

k

計算機で行なえること

では、計算機では何を行なっているのか ?

(6)

計算機

アナログ計算機

? 物理量

? 図式計算(計算図表・ノモグラム)

? 計算尺

ディジタル計算機

? プログラム機構方式

? プログラム入力方式

? プログラム内蔵方式 (von Neumann方式)

量子計算機

(7)

計算機

アナログ計算機

? 物理量

? 図式計算(計算図表・ノモグラム)

? 計算尺

ディジタル計算機

? プログラム機構方式

? プログラム入力方式

? プログラム内蔵方式 (von Neumann方式)

量子計算機

(8)

計算機

アナログ計算機

? 物理量

? 図式計算(計算図表・ノモグラム)

? 計算尺

ディジタル計算機

? プログラム機構方式

? プログラム入力方式

? プログラム内蔵方式 (von Neumann方式)

量子計算機

(9)

計算機

アナログ計算機

? 物理量

? 図式計算(計算図表・ノモグラム)

? 計算尺

ディジタル計算機

? プログラム機構方式

? プログラム入力方式

? プログラム内蔵方式 (von Neumann方式)

量子計算機

(10)

本講義の概要()

「計算」の実現 : 計算機

? 数の表し方・二進法・Boole代数

? 計算機の実現

論理回路・演算回路・順序回路

? 計算(プログラム)の実際 簡易アセンブラ

(11)

本講義の概要()

「計算」の定式化

? 計算機のモデル化

有限オートマトン・Turing機械など

? 計算機の扱う言語・文法

正規表現・生成文法・文脈自由言語など

? 計算可能性の理論

普遍Turing機械と対角線論法

(12)

本講義の概要()

「計算」の量と質

? 計算量の理論

多項式時間・“P vs NP”問題など

? 幾つかの数理アルゴリズム

Euclidの互除法

素数判定・素因数分解

並べ替え

高速Fourier変換 など

(13)

既習事項(かどうか)の確認

計算機での数の扱い方

? 二進法表示

? 桁溢れ判定

? 符号付き整数の表現(“2の補数表示”)

? Endianについて

? 浮動小数点数(指数部・仮数部)

(14)

既習事項(かどうか)の確認

計算機の実現

? 論理ゲート (NOT・OR・AND)

? Boole代数

? 演算回路 (加算機・multiplexerなど)

? 順序回路 (feedback回路による状態保持)

計算(プログラム)の実際 アセンブラプログラミング

(15)

計算機での情報の表し方

計算機内では全てのデータを 0,1 の組()で表す 情報の最小単位 :

01: bit (binary digit) 実際には幾つかのbitを組にして一度に扱う

(通常は 8 bit = 1 byte (octet)) 1 byte で 28=256 通りの値を表せる

(16)

計算機での数の表し方 計算機内の 0,1 の列を、

二進表記(二進法)で数値として扱う 正の整数の場合、1 byte

0x28−1=255

の範囲の値が表せる

(17)

十進表記←→二進表記の変換 十進 二進

0 00000000 1 00000001 2 00000010 3 00000011 4 00000100 5 00000101

... ... 253 11111101 254 11111110 255 11111111

(18)

二進の九九(一一?)の表

+ 0 1 0 0 1 1 1 10

× 0 1

0 0 0

1 0 1

(19)

文字の表し方

符号化(coding)して数値(文字番号)で表す

(文字コード) アスキーコード(ASCII code) 対応表 0 1 2 3 4 5 6 7 8 9 a b c d e f 2 ! " # $ % & ’ ( ) * + , - . / 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ \ ] ^ 6 ‘ a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { | } ~

(20)

計算の理論

計算機に於ける「計算」の各ステップ

(= 命令の実行) は、

計算機内の記憶素子(メモリ)

現在の値(状態)に従って、

その値を変更(書込)すること

(21)

計算の理論

プログラム内蔵方式(von Neumann)では、

プログラム・データを区別なくメモリ上に置くが、

プログラムとデータとは、やはり本質的に違う

プログラム : 一つの問題では固定

データ : 可変な入力

どんな(有効な)データ(入力)が来ても、

所定の出力を返すことが要請される

(22)

計算の理論

プログラム内蔵方式(von Neumann)では、

プログラム・データを区別なくメモリ上に置くが、

プログラムとデータとは、やはり本質的に違う

プログラム : 一つの問題では固定

データ : 可変な入力

どんな(有効な)データ(入力)が来ても、

所定の出力を返すことが要請される

(23)

計算の理論

プログラム内蔵方式(von Neumann)では、

プログラム・データを区別なくメモリ上に置くが、

プログラムとデータとは、やはり本質的に違う

プログラム : 一つの問題では固定

データ : 可変な入力

どんな(有効な)データ(入力)が来ても、

所定の出力を返すことが要請される

(24)

計算の理論

或る問題の「計算が可能」

m

その計算を行なうプログラムが存在

計算機の機能 ( =「計算」のモデル) を決めて議論

→ 代表的な「計算のモデル」を幾つか紹介

(25)

計算の理論

或る問題の「計算が可能」

m

その計算を行なうプログラムが存在

計算機の機能 ( =「計算」のモデル) を決めて議論

→ 代表的な「計算のモデル」を幾つか紹介

(26)

計算の理論

或る問題の「計算が可能」

m

その計算を行なうプログラムが存在

計算機の機能 ( =「計算」のモデル) を決めて議論

→ 代表的な「計算のモデル」を幾つか紹介

(27)

問題を「計算する」とは

入力(データ)

⇓ プログラム

⇓ 出力・動作 原理・理論を考える際には、

出力は最も単純に「0 か 1 か」とする

0 : 拒否(reject)

1 : 受理(accept)

(28)

問題を「計算する」とは

入力(データ)

⇓ プログラム

⇓ 出力・動作 原理・理論を考える際には、

出力は最も単純に「0 か 1 か」とする

0 : 拒否(reject)

1 : 受理(accept)

(29)

「問題」とは

入力(データ)

⇓ プログラム

⇓ 受理か拒否か

解くべき「問題」 : 入力を受理する条件

(30)

「問題」の例

入力の範囲 : 文字 a, b から成る文字列

「問題」 : 入力を受理する条件

a と b との個数が同じ

a が幾つか続いた後に b が幾つか続いたもの

a で始まり a, b が交互に並んで b で終わる

同じ文字列 2 回の繰返しから成る

回文(palindrome)

などなど

(31)

「問題」とは

それぞれの「問題」に対し、

定められた計算モデルで、

受理/拒否判定が可能(問題が解ける)? 受理される文字列が

「文法に適っている」文字列だと思えば、

「問題」とは「文法(言語)」である

「文法に適っている」かどうかの判定

· · ·「構文解析(syntactic analysis)

(32)

「問題」とは

それぞれの「問題」に対し、

定められた計算モデルで、

受理/拒否判定が可能(問題が解ける)? 受理される文字列が

「文法に適っている」文字列だと思えば、

「問題」とは「文法(言語)」である

「文法に適っている」かどうかの判定

· · ·「構文解析(syntactic analysis)

(33)

「問題」とは

それぞれの「問題」に対し、

定められた計算モデルで、

受理/拒否判定が可能(問題が解ける)? 受理される文字列が

「文法に適っている」文字列だと思えば、

「問題」とは「文法(言語)」である

「文法に適っている」かどうかの判定

· · ·「構文解析(syntactic analysis)

(34)

代表的な計算モデル

有限オートマトン(有限状態機械)

プッシュダウンオートマトン

チューリングマシン など

(35)

チューリングマシン

無限(非有界)のメモリにランダムアクセスできる

計算機モデル Church-Turingの提唱

「全てのアルゴリズム(計算手順)は、

チューリングマシンで実装できる」

(アルゴリズムと呼べるのは

チューリングマシンで実装できるものだけ)

· · · 「アルゴリズム(algorithm)」の定式化

(36)

万能チューリングマシン

プログラム内蔵方式(von Neumann)

· · · プログラムもデータとして保持

→ 一つの機械で様々な計算を柔軟に実現 同様の働きをするチューリングマシンが存在

· · · 万能チューリングマシン

(universal Turing machine) 全てのチューリングマシンの動作を模倣する

(37)

計算可能性の理論

チューリングマシンは、

どんな問題(言語)でも計算できるのか?

「計算できる」とは?

認識する :

正しければ受理 (そうでなければ受理しない)

判定する :

正しければ受理、そうでなければ拒否

(認識可能だが)判定不可能な問題が存在する!!

(38)

計算可能性の理論

チューリングマシンは、

どんな問題(言語)でも計算できるのか?

「計算できる」とは?

認識する :

正しければ受理 (そうでなければ受理しない)

判定する :

正しければ受理、そうでなければ拒否

(認識可能だが)判定不可能な問題が存在する!!

(39)

計算可能性の理論

チューリングマシンは、

どんな問題(言語)でも計算できるのか?

「計算できる」とは?

認識する :

正しければ受理 (そうでなければ受理しない)

判定する :

正しければ受理、そうでなければ拒否

(認識可能だが)判定不可能な問題が存在する!!

(40)

計算可能性の理論

チューリングマシンは、

どんな問題(言語)でも計算できるのか?

「計算できる」とは?

認識する :

正しければ受理 (そうでなければ受理しない)

判定する :

正しければ受理、そうでなければ拒否

(認識可能だが)判定不可能な問題が存在する!!

(41)

計算量の理論

問題の難しさを如何に計るか ?

(計算モデルを固定して)

解くのに掛かる資源の分量で計る

· · · 計算量(complexity)

時間計算量 : 計算に掛かるステップ数(手間)

空間計算量 : 計算に必要なメモリ量(場所)

(42)

計算量の理論

問題の難しさを如何に計るか ?

(計算モデルを固定して)

解くのに掛かる資源の分量で計る

· · · 計算量(complexity)

時間計算量 : 計算に掛かるステップ数(手間)

空間計算量 : 計算に必要なメモリ量(場所)

(43)

計算量の理論

計算量はアルゴリズム(計算方法)によって変わる

· · · アルゴリズムの計算量

→ アルゴリズムの効率 の評価 問題の計算量 :

その問題を解くアルゴリズムの計算量の下限 最も効率良く解くと、どれ位で解けるか

= どうしてもどれ位必要か

= どれ位難しい問題か

→ 問題そのものの難しさ の評価

(44)

計算量の理論

計算量はアルゴリズム(計算方法)によって変わる

· · · アルゴリズムの計算量

→ アルゴリズムの効率 の評価 問題の計算量 :

その問題を解くアルゴリズムの計算量の下限 最も効率良く解くと、どれ位で解けるか

= どうしてもどれ位必要か

= どれ位難しい問題か

→ 問題そのものの難しさ の評価

(45)

計算量の理論

入力データが大きくなれば計算量も増える

→ 入力データ長に対する増加のオーダーで表す (Landau の O-記号) 多項式時間 P · · · ∃k:O(nk)

事実上計算可能な難しさ

「しらみつぶし」が入ると

大体 O(2n) 程度以上になる(指数時間 EXP)

事実上計算不可能

(46)

計算量の理論

入力データが大きくなれば計算量も増える

→ 入力データ長に対する増加のオーダーで表す (Landau の O-記号) 多項式時間 P · · · ∃k:O(nk)

事実上計算可能な難しさ

「しらみつぶし」が入ると

大体 O(2n) 程度以上になる(指数時間 EXP)

事実上計算不可能

(47)

計算量の例

加法 : O(n)

乗法 : O(n2) かと思いきや O(nlognlog logn) (高速Fourier変換(FFT))

互除法 : O(n3) (FFTで O(n2lognlog logn))

素数判定 : 多項式時間 P

素因数分解: 多項式時間Pかどうか判っていない

(48)

計算量の例

加法 : O(n)

乗法 : O(n2) かと思いきや O(nlognlog logn) (高速Fourier変換(FFT))

互除法 : O(n3) (FFTで O(n2lognlog logn))

素数判定 : 多項式時間 P

素因数分解: 多項式時間Pかどうか判っていない

(49)

計算量の例

加法 : O(n)

乗法 : O(n2) かと思いきや O(nlognlog logn) (高速Fourier変換(FFT))

互除法 : O(n3) (FFTで O(n2lognlog logn))

素数判定 : 多項式時間 P

素因数分解: 多項式時間Pかどうか判っていない

(50)

計算量の例

加法 : O(n)

乗法 : O(n2) かと思いきや O(nlognlog logn) (高速Fourier変換(FFT))

互除法 : O(n3) (FFTで O(n2lognlog logn))

素数判定 : 多項式時間 P

素因数分解: 多項式時間Pかどうか判っていない

(51)

非決定性計算量 あてずっぽうを許して、

うまくいけばどの位で解けるか

= 答を知って、その検証にどの位かかるか 非決定性多項式時間(NP) :

非決定性の計算モデルで多項式時間で解ける 例 : 素因数分解は NP

· · · 素因数を知っていれば割算するだけ

(52)

未解決問題 (P vs NP Problem) P=NP

であるか否か ?

“The Millennium Problems”

の 7 つの問題のうちの 1 つ

(53)

未解決問題 (P vs NP Problem) P=NP

であるか否か ?

“The Millennium Problems”

の 7 つの問題のうちの 1 つ

(54)

参考 : The Millennium Problems

2000年に Clay 数学研究所 (CMI) により

賞金 $1M が懸けられた 7 つの問題

Birch and Swinnerton-Dyer 予想

Hodge 予想

Navier-Stokes方程式の解の存在と微分可能性

P vs NP 予想

Poincar`e 予想 (Perelman により解決(2003))

Riemann 予想

Yang-Mills 方程式と質量ギャップ問題

Referensi

Dokumen terkait

2 会計の機能 マクロ的機能 利害調整 情報提供 企業横断的機能 法制度 企業横断的機能 法制度 説明調整 3 会計の機能 ミクロ的機能 情報提供 意思決定支 援 契約支援 企業特殊的機能 経済学 企業特殊的機能 経済学 説明機能 • 資金委託者に対して資金受託者の受託責任 の履行状況を説明する機能が,会計の説明 機能です。 ■第1章参照

マクロ的経済機能のまとめ 13 関連法令 会計の基本機 能 経済的意義 情報の特性 利害調整 会社法 配当可能利益 の計算 企業成果の 公正な分配 信頼性 情報提供 金融商品取引法 投資情報の 提供 効率的な 資源配分 目的適合性 レモンの原理 原典 G.A.アカロフ(1940- )の1970論文

7 モデルの理論的基礎 • 井尻[1968]の会計測定論。会計測定の3公理。 • 井尻モデルの修正。「借方は財の増分,貸方は財の減分」という因果性を,「現金収支と原 因事象」の因果性に修正。現金収支は,会計測定の3公理を縮約。現金は,基本財とされ, 計算貨幣として機能することになる。 •

2 知 思 態 ・ ・ ・ ・ 等分除や包含除の意味を理解し,除法の適用場面を式に表して,九九を用いて答えを求めることができる。 答えが九九にないわり算の答えを求めることができる。 わり算の計算の仕方を考え,説明することができる。 同じ数ずつに分ける計算のよさに気づき,わり算を日常生活上の問題の処理に役立てようとする。 小単元 時 ページ 目 標

直線ℓ 上にO から見た符号付き長さがaの点Aを,直線m上 にO から見た符号付き長さがbの点B を取ります.. 点F と点Aを結び,点B を通りF Aに並行な直線とℓと の交点C の,O

授業概要 今までの代数系科目(代数学基礎・代数学I(群論)・ 代数学II(環と加群))を踏まえて、体論およびガ ロア理論について講義する。 体論の基礎事項として、体の構成・代数拡大・超越 拡大・代数閉体・拡大次数・共役・正規拡大・分離 拡大などの概念を導入した後、 ガロア理論の基本定理を紹介し、基本的な例として 有限体・円分体・クンマー拡大などに触れる。

授業の到達目標 体の拡大の基礎事項として、 代数拡大・超越拡大・拡大次数 ・共役・正規拡大・分離拡大 などの概念を理解する。 特に、ガロア拡大に対するガロア群の重要性、 およびガロア理論の基本定理・ガロア対応を理解する。 実例として、 有限体・円分体・クンマー拡大などに慣れ親しむ。 簡単な場合に与えられた多項式のガロア群を計算したり、

計算の理論 プログラム内蔵方式von Neumann型では、 プログラム・データを区別なく メモリ上に置いていたが、 プログラムとデータとは、やはり本質的に違う • プログラム: 一つの問題では固定 • データ: 可変な入力 ⇓ どんな有効なデータ入力が来ても、 所定の出力を返すことが要請される —電子計算機概論I 6—... 計算の理論