最短路問題を動的計画法で解く

動的計画法で最短路問題を解く
 最適性原理に基づいて時間ごとの最適政策を求
める方法を、動的計画法(Dynamic Programming;
DP)という。
 ベルマンの最適性原理とは、直観的に言えば全
体の問題の最適解の部分解は部分問題の最適
解に一致するということであるが、厳密には次の
再帰方程式によって定式化される。
DPによる最短路解法
1
ベルマンの再帰方程式
 目的関数を f とする。有限期の場合、最終期Tとすると、1≦t
≦Tに対して任意の t 期以降の部分問題を考えることができ
る。第 t 期の状態をs(t)とし、以降の部分問題の目的関数
の最適値を f[s(t) ]と書く。
 またc[s‘(t)、s(t)]をs(t)から状態s(t+1)=s’(t)に移る
ための遷移費用とする。このとき最適政策は次のような再帰
的条件によって表される。
f[s(t) ]
= Mins(k+1) (c[s(k+1),s(k)]+f[s(k+1) ])、1
≦k≦T、ただしc[s(T+1),s(T)]=0とする。
すなわち遷移費用と後継状態以降の最適政策が分かってい
れば、 t期以降の最適政策が計算できる。全体のfはf(s
(0))に等しい。
DPによる最短路解法
2
後方帰納
 図の最短路問題のよ
うに有限期の場合は、
後方帰納(Backwad
Induction)と呼ばれる
推論を使えば最適政
策が求まる。
 任意のノードnから6
までの最短ツアー距
離をf(n)とすると、以
下の式がすべて成立
つので、逐次代入し
て解いていけばよい。
DPによる最短路解法
3
例題
13
9
9
0
始点まで遡っ
て解いて始め
て最短路が
完成する
6+5
17
19
5
f(6)= 0、
f(6)=0、
f(6)=0
f(5)=5+0、
f(5)=5+0=5
f(5)=
5+f(6)、 → 5
f(4)=min(9+0、
f(4)=
min(9+f(6)、
6+5)、
6+5)=9
6+f(5))、
→9
f(3)=min(10+f(4)、18+f(5))、
f(3)=min(10+9、18+5)=19
f(3)=
min(10+f(4)、18+f(5))、 →
f(2)=min(16+f(4)、
f(2)=min(16+9、
f(2)=
min(16+f(4)、
8+5、3+19)=13
8+f(5)、3+f(3))、
8+f(5)、3+f(3))、→
f(1)=min(4+f(2)、
f(1)=min(4+13、
f(1)=
min(4+f(2)、
5+19)=
5+f(3)).
5+f(3)).
17→
DPによる最短路解法
例題の出典:荒木勉(1999).経営科学.情報処理テキストシリーズ.実教出版.
4
経済的ロットサイズモデル
 経済的ロットサイズ生産スケジュール
ないし経済的発注量は、生産と在庫
についての数量的管理技法としてよく
知られる。
 例えば発注点法と呼ばれる方法では、
毎回予め決まった発注点まで在庫水
準が落ちると、自動的に予め決めてお
いた最適発注量(EOQ)が発注される
[*1]。
 EOQを求めるにはWilsonの公式が用
いられた。繰越在庫のある場合や多
段階生産販売の場合[*2]は、動的計
画法を用いてネットワーク最短路問題
に翻訳できる。(満足解を見つけるア
ルゴリズムの研究や、近年のSCMへ
の応用も注目される分野である。)
需要1
+需要2
+需要3
DPによる最短路解法
•需要1+需要2+需要3 =輸送1 +
輸送2 +輸送3
•需要1=輸送1 +在庫0 -在庫1
•需要2=輸送2 +在庫1 -在庫2
•需要3=輸送3 +在庫2 -在庫3
•在庫0 =在庫3=0
輸送1 輸送2
輸送3
在庫1
需要1
在庫2
需要2
需要3
5