Microsoft PowerPoint - DA2_2018.pptx

Similar documents
Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2017.pptx

PowerPoint Presentation

Microsoft PowerPoint - DA2_2019.pptx

Microsoft PowerPoint - ad11-09.pptx

離散数学

Microsoft PowerPoint - 13approx.pptx

Microsoft PowerPoint - mp11-06.pptx

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - DA2_2018.pptx

Microsoft PowerPoint - H20第10回最短経路問題-掲示用.ppt

Microsoft PowerPoint - H20第10回最短経路問題-掲示用.ppt

Microsoft PowerPoint - ppt-7.pptx

算法の設計と評価

離散数学

PowerPoint プレゼンテーション

計算幾何学入門 Introduction to Computational Geometry

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

Microsoft PowerPoint - 05.pptx

Microsoft PowerPoint - mp11-02.pptx

アルゴリズムとデータ構造

PowerPoint Presentation

Microsoft PowerPoint - 06graph3.ppt [互換モード]

Microsoft PowerPoint - 13.ppt [互換モード]

PowerPoint プレゼンテーション

数学 Ⅲ 無限等比級数の問題解答 問 1 次の無限級数の和を求めよ (1) (5) (2) (6) (7) (3) ( 解 )(1) 初項 < 公比 < の無限等比級数より収束し (4) (2) (3) その和は ( 答 ) であるから 初項 < 公比 となっている よって 収束し その和は よって

Microsoft PowerPoint - 13基礎演習C_ITプランナー_2StableMatching.pptx

Microsoft PowerPoint - 09re.ppt [互換モード]

Microsoft PowerPoint - ca ppt [互換モード]

調和系工学 ゲーム理論編

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

学習指導要領

IPSJ SIG Technical Report Vol.2015-AL-152 No /3/3 1 1 Hayakawa Yuma 1 Asano Tetsuo 1 Abstract: Recently, finding a shortest path in a big graph

数値計算法

スライド 1

Microsoft Word - VBA基礎(3).docx

Microsoft PowerPoint - 応用数学8回目.pptx

三者ミーティング

PowerPoint Presentation

A Constructive Approach to Gene Expression Dynamics

情報システム評価学 ー整数計画法ー

学習指導要領

Microsoft PowerPoint - algo ppt [互換モード]

Taro-再帰関数Ⅲ(公開版).jtd

JavaプログラミングⅠ

Microsoft Word - 201hyouka-tangen-1.doc

学習指導要領

2-1 / 語問題 項書換え系 4.0. 準備 (3.1. 項 代入 等価性 ) 定義 3.1.1: - シグネチャ (signature): 関数記号の集合 (Σ と書く ) - それぞれの関数記号は アリティ (arity) と呼ばれる自然数が定められている - Σ (n) : アリ

memo

曲線 = f () は を媒介変数とする自然な媒介変数表示 =,= f () をもつので, これを利用して説明する 以下,f () は定義域で連続であると仮定する 例えば, 直線 =c が曲線 = f () の漸近線になるとする 曲線 = f () 上の点 P(,f ()) が直線 =c に近づくこ

Microsoft PowerPoint - H22制御工学I-10回.ppt

umeda_1118web(2).pptx

プログラミングA

PowerPoint Presentation

オートマトンと言語

スライド タイトルなし

1. はじめに 二分木ヒープ 様々なアルゴリズムにおいて ある要素の集合またはリストから 最小 な要素を取り 出す必要がある そのような場合に使われる標準的データ構造が二分木ヒープ (binary heap) である あるオブジェクトO を考える そのオブジェクトは ラベル O. label と値

前期募集 令和 2 年度山梨大学大学院医工農学総合教育部修士課程工学専攻 入学試験問題 No.1/2 コース等 メカトロニクス工学コース 試験科目 数学 問 1 図 1 は, 原点 O の直交座標系 x,y,z に関して, 線分 OA,OB,OC を 3 辺にもつ平行六面体を示す. ここで, 点 A

