第5章 計算の方法 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語 1.

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
ACM/ICPC と アルゴリズム 「実践的プログラミング」 稲葉 一浩. 自己紹介 ﻪ 理Ⅰ → 理学部情報科学科 → 情報理工学系研究科コンピュータ科学専攻 ﻩ 博士課程1年 ﻩXML を扱う専用言語の研究など ﻪ 個人的には ﻩ ﻯD.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
極小集合被覆を列挙する 実用的高速アルゴリズム
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
ラベル付き区間グラフを列挙するBDDとその応用
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
5.チューリングマシンと計算.
5.チューリングマシンと計算.
An Algorithm for Enumerating Maximal Matchings of a Graph
Permutationグラフと Distance-Hereditaryグラフの 再構築アルゴリズム
計算の理論 II NP完全 月曜4校時 大月美佳.
組合せ最適化 輪講 第1回 ERATO研究員 川原 純.
8.クラスNPと多項式時間帰着.
第2回 内容 ハノイの塔―無向グラフと有向グラフ 教科書の 1.3 節 pp.7-12 参照
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
9.NP完全問題とNP困難問題.
データ構造と アルゴリズム 知能情報学部 新田直也.
非線形方程式の近似解 (2分法,はさみうち法,Newton-Raphson法)
s a b f c e d 2016年度 有限幾何学 期末試験 問1:15点
5.5 The Linear Arboricity of Graphs (グラフの線形樹化数)
7.時間限定チューリングマシンと   クラスP.
二分探索木によるサーチ.
シャノンのスイッチングゲームにおけるペアリング戦略について
MPIを用いた並列処理 ~GAによるTSPの解法~
計算の理論 II NP完全 月曜5校時 大月美佳 平成17年1月17日 佐賀大学理工学部知能情報システム学科.
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
第3回 アルゴリズムと計算量 2019/2/24.
オートマトンとチューリング機械.
Introduction to Soft Computing (第11回目)
25. Randomized Algorithms
b f c a d e g h a b c d e f g 図1 図2 2012年度 有限幾何学 期末試験
計算量理論輪講 chap5-3 M1 高井唯史.
計算の理論 II 言語とクラス 月曜4校時 大月美佳.
First Course in Combinatorial Optimization
A Simple Algorithm for Generating Unordered Rooted Trees
情報生命科学特別講義III (13) 固定パラメータアルゴリズムと 部分k木
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
プログラミング 4 探索と計算量.
最短ネットワーク問題:シュタイナー問題 3-G 023145 長谷川 和弘.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
九州大学大学院 情報学専攻特別講義 (6) 固定パラメータアルゴリズムと 部分k木
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
計算機プログラミングI 第6回 2002年11月14日(木) アルゴリズムと計算量 第1回課題の説明 平方根を計算するアルゴリズム 計算量
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
第4章 データ構造 p.82 [誤] ハミルトニアン経路問題  [正] ハミルトン閉路問題 p.82,83 [誤] セールスパーソン問題
わかりやすいパターン認識 第7章:部分空間法  7.1 部分空間法の基本  7.2 CLAFIC法                  6月13日(金)                  大城 亜里沙.
補講:アルゴリズムと漸近的評価.
直並列グラフの連続多重彩色 西関研究室 吉田進太郎.
第9章 学習アルゴリズムとベイズ決定側 〔3〕最小2乗法とベイズ決定側 発表:2003年7月4日 時田 陽一
5.チューリングマシンと計算.
A02 計算理論的設計による知識抽出モデルに関する研究
11.動的計画法と擬多項式時間アルゴリズム.
生命情報学特論 (6) 固定パラメータアルゴリズムと 部分k木
2008年6月5日 非線形方程式の近似解 2分法,はさみうち法,Newton-Raphson法)
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
離散数学 11. その他のアルゴリズム 五島.
Cプログラミング演習 ニュートン法による方程式の求解.
13.近似アルゴリズム.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
生物情報ソフトウェア特論 (10)固定パラメータアルゴリズムと 部分k木
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
プログラミング論 バイナリーサーチ 1.
第6章のねらい モデルの記述(第4章) モデル上の操作による計算とプログラム(第5章) 本章 アルゴリズム:計算手順 計算のモデル化
Presentation transcript:

