見出し画像

数理最適化を知らずして電力市場は語れない ①劣微分と限界費用

カーボンニュートラルの実現に向けて「日本版コネクト&マネージ」と呼ばれる再エネ主力電源化を見据えた電力市場制度の改革が議論されています。しかし、電力市場の合理的な設計には価格メカニズムやシャドウプライス等の正しい理解が不可欠である一方で、凸解析や最適化等の理論を基礎とする数学的な定義や背景は、しばしば不明瞭に語られているように見受けられます。本稿では、合理的な市場設計に向けた基礎として、種々の容量制約を扱うために必要となる「劣微分」の概念を説明するとともに「限界費用」に基づく価格づけとの関係を明らかにしたいと思います。


■自明に見えるけど非自明な例題

各々1つの発電機を所有する発電事業者が2人いて、彼らの発電量の和によって消費者の需要を賄う状況を考えてみましょう。取引される品物は「1時間あたりの電力量」です。単位のスケールは何でも構いませんが、ここでは「kWh」とします。ちなみに、$${1}$$kWhは、$${1}$$kW = $${1000}$$Wの電力を$${1}$$hに渡って積算した値です。

事業者1と事業者2が所有する発電機は発電費用が異なるものとします。以下では、事業者1の発電機は、$${g_1}$$kWhの発電量に対して、$${g_1}$$円の燃料費用がかかるとします。すなわち、事業者1のコスト関数は

$$
G_1(g_1) = g_1
$$

とします。一方、事業者2の発電機は、発電量の2次関数のコスト関数として

$$
G_2(g_2) = g_2^2
$$

の発電費用がかかるとします。ただし、どちらの発電機も発電できる上限は$${1}$$kWhであり

$$
0\leq g_1 \leq 1,\quad
0\leq g_2 \leq 1
$$

の容量制約を考えます。これらのコスト関数をプロットしたものが図1です。

図1:各事業者の発電コスト関数

さて、以上の設定において、賄うべき消費者の需要が「$${1}$$kWh」である場合を考えてみましょう。両者により需要を賄う配分方法は無数に存在しますが、図1を見る限りでは、$${1}$$kWh以下では事業者2の発電コストの方が安いので、その範囲では常に事業者2の発電機だけを使って$${g_2=1}$$としても良さそうに思えます。

一方で、事業者1の発電機だけを使って$${g_1=1}$$としても、結局どちらも発電コストは$${1}$$なので、単純にはどちらが良いとも言えない状況です。さらに、各事業者は発電量を売らないと儲けが出ないので、発電コストが同じではあっても発電できなかった事業者は稼ぎが無くなってしまいます。その意味では、上の2通りの配分方法はどちらも不公平です。

また、電力量の取引価格を$${\lambda}$$円/kWhと表すと、消費者が$${1}$$kWhを購入する場合には、発電事業者に$${\lambda\times 1}$$円を支払うことになります。消費者としては価格は安いに越したことはないですし、事業者としては価格は高いに越したことはないです。そうすると、妥当な取引価格はいくらなのか?という疑問も生じます。

実は、プレイヤーである事業者や消費者の目線でも、社会的な目線でも「ベスト」と言える配分と取引価格が存在します。上の例では

$$
g_1^{\star} = 0.5
,\quad
g_2^{\star} = 0.5
,\quad
\lambda^{\star} = 1
\qquad
(1)
$$

となります。

興味深いことに、この市場取引が最善と言える納得の理由は「最適化の数理学」が教えてくれます。

■各事業者は利潤を最大化する利己的プレイヤー

まず、発電事業者の目線でベストと考えられる市場取引を考えてみましょう。彼らの目的は「自分の利潤を最大にすること」です。利潤は、発電量を売って得た収入から、発電に必要なコストを差し引いた値です。具体的には、市場での取引価格を$${\lambda}$$円/kWhに固定したとすると、発電量$${g_i}$$を売却するときの各事業者の利潤は

$$
J_i(g_i,\lambda) = \underbrace{\lambda g_i}_{収入} - \underbrace{G_i(g_i)}_{発電コスト}
,\quad i=1,2
$$

です。事業者は利潤を最大化したいので、取引価格が$${\lambda}$$円/kWhの場合において、各々の利潤を最大化する発電量は

$$
g_i^{\star}(\lambda)=\arg \max_{g_i} J_i(g_i,\lambda)
\quad {\rm s.t.} \quad 0\leq g_i \leq 1
$$

と表せます。ここで「$${\rm arg}$$」の記号は、利潤$${J_i(g_i,\lambda)}$$が最大となる$${g_i}$$の値を考えることを意味します。すなわち、各事業者の視点で最適な発電量$${g_i^{\star}(\lambda)}$$kWhは、取引価格$${\lambda}$$円/kWhの関数となります。「s.t.」は「subject to」の略で、最適化の制約条件を書くときに使います。