文字数は1~6なので 同じ本数の枝を持つパスで生成される呪文の長さは最大で6 倍の差がある 例えば 上図のようなケースを考える 1サイクル終了した時点では スター節点のところに最強呪文として aaaaaac が求まる しかしながら サイクルを繰り返していくと やがてスター節点のところに aaaaaa

様々なミクロ計量モデル†

Microsoft PowerPoint - ce07-09b.ppt

Microsoft PowerPoint - 10.pptx

Taro-数値計算の誤差(公開版)

プログラミングA

Microsoft Word - 町田・全 H30学力スタ 別紙1 1年 数学Ⅰ.doc

NetworkKogakuin12

memo

AI 三目並べ

DVIOUT

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

() ): (1) f(x) g(x) x = x 0 f(x) + g(x) x = x 0 lim f(x) = f(x 0 ), lim g(x) = g(x 0 ) x x 0 x x0 lim {f(x) + g(x)} = f(x 0 ) + g(x 0 ) x x0 lim x x 0

PowerPoint プレゼンテーション

不偏推定量

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

alg2015-6r3.ppt

東邦大学理学部情報科学科 2014 年度 卒業研究論文 コラッツ予想の変形について 提出日 2015 年 1 月 30 日 ( 金 ) 指導教員白柳潔 提出者 山中陽子

学習指導要領

Microsoft Word - NumericalComputation.docx

PG13-6S

<4D F736F F F696E74202D D8C7689E682C68DC5934B89BB F A2E707074>

第 4 週コンボリューションその 2, 正弦波による分解 教科書 p. 16~ 目標コンボリューションの演習. 正弦波による信号の分解の考え方の理解. 正弦波の複素表現を学ぶ. 演習問題 問 1. 以下の図にならって,1 と 2 の δ 関数を図示せよ δ (t) 2

Microsoft PowerPoint - sakurada3.pptx

< F2D332093F18E9F95FB92F68EAE2E6A7464>

Microsoft PowerPoint SIGAL.ppt

論理と計算(2)

学習指導要領

Microsoft PowerPoint - AG03-10black.ppt

INTRODUCTION TO ALGORITHMS

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