第5章 計算の方法 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語 1

= 点集合 V { v ,..., v }, v が始点 v から各点 v への最短距離を r とすると動的計画法の 最適律から = r , 6.1 アルゴリズム(p.131最短路問題) = 点集合 V { v ,..., v }, v が始点 1 n 1 v から各点 v への最短距離を r 1 i i とすると動的計画法の 最適律から = r , 1 r = min{ r + l ( v , v ) | k ¹ j }( j ¹ 1 ) j k k j 一般にこのままでは解 けない 2

ネットワークが有向閉路を持たないとき そのときは、前の式が逐次代入ですぐ解ける。 ネットワークが有向閉路をもたないとき、点の添え字を適当につけ替えれば、有向辺 が存在すれば必ず となるようにできる このとき で、順に求まる。 3

s a c b d 2 5 4 1 6 Acyclic network の例 s a c b d 2 1 5 6 4 1. 点を整合的な全順序に並べる 2. 左から順に最短路が求まる 4

6.1.2 アルゴリズムの実例 平方根の計算 アルゴリズム1(反復による平方根の計算) アルゴリズム2(2分法による平方根の計算) アルゴリズム3(ニュートン法による計算) 5

6.1.4 計算量 計算量とは、計算時間のこと。ただし、定数倍を無視してオーダーで考える。 たとえば、入力の問題の大きさが、n であったとして  などと表現する。 (p.136表6.1参照)  定数倍を無視する。各変数について一番変化の大きい項だけを残す。 定数倍の差は、問題のサイズが大きくなって計算時間が増えていくとき無視できる。 6

問題: 平方根の計算 を求める 注意: 問題: 小数の計算は有限の精度で行われる →近似値しか求められない ある正の実数 x が与えられたときに、2乗すると x に近くなる正の実数 y を精度 d で求める. つまり, となるような y を 1 つ求める

平方根のアルゴリズム: 反復法 x = 90, d = 1 の場合を考える 「y = 0, 1, 2, 3, ... を順に検討してゆき (y+d)2 が 90 より大きくなったら、 その1つ前が解」 実際の動作 x =2, d =0.0001 の場合、 アルゴリズム1 (反復による 平方根の計算)

アルゴリズムの速度 繰り返しの回数で比べる 反復法の場合: プログラムの実行時間の非常におおざっぱな近似 実際のコンピュータの性能と無関係に検討できる 異なる種類の計算の速度差も無視してしまう 反復法の場合: 繰り返しの回数は約 回 精度を1桁増やすと回数も10倍に増える

平方根のアルゴリズム: 二分法の考え方 アイデア: 1桁ずつ求めてゆく 例: 2の平方根(=y)の場合 1. 4 1 4 2 1 3 5 6 … 特徴: 解がある範囲を1/10ずつ狭めてゆく 単純化: →二分法 (次スライド) 0,1,2,3,... と検討 → 1≦y<2 1.0, 1.1, 1.2, ... と検討 → 1.4≦y<1.5 1.40, 1.41, 1.42, ... と検討 → 1.41≦y<1.42 1.410, 1.411, 1.412, ... と検討 → 1.414≦y<1.415

平方根のアルゴリズム: 二分法 アルゴリズム2 (二分法による平方根の計算) x の平方根を精度 d で求める (ただし x > 1): >

平方根のアルゴリズム: 二分法の実際 「区間の幅」が1/2ずつ減ってゆく

