これならわかる最適化数学
第8章_前半
創造理工学研究科 修士一年
野中賢也
目次
1.解きたい問題は何か
2.具体例を通じた解法
2.1.グリーディー法
2.2.動的計画法
2.3.具体例と一般の対応
3.動的計画法の特徴
3.1.数表での保存
3.2.最適経路問題と最適性原理
1
1.解きたい問題は何か?
離散変数の最適化問題は、全数検査が基本
2
〇離散変数の最適化問題
各変数𝒙𝒊が有限個の離散値{𝒂 𝟏, … , 𝒂 𝑵}をとるとき、𝒎変数関数
𝒇(𝒙 𝟏, … , 𝒙 𝒎)を最大化する問題
𝑱 = 𝒇 𝒙 𝟏, … , 𝒙 𝒎 → 𝒎𝒂𝒙
〇全数検査
𝒎個の変数𝒙𝒊(𝒊 = 𝟏, … , 𝒎)に対して、とりうるすべての値の組
み合わせ(𝑵 𝒎個)を考え、𝒇()を最大にする組合せを探索する。
⇒一般的に計算量が膨大となる。できれば避けたい。
1.解きたい問題は何か?
全数検査を避けられる問題=多段階決定問題
3
〇多段階決定問題
全数検査を回避できるのは、関数𝒇が以下の形のとき。
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + … + 𝒉 𝒎−𝟏(𝒙 𝒎−𝟏, 𝒙 𝒎)
〇どう見るか?
変数𝒙𝒊を選ぶこと=何らかの「決定」(ex.企業iにいくら投資?)
⇒まず、𝒙 𝟏を選ぶことで、その利益が𝒇 𝟏 𝒙 𝟏 として得られる。
⇒選んだ𝒙 𝟏に加え、𝒙 𝟐を選び利益𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)を得る。
⇒選んだ𝒙𝒊に加え、𝒙𝒊+𝟏を選び利益𝒉𝒊(𝒙𝒊, 𝒙𝒊+𝟏)を得る。
…利益の総和が最大になるように各段階で決定を下す問題
目次
1.解きたい問題は何か
2.具体例を通じた解法
2.1.グリーディー法
2.2.動的計画法
2.3.具体例と一般の対応
3.動的計画法の特徴
3.1.数表での保存
3.2.最適経路問題と最適性原理
4
2.具体例を通じた解法
簡単のため、変数の数𝒎が4の場合で説明
5
〇変数の数が4の場合の多段階決定問題
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑(𝒙 𝟑, 𝒙 𝟒)
f(x1)
x1=0 x1=1 x1=2
2 1 3
h1(x1,x2)
h1 x2=1 x2=2 x2=3
x1=0 3 5 1
x1=1 1 0 7
x1=2 3 0 0
h2(x2,x3)
h2 x3=-1 x3=0 x3=1
x2=1 1 7 1
x2=2 1 1 3
x2=3 5 6 1
h3(x3,x4)
h3 x4=1 x4=2 x4=3
x3=-1 7 9 8
x3=0 2 3 6
x3=1 5 4 1
教科書p219と同じ関数
2.具体例を通じた解法
素朴に考えれば、貪欲法で良いのではないか。
6
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒 → 𝒎𝒂𝒙
〇貪欲法(グリーディー法)
各段階の関数だけをみて、それを最適化させる。
1.𝒇 𝟏 𝒙 𝟏 が最大になる𝒙 𝟏を選ぶ
2.その𝒙 𝟏に対し、𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 が最大になる𝒙 𝟐を選ぶ
3.その𝒙 𝟐に対し、𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 が最大になる𝒙 𝟑を選ぶ
2.その𝒙 𝟑に対し、𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒 が最大になる𝒙 𝟒を選ぶ
⇒最適解???
2.具体例を通じた解法
貪欲法だと、うまくいかない
7
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒 → 𝒎𝒂𝒙
貪欲法による解=19(𝑥1 = 3, 𝑥2 = 1, 𝑥3 = 0, 𝑥4 = 3)
⇒しかし、𝐽は21(𝑥1 = 1, 𝑥2 = 3, 𝑥3 = −1, 𝑥4 = 2)なども取れる!!
⇒最初の方の関数の最適化を考えるあまり、後の関数の大きな値を逃す。
2.具体例を通じた解法
各段階のみを見るのではなく、次の段階も考える
8
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒 → 𝒎𝒂𝒙
〇動的計画法
各段階の関数だけをみて、それを最適化させる。
⇒これだとうまくいかない
⇒次の段階の関数までみないと、本当に最適な値は決まらない。
例えば、𝒙 𝟏の最適化を考える際、𝒇 𝟏 𝒙 𝟏 のみを考えるのではな
く、𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)を考える。これは、𝒙 𝟐のとりうる値一
つずつに対して、𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)]とすればよい。
2.具体例を通じた解法
各段階について、「次の関数」を考える
9
〇動的計画法
𝒙 𝟏の最適化を考える際、 𝒙 𝟐のとりうる値一つずつに対して、
𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)]とすればよい。
⇒𝒇 𝟐 𝒙 𝟐 = 𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)]とおく。
⇒𝑱 = 𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
⇒もとの関数と同じ形で、変数が一つ減ってる!!!
同様に…
𝒇 𝟑 𝒙 𝟑 = 𝒎𝒂𝒙 𝒙 𝟐
[𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟑(𝒙 𝟐, 𝒙 𝟑)]
𝒇 𝟒 𝒙 𝟒 = 𝒎𝒂𝒙 𝒙 𝟑
[𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑(𝒙 𝟑, 𝒙 𝟒)]
と置けば、𝑱 = 𝒇 𝟒 𝒙 𝟒 となり、一変数関数の最適化となる。
2.具体例を通じた解法
例題8.1の最適化問題を動的計画法で
10
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱の最大値と、その最大値を与える変数の組を求める。
〇動的計画法による最適化
Step1-3.各段階で「次の関数を考え」、以下を得る。(𝒊 = 𝟐, 𝟑, 𝟒)
𝒇𝒊 𝒙𝒊 = 𝒎𝒂𝒙 𝒙 𝒊−𝟏
[𝒇 𝒙 𝒊−𝟏
𝒙𝒊−𝟏 + 𝒉 𝒙 𝒊−𝟏
𝒙𝒊−𝟏, 𝒙𝒊 ]
𝒙𝒊−𝟏
′
𝒙𝒊 = 𝒂𝒓𝒈𝒎𝒂𝒙 𝒙 𝒊−𝟏
[𝒇 𝒙 𝒊−𝟏
𝒙𝒊−𝟏 + 𝒉 𝒙 𝒊−𝟏
(𝒙𝒊−𝟏, 𝒙𝒊)]
Step4.𝑱 = 𝒇 𝟒 𝒙 𝟒 から、最大値とそれを実現する𝒙 𝟒を求める。
Step5.計算しておいた𝒙𝒊−𝟏
′
(𝒙𝒊)から𝒙 𝟑, 𝒙 𝟐, 𝒙 𝟏を求める。
2.具体例を通じた解法
𝒙 𝟐を固定して、𝒙 𝟏の最適値を探索する。
11
〇Step1.
𝒇 𝟐 𝒙 𝟐 = 𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)]
𝒙 𝟏
′
𝒙 𝟐 = 𝒂𝒓𝒈𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)]
f(x1)
x1=0 x1=1 x1=2
2 1 3
h1(x1,x2)
h1 x2=1 x2=2 x2=3
x1=0 3 5 1
x1=1 1 0 7
x1=2 3 0 0
f1(x1)+
h1(x1,x2)
f1+h1 x2=1 x2=2 x2=3
x1=0 3+2 5+2 1+2
x1=1 1+1 0+1 7+1
x1=2 3+3 0+3 0+3
x2=1 x2=2 x2=3
f2(x2) 6 7 8
x'1(x2) 2 0 1
このとき、もとの式は。。。
𝑱 = 𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
⇒もっと簡単に!
2.具体例を通じた解法
𝒙 𝟑を固定して、𝒙 𝟐の最適値を探索する。
12
〇Step2.
𝒇 𝟑 𝒙 𝟑 = 𝒎𝒂𝒙 𝒙 𝟐
[𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐(𝒙 𝟐, 𝒙 𝟑)]
𝒙 𝟐
′
𝒙 𝟑 = 𝒂𝒓𝒈𝒎𝒂𝒙 𝒙 𝟐
[𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐(𝒙 𝟐, 𝒙 𝟑)]
f(x2)
x2=1 x2=2 x2=3
6 7 8
h2(x2,x3)
h2 x3=-1 x3=0 x3=1
x2=1 1 7 1
x2=2 1 1 3
x2=3 5 6 1
f2(x2)+
h2(x2,x3)
f1+h1 x3=-1 x3=0 X3=1
x2=1 1+6 7+6 1+6
x2=2 1+7 1+7 3+7
x2=3 5+8 6+8 1+8
x3=-1 x3=0 x3=1
f3(x3) 13 14 10
x’2(x3) 3 3 2
このとき、もとの式は。。。
𝑱 = 𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
⇒もっと簡単に!
2.具体例を通じた解法
𝒙 𝟒を固定して、𝒙 𝟑の最適値を探索する
13
〇Step3.
𝒇 𝟒 𝒙 𝟒 = 𝒎𝒂𝒙 𝒙 𝟑
𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝒙 𝟑
′
𝒙 𝟒 = 𝒂𝒓𝒈𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)]
f3(x3)
x3=-1 x3=0 x3=1
13 14 10
h3(x3,x4)
h3 x4=1 x4=2 x4=3
x3=-1 7 9 8
x3=0 2 3 6
x3=1 5 4 1
f3(x3)+
h3(x3,x4)
f3+h3 x4=1 x4=2 x4=3
x3=-1 7+13 9+13 8+13
x3=0 2+14 3+14 6+14
x3=1 5+10 4+10 1+10
x4=1 x4=2 x4=3
f4(x4) 20 22 20
x’3(x4) -1 -1 0
このとき、もとの式は。。。
𝑱 = 𝒇 𝟒 𝒙 𝟒 ⇒この最適化は簡単!
2.具体例を通じた解法
簡単になった目的関数𝑱を最大化する
14
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟒 𝒙 𝟒
Step1.
Step2.
Step3.
x2=1x2=2x2=3
f2(x2) 6 7 8
x'1(x2) 2 0 1
x3=-1 x3=0 x3=1
f3(x3) 13 14 10
x’2(x3) 3 3 2
x4=1 x4=2 x4=3
f4(x4) 20 22 20
x’3(x4) -1 -1 0
Step4. 𝑱の最大値は22.このとき、𝒙 𝟒 = 𝟐
2.具体例を通じた解法
計算しておいた𝒙′
𝒊−𝟏(𝒙𝒊)から、𝒙 𝟏, 𝒙 𝟐, 𝒙 𝟑を得る。
15
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟒 𝒙 𝟒
Step1.
Step2.
Step3.
x2=1x2=2x2=3
f2(x2) 6 7 8
x'1(x2) 2 0 1
x3=-1 x3=0 x3=1
f3(x3) 13 14 10
x’2(x3) 3 3 2
x4=1 x4=2 x4=3
f4(x4) 20 22 20
x’3(x4) -1 -1 0
Step4. 𝑱の最大値は22.このとき、𝒙 𝟒 = 𝟐
Step5.
𝒙 𝟑 = −𝟏, 𝒙 𝟐 = 𝟑, 𝒙 𝟏 = 𝟏
2.動的計画法の一般形
一般⇒行きと帰りが長くなるだけで、具体例と一緒
16
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑
+ … + 𝒉 𝒎−𝟏(𝒙 𝒎−𝟏, 𝒙 𝒎)
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐
+𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
Step1-3.各段階で「次の関数を考え」、以下を得る。
(𝒊 = 𝟐, 𝟑, 𝟒)
𝒇𝒊 𝒙𝒊 = 𝒎𝒂𝒙 𝒙 𝒊−𝟏
[𝒇 𝒙 𝒊−𝟏
𝒙𝒊−𝟏 + 𝒉 𝒙 𝒊−𝟏
𝒙𝒊−𝟏, 𝒙𝒊 ]
𝒙𝒊−𝟏
′
𝒙𝒊 = 𝒂𝒓𝒈𝒎𝒂𝒙 𝒙 𝒊−𝟏
[𝒇 𝒙 𝒊−𝟏
𝒙𝒊−𝟏 + 𝒉 𝒙 𝒊−𝟏
(𝒙𝒊−𝟏, 𝒙𝒊)]
Step4.𝑱 = 𝒇 𝟒 𝒙 𝟒 から、最大値とそれを実現する𝒙 𝟒を
求める。
Step5.計算しておいた 𝒙𝒊−𝟏
′
(𝒙𝒊)から 𝒙 𝟑, 𝒙 𝟐, 𝒙 𝟏 を求める。
Procedure 𝑫𝑷 𝒇 𝟏 𝒙 𝟏 , 𝒉𝒊 𝒙, 𝒚 𝒊=𝟏
𝒏
1.𝒊 = 𝟏, … , 𝒏 − 𝟏 に対して、以下を計算
𝒇𝒊+𝟏 𝒙𝒊+𝟏 = 𝒎𝒂𝒙 𝒙 𝒊
[𝒇 𝒙 𝒊
𝒙𝒊 + 𝒉 𝒙 𝒊
𝒙𝒊, 𝒙𝒊+𝟏 ]
𝒙𝒊
′
𝒙𝒊+𝟏 = 𝒂𝒓𝒈𝒎𝒂𝒙 𝒙 𝒊
[𝒇 𝒙 𝒊
𝒙𝒊 + 𝒉 𝒙 𝒊
(𝒙𝒊, 𝒙𝒊+𝟏)]
数表の形で保存
2.𝒇 𝒏(𝒙 𝒏) を最大にする𝒙 𝒏の値𝒙 𝒏
∗
を探索し、その最大
値を𝑱∗
= 𝒇 𝒏(𝒙 𝒏
∗
)とする。
3.𝒊 = 𝒏 − 𝟏, . . , 𝟏に対して、𝒙𝒊
∗
= 𝒙𝒊
′
(𝒙𝒊+𝟏
∗
)を計算
4.(𝒙 𝟏
∗
, … , 𝒙 𝒏
∗
)および𝑱∗
を返す。
目次
1.解きたい問題は何か
2.具体例を通じた解法
2.1.グリーディー法
2.2.動的計画法
2.3.具体例と一般の対応
3.動的計画法の特徴
3.1.再帰性原理
3.2.数表での保存
3.3.最適経路問題と最適性原理
17
ここまでで、質問ありますか??
3.動的計画法の特徴
動的計画法性質①:再帰原理
18
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝑱 = 𝒇 𝟒 𝒙 𝟒
Step1.
Step2.
Step3.
⇒ステップを踏むごとに、同じ形をもったより小さい問題に帰着できている!
3.動的計画法の特徴
動的計画法の性質②:数表としての保存
19
𝑱 = 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
Step1.
Step2.
Step3.
x2=1 x2=2 x2=3
f2(x2) 6 7 8
x'1(x2) 2 0 1
x3=-1 x3=0 x3=1
f3(x3) 13 14 10
x’2(x3) 3 3 2
x4=1 x4=2 x4=3
f4(x4) 20 22 20
x’3(x4) -1 -1 0
⇒各段階の関数を計算するときに前の計算結果を再利用できる
⇒𝒙 𝟑の最適化で、𝒙 𝟏のことを考えなくていい。𝒇 𝟐(𝒙 𝟐)に入ってる。
⇒計算量の削減(全数検査:𝑶 𝑵 𝒎
⇒ 動的計画法:𝑶(𝒎𝑵 𝟐
))
𝒇 𝟐 𝒙 𝟐 = 𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏(𝒙 𝟏, 𝒙 𝟐)]
𝒇 𝟑 𝒙 𝟑 = 𝒎𝒂𝒙 𝒙 𝟐
[𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐(𝒙 𝟐, 𝒙 𝟑)]
𝒇 𝟒 𝒙 𝟒 = 𝒎𝒂𝒙 𝒙 𝟑
𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
3.動的計画法の特徴
動的計画法の性質③:最適経路問題としての解釈
20
0
1
2
1
2
3
-1
1
0S G
1
2
3
𝑥1 𝑥2 𝑥3 𝑥4
・各変数の実現値をノードとし、SからGまでノードをたどる。
・各経路の評価が、教科書p219の𝑱で与えられているとする。
・このとき𝑱を最大にする、ノードのたどり方を考える=最適経路問題
2
1
3
𝑓1(𝑥1)
3.動的計画法の特徴
最適経路問題:Step1.との対応
21
0
1
2
1
2
3
-1
1
0S G
1
2
3
𝑥1 𝑥2 𝑥3 𝑥4
𝒇 𝟐 𝒙 𝟐 = 𝒎𝒂𝒙 𝒙 𝟏
[𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 ]
𝒙 𝟐の各ノードについて、 𝒇 𝟏 𝒙 𝟏 + 𝒉 𝟏 𝒙 𝟏, 𝒙 𝟐 を最大化させるエッジを書きこむ
2
1
3
𝑓1(𝑥1)
7
8
6
x2=1 x2=2 x2=3
f2(x2) 6 7 8
x'1(x2) 2 0 1
𝑓2(𝑥2)
3.動的計画法の特徴
最適経路問題:Step2.との対応
22
0
1
2
1
2
3
-1
1
0S G
1
2
3
𝑥1 𝑥2 𝑥3 𝑥4
𝒇 𝟑 𝒙 𝟑 = 𝒎𝒂𝒙 𝒙 𝟐
𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑
𝒙 𝟑 の各ノードについて、𝒇 𝟐 𝒙 𝟐 + 𝒉 𝟐 𝒙 𝟐, 𝒙 𝟑 を最大化させるエッジを書きこむ
2
1
3
𝑓1(𝑥1)
7
8
6
x3=-1x3=0 x3=1
f3(x3) 13 14 10
x’2(x3) 3 3 2
𝑓2(𝑥2)
13
14
10
𝑓3(𝑥3)
3.動的計画法の特徴
最適経路問題:Step3.との対応
23
0
1
2
1
2
3
-1
1
0S G
1
2
3
𝑥1 𝑥2 𝑥3 𝑥4
𝒇 𝟒 𝒙 𝟒 = 𝒎𝒂𝒙 𝒙 𝟑
𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒
𝒙 𝟒 の各ノードについて、𝒇 𝟑 𝒙 𝟑 + 𝒉 𝟑 𝒙 𝟑, 𝒙 𝟒 を最大化させるエッジを書きこむ
2
1
3
𝑓1(𝑥1)
7
8
6
x4=1 x4=2 x4=3
f4(x4) 20 22 20
x’3(x4) -1 -1 0
𝑓2(𝑥2)
13
14
10
𝑓3(𝑥3)
20
22
20
𝑓4(𝑥4)
3.動的計画法の特徴
最適経路問題:Step4.との対応
24
0
1
2
1
2
3
-1
1
0S G
1
2
3
𝑥1 𝑥2 𝑥3 𝑥4
𝑱 = 𝒇 𝟒 𝒙 𝟒 を最大化させる𝒙 𝟒及び最大値𝑱∗
を決定。
⇒𝒙 𝟒 = 𝟐, 𝑱∗
= 𝟐𝟐となる。
2
1
3
𝑓1(𝑥1)
7
8
6
x4=1 x4=2 x4=3
f4(x4) 20 22 20
x’3(x4) -1 -1 0
𝑓2(𝑥2)
13
14
10
𝑓3(𝑥3)
20
22
20
𝑓4(𝑥4)
3.動的計画法の特徴
最適経路問題:Step5.との対応
25
0
1
2
1
2
3
-1
1
0S G
1
2
3
𝑥1 𝑥2 𝑥3 𝑥4
⇒𝒙 𝟒が決まったので、そのもとでの𝒙 𝟑が決まり、同様に、𝒙 𝟐, 𝒙 𝟏が決まる。
⇒来た道を逆順にたどっていくイメージ
2
1
3
𝑓1(𝑥1)
7
8
6
x4=1 x4=2 x4=3
f4(x4) 20 22 20
x’3(x4) -1 -1 0
𝑓2(𝑥2)
13
14
10
𝑓3(𝑥3)
20
22
20
𝑓4(𝑥4)
3.動的計画法の特徴
最適経路問題:最適性原理
26
0
1
2
1
2
3
-1
1
0S G
1
2
3
𝑥1 𝑥2 𝑥3 𝑥4
最適性原理:どの部分解も部分問題の最適解となっていること
上図であれば、𝒙 𝟑 = −𝟏, 𝟎, 𝟏がゴールであるときの最適経路が示されている。
2
1
3
𝑓1(𝑥1)
7
8
6
x3=-1x3=0 x3=1
f3(x3) 13 14 10
x’2(x3) 3 3 2
𝑓2(𝑥2)
13
14
10
𝑓3(𝑥3)
〇以上です。
質問のあるかたよろしくお願い致します。
27

これならわかる最適化数学8章_動的計画法