頻出問題の解法 4. 絶対値を含む関数 4.1 絶対値を含む関数 絶対値を含む関数の扱い方関数 X = { X ( X 0 のとき ) X ( X <0 のとき ) であるから, 絶対値の 中身 の符号の変わり目で変数の範囲を場合分けし, 絶対値記号をはずす 例 y= x 2 2 x = x ( x

計算機シミュレーション

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図

Information Theory

alg2015-2r4.ppt

. 角の二等分線と調和平均 平面上に点 を端点とする線分 と を重ならないようにとる, とし とする の二等分線が線分 と交わる点を とし 点 から に垂直に引いた直線が線分 と交わる点 とする 線分 の長さを求めてみよう 点 から に垂直な直線と および との交点をそれぞれ, Dとする つの直角三

Microsoft PowerPoint - ProD0107.ppt

COMPUTING THE LARGEST EMPTY RECTANGLE

Microsoft PowerPoint - NA03-09black.ppt


-5 -

Transcription:

1//1 データ構造とアルゴリズム IⅠ 第 回単一始点最短路 (I). 単一始点最短路問題 第 章の構成 単一始点最短路問題とは 単一始点最短路問題の考え方 単一始点最短路問題を解くつのアルゴリズム ベルマン フォードのアルゴリズム トポロジカル ソートによる解法 ダイクストラのアルゴリズム 単一始点最短路問題とは 単一始点最短路問題とは 前提 : 重み付き有向グラフ 特定の開始頂点 から任意の頂点 v までの最短路を求める問題 例 : シカゴからボストンまでの最短経路 最短 重み最小 ( 経路本数最小ではない ) 最短路重み δ(u, v) w(u, v) u v の重み δ(u, v) u v の最短路重み u v の経路がないとき δ(u, v) = 1 1 11 11 1

1//1 単一始点最短路問題で得られる情報 (1) 始点 から任意の頂点 v までの最短路重み δ(, v) () 任意の頂点 v までの経路 先行点 π[v] v の前の頂点 π[v] は最短路木を構成 1 11 各頂点内の数字が δ(, v) 緑の辺の集合が最短路 始点から特定の頂点への経路や最短路重み ではなく, 始点から各頂点へのそれ を求めているという点に注意 派生問題 単一始点最短路問題 (1 to N) が解けると以下の問題も解ける 単一目的地最短路問題 (N to 1) 辺の向きを逆転したグラフで 1 to N を解けば良い 単一点対最短路問題 (1 to 1) 単一始点最短路から自明 一見,1 to 1 なので単一始点最短路を求めるよりも良い方法がありそうだが, 最悪の場合に漸近的に速く実行できる方法は知られていない 全点対最短路問題 (N to N) N 回 1to N を解けば良いが, もっと良い方法もある 第 章 単一始点最短路問題の考え方 ざっくりとした解き方の説明 各頂点に始点 からの重みの上界値を記録. 最初は全部 適当なアルゴリズムで各辺を調べて, 頂点に記録している上界値が最短路のそれに近づくよう調整 1 1 1 11 複数のアルゴリズム 前提条件により最適なアルゴリズムが変わる 負の重み, 閉路のありなし ( 後述 ) アルゴリズムの違い 各辺を調べる ( 緩和する, 後述 ) 回数, 調べる順番に相違がある 当然, 調べる回数 / 順番が多い方が, より汎用的な目的に使えるアルゴリズムになる. 負の重みを持つ辺の扱い. 最短路の表現. 緩和. 最短路と緩和の性質

1//1. 負の重みを持つ辺の扱い. 最短路の表現. 緩和. 最短路と緩和の性質 最短路の部分経路は最短路 証明 : 補題.1 部分構造最適性 動的計画法, 貪欲アルゴリズムが適用できる可能性 ダイクストラ法は貪欲戦略を採っている. 負の重みを持つ辺の扱い. 最短路の表現. 緩和. 最短路と緩和の性質. 負の重みを持つ辺の扱い 全体として負の重みを持つ閉路, が問題 その閉路を巡回すると最短路重みを無限に小さくできる v に至る経路上に負の重みの閉路が存在するなら δ(, v) = - とする 最短路が定義不可能 ( 閉路にならない ) 負の重みの経路 扱えるアルゴリズム / 扱えないアルゴリズム 負の重みの閉路があれば, それを発見して終了するアルゴリズムが存在 11 -. 負の重みを持つ辺の扱い. 最短路の表現. 緩和. 最短路と緩和の性質 ( 前述通り ) 負の重みを持つ閉路が経路にあると最短路が定義できない 最短路は正の重みを持つ閉路を含まない その閉路を取り除くと同一の始点と目的地を持つより小さな重みを持つ経路が生じるから 11 1

1//1. 負の重みを持つ辺の扱い. 最短路の表現. 緩和. 最短路と緩和の性質. 最短路の表現 頂点 v に対して別の頂点か NIL を値とする先行点 π[v] π[v] = u u v が最短路に含まれる π[u] = x x u が最短路に含まれる π[x] = x が最短路に含まれる x v u が最短路 第. 節の PRINT PATH(G,, v) で最短路を出力できる 1. 負の重みを持つ辺の扱い. 最短路の表現. 緩和. 最短路と緩和の性質. 緩和 (RELAX) #1 頂点に保存する値 最短路推定値 d[v] とする ( 最短路の重みの上界 ) d[v] と δ(, v) を混同しないこと 緩和 (u, v) に対する緩和操作 u を経由することで v を改善できるなら d[v] および π[v] を更新する 緩和により d[v] が減少し,π[v] が更新される 緩和を適当な順序でグラフに施していくことで, 最短路木を得る 上界を厳しくしていく操作を 緩和 と呼ぶのは奇妙なのだが, 伝統的にこの用語が使われる. 緩和 (RELAX) # RELAX(u, v, w) wは辺の重み つ前の頂点 ( 先 点 ) から緩和するところがポイント RELAX(u, v, w) 緩和の結果何も更新されないこともある. 緩和 # 擬似コード RELAX(u, v, w) if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u

1//1 ついでに, 初期化の擬似コード INITIALIZE-SINGLE-SOURCE(G, ) for 各頂点 v V[G] do d[v] π[v] NIL d[]. 負の重みを持つ辺の扱い. 最短路の表現. 緩和. 最短路と緩和の性質. 最短路と緩和の性質 本章のアルゴリズムの正当性を証明するための, 最短路と緩和に関する諸性質. 上界性. 無経路性. 収束性. 経路緩和性. 先行点グラフの性質. 最短路と緩和の性質. 上界性. 無経路性. 収束性. 経路緩和性. 先行点部分グラフの性質 本章の各アルゴリズムは, なぜそれで最短路, 最短路重みが得られるのかそれほど直感的ではないので, 上記の諸条件から理詰めで正当性を考えると良い 三角不等式 任意の辺 (u, v) E に対して δ(, v) δ(, u) + w(, v) が成 する δ(, u) u δ(, v) w(, v) v. 最短路と緩和の性質. 上界性. 無経路性. 収束性. 経路緩和性. 先行点部分グラフの性質 1

1//1 上界性 すべての v V に対して,d[v] δ(, v) が成 する. ひとたび d[v] が値 δ(, v) を取ると, その後は決して変化しない RELAX(u, v, w) d[v] = δ(, u). 最短路と緩和の性質. 上界性. 無経路性. 収束性. 経路緩和性. 先行点部分グラフの性質 無経路性 頂点 から v に る経路がない場合,d[v] = δ(, v) = が成 する u v d[v] = δ(, v) 初期化ですべての d[v] は になっていて,d[v] が更新されるのは緩和操作時だけ. 緩和操作は先 点から われるが, 孤 した頂点は先 点がないので から更新されることがない. 最短路と緩和の性質. 上界性. 無経路性. 収束性. 経路緩和性. 先行点部分グラフの性質 収束性 ある u, v V に対して, > u v を G の最短路と仮定する. 辺 (u, v) に対して緩和を実 する前に d[u] = δ(, u) が成 した時点があったとすると緩和実 後は常に d[v] = δ(, v) が成 する δ(, u) RELAX(u, v, w) δ(, v). 最短路と緩和の性質. 上界性. 無経路性. 収束性. 経路緩和性. 先行点部分グラフの性質

1//1 経路緩和性 p = <v, v 1,, v k > が = v から v k に る最短路で,p の辺が (v, v 1 ), (v 1, v ),..., (v k-1, v k ) の順序で緩和されたとき, d[v k ] = δ(, v k ) が成 する. : 経路緩和性 経路緩和性を証明せよ ヒント : 最短路の辺の数に関する帰納法 この性質は他の任意の緩和操作とは無関係に成 する. 例え, これらの 緩和操作の実 が, その他の任意の緩和操作 (pに関する緩和操作でも良い ) の実 とシャッフルされた順序で実 されたとしても, この性質は成 する. p = <v, v 1,, v k > が = v から v k に る最短路で,p の辺が (v, v 1 ), (v 1, v ),..., (v k-1, v k ) の順序で緩和されたとき, d[v k ] = δ(, v k ) が成 する. : 経路緩和性の証明. 最短路と緩和の性質 bae cae: p = <v, v 1 > が = v から v 1 に る最短路で,p の辺 (v, v 1 ) が緩和されたとき, 明らかにd[v k ] = δ(, v k ) が成. inductive cae: 辺の数がkの最短路に関して, 経路緩和性が成 すると仮定する. 辺の数がk+1の最短路 p=<v, v 1,, v k, v k+1 > に関して, (v, v 1 ), (v 1, v ),..., (v k-1, v k ) の順で緩和された時点で, 前提より d[v k ] = δ(, v k ) が成. さらに (v k, v k+1 ) が緩和されれば, d[v k+1 ] = δ(, v k+1 ) が成. 1. 上界性. 無経路性. 収束性. 経路緩和性. 先行点部分グラフの性質 先行点部分グラフの性質 すべての v V に対して d[v] = δ(, v) が成 するとき, 先 点部分グラフは を根とする最短路 である この性質から, すべての頂点を緩和で δ(, v) にすることができれば 的を達成したことになる, と える先の経路緩和性から, 定められた順序で緩和していけば d[v k ] = δ(, v k ) が得られることは分かっている. よって順番に緩和 全部の頂点が δ 最短路が得られるというのがアルゴリズムの基本 針となる つのアルゴリズム ベルマン フォードのアルゴリズム O( V E ) 負の重み OK,( 負の重みは持たない ) 閉路 OK トポロジカル ソート順序の緩和 Θ( V + E ) 負の重み OK, 閉路なし ダイクストラのアルゴリズム O( V lg V + E ) or O(( V + E )lg V ) 負の重みなし

1//1 ベルマン フォードのアルゴリズム ベルマン フォードのアルゴリズム 一般の単一始点最短路問題を解く 負の重みを持つ辺を含んでも OK 負の重みを持つ閉路の存在をチェックすることができる BELLMAN FORD(G, w, ) 負の重みを持つ閉路がない 返値 TRUE d[v] と π[v] も想定通りに埋まる 負の重みを持つ閉路がある 返値 FALSE ベルマン フォードのアルゴリズムの方針 V - 1 回, すべての辺を緩和するとすべての v に対して d[v] = δ(, v) になる すべての v に対して... 先行点部分グラフの性質から, グラフは最短路木 ベルマン フォードのアルゴリズムの動き - - V - 1 回ループし, ループ毎に各辺を緩和する左はループ開始直前 - - ループ1 回. 始点 以外の頂点は d[v] = なので, 始点 の出辺だけ d が更新される ( 緑の辺は先 点の値 ) ベルマン フォードのアルゴリズムの動き - - ループ 回.1 回 のループで d が減少した頂点からの出辺の緩和により 頂点が更新 ベルマン フォードのアルゴリズムの動き - - ループ 回 ( 最後 ). 回 のループで d[v] が減少した頂点からの出辺の緩和により更新 ループを抜けた時点での d と π の値が最終的な値 - - ループ 回. 回 のループで d が減少した頂点からの出辺の緩和により更新

1//1 BELLMAN-FORD(G, w, ) INITIALIZE-SINGLE-SOURCE(G, ) for i 1 to V[G] - 1 do for 各辺 (u, v) E[G] do RELAX(u, v, w) for 各辺 (u, v) E[G] do if d[v] > d[u] + w(u, v) then return FALSE return TRUE 擬似コード 各辺の緩和操作 負の重みを持つ閉路の存在確認 ( あったら FALSE を返す ) 正当性は補題. 1 このネットワークの赤の頂点からの最短距離をベルマン フォードのアルゴリズムで求めよ - 1 1-1 注意 : 緩和操作は, 各ノードに関して逐次的に実行しても, 並列に実行しても良い ここでは並列に実行した結果を示す - 1 1-1 1 1 - -1 1 1 1 1-1 -1 1 1 1 1-1 -1 1

1//1 1 1 1 - -1 1 1 1-1 1 1 - -1 1 1 1-1 1 1 - -1-1 1 1 1-1 1 1 - -1-1 1 : アルゴリズムの正当性 : アルゴリズムの正当性 ベルマン フォードアルゴリズムで最短路が得られることを証明せよ 証明すべきこと " V - 1 回繰り返した後, すべての頂点 v に対して d[v] = δ(, v) になっている " これが分かれば先行点部分グラフの性質から最短路木が得られることが証明できる ヒント : 経路緩和性を使う 経路緩和性による証明 ( 補題.) 各辺はループ毎に必ず緩和される 経路緩和性の順序に沿って緩和が行われたと考えることができる, という点がポイント v の経路 p = <v, v 1... v k > としたとき, 経路 p は高々 V - 1 個の辺を持つ. k V - 1 i = 1,... k に対して (v i-1, v i ) は i 回目の繰り返しで緩和される辺のひとつ 経路緩和性が成立する よって,d[v] = δ(, v) 1 1