13
非線形計画法や最適制御のあれこれ 1 最初にちょっと復習 実数値をとる関数(それが一変数であれ、多変数であれ)が最大値を持つとき、関数はどのような条件を 満たすのであろうか? 一変数の場合は高校で学ぶ。関数 f : R 3 x 7f (x) R 2 階微分可能であれば、 その一次微分がゼロに等しくなるような x f は極値をとり、二次微分が負であるとき局所的に最大とな * 1 。すなわち、f 0 (x)=0,f 00 (x) < 0 となるような x が局所的な最大値を与える。すべての x R につい f 00 (x) < 0 のとき、条件 f 0 (x)=0 は必要十分条件となり、解はただ一つに定まる。 2 x 0 なんていう非負制約を入れてみる 定義域が R 全体ではなく、その部分集合 D R に制限された場合についてはどうなるであろうか? 特に、 ゼロ以上の実数からなる集合 D = {x : x 0} を考えよう。簡単のためにすべての x 0 について f 00 (x) < 0 であると仮定しよう。 まず、第 1 に、f が増加関数である場合、すなわちすべての x D について f 0 (x) > 0 の場合には非負制約 の有無にかかわらず解は存在しないことは明らかだろう。なにしろ f 0 (x)=0 となる x を探しているわけだか ら。第 2 x =0 の周辺では増加関数だが、どこかで減少関数に転じる場合には x> 0 の点で f 0 (x)=0 なる。第 3 に減少関数の場合にはスタート地点である x =0 f は最大値をとる。この場合はさらに 2 つの ケースに分けられる。一つは f 0 (0) < 0 のケースで、もう一つは f 0 (0) = 0 のケースだ。 これらの考察をまとめると、どの場合でも、すくなくとも f 0 (x)=0 であるか x =0 のいずれか一方が成立 していることが分かる。もちろん最後のケースのように両方同時に成立する場合もある。まとめると、次のよ うな 3 つの条件として要約できる。 f 0 (x) 0, (1) f 0 (x)x =0, (2) x 0. (3) x がゼロより大きければ (2) より f 0 (x)=0 にならなければならないし、f 0 (x) < 0 ならば同じく (2) より x =0 にならなければならない。また、x f 0 (x) が同時にゼロになることも許容している。この (2) の条件 Complementary Slackness Condition(以下、CS 条件)という * 2 この 3 つの式が x 0 という制約(非負制約)が存在する場合に x が最大値を与える必要条件であり、 * 1 R は実数全体からなる集合を表すものとする。 * 2 ”complementary”は相補的、補完的、”slackness”は緩み、弛緩、といった意味だから、直訳すれば「相補弛緩条件」となるが... 1

クーン・タッカーの定理に関連したことのメモβ版

Embed Size (px)

DESCRIPTION

非線形計画法を自分に優しく教えるふうに書いたメモ

Citation preview

Page 1: クーン・タッカーの定理に関連したことのメモβ版

非線形計画法や最適制御のあれこれ

1 最初にちょっと復習実数値をとる関数(それが一変数であれ、多変数であれ)が最大値を持つとき、関数はどのような条件を満たすのであろうか? 一変数の場合は高校で学ぶ。関数 f : R 3 x 7→ f(x) ∈ Rが 2階微分可能であれば、その一次微分がゼロに等しくなるような x で f は極値をとり、二次微分が負であるとき局所的に最大となる*1。すなわち、f ′(x) = 0, f ′′(x) < 0となるような xが局所的な最大値を与える。すべての x ∈ Rについて f ′′(x) < 0のとき、条件 f ′(x) = 0は必要十分条件となり、解はただ一つに定まる。

2 x ≥ 0なんていう非負制約を入れてみる定義域がR全体ではなく、その部分集合D ⊂ Rに制限された場合についてはどうなるであろうか? 特に、ゼロ以上の実数からなる集合D = {x : x ≥ 0}を考えよう。簡単のためにすべての x ≥ 0について f ′′(x) < 0

であると仮定しよう。まず、第 1に、f が増加関数である場合、すなわちすべての x ∈ Dについて f ′(x) > 0の場合には非負制約の有無にかかわらず解は存在しないことは明らかだろう。なにしろ f ′(x) = 0となる xを探しているわけだから。第 2に x = 0の周辺では増加関数だが、どこかで減少関数に転じる場合には x > 0の点で f ′(x) = 0になる。第 3に減少関数の場合にはスタート地点である x = 0で f は最大値をとる。この場合はさらに 2つのケースに分けられる。一つは f ′(0) < 0のケースで、もう一つは f ′(0) = 0のケースだ。これらの考察をまとめると、どの場合でも、すくなくとも f ′(x) = 0であるか x = 0のいずれか一方が成立していることが分かる。もちろん最後のケースのように両方同時に成立する場合もある。まとめると、次のような 3つの条件として要約できる。

