情報通信工学科 情報通信基礎学講座 平成14年度 卒業研究発表 最短路問題 -Partitionアルゴリズム- 9712066 小林英之 安藤研究室 Dijkstraのアルゴリズム Step 1. s = (start point) d(x) : s から x への仮の距離 ( S の点のみを経由する最短路の長さ) d(s) = 0 , d(x) = ∞ for x≠s S = { s からの距離確定点} Step 2. S に含まれない d(x) が最小の点を探し、 それを S に加えることで順次 S を増大させ 目的の点に到達する Partitionアルゴリズム Step 1. s = (start point) d(s) = 0, d(x) = ∞ for x≠s NOW = {s},NEXT = {φ} Step 2. NOWから任意に点 u を選んでくる。 NOW = {φ} →Step 4 Step 3.NOWから点 u を削除する。 d(u) + a(u,v) < d(v) であれば d(v) = d(u) + a(u,v) NOW・NEXTに v の要素がなければ、 NEXTに加える。 NOW = {φ}→Step4 Step 4. NEXT = {φ}→終了 NEXT ≠{φ}→NOW = NEXT →Step2 改良Partitionアルゴリズム Step 4A. NEXT = {φ}→終了 NEXT ≠{φ}→NEXTから何点か 選び出してNOWに移す →Step2 Step 4B. NEXT = {φ}→終了 NEXT ≠{φ}→NEXTからc個の頂点 を選び出してNOWに移す →Step2 d(x) 1 2 3 4 5 6 7 8 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 4 2 7 0 1 6 ∞ 1 ∞ ∞ ∞ 4 0 1 6 10 1 ∞ ∞ ∞ 1 6 1 1 3 5 3 3 8 8 2 6 0 1 4 10 1 ∞ ∞ ∞ 0 1 4 10 1 6 ∞ 7 0 1 4 10 1 6 12 7 0 1 4 10 1 6 11 7 NOW 1 2 3 4 5 6 7 8 NEXT 2 3 4 5 6 7 8 d(x) 1 2 3 4 5 6 7 8 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 9 2 4 2 7 1 4 6 1 1 3 5 NOW 3 3 8 8 2 6 1 2 3 4 5 6 7 8 NEXT 1 2 3 4 5 6 7 8 参考文献 • James R. Evans, Edward Minieka, “Optimization Algorithms For Networks And Graphs Second Edition Revised And Expanded”, MARCEL DEKKER, INC., 1992 • Glover, F., D Klingman, and N.Philips, A New Polynomially Bounded Shortest Path Algorithm, Oper.Res., 33, (1985), pp.65-73. • 浅野孝夫・今井浩,アルゴリズムの基礎,オーム 社,2000
© Copyright 2024 ExpyDoc