Lecture02:均衡问题-优化问题以及KKT等价

2022/1/3 23:39:46

本文主要是介绍Lecture02:均衡问题-优化问题以及KKT等价,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

1 竞争性博弈问题

1.1 问题转化

1.2 纳什均衡

1.3 优化问题与均衡问题的KKT等价性 

2 紧凑模型

 3 使用PATH求解器求解MCP模型的GAMS源码

3.1 源码文件

 3.2 计算结果


本系列已发布文章列表:

Lecture01:市场出清问题的优化建模

Lecture1b: 如何由原始线性规划模型得到最优条件和对偶问题

回顾之前的电力市场的问题模型:

1 竞争性博弈问题

1.1 问题转化

对发电厂而言,其目标是最大化收益;而对于用电企业而言,则是最大化效用。那么,如何计算收益和效用呢?

  • 发电厂收益:发电量 * (市场价格 - 发电成本价格)
  • 用电企业效用:用电量 * (投标价格 - 市场价格)

由此,对于每个市场参与主体,我们有如下优化问题:

根据KKT条件,我们可以将 电量平衡约束 等价为一个优化问题:

在这个优化问题中,我们试图在惩罚任何供给和需求不匹配的情况。也就是说,如果生产价格与需求价格不相等,就会有 λ 的惩罚。

由此我们得到了五个优化问题:

 那么我们可以将这五个问题分开求解吗?显然是不能的。原因是:

  • 市场出清价格  λ 在price-setter问题中是变量,而在G1,G2,D1,D2中是参数
  • 发电量和用电量在G1,G2,D1,D2中是变量,而在price-setter问题中是参数
  • 因此上述五个问题是相互关联的,我们无法将其进行拆解而单独处理。这是一个博弈论的问题。

这个问题也被称为“竞争性均衡【“competitive equilibrium】,这是一个非合作博弈,所有玩家都在追求自己的最大化利益。只有当他们作为一个联盟,实现联盟利益最大化时,他们可以构建一个合作博弈。

关于竞争性博弈的三篇经典文献:

  1. Kantorovich, L. V. (1960). Mathematical methods of organizing and planning production. Management science6(4), 366-422.
  2. Samuelson, P. A. (1952). Spatial price equilibrium and linear programming. The American economic review42(3), 283-303.
  3. Arrow, K. J., & Debreu, G. (1954). Existence of an equilibrium for a competitive economy. Econometrica: Journal of the Econometric Society, 265-290.

1.2 纳什均衡

纳什均衡:没有市场参与者可以偏离均衡点而增加他自身的利益

约束只依赖于自己,而目标却与其他参与者相关联。这样的问题,我们可以称其为一个纳什均衡问题。广义的纳什均衡问题,每个参与者的目标和约束均与其他参数者相关联。显然,我们的问题是一个纳什均衡,但不是广义纳什均衡。

我们讨论纳什均衡和广义纳什均衡,那么为什么要区别他们呢?因为纳什均衡有很多很好的性质,如解的存在性,唯一性等;而广义纳什均衡并不具备同样的优秀属性。

 那么,如何做到所有参与者都对市场出清价格保持满意,并且不愿意违背呢? 我们手头有计算纳什均衡和通过优化得到问题的解。实际中,我们应该采用那个方法呢?

 我们先讨论均衡的方法,我们先将优化问题使用 KKT 条件进行等价变换,得到一个MCP;然后使用PATH等求解器计算,或者定义辅助的目标来解决。

1.3 优化问题与均衡问题的KKT等价性 

接着又来了一个问题,我们由均衡模型得到的KKT,和由优化模型得到的KKT是等价的吗?如果等价,那么均衡模型和优化模型也就是等价的。显然,这里是等价的。

 那么,我们求解一个优化问题,实际上也是在求解一个等价的均衡问题。因此,我们可以得到以下两个结论:

  • 优化问题和均衡问题是等价的,因为他们都能推导出相同的KKT条件
  • 优化问题和均衡问题都能获得纳什均衡解,即没有市场参与者愿意偏离市场出清价格。

2 紧凑模型

优化模型版本:

 均衡模型版本:

MCP模型版本:

 3 使用PATH求解器求解MCP模型的GAMS源码

3.1 源码文件

sets
g   generators /G1*G2/
n   buses  /N1*N3/
d   demands   /D1*D2/
alias(n,m)