f ′(x) ≤ 0, (1)

f ′(x)x = 0, (2)

x ≥ 0. (3)

x がゼロより大きければ (2) より f ′(x) = 0 にならなければならないし、f ′(x) < 0 ならば同じく (2) よりx = 0にならなければならない。また、xと f ′(x)が同時にゼロになることも許容している。この (2)の条件を Complementary Slackness Condition(以下、CS条件)という*2。この 3 つの式が x ≥ 0 という制約(非負制約)が存在する場合に x が最大値を与える必要条件であり、

*1 Rは実数全体からなる集合を表すものとする。*2 ”complementary”は相補的、補完的、”slackness”は緩み、弛緩、といった意味だから、直訳すれば「相補弛緩条件」となるが...

1

Page 2: クーン・タッカーの定理に関連したことのメモβ版

f ′′(x) < 0という仮定のもとでは必要十分条件である*3。

3 今度は「等号制約」を入れてみる次に「等号制約」というものを考えたいが、前節の非負制約と等号制約をうまく組み合わせると「不等号制約」のある最大値問題を扱えるようになる。これが目標だ。等号制約とは xが満たすべき条件が等号でみたされた数式で表されていることをいうけど、x = 0なんていうのも等号制約の一つだ。でも、これだと答えは考えるまでもなく x = 0になってしまうので面白くない。だから等号制約が意味を持つのは変数が 2つ以上の時だってことがわかる。f を最大にするために動かせる変数が 2つになったときに、その 2つの変数が自由に動ける場合には、すなわち定義域がR2 の時には f に極値を与える xが満たすべき条件はやっぱり f ′(x) = 0だ。だけれど、今考えてる xは 2変数だから x = (x1, x2)

というベクトルになってる。だから f ′(x)なんて雑に書いてはいけない。

3.1 というわけでちょっと寄り道して偏微分

1変数の関数 f(x) = ax2 + bx + cを微分できる人なら 2変数関数の偏微分は簡単だ(少なくとも計算は)。この f の微分は f ′(x) = 2ax + bだけど、じゃあ、f(x1, x2) = x2x

21 + bx1 + cだったらどう考えれば良いの

だろう? これは aが x2 に変わっただけなんだけど、「偏微分」を知らない人にとってはひどく恐ろしいものに見えるに違いない。少なくとも僕自身はそうだった。でも答えは簡単で「x2 をあたかもパラメータ aのように」扱えばいいだけなんだ。つまり、この f の「x1 での偏微分」は fx1 = 2x2x1 + bだ。1変数の時と違って「何で」微分したかを明示するために記法が変わることに注意して欲しい。いろいろな書き方があって他に∂f(x1, x2)

∂x1とか ∂

∂x1f(x1, x2)とかある。

こういうわけで偏微分は「他の変数を固定して」注目している変数で微分すること。別の言い方をすればある座標軸と平行な面を切り取って、そこであたかも 1変数の関数であるかのように微分するってことなんだ。だけど、細かいことだけど、1変数の時には「方向」は 2方向しかなかったけど、2変数以上になると「方向」は無数にあるってことに注意しないといけない。2変数関数が「微分可能」であるためには「どの方向に対しても」微分ができなければならないんだ。しかもその「方向」っていうのが直線的とは限らないのが難しい。ここではいつでも微分可能な関数だけを考えることにする。

3.2 とにかく等号制約のはなしに戻ろう

3.2.1 でも 2変数だからやっぱり制約なしのことも確認しないとというわけで、2変数関数でも定義域に制約がない時の極値の必要条件(2変数になると十分条件はちょっと面倒だ)は fx1 = 0, fx2 = 0だ。ちょうどお山のてっぺんを考えてみればわかりやすい。どの方向に向かっても微分はゼロ、つまり平らってことだ*4。だからといって他にもっと高い山がないとは限らないし、もしかしたら谷底にいるかもしれない、踊り場にいるのかもしれない。今いるところが一番高いところだと安心するためには「2階の条件」が必要になってくるけど、ややこしくなるのでそれはおいておこう。

fx1 = 0, fx2 = 0が極値のための必要条件だってことをもう少し丁寧に考えよう。x∗ = (x∗1, x

∗2)が解だとす

