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】,这是一个非合作博弈,所有玩家都在追求自己的最大化利益。只有当他们作为一个联盟,实现联盟利益最大化时,他们可以构建一个合作博弈。
关于竞争性博弈的三篇经典文献:
- Kantorovich, L. V. (1960). Mathematical methods of organizing and planning production. Management science, 6(4), 366-422.
- Samuelson, P. A. (1952). Spatial price equilibrium and linear programming. The American economic review, 42(3), 283-303.
- 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等价的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15聊聊用LangChain4J构建聊天机器人的那些事儿
- 2024-11-15LangChain 和 LlamaIndex 在检索增强生成(RAG)中的大比拼:全面对比评测
- 2024-11-15平台工程不只是配置管理:超越CFEngine的方法
- 2024-11-152023年KubeCon芝加哥大会精华回顾
- 2024-11-15我花了3小时大致了解了ClickHouse
- 2024-11-15在使用平台私钥进行解密时提示 "私钥解密失败" 错误信息是什么原因?-icode9专业技术文章分享
- 2024-11-15Layui框架有哪些方式引入?-icode9专业技术文章分享
- 2024-11-15Layui框架中有哪些减少对全局环境的污染方法?-icode9专业技术文章分享
- 2024-11-15laydate怎么关闭自动的日期格式校验功能?-icode9专业技术文章分享
- 2024-11-15laydate怎么取消初始日期校验?-icode9专业技术文章分享