Sets
MapN(n,n) Network topology /
N1.N2
N1.N3
N2.N3
N2.N1
N3.N1
N3.N2/
MapG(g,n) Location of generators /
G1.N1
G2.N2/
MapD (d,n) Location of demands /
D1.N2
D2.N3/;

Parameter PGmax(g) Capacity of generators [MW]/
G1 100
G2 80/ ;
Parameter C(g) offer price of generators [$ per MWh]/
G1  12
G2  20/;
Parameter L(d) Maximum load of demands [Mw]/
D1  100
D2  50/;
Parameter U(d) utility of demands [$ per MWh]/
D1  40
D2  35/;

Table Fmax (n,n) capacity of transmission lines [MW]
    N1  N2  N3
N1  0   100 100
N2  100 0   100
N3  100 100 0;

Table B(n,n) susceptance of transmission lines [Ohm^{-1}]
    N1  N2  N3
N1  0   500 500
N2  500 0   500
N3  500 500 0;

free variable
p_D(d) consumption level of demand d [MW]
p_G(g) Production level of generator g[Mw]
theta(n) voltage angle of bus n [rad]
lambda(n) Dual var.: locational marginal price [$ per MWh]
gamma Dual var. associated with equality constraint introducing ref. bus
;

Positive variable
mu_D_min(d) Dual var. associated with lower bound of consumption level
mu_D_max(d) Dual var. associated with upper bound of consumption level
mu_G_min(g) Dual var. associated with lower bound of production level
mu_G_max(g) Dual var. associated with upper bound of production level
eta_min(n,m) Dual var. associated with transmission capacity constraints
eta_max(n, m) Dual var. associated with transmission capacity constraints;

Equations
cons1,cons2,cons3,cons4,cons5,cons6,cons7, cons8,cons9,cons10,cons11,cons12;
* Primer constraints
cons1(g).. p_G(g)=g= 0;
cons2(g).. - p_G(g) =g=-PGmax(g);
cons3(d).. p_D(d) =g= 0;
cons4(d).. - p_D(d) =g= -L(d);
cons5(n,m).. [B(n,m)*(theta(n)-theta(m))] =g= -Fmax(n,m);
cons6(n,m).. -[B(n,m)*(theta(n)-theta(m))] =g= -Fmax(n,m);
cons7.. theta('N1') =e= 0 ;
cons8(n).. - sum(g$MapG(g,n),p_G(g)) + sum(d$MapD(d,n),p_D(d))
           + sum(m$MapN(n,m),B(n,m)*(theta(n)-theta(m))) =e= 0;
* KKT conditions
cons9(d).. -U(d)+sum(n$MapD(d,n),lambda(n)) + mu_D_max(d) - mu_D_min(d) =e= 0;
cons10(g).. C(g)-sum(n$MapG(g,n),lambda(n)) + mu_G_max(g) - mu_G_min(g) =e= 0;
cons11(n)$(ord(n) eq 1).. sum(m$MapN(n,m),B(n,m)*[lambda(n)- lambda(m)
                            + eta_max(n, m) - eta_max(m, n) - eta_min(n,m)
                            + eta_min(m,n)]) + gamma =e= 0;
cons12(n)$(ord(n) <> 1).. sum(m$MapN(n,m),B(n,m)*[lambda(n)-lambda(m)
                            + eta_max(n,m) - eta_max(m,n) - eta_min(n,m)
                            + eta_min(m,n)]) =e= 0 ;
Model Market_clearing /
cons1.mu_G_min
cons2.mu_G_max
cons3.mu_D_min
cons4.mu_D_max
cons5.eta_min
cons6.eta_max
cons7.gamma
cons8.lambda
cons9
cons10
cons11
cons12/;
Solve Market_clearing using mcp;
option mcp =PATH;
Display p_G.l, p_D.l, lambda.l;

 3.2 计算结果

p_G.L  Production level of generator g[Mw]

G1 100.000,    G2  50.000


p_D.L  consumption level of demand d [MW]

D1 100.000,    D2  50.000


lambda.L  Dual var.: locational marginal price [$ per MWh]

N1 20.000,    N2 20.000,    N3 20.000

这与我们在Lecture01:市场出清问题的优化建模 中得到解是一致的。



这篇关于Lecture02:均衡问题-优化问题以及KKT等价的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程