*3 非負制約がなかった場合は f ′(x) = 0だけが必要十分条件であったことに注意が必要だ。*4 偏微分可能でも微分可能じゃないことがあって、そのような点では偏微分がゼロでもその近傍が「平ら」であるとは限らない。でも、ここでは微分可能な関数だけを考えているからその心配はいらない。

2

Page 3: クーン・タッカーの定理に関連したことのメモβ版

る。このとき、その近くの点では f は少しだけ小さな値をとる。∆xを任意の方向を向いた小さなベクトルとし、hを十分小さな非負の実数とする。このとき、x∗ + h∆xは x∗ の「近くの点」を表すから次の不等式が成立する。

f(x∗) ≥ f(x∗ + h∆x). (4)

右辺を x∗ の近傍でテイラー展開すると 0 < θ < 1を満たす θ が存在して次を満たす。

f(x ∗ +h∆x) = f(x∗) + h∂f

∂x(x∗)∆x +

12h2(∆x)T ∂2f

∂x2(x∗ + θh∆x)∆x.

えっと、ベクトルなんで分かりにくくなってるけど、これは単に 2次関数で近似しようとしているだけ。第 3

項はわからなければおまじないだと思ってもらって構わない。これを先の (4)に代入して整理すると、

h∂f

∂x(x∗)∆x +

12h2(∆x)T ∂2f

∂x2(x∗ + θh∆x)∆x ≤ 0,

となる。両辺を hで割って h → 0をとると第 2項はゼロに収束するから結局、

∂f

∂x(x∗)∆x ≤ 0.

∆xの取り方には特に制約はなくあらゆる方向にとれるのに対して ∂f∂x (x∗)はある固定された一つのベクトル

を表しているから、ゼロベクトル以外ではこの不等式を満たすことはできない。よって、

∂f

∂x(x∗) = 0,

もしくは同じことだけどれど、∂f

∂xi(x∗

1, x∗2) = 0, i = 1, 2.

3.2.2 陰関数定理ってすごく便利等号制約は 2 つの変数同士の関係を定める等号で結ばれた制約だ。例えば、x2 = x2

1 なんてはその一例。x1 + x2 = 10というのでもいい。もっと複雑になると x2

1 + x22 = 25なんてのある。これは原点を中心とする

半径 5の円を表している。この場合、どちから一方の変数が他方の変数を決定する「関数」ではないので、取り扱いが難しくなる。「関数」っていうのは x1 を 1 つ決めれば x2 も 1 つに決まるっていう関係のことだから、円のように x1 を 1つ決めると、それに対応する x2 が 2つあるってのは「関数」じゃないってことになる。でも円の一部分を切り取ってみれば一部分を近づいてよーく見てみれば x1 と x2 は 1対 1に対応している。つまり「関数」として表すことができるんだ。このことを定理にしたものが「逆関数定理」というもので、その双子の兄弟が「陰関数定理」だ。いつでも関数としてみることができるわけじゃないけど、どういう時に関数として捉えることができてその点での微分の計算を教えてくれるのがこれらの定理だ。

f(x1, x2) = 0 という関数があるとする。先ほどの円の例でいえば x21 + x2

2 − 25 が f(x1, x2) に対応する。これを「全微分」すると、

fx1dx1 + fx2dx2 = 0,

となる。全微分の計算はすべての変数で偏微分してそれに「無限小」を形式的にかけて足し合わせたものと了解しておいてもらえば困ることはあまりない。これを変形すると、

dx2

dx1= −fx1

fx2

,

3

Page 4: クーン・タッカーの定理に関連したことのメモβ版

となる。円の例を使えば、dx2

dx1= −2x1

2x2= −x1

x2,

となり、x = (0, 5)の点では x2 を x1 で微分した値はゼロであるし、x = ( 5√2,− 5√

2)では 1である。このよ

うに、局所的に一方の変数を他方の変数の関数と看做せ、さらに微分もできるというのが非常にありがたい定理なのである。

3.2.3 これでやっと等号制約のある問題を考えられる関数 f を最大にする x = (x1, x2) を探そうとしているのだけど、x1 と x2 には互いに制限し合う制約

g(x1, x2) = 0がある、っていう問題を考えている。さっきまで関数は全部 f にしてきたけど、これからはそれだと大変不都合なので制約条件は g で表すことにしよう。

g が ax1 + bx2 = cみたいにシンプルなものであれば直接 x2 = −ab x1 − c

b って書き直して f に代入してしまえばいい。 そうすれば制約もないし 1変数の関数の問題にしてしまうことができる。f(x1,−a

b x1 − cb )っ