アルゴリズムの速度 反復法: 約 回 二分法: 比較: x=2, d=0.0000000001 のとき 反復法: 約 回 二分法: 1回繰り返すごとに区間の幅が1/2になる n回繰り返し後の区間の幅は これが d 以下になるのに要する回数 → 約 回 比較: x=2, d=0.0000000001 のとき 反復法: 約141億回 二分法: 35回 小数点以下 10桁まで求める

計算量の例: 平方根の計算 問題: 精度 d で x の平方根を求める 問題の大きさ: x と d 計算量: 反復法アルゴリズム: 二分法アルゴリズム

6.1.4 計算量 計算量とは、計算時間のこと。ただし、定数倍を無視してオーダーで考える。 たとえば、入力の問題の大きさが、n であったとして  などと表現する。 (p.136表6.1参照)  定数倍を無視する。各変数について一番変化の大きい項だけを残す。 定数倍の差は、問題のサイズが大きくなって計算時間が増えていくとき無視できる。 15

円盤の枚数が n のときにかかる時間は 秒である。 ハノイの塔問題 64 枚の円盤を1枚ずつ別の棒に通して置くことをくり返して円盤の山を左から右端に移動する。このとき常に各棒で下にある円盤は上のものより大きくなければならない。 1枚移動させるのに1秒かかったとして、移し終えるのにどのぐらいの時間がかかるか。 移し終えると世界の終わりが来る。 円盤の枚数が n のときにかかる時間は 秒である。 n= 64 のとき、これは約5,845億年になる。 (なお、ビッグバンは今から約137億年前の発生とされている) 16

証明: f(n) を n 枚の円盤の場合の秒数とする。 17

計算量の違いによる実行時間の差 1回の計算に 1 マイクロ秒 (1×10^-6) かかるときの計算時間 サイズ 10 20 40 100 100秒 400秒 26.7分 2.78時間 1秒 1.06分 1.14時間 277.8時間 6.11時間 923年 4478億年 億年 3.63秒 4060年 たとえ頭の定数がどんなに大きくても次数が高くても多項式時間の増加より、指数時間的増加のほうがすぐに圧倒的に大きくなる。(計算機の能力向上でもカバーしきれない。) 18

良いアルゴリズム (効率的なアルゴリズム) 「良い」は自然言語なのでそのままでは数学的な定義ではない。以下で数学的な定義とする。 計算時間のオーダーが以下のように入力サイズ n の多項式でおさえられるとき、多項式時間のアルゴリズムと呼び、これをもって良いアルゴリズム (nice, efficient algorithm) とする。 指数時間的アルゴリズム n の値が少しでも大きくなると計算時間が爆発的に増えて、事実上計算できなくなる。実際上は「百年後に答が出る」は解けないのと同じことである。 19

ここで述べる問題という言葉の意味: 「与えられた自然数 p が素数であるか」という判定問題は、その中に「19 は素数であるか」「35 は素数であるか」という個々の問題を無限個含んでいる。このとき、 「与えられた自然数 p が素数であるか」を問題と呼び、 「19 は素数であるか」といった個々の問題を例問 (instance) と呼ぶ。つまり、ここで言う問題とは、例問の(可算無限個の) 集まりである。 クラスP:良いアルゴリズムつまり多項式時間のアルゴリズムで解ける問題の全体のなすクラスを P と名付ける。 20

有向グラフ上での r-branching の packing 問題 グラフ上の最短路問題 グラフ上の最大マッチング問題 グラフの平面性判定問題 枝容量つきネットワークの最大流問題 線形計画法(線形計画問題) 有向グラフ上での r-branching の packing 問題 グラフの最小重み spanning tree 問題 素数の判定問題 21

