「《動的計画》」の版間の差分
1行目: | 1行目: | ||
'''【どうてきけいかく (dynamic programming)】''' | '''【どうてきけいかく (dynamic programming)】''' | ||
− | 多変数最適化問題の目的関数が再帰性(可分性)と単調性をもち, 制約条件に逐次性があるとき, [[再帰式(動的計画法の)]] を導いて, これを1変数ずつ解いて最後に与問題の最適解を求めようとする方法を, [[動的計画]](dynamic programming)と呼ぶ. 原理としては | + | 多変数最適化問題の目的関数が再帰性(可分性)と単調性をもち, 制約条件に逐次性があるとき, [[再帰式(動的計画法の)]] を導いて, これを1変数ずつ解いて最後に与問題の最適解を求めようとする方法を, [[動的計画]](dynamic programming)と呼ぶ. 原理としては <math>\mbox{(i)}\, </math> [[最適性の原理]] (principle of optimality), <math>\mbox{(ii)}\, </math> [[不変埋没原理]](principle of invariant imbedding), <math>\mbox{(iii)}\, </math> 因果律の原理(principle of causality), の三つに基づく[1]. 最適性の原理には <math>\mbox{(1)}\, </math> オリジナル版, <math>\mbox{(2)}\, </math> シンプル版, <math>\mbox{ (3)}\, </math> "<math>\mbox{Life}\, </math>"版, <math>\mbox{(4)}\, </math> 構造解析版, <math>\mbox{(5)}\, </math> 数学版, などがある[9]. 数学的には[[マックスマックス定理(逐次過程における)]] に遡ることができる[2][4]. 応用面では, [[逐次決定過程]] [3][6]の基本原理として用いられ, マルコフ決定過程の政策改良法, 最短経路問題のダイクストラ法, 巡回セールスマン問題など種々の最適化問題の解法としてアルゴリズムに組み込まれている. |
− | 一般に, 再帰型関数 | + | 一般に, 再帰型関数 <math>h : [0, \infty)^{N} \to \mathbf{R}^{1}\, </math> は |
:<math>h(x_{1}, x_{2}, \ldots , x_{N}) = | :<math>h(x_{1}, x_{2}, \ldots , x_{N}) = | ||
− | h_{1}(x_{1};h_{2}(x_{2};\ldots , h_{N-1}(x_{N-1};h_{N}(x_{N})) \ldots ))</math> | + | h_{1}(x_{1};h_{2}(x_{2};\ldots , h_{N-1}(x_{N-1};h_{N}(x_{N})) \ldots ))\, </math> |
− | で表わされる. このとき, 部分関数 | + | で表わされる. このとき, 部分関数 <math>h_{n} : [0, \infty)^{N-n+1} \to \mathbf{R}^{1}\, </math> を |
:<math>h_{n}(x_{n}, \ldots , x_{N}) := h_{n}(x_{n};\ldots , | :<math>h_{n}(x_{n}, \ldots , x_{N}) := h_{n}(x_{n};\ldots , | ||
− | h_{N-1}(x_{N-1};h_{N}(x_{N})) \ldots )</math> | + | h_{N-1}(x_{N-1};h_{N}(x_{N})) \ldots )\, </math> |
− | |||
− | で定義する. 構成要素の1変数関数 | + | |
+ | で定義する. 構成要素の1変数関数 <math>h_{n}(x;\cdot), h_{N}(\cdot)\, </math> がすべて単調な(狭義単調な)とき, 特に単調性(狭義単調性)をもつ再帰型関数という. 単調性をもつ再帰型関数 <math>f,\, g</math> を目的式と制約式にする主問題 | ||
24行目: | 24行目: | ||
\mbox{max.} & f(x_{1}, x_{2}, \ldots , x_{N}) \\ | \mbox{max.} & f(x_{1}, x_{2}, \ldots , x_{N}) \\ | ||
\mbox{s. t.}& g(x_{1}, x_{2}, \ldots , x_{N}) \le c, & x_{1},x_{2},\ldots ,x_{N} \ge 0, | \mbox{s. t.}& g(x_{1}, x_{2}, \ldots , x_{N}) \le c, & x_{1},x_{2},\ldots ,x_{N} \ge 0, | ||
− | \end{array}</math> | + | \end{array}\, </math> |
の解(最大値関数と最大点関数)は次のように求められる: | の解(最大値関数と最大点関数)は次のように求められる: | ||
− | 主問題 | + | 主問題 <math>\mbox{P}(c)\, </math> を部分問題群 <math>{\mathbf P} = \{\mbox{P}_{n}(c)\}:\, </math> |
36行目: | 36行目: | ||
\mbox{max.} & f_{n}(x_{n}, \ldots , x_{N}) \\ | \mbox{max.} & f_{n}(x_{n}, \ldots , x_{N}) \\ | ||
\mbox{s. t.}& g_{n}(x_{n}, \ldots , x_{N}) \le c, & x_{n}, \ldots ,x_{N} \ge 0, | \mbox{s. t.}& g_{n}(x_{n}, \ldots , x_{N}) \le c, & x_{n}, \ldots ,x_{N} \ge 0, | ||
− | \end{array}</math> | + | \end{array}\, </math> |
− | に埋め込み, この最大値を | + | に埋め込み, この最大値を <math>u_{n}(c)\, </math> とする. このとき, 制約式の狭義単調性と両式の連続性を仮定すると, 再帰式 |
:<math>u_{n}(c) =\max_{x \ge 0} \, f_{n}(\,x\,; | :<math>u_{n}(c) =\max_{x \ge 0} \, f_{n}(\,x\,; | ||
− | u_{n+1}(g_{nx}^{-1}(c))) \quad 1 \le n \le N-1</math> | + | u_{n+1}(g_{nx}^{-1}(c))) \quad 1 \le n \le N-1\, </math> |
− | :<math>u_{N}(c) =f_{N}(g_{N}^{-1}(c))</math> | + | :<math>u_{N}(c) =f_{N}(g_{N}^{-1}(c))\, </math> |
− | が成り立つ. ただし, | + | が成り立つ. ただし, <math>g^{-1}_{nx}(\cdot)\, </math> は <math>g_{n}(x;\cdot)\, </math> の逆関数. この再帰式を後向きに解いて, 最後に主問題の最大値 <math>u_{1}(c)\, </math> が得られる. これが動的計画法である. さらに, 主問題 <math>\mbox{P}(c)\, </math> と逆問題 |
55行目: | 55行目: | ||
\mbox{min.} & g(x_{1}, x_{2}, \ldots , x_{N}) \\ | \mbox{min.} & g(x_{1}, x_{2}, \ldots , x_{N}) \\ | ||
\mbox{s. t.}& f(x_{1}, x_{2}, \ldots , x_{N}) \ge c, & x_{1},x_{2},\ldots ,x_{N} \ge 0, | \mbox{s. t.}& f(x_{1}, x_{2}, \ldots , x_{N}) \ge c, & x_{1},x_{2},\ldots ,x_{N} \ge 0, | ||
− | \end{array}</math> | + | \end{array}\, </math> |
の解(最小値関数と最小点関数)の間には互いに逆関数の関係にある([[逆定理(動的計画法における)]] [5]). これは線形計画における双対定理に類似して, 動的計画の双対定理と考えられる[11]. | の解(最小値関数と最小点関数)の間には互いに逆関数の関係にある([[逆定理(動的計画法における)]] [5]). これは線形計画における双対定理に類似して, 動的計画の双対定理と考えられる[11]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | また, 狭義単調性をもつ再帰型関数 <math>h\, </math> が終端値 <math>k\, </math> をもつときは | |
− | + | ||
− | + | ||
− | h | + | :<math>h(x_{1}, \ldots , x_{N}, k) = h_{1}(x_{1};\ldots , h_{N-1}(x_{N-1};h_{N}(x_{N};k)) \ldots )\, </math> |
− | + | ||
− | |||
− | |||
+ | で表わされる. これに対して反転関数(逐次パラメトリック逆関数) <math>h^{-1} : \mathbf{R}^{N+1} \to \mathbf{R}^{1}\, </math> を | ||
− | |||
− | |||
+ | :<math>h^{-1}(x_{N}, \ldots , x_{2}, x_{1}, c) | ||
+ | :\;=\; h^{-1}_{N}(x_{N};\ldots , h^{-1}_{2}(x_{2};h^{-1}_{1}(x_{1};c)) \ldots | ||
+ | )\, </math> | ||
− | \ | + | |
− | + | で定義する. このとき, 目的式 <math>f\, </math>, 制約式 <math>g\, </math> (ただし <math>g_{N}(x_{N};l) | |
− | + | := g_{N}(x_{N}) + l )\, </math>をもつ主問題の反転問題を | |
− | + | ||
− | + | ||
− | \end{ | + | :<math>\mbox{R}(c) \quad |
+ | \begin{array}{lll} | ||
+ | \mbox{min.} & f^{-1}(x_{N}, \ldots , x_{1}, u_{1}^{-1}(c)) \\ | ||
+ | \mbox{s. t.}& g^{-1}(x_{N}, \ldots , x_{1}, c) = 0, & x_{N},\ldots ,x_{1} \ge 0, | ||
+ | \end{array}\, </math> | ||
90行目: | 88行目: | ||
さらに, 準線形化, 最大変換(共役変換)による双対理論を組み込んだ[[三面鏡理論]] [8]が制御過程上で展開されている. 逆問題, 反転問題, 双対問題は基本的に動的計画法で解くことができるが, それぞれの問題の最適解は直接解くことなく, 対応する定理によって得られる[7]. | さらに, 準線形化, 最大変換(共役変換)による双対理論を組み込んだ[[三面鏡理論]] [8]が制御過程上で展開されている. 逆問題, 反転問題, 双対問題は基本的に動的計画法で解くことができるが, それぞれの問題の最適解は直接解くことなく, 対応する定理によって得られる[7]. | ||
− | + | ||
再帰性, 単調性がない場合の最適化としては, 非可分性との関連で結合性などの下で[[事前条件付き決定過程]], [[事後条件付き決定過程]][10]が[[ファジィ動的計画]], 非加法型再帰的効用関数の経済学などで研究されている. これらの問題はマルコフ政策のクラスで再帰式が導かれる. | 再帰性, 単調性がない場合の最適化としては, 非可分性との関連で結合性などの下で[[事前条件付き決定過程]], [[事後条件付き決定過程]][10]が[[ファジィ動的計画]], 非加法型再帰的効用関数の経済学などで研究されている. これらの問題はマルコフ政策のクラスで再帰式が導かれる. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | '''参考文献''' | ||
[1] R. Bellman, ''Dynamic Programming'', Princeton Univ. Press, 1957. | [1] R. Bellman, ''Dynamic Programming'', Princeton Univ. Press, 1957. |
2007年7月4日 (水) 10:41時点における版
【どうてきけいかく (dynamic programming)】
多変数最適化問題の目的関数が再帰性(可分性)と単調性をもち, 制約条件に逐次性があるとき, 再帰式(動的計画法の) を導いて, これを1変数ずつ解いて最後に与問題の最適解を求めようとする方法を, 動的計画(dynamic programming)と呼ぶ. 原理としては 最適性の原理 (principle of optimality), 不変埋没原理(principle of invariant imbedding), 因果律の原理(principle of causality), の三つに基づく[1]. 最適性の原理には オリジナル版, シンプル版, ""版, 構造解析版, 数学版, などがある[9]. 数学的にはマックスマックス定理(逐次過程における) に遡ることができる[2][4]. 応用面では, 逐次決定過程 [3][6]の基本原理として用いられ, マルコフ決定過程の政策改良法, 最短経路問題のダイクストラ法, 巡回セールスマン問題など種々の最適化問題の解法としてアルゴリズムに組み込まれている.
一般に, 再帰型関数 は
で表わされる. このとき, 部分関数 を
で定義する. 構成要素の1変数関数 がすべて単調な(狭義単調な)とき, 特に単調性(狭義単調性)をもつ再帰型関数という. 単調性をもつ再帰型関数 を目的式と制約式にする主問題
の解(最大値関数と最大点関数)は次のように求められる:
主問題 を部分問題群
に埋め込み, この最大値を とする. このとき, 制約式の狭義単調性と両式の連続性を仮定すると, 再帰式
が成り立つ. ただし, は の逆関数. この再帰式を後向きに解いて, 最後に主問題の最大値 が得られる. これが動的計画法である. さらに, 主問題 と逆問題
の解(最小値関数と最小点関数)の間には互いに逆関数の関係にある(逆定理(動的計画法における) [5]). これは線形計画における双対定理に類似して, 動的計画の双対定理と考えられる[11].
また, 狭義単調性をもつ再帰型関数 が終端値 をもつときは
で表わされる. これに対して反転関数(逐次パラメトリック逆関数) を
で定義する. このとき, 目的式 , 制約式 (ただし をもつ主問題の反転問題を
で考えると, 反転問題の最小値は主問題の終端値となる (反転定理 [7]).
さらに, 準線形化, 最大変換(共役変換)による双対理論を組み込んだ三面鏡理論 [8]が制御過程上で展開されている. 逆問題, 反転問題, 双対問題は基本的に動的計画法で解くことができるが, それぞれの問題の最適解は直接解くことなく, 対応する定理によって得られる[7].
再帰性, 単調性がない場合の最適化としては, 非可分性との関連で結合性などの下で事前条件付き決定過程, 事後条件付き決定過程[10]がファジィ動的計画, 非加法型再帰的効用関数の経済学などで研究されている. これらの問題はマルコフ政策のクラスで再帰式が導かれる.
参考文献
[1] R. Bellman, Dynamic Programming, Princeton Univ. Press, 1957.
[2] G. H. Hardy, J. E. littlewood and G. Pólya, Inequalities, 2nd ed., Cambridge Univ. Press, 1952.
[3] 茨木俊秀,『組合せ最適化の理論』, 電子通信学会, 1979.
[4] 伊理正夫ほか, 座談会「最大問題最小問題をめぐって」,『数学セミナー』, 7月号 (1966), 40-48.
[5] S. Iwamoto, "Inverse Theorems in Dynamic Programming I, II, III," Journal of Mathematical Analysis and Applications, 58 (1977), 113-134, 249-279, 439-448.
[6] 岩本誠一,「逐次決定過程としての動的計画論I,II」,『オペレーションズ・リサーチ』, 22 (1977), 427-434, 496-501.
[7] 岩本誠一,『動的計画論』, 九州大学出版会(経済工学シリーズ), 1987.
[8] S. Iwamoto, "A three mirror problem on dynamic programming," in Proceedings of the Third Bellman Continuum Workshop, 363-382, 1989.
[9] 岩本誠一,「動的計画の最近の進歩」, 第2回RAMPシンポジウム論文集, 129-140, 1990.
[10] S. Iwamoto, "Conditional decision processes with recursive reward function,"Journal of Mathematical Analysis and Applications, 230 (1999), 193-210.
[11] 近藤次郎,『最適化法』, コロナ社, 1984.