てことになる。ところが前節の円の例のようにそう都合の良い場合ばかりではないのが困り者。しかーし、我々には「陰関数定理」という強い味方がいる。我々が気にしているのは f に極値(2変数以降はとりあえず最大値はあきらめた)を与える点というごくごく局所的なことだから、そういう点があるものとして、その周辺にだけ注意を集中すれば陰関数定理のおかげで x2 を x1 で表す関数 hが存在するって考えてよいことになるんだ。つまり我々が探している答えの周辺でなら x2 = h(x1)という関数があるんだってこと。となると、先ほどのシンプルな制約の時と同じように考えることができて、目的とする関数 f に hを代入してしまえばいい。こういう最大化問題は独特の書き方があって、g を制約として変数 x1, x2 を選んで f を最大化する問題は

maxx1,x2

f(x1, x2) s.t. g(x1, x2) = 0,

と書く。f(x∗1, x

∗2) = max{f(x1, x2) : g(x1, x2) = 0}となる (x∗

1, x∗2)を求めよ、ってこと。これが解 (x∗

1, x∗2)

の近傍では、max

x1f(x1, h(x1)),

という 1変数の制約なしの問題に書き換えることができる。つまり、高校生の問題に引き戻すことができる訳だ。あとは計算するのみ。f を x1 で微分してゼロとおいてやればいい*5。

df

dx1= fx1 + fx2h

′(x1) = 0. (5)

ところが、陰関数定理が h′(x1)についてもう少し詳しいことを教えてくれる。

h′(x1) =dx2

dx1= −gx1

gx2

,

だから、これを (4)に代入して整理すると、

fx1 −fx2

gx2

gx1 = 0, (6)

*5 微分してやればいい、なんて簡単に書いてるけど、ここは微分の「連鎖律」を使っている。g(x), h(x) という x の関数があって、f がそれらの関数、すなわち f(g(x), h(x))であるとき f は間接的に xの関数である。この f を xで微分するルールが連鎖律で、この場合には fgg′ + fhh′ がその微分になる。g が xそのものであれば g′ は 1になるので (5)の式が導かれる。

4

Page 5: クーン・タッカーの定理に関連したことのメモβ版

となる。変形すると、fx2 −

fx1

gx1

gx2 = 0,

となる。さらに同じ式からfx1

gx1

=fx2

gx2

,

も言えるが、これを y とおくことにする。つまり、

y =fx1

gx1

=fx2

gx2

.

このように定義すると、(5)やその変形は

fxi − ygxi = 0, i = 1, 2 (7)

と書くことができる。これは (4)を変形しただけで極値を与える必要条件であることを忘れないで欲しい。さて、ここからが面白い。この y を使って、目的関数 f と制約式 g をつなげた新しい関数 Lを定義する。

L(x1, x2, y) = f(x1, x2) + y(b − g(x1, x2)). (8)

この Lを目的関数とする最大化問題を考えると、制約条件がないことから、これも高校レベルの数学に毛(偏微分)を生やした程度で必要条件を導くことができる。すなわち、

Lx1 = fx1 − ygx1 = 0, (9)

Lx2 = fx2 − ygx2 = 0, (10)

Ly = b − g(x1, x2) = 0. (11)

(8) と (9) は (6) であり、(10) は制約上条件だから当然解は満たしていなければならない。驚くべきことにこれらは元の等号制約付き最大化問題の満たすべき条件と完全に一致しているんだ。この関数 Lをラグランジュ関数と呼び、y をラグランジュ乗数と呼ぶ。このように制約付き問題を制約なしに変える手法をラグランジュの未定乗数法なんていったりする。ところで陰関数定理がとても光ってるよねぇ。y の定義を見ると制約条件が(解の周辺で)目的関数に与える効果を表していることが分かるし、ラグランジュ関数を y で微分したものが制約式そのものであることからも同じようなことが分かる。制約式は所得や技術などの制約を表すことが多いから、経済学では y をシャドープライスなんて言ったりするのはこのためなのだ。

4 再び非負制約:2変数でも同じなんだけど再び非負制約について考えよう。最初に考えたのは 1変数だったが、今度は 2変数だ。問題は、

maxx1,x2

f(x1, x2) s.t. x1 ≥ 0, x2 ≥ 0.

結局は 1変数の場合と同じに、場合分けになるわけだけど、まず x∗1 > 0, x∗

2 > 0の場合を考える。この時は非負制約は関係ないので制約なしの時と同じように fxi = 0, i = 1, 2でなればならない。次に、x∗

1 = 0で x∗2 > 0が解となる場合を考えよう。このとき、x2 については x1 = 0の平面に沿っての微

