MCP solver vs NLP solver (part 2)

昨日の話題の続きです。

「大きく、複雑なCGEモデルを解きやすいということ以外にNLPソルバーではなくMCPソルバーを使う利点」について。

どういうケースでMCPソルバーを利用したほうがよいかというと、単なる連立方程式ではなく、MCP (mixed complementarity problem) と呼ばれるような問題を解くケースです。

そもそも名前からしMCPソルバーなのだから、MCPを解くのに向いているのは当たり前なのですが、一応どういうことなのか説明します。

MCPとは以下のような形式で表現される条件を満たす x を求めるというような問題です (説明のため話を少し単純化しています)

f(x) => 0

x => 0

f(x) * x = 0

=>は等号付きの不等号です。

単なる連立方程式のケースでは条件式では等号(=)しか使われませんが、MCPでは等号付きの不等号も使われるのがポイントです。等号と不等号が混ざっているので、mixedという名前がつけられています。

経済学ではしばしばこのMCPというタイプの問題がでてきます。一番簡単な例は市場均衡の条件です。例えば、ある財の価格がp、その需要関数が d(p)、供給関数が s(p) であるとします。普通のケースではこの財の市場均衡 (market clearing) の条件は

d(p) - s(p) = 0

と表現されるでしょう。つまり、需要と供給が等しいという条件です。しかし、場合によっては需要と供給が等しくなるということを保証できない、つまり、たとえ価格がゼロにまで下ったとしても供給量が需要量を上回るというケースを排除できないという場合もありえます。そのようなケースまで考慮した形で、均衡条件を表現すると次のようになります。

s(p) - d(p) => 0

p => 0

(s(p) - d(p)) * p = 0

1本目は供給量は需要量を下回らないという条件です。

2本目は価格は非負の値をとるという条件です。

3本目は、p > 0 なら s(p) - d(p) = 0、つまり価格が正の値をとるなら需要=供給が成り立っていなければならず、逆に s(p) - d(p) > 0 ならp = 0、つまり供給量が需要量を上回るのなら価格はゼロになっていなければならないということを表現する条件です。

3つの条件式がMCPの形式そのままであることは明白ですね。

他にもいろいろ例をあげれますが、もう一つだけ紹介すると、利潤最大化条件でも同様の議論が成り立ちます

ある財を生産しているプライステイカーの企業を考えます。pi をその企業の利潤、p を財の価格、q を生産量、c(q) を費用関数とします。すると、

pi = p * q - c(q)

となります。普通この場合、利潤最大化の一階の条件は次式で表現されます。

c'(q) - p = 0

つまり、pi を微分したものをゼロと置く条件です。しかし、この利潤最大化条件についても生産量がゼロとなってしまうケースを排除できない場合が考えられます。その場合には、条件は次のように修正されます。

c'(q) - p => 0

q => 0

(c'(q) - p) * q = 0

1本目は限界費用が価格を下回らないという条件。

2本目は生産量は非負の値をとるという条件。

3本目は、q > 0 なら c'(q) - p = 0、つまり生産量が正の値をとるなら限界費用=価格が成り立っていなければなら、逆に c'(q) - p > 0 ならq = 0、つまり限界費用が価格を上回るのなら生産量はゼロになっていなければならないということを表現する条件です。

これもMCPの形式そのままですね。

以下、長いので続く...

再開 (2008-10-17)

以上のような MCP タイプの問題もNLPソルバーを利用して解けないことはありませんが、MCPソルバーを利用したほうが楽です (記述する式の数が少なくてすむので)。

ただし、普通のCGEモデルを解く場合には、MCPの形式を考える必要はあまりありません。というのは、普通のCGEモデルでは、効用関数、生産関数等にCES型を利用することが多いため、消費量、投入量、生産量等がゼロとなるケースは事前に排除することができるからです。

しかし、場合によってMCPのケースを考える必要があります。例えば、私が研究テーマにしている温暖化対策のCGE分析では backstop energy (new energy) を考えるケースです。

backstop energy をCGE分析に入れる場合、次のような仮定が置かれることが多いです。

  1. 当初は費用が高く採算が合わないため生産・供給されない。
  2. しかし、従来型の化石燃料の利用に排出税などが課せられることで、その価格が上昇していくにつれ、backstop energy の採算が合うようになり、生産・供給され始める。

この仮定の下では、初期時点での生産量がゼロという状態で均衡していることになるので、それを表現するにはMCPの形で表現する必要があります。