グラフG=(V,E) ( Vは頂点集合、Eは辺集合 |V|=n ) に対して ハミルトニアン閉路問題 グラフG=(V,E) ( Vは頂点集合、Eは辺集合 |V|=n ) に対して 「ひとつの点から出発して他の点をちょうど一度ずつ通って元に戻る閉路が存在するか?」 場合の全てを調べる方法:場合の数が (n-1)! で、小さな n で計算がすぐに破綻する。 ナップザック問題 品物の集合 S={1,2,…,n}, 各品物 i の重さ g_i , 品物の価値 v_i ナップザックに詰められる重量の限界 K 「品物を選んで総重量が K 以下で、価値の和が最大になるようにするには、どの品物を選べばよいか?」 場合の全てを調べる方法: S の部分集合全部を調べることにすると、部分集合は 2^n 個ある。これも計算時間がすぐ破綻する。 22

問題の解の候補をひとつ挙げてそれで問題の答えがNo と分かる可能性のある問題全体のクラス 問題のクラスNP 問題の解の候補をひとつ挙げてそれで問題の答えがYes と分かる可能性のある問題全体のクラス。(厳密な定義で言えば、ある非決定性 (Non-deterministic) Turing 機械で多項式時間 (Polynomial-time) で解ける問題のこと。) 例 ハミルトニアン閉路問題では、実際にハミルトニアン閉路が存在するとき、それを解の候補としてチェックすれば、ただちにYes と答えられる。が、No 存在しないという答えを得るのには、証拠をひとつ挙げただけでは No とは言えない。 問題のクラス co-NP 問題の解の候補をひとつ挙げてそれで問題の答えがNo と分かる可能性のある問題全体のクラス 例 「与えられた自然数 p が素数であるか」は、p を割り切る数の候補をひとつ挙げてそれで実際に割り切れれば No と答えられる。逆に、証拠をひとつ挙げただけでは Yes と答えられない。 23 23

計算量のクラスの関係 NP co-NP P (a) 実は、最近、素数判定問題がクラスPに属することが証明された. (b) 教科書 6.3.1 「計算量の階層」 p.149 「…一筆書きのような「NPであるがPだとはわかっていない」問題である」という記述は誤り。一筆書き問題(Euler 閉路問題)はPに属する。 ハミルトニアン閉路問題 は NP-完全。 24

NP-完全問題 NPに属する問題で、もしその問題に多項式時間の解法 (アルゴリズム)が存在すればNPに属する他の問題がすべて多項式時間のアルゴリズムで解ける、という性質を持つ問題を NP-完全問題と呼ぶ。 単純に見えるものから複雑なものまでこれまでに極めて多数の問題が NP-完全であることが示されている。もし、ひとつのNP-完全問題に多項式時間のアルゴリズムが存在することが分かれば、そこから NP に属する他の全ての問題に対する多項式時間のアルゴリズムが構成できて、クラス P と NP が一致することが分かる。が、逆に言うと、それら全ての問題が良いアルゴリズム、つまり多項式時間のアルゴリズムで解けるとはとても思われないので、問題が NP-完全と分かれば多項式時間のアルゴリズムは存在しないと考える、というのが現在のこの分野の常識である。つまり と考えるのが常識であるが、これは証明されていない。 P=NP かどうかの問題は、非常に大きな未解決問題であるが、現在の数学の論理の枠内では証明できないのではないかと唱える学者もいて、実際のところ証明ができる見通しがまったく立っていない。 25

NP-完全な問題の例 グラフの最小彩色数(点の彩色) Traveling Salesman Problem Chinese Postman Problem is in P ハミルトニアン閉路問題 最長路問題  最短路問題はクラスPに属する 集合のパッキング 集合の Covering 集合分割問題 ナップザック問題 Quadratic Diophantine Equations: Instance [正整数 a, b, c] Question 充足可能性問題:Instance [ 論理命題 ] Generalized Hex(パズル): Instance [グラフ G とその2点 s,t ] 辺で考えると Shannon switching game になってクラスPに属する。 有限オートマトンの非同値性 26

巡回セールスマン問題 (Traveling Salesman Problem) (TSP のホームページ http://www.tsp.gatech.edu/) (ドイツ、15112地点) 27