分がゼロになればいいし、x1 については 1変数の時と同じように 2つの可能性がある。つまり、fx1 < 0の時と fx1 = 0の時とがある。

5

Page 6: クーン・タッカーの定理に関連したことのメモβ版

最後に x∗1 = 0, x∗

2 = 0の場合にはどうなるであろうか。これは片方がゼロの場合と全く同じで、fxi< 0か

fxi= 0, i = 1, 2の場合に分かれる。これらを整理すると 1変数の時と全く同様に、i = 1, 2に対して、

fxi ≤ 0, (12)

fxixi = 0, (13)

xi ≥ 0. (14)

という結論が得られる。

5 不等号制約つきの問題、恐るるに足らず制約条件が等号制約や非負制約のみならず不等号制約がある場合にはどう考えれば良いのだろうか。つまり問題が、

maxx1,x2

f(x1, x2) s.t. g(x1, x2) ≤ b, x1 ≥ 0, x2 ≥ 0,

であるとき、どうすれば良いのであろうか? 答えは比較的簡単で、不等号制約を非負制約に変形してしまえば前節の方法で問題に対処できるのである。そこで、s = b − g(x1, x2)という新しい変数を定義する。これによって問題は、

maxx1,x2

f(x1, x2) s.t. s ≥ 0, x1 ≥ 0, x2 ≥ 0, g(x) + s = b,

という等号制約と非負制約付きの問題になるのである。等号制約問題であればラグランジュの方法によって制約なしの問題にすることができる。よって、この問題のラグランジュ関数を H とすれば、

H(x1, x2, s, y) = f(x1, x2) + y(b − g(x1, x2) − s),

がこの問題のラグランジュ関数である。sは非負制約を持つ新たに定義された 3番目の変数 x3 と思っておけばよいだろう。よって、これらの変数に対する (9), (10), (11)の条件を求めると、

Hxi = fxi − ygxi = 0,

Hxixi = (fxi

− ygxi)xi = 0

xi ≥ 0,

Hy = b − g(x) − s = 0,

Hs = −y = 0,

Hss = −ys = 0,

s ≥ 0.

sを展開して消去すると、この条件は

fxi − ygxi ≤ 0,

(fxi − ygxi)xi = 0,

x ≥ 0,

y ≥ 0,

y(b − g) = 0,

b − g ≥ 0.

6

Page 7: クーン・タッカーの定理に関連したことのメモβ版

ここで、最初の問題に対してラグランジュ関数を L(x1, x2, y) = f(x1, x2) + y(b − g(x1, x2))と定義するとこれらの条件は、

Lxi ≤ 0, (15)

Lxixi = 0, (16)

x ≥ 0, (17)

Ly ≥ 0, (18)

Lyy = 0, (19)

y ≥ 0, (20)

(21)

となる。この条件をクーン=タッカーの条件と言う。これだけ見るとビビるけど、最初から丁寧に追っていけばそれほどでもない、かな?

6 2変数関数の最大化問題の応用2変数関数なんて単純なものではあるけど、経済学ではとても重要なことをたくさん教えてくれる。その中でも時間の概念を明示的に取り入れることができるっていうのに注目したい。

x1, x2 の添字の 1、2を時間だと思い込む。それでさらに関数を f ではなく効用(utility)を表す uで表すことにしよう。さらに xi を時間 iでの財の消費量だとしよう。そうすると u(x1, x2)となるが、時間 1と時間2の消費から効用を得る効用関数ってことになる。制約条件は予算制約だ。持ってるおカネ以上に消費はできない。xi の価格を pi、それぞれの期間での収入を wi とすると、1期目には w1 の収入から x1 の消費をした残りを 2期目に貯蓄することもできる。これを s

としよう。消費も貯蓄もしないっていう選択肢も一応あるにはあるんで、1期目の予算制約は

p1x1 + s ≤ w1,

になる。無駄にしてもいい、っていう部分は不等号制約の形で表現されている。2期目には貯蓄した分と 2期目の収入の合計から消費をする。2期目の終わりには死んじゃうんで、貯蓄をする必要はない。でもやっぱり無駄にすることもできるから、2期目の予算制約は

p2x2 ≤ s + w2,

となる。マイナスの量を消費することは普通はできないから、それぞれの期間の消費には非負制約 xi ≥ 0 がつく。また、貯蓄はできるけど、2期目から借り入れはできないことにしよう。つまり s ≥ 0だ。これで問題は、

maxx1,x2,s

u(x1, x2) s.t. p1x1 + s ≤ w1, p2x2 ≤ s + w2, x1 ≥ 0, x2 ≥ 0, s ≥ 0,

