电力市场博弈论报价模型:从纳什均衡到供给函数均衡

发布时间:2026/11/3 4:22:37
电力市场博弈论报价模型:从纳什均衡到供给函数均衡 简介电力市场讲义博弈论PPT面向电力市场、能源经济与数学建模方向的学习者聚焦如何用博弈论刻画发电厂商报价与竞争决策。内容从参与人、行动、信息、战略、支付、结果和均衡等基本概念切入说明博弈规则与战略式表述并区分完全信息与不完全信息、完美信息与共同知识、静态与动态博弈梳理纳什均衡、子博弈精炼纳什均衡、贝叶斯纳什均衡等均衡概念。讲义还结合电力寡头市场介绍古诺模型、伯特兰德模型和供给函数均衡模型帮助读者把抽象均衡分析落到发电厂报价场景。包内为1个PPT文件约847KB结构紧凑适合课堂讲授、专题汇报或自学时快速建立知识框架。已有173人学习可作为电力市场博弈论入门与复习的轻量资料。1. 报价单上的数字不是成本加利润博弈论在电力市场里改写了什么发电厂商在报价单上填的那个数字很多人的第一反应是成本加合理利润。这个直觉在按报价出清、多家竞价的电力市场里经常翻车——你的收益不取决于你把自己的成本算得多准而取决于别人报了多少。这正是博弈论被放进电力市场课程的原因它把“我该报什么价”这个看着像会计问题的东西重新定义成“给定其他厂商的战略我的最优战略是什么”。这份电力市场讲义博弈论PPT 没有停在概念罗列它把参与人、行动、信息、战略、支付、结果、均衡七个要素拆开再把静态与动态、完全信息与不完全信息交叉成四类博弈最后落到古诺、伯特兰德、供给函数均衡三个寡头模型。看懂这条链路报价模型对你来说才不是黑匣子。2. 博弈规则的最小完备集七个要素里为什么只有三个不能删七个概念听起来像术语表其实是有层级的。讲义里明确划了一刀参与人、战略、支付是描述一个博弈所需的最少要素行动和信息是搭起这个结构的“积木”而参与人、行动、结果合起来叫博弈规则。这个分层不是修辞它决定了你建模时哪部分可以简化、哪部分一简化模型就废了。少了支付函数你不知道谁想干什么少了战略空间你不知道谁能在什么条件下动少了参与人连“谁跟谁博弈”都说不清。反过来行动顺序、信息结构这些细节可以在特定场景下退化成默认假设但退化的代价必须自己清楚。2.1 参与人与行动决策主体和决策变量参与人是博弈中的决策主体目标是通过选择行动或战略最大化自己的支付水平。它可以是自然人也可以是团体。讲义特意点明在电力市场环境下参与人指的是发电厂商。这个界定看着平淡实际影响很大把一家发电集团下属的不同电厂算作一个参与人还是拆成多个参与人会直接改变战略空间的维度和均衡的位置。粒度选错后面所有计算都建立在一个错误的博弈结构上。行动是参与人在某个时点的决策变量可以是离散的也可以是连续的。报价场景里通常是连续的——一条价格与电量对应的曲线而不是“报高价或报低价”两个选项。n 个参与人的行动构成有序集叫行动组合。和行动绑在一起的一个关键问题是行动顺序同样的参与人、同样的行动组合顺序变了每个人的最优选择就变了结果也变了。静态博弈和动态博弈的分野本质上就是行动顺序做没做出区分。2.2 信息集与战略从“选一个动作”到“相机行动方案”信息是参与人有关博弈的知识包括自然的选择、其他参与人的特征和行动。信息集则是描述信息特征的基本概念可以理解为参与人在特定时刻关于变量取值的知识。这里有个容易滑过去的点信息集不是“我知道多少”而是“我在做决策的这一刻能区分哪些情形”。两个不同的历史路径如果在你眼里长得一模一样它们就落在同一个信息集里你的战略就必须对它们给出同一个动作。战略因此被定义成给定信息集下的行动规则它规定参与人在什么时候选择什么行动。讲义用了“相机行动方案”这个词很准确——战略不是单个动作而是一张“如果看到 X 就做 Y”的对照表。在静态博弈里参与人同时行动看不到别人做了什么战略和行动几乎重合所以很多教材混着用一旦进入动态博弈两者就必须分开。日前市场报一次价、实时市场根据出清结果再调整一次这不是两个孤立的行动而是一个包含两个节点的战略。把动态问题按静态方式建模通常不会报错但会悄悄给出一个偏乐观的均衡。2.3 支付函数为什么你的收益写在别人的战略里支付是在特定战略组合下参与人得到的确定效用水平或者期望效用水平。参与人的目标是选择战略以最大化支付。但博弈的一个基本特征是你的支付不只取决于你自己的战略还取决于所有其他人的战略选择——它是整个战略组合的函数。这一条是博弈论和单人多目标优化的分水岭。单人优化里约束是外生的你可以对着一个固定的市场环境求最优博弈里“市场环境”本身就是别人的决策你优化的时候别人也在优化两个优化问题互相嵌套。结果和均衡要区分开。结果是博弈分析者感兴趣的东西包括均衡战略组合、均衡行动组合、均衡支付组合均衡只是结果的一种是所有人都没有单方面偏离动机的那个特定结果。很多人把“求均衡”当成“求最优”这是后面一系列踩坑的源头。讲义只给了战略式表述把博弈压缩成三样东西要素记号在电力市场里的对应物参与人集合N {1, 2, …, n}参与竞价的发电厂商战略空间S_ii ∈ N每家可提交的报价曲线集合支付函数u_i(s_1, …, s_n)结算规则下的利润一般记作 G {S_1, …, S_n; u_1, …, u_n}。扩展式表述能刻画行动顺序和信息集但战略式在求均衡时更好用——只要你能把“相机行动方案”完整枚举出来动态博弈也能压成战略式代价是战略空间会指数膨胀。3. 四类博弈四种均衡信息结构和行动顺序怎么把解概念锁死博弈分类的两个维度不是随便挑的它们恰好对应解概念需要的两样信息。行动顺序决定你能不能观察前人动作从而决定要不要用子博弈精炼信息结构决定你对别人支付函数知道多少从而决定要不要引入概率belief。两个维度一交叉均衡概念就唯一确定了完全信息静态对应纳什均衡完全信息动态对应子博弈精炼纳什均衡不完全信息静态对应贝叶斯纳什均衡不完全信息动态对应精炼贝叶斯纳什均衡。这不是四选一的偏好问题是模型结构决定的唯一出口。3.1 完美信息与完全信息一对最容易被混用的概念讲义专门辨析了这两个词因为它们中文长得太像。完美信息指的是一个参与人对其他参与人包括自然的行动选择有准确了解——关键词是“行动可观察”。完全信息指的是自然不首先行动或者自然的初始行动被所有参与人准确观察到也就是没有事前的不确定性——关键词是“类型和支付函数已知”。差别在哪儿举个电力市场的场景几家厂商同时提交报价事后所有报价都公开。这是完全信息但不是完美信息——大家同时行动谁也看不到别人当下选了什么。反过来如果某家厂商的成本类型是私有信息但它的动作你能实时看到那就是完美信息但不完全信息。这两个概念错配选出来的均衡概念就是错的后面所有推导都白做。3.2 纳什均衡的最优化写法不动点而不是最大值纳什均衡是完全信息静态博弈解的一般概念。n 个参与人的战略式表述博弈里战略组合 (s_1*, …, s_n*) 是一个纳什均衡如果对每个 is_i* 是给定其他人选择 s_{-i}* 时的最优战略u_i(s_i*, s_{-i}*) ≥ u_i(s_i, s_{-i}*)对任意 s_i ∈ S_i任意 i写成最优化形式s_i* ∈ argmax_{s_i ∈ S_i} u_i(s_i, s_{-i}*)看仔细argmax 的右边别人的战略是钉死在均衡值上的。所以这不是“全局最优”而是“相互最优”——n 个最优化问题必须联立求解每个问题的参数都包含其他问题的解。这就是为什么纳什均衡在数学上是一个不动点问题而不是一个极值问题。求解思路完全不同极值问题可以直接梯度上升不动点问题要么解方程组要么做最优反应迭代。理解这一点才能理解为什么纳什均衡可能不存在纯战略下、可能不唯一多重均衡、也可能在迭代时不收敛。这三种情况在实际报价模型里都出现过而且往往被当成“程序出错”。3.3 共同知识的强假定与它崩塌的后果共同知识指的是“所有参与人知道所有参与人知道所有参与人知道所有参与人知道所有参与人知道所有参与人知道……”的知识。这个无限递归的定义看着像文字游戏其实是整个均衡体系的地基均衡的成立要求所有人对规则、理性、战略空间都有共识。你不仅要相信对手是理性的还要相信对手相信你是理性的一层层往上叠。工程上这意味着什么意味着当你把模型交给一个真实市场时你实际在假设市场规则被所有人以同样方式理解、没有厂商会做非理性报价、没有人对别人的成本结构有私下的额外信息。任何一条不成立均衡的预测力就开始打折。讲义说这是“一个很强的假定”用词很克制。我的理解是共同知识是模型可信区间的边界标记而不是可以随手勾选的默认项——你把这条假设写下来等于同时写下了模型什么时候会失效。4. 三个寡头模型电力市场为什么最终停在供给函数均衡上古诺、伯特兰德、供给函数均衡这三个模型教材里经常并列介绍好像可以随便挑一个用。实际上它们是三个不同层次的抽象区别在于“决策变量是什么”以及“市场规则允许你提交什么”。选错模型的后果不是精度差一点而是结论方向都可能反过来。电力市场规则的演化史某种程度上就是迫使建模者从古诺和伯特兰德一路走到 SFE 的过程。4.1 建模公共底座反需求曲线、成本函数与目标函数三个模型共享一套骨架。每个厂商的产出记作 q_i市场需求用 Q D(p) 表示p 是价格。要求反需求曲线 p P(Q) 二阶连续可微且单调递减P 0这样才能保证需求曲线向下倾斜。每个厂商的成本函数 C_i(q_i) 也要求二阶连续可微边际成本非负、非递减。发电商还可以有供给函数 S_i(p)表示价格与供给量的关系同样要求二阶连续可微。目标是最大化利润max π_i P(Q) · q_i − C_i(q_i)关键在于 P(Q) 里包含 q_i因为 Q 是所有厂商产量之和。这个耦合项就是“博弈”两个字的数学体现。三个模型的区别只是把哪个量当成决策变量、以及市场怎么出清。4.2 古诺模型把对手产量当常数一阶条件与二阶条件古诺模型又叫产量竞争模型。厂商以产量为竞争策略同时决策每家都认识到自己的产量会影响价格但认为自己的决策不影响别人的产量决策。本质是把竞争者的产量水平当作固定的来决定自己生产多少。利润最大化的一阶条件是P(Q) q_i · P(Q) − C_i(q_i) 0第一项是价格第二项是“增产导致价格下跌”给自己带来的损失第三项是边际成本。三项一平衡就是最优产量。二阶条件是2P(Q) q_i · P(Q) − C_i(q_i) ≤ 0讲义里通过符号判断这个式子恒小于等于零所以一阶条件的解确实是极大值点。这一步在课堂上常被跳过但它是整个模型成立的前提——尤其在成本函数非凸、或者需求曲线有拐点的场景下二阶条件不成立会让一阶条件解出的是极小值。实际求解时n 个一阶条件方程联立就能得到古诺解。对称情形下有个闭式表达。下面用线性需求做最优反应迭代验证不动点是怎么收敛的# 线性反需求 p a - b*Qn 家同质厂商边际成本 c # 用最优反应迭代逼近古诺纳什均衡不动点 a, b, c, n 100.0, 1.0, 20.0, 3 q [1.0] * n # 初始产量任意正数即可 for it in range(500): q_new q[:] for i in range(n): # 对手产量之和这是把别人产量当常数的实现 Q_others sum(q[j] for j in range(n) if j ! i) # 由一阶条件 a - b*(Q_others q_i) - b*q_i - c 0 解出 q_i q_new[i] (a - c - b * Q_others) / (2 * b) # 当所有人都不再改变产量战略组合就是不动点 if max(abs(q_new[i] - q[i]) for i in range(n)) 1e-10: q q_new break q q_new p a - b * sum(q) print(q, p) # 对称均衡解与均衡价格这段代码把纳什均衡的“相互最优”落成了具体动作每次迭代每家厂商都在给定对手上一轮产量的前提下求自己的最优反应当所有反应函数同时不动了就是古诺均衡。参数 a 是需求截距代表市场容量b 是需求斜率代表价格对产量的敏感度c 是边际成本n 是参与人数。迭代次数上限设 500 是为了防止发散时死循环——如果需求斜率和成本结构不满足收敛条件最优反应迭代会震荡或者发散这在数学上是模型本身的性质不是代码写错了。对称均衡的理论解是 q* (a − c) / (b(n1))。拿它对照程序的输出可以验证迭代逻辑有没有写错。这一步别省血泪经验模型输出和理论解对不上的时候八成的错误在代码两成在参数含义搞反了。4.3 伯特兰德模型价格战为什么会退到边际成本伯特兰德模型把决策变量换成价格。厂商生产同一产品同时决定售价假设产品之间没有差异也没有容量限制。利润最大化的一阶条件相应变形联立求解得到伯特兰德解。这个解有个刺眼的名字准竞争解——在最终均衡中价格等于边际成本每个厂商都近似是价格的接受者利润趋近于零。这个结论在经济学上很漂亮但拿到电力市场直接用就会翻车。原因有二一是它有容量约束机组有最大出力供给不可能无限二是电力的产品同质性高但输电约束、启停成本、爬坡率这些让“无差异产品”假设很难成立。一旦容量约束回来价格就等于边际成本这个结论立刻失效因为对手想抢量也抢不到高价就有了生存空间。所以伯特兰德模型在电力市场里更多是作为“竞争足够激烈时”的基准参照而不是求解工具。4.4 供给函数均衡电力市场规则为什么逼出这个模型供给函数均衡SFE方法是研究者为了处理需求随机变动下的利润最大化均衡问题提出的后来被大量用于电力市场分析。原因很直接电力市场规则要求各发电商递交供给函数表明在不同价格下愿意提供的发电量。既然规则就是这么定的模型里的决策变量就该是供给函数而不是产量或者单一价格。在 SFE 模型里各厂商决定自己的供给函数即价格与供给量之间的关系函数市场价格由市场总需求和所有厂商的供给函数共同决定。目标函数写成对供给函数系数的优化max_{β_i} π_i (p − C_i(·)) · S_i(p)其中 p 由 Σ S_i(p) D(p) 出清该优化问题的实质是求最优供给函数的系数使得厂商获得最大利益。理论上联立 n 个一阶条件方程就能解出各供给函数的系数。文献里证明了线性供给函数均衡是稳定且唯一的——这一条很重要它意味着模型给的是可复现的结果而不是一堆可能解。求解上可以照搬古诺那套不动点迭代只是决策变量从产量换成了供给函数的系数# 线性供给函数 S_i(p) beta_i * p无截距简化形式 # 需求 D(p) a - b*p出清条件 sum(S_i(p)) D(p) # 对每个厂商做一维最优搜索再迭代到无人愿意改 beta a, b, cost 200.0, 2.0, 10.0 n 3 betas [1.0] * n def clearing_price(betas): # sum(betas)*p a - b*p p a / (b sum(betas)) return a / (b sum(betas)) def profit(beta_i, others, a, b, cost): p clearing_price(others [beta_i]) return (p - cost) * beta_i * p # 价差 × 自己供给量 for it in range(300): new_betas betas[:] for i in range(n): others [betas[j] for j in range(n) if j ! i] # 在候选区间上网格搜索自己最优的 beta_i best_b, best_pi betas[i], -1e18 for k in range(1, 2000): cand k * 0.01 pi profit(cand, others, a, b, cost) if pi best_pi: best_b, best_pi cand, pi new_betas[i] best_b if max(abs(new_betas[i] - betas[i]) for i in range(n)) 1e-6: betas new_betas break betas new_betas出清价格那一行是整个模型的重心所有人的 β 加在一起决定价格价格又反过来决定每个人的实际供给量。利润函数里的 (p − cost) 是单位价差β_i·p 是自己的供给量两者相乘才是总利润。网格搜索之所以够用是因为这里是单变量优化候选区间设成 0 到 20 已经覆盖了合理报价斜率。如果发现最优 β 落在搜索边界上说明区间设窄了要往外扩——这也是踩过坑之后才养成的习惯。5. 避坑报价模型里最容易踩的五个建模错误博弈论这套东西最麻烦的地方在于错了不一定报错。你照样能跑出一个数照样能画出一条漂亮的报价曲线但那个数背后的博弈结构可能根本不是你以为的那个。下面五条都是从实际建模里攒出来的按“现象、原因、解决”写。5.1 只解一阶条件不验二阶条件现象模型稳定输出一个“最优报价”但稍微改一下成本函数的曲率输出就跳到另一个完全不同的点上而且跳跃没有明显规律。原因一阶条件只是驻点条件驻点可以是极大值、极小值也可以是鞍点。古诺模型里那条二阶条件 2P(Q) q_i·P(Q) − C_i(q_i) ≤ 0在需求单调递减、成本凸的常规假设下自然成立所以没人检查。一旦引入非凸成本比如分段煤耗曲线或者带拐点的需求它就可能变号。解决把二阶条件的符号检查写成断言放在每次求解之后。数值上可以用两次扰动求差分来验 Hessian 的定性符号不对就直接抛出异常而不是让它悄悄输出一个极小值解。5.2 信息结构标错解概念整个失效现象模型按完全信息建模求出纳什均衡但实际市场里各家成本是私有信息模型预测的报价和实际报价系统性偏差而且偏差方向不固定。原因完全信息假设的是所有人的支付函数都是共同知识。一旦有私有成本正确的框架是不完全信息静态博弈解概念应该是贝叶斯纳什均衡——参与人要对别人的类型分布求期望而不是对着一个确定的支付函数求最优。解决建模前先画一张“谁知道什么”的表把每个参与人的类型、可观察信号、共同知识范围列清楚再对照四象限确定解概念。结构标错的时候参数调得再准也只是在拟合噪声。5.3 把共同知识当成默认前提现象模型在仿真里表现很好一放到真实市场就失效复盘时发现规则理解有歧义不同厂商对同一条出清规则的解释不一样。原因均衡的存在和唯一性建立在一个很强的假设上——所有人对规则、理性、战略空间有无限层级的共识。真实市场里连“这条规则怎么算”都可能有分歧共同知识这个前提就断了。解决把共同知识拆成可检查的条目规则文档是否唯一、结算公式是否公开、违规处罚是否可预期。任何一条有歧义就在模型里引入相应的不完全信息而不是硬套完全信息均衡。这条我一般会写在模型说明的第一段提醒自己预测力的边界在哪里。5.4 供给函数系数解不存在或多解直接当成程序故障现象SFE 模型跑出来 β 有负数或者换一个初始值就收敛到完全不同的系数组合。原因SFE 的均衡解需要满足一阶条件方程组而这个方程组在非线性的成本或需求下可能没有实数解也可能有多个解。线性供给函数均衡的稳定性和唯一性是有前提的前提不满足唯一性就不成立。解决先确认模型落在“线性供给函数 常规需求”的范围内再谈唯一解非线性情形下改用不动点迭代加多初值扫描把所有收敛点都记录下来观察它们的利润差异。如果多个均衡的利润接近说明模型对市场结构本身不敏感这时候报告区间比报告点估计更诚实。5.5 忽略容量约束把伯特兰德结论生搬硬套现象套用伯特兰德模型分析某个集中度较高的市场得出结论“价格会趋近边际成本”但实际出清价格长期高于边际成本模型被判定为不可用。原因伯特兰德的核心假设是产品同质且无容量限制。电力市场里机组有最大出力一旦负荷高峰把所有机组都顶到上限价格就脱离边际成本由需求侧的稀缺性定价。容量约束一回来“降价抢量”的策略就失效了。解决判断市场是否接近伯特兰德竞争先看两个指标市场集中度和剩余容量。剩余容量充裕、厂商数量多伯特兰德作为下限参照才有意义否则应该用带容量约束的供给函数模型。拿一个前提不成立的模型去解释现实结论错了不冤。6. 模型边界从讲义里的均衡到真实报价决策的可信区间把讲义读完最容易产生的误解是“学会了三个模型就能算出最优报价”。实际不是。古诺、伯特兰德、SFE 给的是均衡——一个所有人都没有单方面偏离动机的状态。它回答的是“如果所有人都理性且都知道彼此理性市场会停在哪里”而不是“明天我该报多少”。这两者之间隔着一整层参数不确定性需求预测误差、对手成本分布的估计误差、机组可用率的随机性。所以我的用法是把模型当坐标系而不是计算器。先用四象限确定结构谁先动、谁掌握什么信息再用三个寡头模型中的一个给出均衡的参照位置最后拿实际报价和参照位置的偏差反过来判断市场里多了什么——是容量约束在起作用还是有人在利用信息不对称。偏差本身就是信息比一个精确但错误的点估计有用得多。模型假设现实偏差来源偏差的表现同时决策、单阶段日前与实时两阶段耦合均衡位置偏移动态博弈更合适完全信息成本与检修计划私有报价系统性高于完全信息均衡无容量约束机组出力上限、爬坡限制高价时段价格脱离边际成本单一时段出清跨时段的水电与储能机会成本进入报价需多阶段模型验证方法上我一般做三件事一是用对称情形的理论闭式解校验数值求解器这一步能排掉大部分实现错误二是做参数敏感性扫描看均衡对需求斜率和边际成本变化的响应是连续还是跳变跳变意味着模型在该区域不可靠三是把模型输出的战略组合代回每个参与人的支付函数逐个验证单方面偏离不会增加收益——这是纳什均衡定义最直接的数值检验比看迭代是否收敛可靠得多。从那以后我每次拿到一份新的市场规则都会先把参与人粒度、信息结构、行动顺序这三项写在一张纸上再去动模型参数。顺序错了参数调得再准也是白搭而且错得悄无声息——这大概就是博弈论建模最贵的坑没有后悔药。这份讲义的价值也在这里它把该在动参数之前想清楚的东西按七要素、四象限、三个模型的顺序摆在了你面前。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询