理解を深めるため、最適発電量を具体的に計算してみましょう。事業者2を考えてみると、解くべき最大化問題は

$$
g_2^{\star}(\lambda)=\arg \max_{g_2} \{
\underbrace{\lambda g_2 -g_2^2}_{J_2(g_2,\lambda)}
\}
\quad {\rm s.t.} \quad 0\leq g_2 \leq 1
$$

です。これは上に凸な2次関数の最大化問題なので、基本的には$${g_2}$$に関する微分が$${0}$$となる$${J_2(g_2,\lambda)}$$の極値を求めれば良いことがわかります。まず、不等式制約の内側で極値の条件を考えると

$$
\frac{\partial J_2}{\partial g_2} (g_2^{\star},\lambda) =0
\quad
\iff
\quad
g_2^{\star}(\lambda) =\frac{\lambda}{2}
$$

と求められます。しかし、発電量には発電容量の上下限値を表す不等式制約があることを忘れてはいけません。具体的には、$${\lambda}$$が$${2}$$を超えた場合には、最適な発電量は上限値の$${1}$$となります。同様に、$${\lambda}$$が負の場合には、最適な発電量は下限値の$${0}$$です。すなわち

$$
g_2^{\star}(\lambda) =\left\{\begin{array}{cl}
0, &\quad \lambda <0 \\
\frac{\lambda}{2}, &\quad 0 \leq \lambda \leq 2 \\
1, &\quad \lambda >2
\end{array}
\right.
\qquad
(2)
$$

が正しい関数です。場合分けが含まれていてややこしく見えますが、不等式制約のあるコスト関数の「限界費用」と呼ばれるものを考える上ですごく重要になります。

滑らかでない関数に対する「劣微分」と呼ばれる概念を導入すると場合分けの意味が数学的に明らかになります。

■限界費用は発電費用の「劣微分」で定義される

数学的に等価な方法で、発電容量の不等式制約をコスト関数に組み込むことを考えます。具体的には、不等式制約を満たさない領域におけるコスト関数の値は$${\infty}$$であると数学的に定義します。すなわち

$$
G_2(g_2) = \left\{\begin{array}{cl}
\infty, &\quad g_2 <0 \\
g_2^2, &\quad 0 \leq g_2 \leq 1 \\
\infty, &\quad g_1 >1
\end{array}
\right.
$$

です。これを「指示関数(indicator function)」を使って簡潔に書くと

$$
G_2(g_2)=g_2^2 + \delta(g_2,[0,1])
\qquad
(3)
$$

となります。ここで、$${[0,1]}$$は$${0}$$以上$${1}$$以下の閉区間を表します。また、指示関数は

$$
\delta(g_2,[0,1]) = \left\{\begin{array}{cl}
0, &\quad g_2 \in [0,1] \\
\infty, &\quad {\rm otherwise}
\end{array}
\right.
$$

と定義します。要するに、$${g_2}$$の値が$${0}$$から$${1}$$の閉区間にある場合に指示関数の値は$${0}$$、区間外の場合は値は$${\infty}$$に設定するということです。式(3)のコスト関数は図2の赤線のように図示できます。指示関数に馴染みがなくとも、単純に不等式制約の境界で値が無限大にジャンプすると考えれば大丈夫です

図2:指示関数を使って不等式制約を組み込んだコスト関数

さて、このような滑らかでない点をもつ関数でも極値を探せるように、微分の概念を拡張することを考えましょう。それが「劣微分(subdifferential)」です。

具体的には、通常の微分ができない滑らかでない点での微分(関数の傾き)を、その点で考え得るすべての傾きの集合として定義します。例えば、図2の$${g_2=0}$$の点では、関数が角張っているので、その角張りに接するようなすべての接線(青細線の群)を考えて、そのすべての接線の傾きを$${g_2=0}$$の点における$${G_2(g_2)}$$の微分値として定義します。ちなみに、接線の傾き1つひとつは「劣勾配(subgradient)」と呼ばれます。

いま、接線の傾きは$${-\infty}$$から$${0}$$まで取り得るので、劣微分は

$$
\partial G_2(0)=(-\infty,0]
$$

という集合となります。ここで$${\partial}$$は劣微分を表す記号です。また、丸括弧は境界を含まない開区間を表す記号です。同様に、$${g_2=1}$$の点では

$$
\partial G_2(1)=[2,\infty)
$$

です。また、微分可能な滑らかなところでは通常の微分と同じく

$$
\partial G_2(g_2) = 2 g_2,\quad g_2 \in (0,1)
$$

です。まとめると

$$
\partial G_2(g_2) = \left\{\begin{array}{cl}
(-\infty,0], &\quad g_2 =0 \\
2g_2, &\quad g_2 \in (0,1) \\
[2,\infty), &\quad g_2 =1 \\
\empty, &\quad {\rm otherwise}
\end{array}
\right.
$$

です。不等式制約の外で劣微分が値をもたないことを「$${\empty}$$」で表しています。この発電コスト関数の劣微分が「限界費用関数(marginal cost function)」です。図示すれば図3左の赤線のようになります。

図3:事業者2の限界費用関数(左)限界費用関数の逆関数(右)

注意すべき点は、不等式制約の境界では、限界費用関数の値は「無数の値が許容される」ということです。例えば、$${g_2=1}$$の点では、限界費用は$${1000}$$円/kWhかもしれませんし、$${2}$$円/kWhかもしれません。なお、実際の限界費用は事業者2だけでは1つには定まらず、他のプレイヤーに依存した需要と供給のバランスで決まることになります。

この劣微分で定義された限界費用関数を使うと、利潤最大化問題の解

$$
g_2^{\star}(\lambda)=\arg \max_{g_2} \{\lambda g_2 - G_2 (g_2)\}
$$

は「劣微分が0」という極値の条件を満たすものとして

$$
\lambda \in \partial G_2 (g_2^{\star})
\quad
\iff
\quad
g_2^{\star} \in \partial \overline{G}_2 (\lambda)
$$

と表せます。ここで、限界費用関数$${\partial G_2 (g_2)}$$の逆関数を$${\partial \overline{G}_2 (\lambda)}$$で表しています。逆関数は横軸と縦軸をひっくり返したものであるので、図示すると図3右のようになります。この関数が、取引価格が$${\lambda}$$円/kWhであるときの事業者2の利潤が最大となる最適発電量を表しています

実際、図3右の曲線は、式(2)の$${g_2^{\star}(\lambda)}$$のプロットに一致していることがわかります。この限界費用関数は、ミクロ経済学で「供給曲線(supply curve)」とも呼ばれています。すなわち、供給曲線は利潤最大の最適発電量と取引価格の関係を示した関数です。

ポイントを整理すると

① 指示関数を使って不等式制約をコスト関数に組み込む
② 滑らかでないコスト関数に対して劣微分で限界費用関数を定義する
③ 限界費用関数(またはその逆関数)として供給曲線が得られる

という考え方に基づいて、発電コスト関数の限界費用関数(供給曲線)が定義されます。電力の市場取引では様々な容量制約が本質的に重要となるので、不等式制約を考えずに限界費用を語ることは大きな誤解を生む可能性があります。具体的には、不等式制約の境界における劣微分が不等式制約のラグランジュ乗数に対応するため、いわゆる「シャドウプライス(shadow price)」の理解にも関わります。

様々な不等式で制約される電力市場の限界費用を正しく理解するためには、劣微分の概念が不可欠なのです。

■全事業者の利潤が最大となる最適な取引価格

事業者1についても同様に考えると図4の限界費用関数が得られます。

図4:事業者1の限界費用関数(左)限界費用関数の逆関数(右)

事業者1の発電コスト関数は1次関数なので、図4右で示されているように、利潤が最大となる最適発電量は

$$
g_1^{\star}(\lambda) =\left\{\begin{array}{cl}
0, &\quad \lambda <1 \\
[0,1], &\quad \lambda =1 \\
1, &\quad \lambda >1
\end{array}
\right.
$$

とステップ状に変化します。特に、取引価格が$${1}$$円/kWhの場合には、$${0}$$kWhから$${1}$$kWhのいかなる発電量でも利潤は変わらず最大となります。

では、消費者の需要$${1}$$kWhを賄う場合の最適な取引価格を調べてみましょう。図3右と図4右からわかるように、どちらの事業者の最適発電量も取引価格に対して単調に増加します。したがって、取引価格を少しずつ高くしていって、両者の最適発電量の和が、ちょうど$${1}$$kWhとなる取引価格を探すことにしましょう。

まず、取引価格$${\lambda }$$が$${0}$$円/kWhのときには、最適発電量は

$$
g_1^{\star}(0) = 0,\quad
g_2^{\star}(0) = 0
$$

なので、当然ながら両者とも発電はしません。つぎに、取引価格が$${0.5}$$円/kWhの場合には

$$
g_1^{\star}(0.5) = 0,\quad
g_2^{\star}(0.5) = 0.25
$$

となります。両者の最適発電量の和は、まだ$${1}$$kWhには届きません。では、取引価格が$${1}$$円/kWhの場合にどうかと考えると

$$
g_1^{\star}(1) = [0,1],\quad
g_2^{\star}(1) = 0.5
$$

となります。事業者1は$${0}$$kWhから$${1}$$kWhのどの値も利潤は最大なので、$${0.5}$$kWhを発電してもらえば発電量の総和が需要に一致します。

このことから、最適な取引価格と各事業者の最適発電量は、たしかに式(1)の値となることがわかりました。ちなみに、価格が$${1}$$円/kWhを超えると発電量の総和も$${1}$$kWhを超えてしまうので需給のバランスが取れません。

このようにして決められた最適な取引価格は「限界費用価格(marginal cost price)」と呼ばれます。各事業者の視点では、個々人の利潤を利己的に最大化した結果に等しいので文句はないですね。消費者の視点でも、不当に釣り上げられていない「リーズナブル」な取引価格になっています。

■アダム・スミスの「見えざる手」

これまで各プレイヤーの視点で市場取引の最適性を議論してきました。一方、社会的コストという観点で市場取引を調べてみると、不思議なことに、社会的にも最適な結果が得られていることがわかります

具体的には、需要$${1}$$kWhを賄う場合の社会的コストの最小化問題は

$$
\min_{(g_1,g_2)} G_1(g_1) + G_2(g_2)
\quad
{\rm s.t.}
\quad
g_1+g_2=1
$$

です。ここで、各コスト関数には式(3)のように不等式制約を組み込んでいるものとします。この最小化問題は、等式制約に対するラグランジュ乗数$${\lambda}$$を導入することによって

$$
\max_{\lambda}\min_{(g_1,g_2)} G_1(g_1) + G_2(g_2)-\lambda(g_1+g_2-1)
\qquad (4)
$$

と等価であることが知られています。ただし、コスト関数は凸関数である必要がありますが、今回のケースではちゃんと凸関数となります。

コスト関数の凸性が合理的な限界費用価格の決定にとても重要な意味をもつことは続編で解説しようと思います。ポイントは劣微分の「単調性」です。

興味深いことに、式(4)の最適化問題の解は式(1)の値に一致します。これが意味することは、個人の利潤を最大化する市場取引は社会的コストも同時に最小化しているということです。まさに、アダム・スミスが「見えざる手」と表現した価格メカニズムを表しています。

アダム・スミス(Wikipediaより引用)

『部分知にしか基づかず、全体を見渡した行動ではない自利心に導かれた行動(中略)が、結果的に、あたかも「見えざる手」に導かれるかの様に、全体としての効率的な投資を実現し、経済を成長させる』

■限界費用価格は数学的な合理性をもつが万能とは限らない

以上で詳しく見てきたように、コスト関数の劣微分に基づいて求められる限界費用価格は、最適化の数理学を通じて合理性が説明できます。一方、限界費用価格が、どんな場合にも万能であるとは限らないことにも注意が必要です

例えば、$${1}$$kWhの需要を賄う場合の各事業者の利潤は

$$
J_1(g_1^{\star},\lambda^{\star})=0
,\quad
J_2(g_2^{\star},\lambda^{\star})=0.25
$$

です。すなわち、事業者2は儲けがある一方で、事業者1は儲けが全くありません。現実的には、事業者1も発電機の管理や維持などにも別途コストがかかることが想定されるので、この状況では事業者1は発電事業そのものを継続するモチベーションがありません。

このように、利潤を最大化する市場取引であったとしても利潤がプラスになることまでは保証されてはいません。管理費や維持費などの「固定費用」が限界費用には反映されないことが原因です。固定費用はコスト関数の定数項に当たります。

事業者1が儲けを出せるかどうかは需要量に依存しています。例えば、需要が$${2}$$kWhである場合には、消費者が不当に損をせず、各事業者の利潤も最大となる最適な市場取引は

$$
g_1^{\star} = 1
,\quad
g_2^{\star} = 1
,\quad
\lambda^{\star} = 2
$$

となります。このときの利潤は

$$
J_1(g_1^{\star},\lambda^{\star})=1
,\quad
J_2(g_2^{\star},\lambda^{\star})=1
$$

です。需要量が発電可能な上限ギリギリで発電の希少価値が高くなっているため、各事業者が得られる利潤も大きくなっています。このように需要と供給のバランスによって各事業者が得られる利潤は変わります。

長文におつき合いいただきどうもありがとうございました!誰もが納得できる合理的な電力市場を作るためには、限界費用価格の数学的な意味や効用を適切に理解することが重要かと思います。

▼引き続き関連記事をマガジンに投稿予定です

いいなと思ったら応援しよう!

この記事が参加している募集