7

Page 8: クーン・タッカーの定理に関連したことのメモβ版

ってことがわかる。もうちょっと美しく書こう。これじゃちょっと読みにくい。

maxx1,x2,s

u(x1, x2),

s.t. p1x1 + s ≤ w1,

p2x2 ≤ s + w2,

x1 ≥ 0,

x2 ≥ 0,

s ≥ 0.

さて、これは不等号制約と非負制約のついた最大化問題だからラグランジュ大先生の力を借りよう。まずラグランジュ関数 Lは

L(x1, x2, s, y1, y2) = u(x1, x2) + y1(w1 − p1x1 − s) + y2(s + w2 − p2x2),

となり、クーン=タッカーの条件は、

Lx1 = ux1 − y1p1 ≤ 0,

Lx2 = ux2 − y2p2 ≤ 0,

Lx1x1 = (ux1 − y1p1)x1 = 0,

Lx2x2 = (ux2 − y2p2)x2 = 0,

x1 ≥ 0,

x2 ≥ 0,

Ls = −y1 + y2 ≤ 0,

Lss = (−y1 + y2)s = 0,

s ≥ 0,

Ly1 = w1 − x1 − s ≥ 0,

Ly2 = s + w2 − x2 ≥ 0,

Ly1y1 = (w1 − p1x1 − s)y1 = 0,

Ly2y2 = (s + w2 − p2x2)y2 = 0,

y1 ≥ 0,

y2 ≥ 0.

となる。あとはひたすら根性で場合分けして条件を求めていくのだけど、疲れるだけなので全部はやらない。

6.1 すべての変数が正の場合

まず最初に考えるべきケースは x1, x2, s, y1, y2 が全部ゼロよりも大きい(すなわち内点解の)ケースだ。この時には CS条件から uxi = yipi, y1 = y2, w1 − p1x1 − s = 0, s + w2 − p2x2 = 0である。まとめると、

xi > 0, s > 0, yj > 0 i, j = 1, 2,

ならば

ux1 = y1p1,

ux2 = y2p2,

y1 = y2,

p1x1 + s = w1,

p2x2 = s + w2.

8

Page 9: クーン・タッカーの定理に関連したことのメモβ版

y1 = y2 だから最初の二つの比をとると y1, y2 を消去できて、

ux1

ux2

=p1

p2,

を得る。これは「消費の限界代替率が価格比に等しい」ことを表してる。問題を形式的に眺めれば当たり前の結果だけど、時間を超えた財同士にについても普通に「限界代替率=価格比」が成立するってことはちょっと驚きだ。また 2本の制約式は sを消去して

p1x1 + p2x2 = w1 + w2,

と書くことができる。ただ、s > 0という条件があることに留意しなければならない。逆に言うと s ≥ 0という借り入れ制約がなければ、無条件でこの 2期間にわたる予算制約式は成立する。このような全期間にわたる予算制約を通時的予算制約といい、借り入れ制約は流動性制約という。効用関数が log x1 +log x2というものだとすると、log xの微分は 1/xであることから、限界代替率は x2/x1

となる。だから、x2 = p1x1/x2 となる。これを予算制約式に代入すると、x1 = (w1 + w2)/2p1 を得る。同様に x2 = (w1 + w2)/2p2 である。効用関数が対数関数の時には所得効果と代替効果が完全に相殺されるため、他の財の価格の影響を受けなくなる、という顕著な特徴があることは覚えておくと良いかも。通常は x1 は p2

にも依存して決まるってことは忘れちゃいけない。

6.2 x1 がゼロのときには何が起きるのだろう?

今後は x1 = 0の場合を考える。このときも ux1 = y1p1 が成り立つことは妨げないが、ux1 < y1p1 が成立しているとしよう。その他の条件は先ほどと同じだとすると、y1 = y2 は成り立っているから、このときには

ux1

ux2

<p1

p2,

となり、限界代替率は価格比よりも小さくなる。x1 = 0ということは 1期目の収入を全部貯蓄するということだから、2期目の消費量は自動的に x2 = (w1 + w2)/p2 と計算できる。効用関数が分かれば yi も求めることができる。

6.3 では s = 0の時は?

s = 0 のときは y1 = y2 が成立するとは限らない。これが成立しないということは貯蓄がゼロということで、将来の収入から借り入れが必要なのに、流動性制約が効いているという状況だ。クーン=タッカーの条件から y1 > y2 である。y1 = ux1/p1, y2 = uxx2/p2 だから、

ux1

ux2

>p1

p2.

消費量は s = 0より x1 = w1, x2 = w2 となる。

6.4 ラグランジュ乗数がゼロだったら?

ラグランジュ乗数が 2つどもゼロだった場合には何が起きるだろうか? このときにはクーン=タッカー条件の最初の二つが単純な形となる。すなわち ux1 = ux2 = 0だ。それに予算制約も不等号で結ばれることに

9

Page 10: クーン・タッカーの定理に関連したことのメモβ版

なる。つまり、制約なしの問題と同じ条件になるのだ。結局のところ予算で許されているよりも少ない消費量で効用が最大になってしまうってわけだ。このような点を飽和点という。所得が増えて予算制約が変わっても効用が増加しないわけだから、制約の感度を表すラグランジュ乗数がゼロになることの意味を表しているといえるだろう。

7 変数の数がどんどん増えると変数の数を増やしていくことを考えよう。まずは 3変数。1期目は前節と同じ p1x1 + s1 ≤ w1 という予算制約になる。2期目は p2x2 + s2 ≤ s1 + w2、3期目は p3x3 ≤ s2 + w3 という予算制約になる。細かいことを言うと本当は 4期目があって、x4 ≥ 0という制約がある。ただ、普通に考えればこれはゼロだから、3期目は貯蓄をしない。ただ、形式的に pixi + si ≤ si−1 + wi という予算制約に統一できるという利点がある。これに s0 という期初に与えられる所得を考えれば、1期から 3期まで同じ形の予算制約式になるし、これを一般の T 期に拡張した時に便利になるだろう。このとき xT+1 ≥ 0という制約がつく。さてとにかく問題は、

maxxi,sj

u(x1, x2, x3),

s.t. p1x1 + s1 ≤ s0 + w1,

p2x2 + s2 ≤ s1 + w2,

p3x3 + s3 ≤ s2 + w3,

x4 ≤ s3,

x1 ≥ 0, s1 ≥ 0,

x2 ≥ 0, s2 ≥ 0,

x3 ≥ 0, s3 ≥ 0,

x4 ≥ 0,

この問題に対応するラグランジュ関数 Lは

L(xi, sj , yj) = u(x1, x2, x3) + y1(s0 + w1 − p1x1 − s1) + y2(s1 + w2 − p2x2 − s2) + y3(s2 + w3 − p3x3 − s3)

であるが、これを几帳面に解いていってもいいが、大変なので流動性制約がないものと仮定して予算制約式を簡単にする(つまり sj ≥ 0 という制約をとる)。最後の制約式から s2 ≥ p3x3 + s3 − w3 であるが、これを 2 番目の制約式に代入して s2 を消去すると p3x3 + s3 − w3 ≤ s1 + w2 − p2x2 になるが、整理して、p2x2 + p3x3 + s3 ≤ s1 + w2 + w3 である。今度は s1 について整理して 1 番目の予算制約式に代入すると、p1x1 + p2x2 + p3x3 ≤ s0 + w1 + w2 + w3 − s3 となる。流動性制約を取り除いたおかげで問題はシンプルになった。w = s0 + w1 + w2 + w3 とおくと、

maxxi.s3

u(x1, x2, x3),

s.t. p1x1 + p2x2 + p3x3 ≤ w − s3,

x4 ≤ s3,

x1 ≥ 0,

x2 ≥ 0,

x3 ≥ 0,

x4 ≥ 0.

10

Page 11: クーン・タッカーの定理に関連したことのメモβ版

ラグランジュ関数は

L(x1, x2, x3, x4, s3, y1, y2) = u(x1, x2, x3) + y1(w − s3 − p1x1 − p2x2 − p3x3) + y2(s3 − x4),

となり、クーン=タッカー条件は、

Lxi = uxi − y1pi ≤ 0, i = 1, 2, 3

Lxixi = (uxi

− y1pi)xi = 0, i = 1, 2, 3xi ≥ 0, i = 1, 2, 3,

Lx4 = −y2 ≤ 0,

Lx4x4 = −y2x4 = 0,

x4 ≥ 0,

Ly1 = w − s3 − p1x1 + p2x2 + p3x3 + x4 ≥ 0,

Ly1y1 = y1(w − s3 − p1x1 + p2x2 + p3x3 + x4) = 0,y1 ≥ 0,

Ly2 = s3 − x4 ≥ 0,

Ly2y2 = (s3 − x4)y2 = 0,

y2 ≥ 0,

Ls3 = −y1 + y2 = 0.

x1, x2, x3 > 0を仮定すると、uxi = yipi, i = 1, 2, 3となる。これから直ちに限界代替率=価格比が成立する。また、予算制約が等号でみたされるから y1 > 0と仮定できる(この点で効用がちょうど飽和して y1 = 0となるとも仮定できるが、面白みがない)。すると、最後の条件から直ちに y2 > 0を導くことができる。よって、x4 に関する CS条件から、x4 = 0が導かれる。

2変数の時と 3変数の時とで何か変わることがあるかと言えば、何もなくて、それは一般の n変数に拡張しても同じである。

maxxi

u(x1, ..., xT )

s.t. pixi + si ≤ si−1 + wi, i = 1, 2, ..., T

xi ≥ 0,

xT+1 ≤ sT ,

xT+1 ≥ 0.

このときラグランジュ関数は

L = u(x1, ..., xT ) +T∑

i=1

yi(si−1 + wi − pixi − si) + yT+1(sT − xT+1).

11

Page 12: クーン・タッカーの定理に関連したことのメモβ版

これから正直にクーン=タッカー条件を求めると、

Lxi = uxi − yipi ≤ 0,

Lxixi = (uxi − yipi)xi = 0,

xi ≥ 0,

Lyi = si−1 + wi − pixi − si ≥ 0,

Lyiyi = (si−1 + wi − pixi − si)yi = 0,

yi ≥ 0,

Lsi = −yi + yi+1 = 0,

LxT+1 = −yT+1 ≤ 0,

LxT+1xT+1 = −yT+1xT+1 = 0,

xT+1 ≥ 0.

si に関する微分から yi = yi+1 が分かる(流動性制約がない、という条件が必要なことに注意!)。3変数の時と同様の議論で xT+1 = 0を導くことができる。そのほか、限界代替率に関する議論やある変数がゼロになる時の議論などはすべて 2変数の時と同様である。流動性制約がなければ、逐次的な予算制約を通時的な予算制約にまとめることができる。

T∑i=1

pixi + sT ≤ s0 +T∑

i=1

wi.

よってラグランジュ関数は、

L = u(x1, ..., xT ) + y

(T∑

i=1

wi − sT −T∑

i=1

pixi

)+ yT (sT − xT+!).

この関数のクーン=タッカー条件は、

Lxi = uxi − ypi ≤ 0,

Lxixi = (uxi − ypi)xi = 0,

xi ≥ 0,

Ly =T∑

i=1

wi − sT −T∑

i=1

pixi ≥ 0,

Lyy =

(T∑

i=1

wi − sT −T∑

i=1

pixi

)y = 0,

y ≥ 0,

LsT= −y + yT = 0,

LxT+1 = −yT+1 ≤ 0,

LxT+1xT+1 = −yT+1xT+1 = 0,

xT+1 ≥ 0.

8 そして、無限大へで、問題は何かというとこの T を無限大まで拡張できるのか、ということなんだ。効用関数一つとっても

u(x1, x2, ...)なんてものに馴染みがない。R∞ 3 (x1, x2, ...)っていうベクトルを Rに写す関数を考えている

12

Page 13: クーン・タッカーの定理に関連したことのメモβ版

訳だ。しかも、予算制約はもっと困ったことに流動性制約がなければ、∞∑

i=1

pixi ≤ s0 +∞∑

i=1

wi,

ってことになって、とくに右辺は無限大になってしまうから、左辺の消費も無限大にすることができる、なんておかしなことになってしまうんだ。これはどういうことなんだろう? 一つ考えられるのは 1期目の消費を無限大にするために 2期目以降をずっとマイナスにしていくことが考えられる。ただ、無限大とマイナス無限大の足し算はできないから、ちょっとまずい。表現としては将来の消費をマイナスにすることで今日の消費を好きなだけ大きくすることができるっていうほうが正しいかもしれない。ただ、その「将来」っていうのがいくらでも先延ばしできるから、少しずつ借金を増やしていって消費し続け、ずっと借り換えていくなんてこともできる。それを永遠にくりかえせばいい*6。関数解析、バナッハ空間、ヒルベルト空間、`2 空間、L2 空間。

*6 無限の部屋があるヒルベルトホテルなんてのを思い起こす。あるときヒルベルトホテルが満室だった。そこへお客さんが 1人やってきた。ホテルの主は「かしこまりました、それでは i号室の部屋の方に i + 1号室へ移動してもらいましょう」これで 1部屋空きができてお客さんは寝床に困らずにすんだ。次に無限のお客さんがやって来た。主は「かしこまりました、それは i号室のお客さまにそれぞれ 2i号室へ移ってもらいましょう」これで無限のお客さんも無事部屋に泊まることができた。めでたしめでたし。

13