简介:这份电力市场讲义PPT面向电力经济、能源系统与电力市场方向的学生及研究人员,系统梳理博弈论在发电厂商报价与市场均衡分析中的应用。内容从参与人、行动、信息、战略、支付、结果、均衡等基本概念切入,延伸至博弈的战略式表述与分类,并重点讲解完全信息静态博弈的纳什均衡,以及古诺模型、伯特兰德模型和供给函数均衡模型在电力寡头市场中的建模思路,帮助读者建立从理论到报价决策的完整分析框架。资源包共1个文件,为ppt格式,大小约847KB,结构紧凑,适合课堂讲授、自学复习或作为研究参考快速查阅。目前已有173人学习,内容覆盖概念定义、均衡求解与模型对比,便于读者理解电力市场中参与人如何依据信息集选择相机行动方案并实现支付最大化。
1. 电力市场讲义(博弈论)PPT:从一份课件到一套能讲能算的推演工具
如果你正在准备电力市场相关的培训或课程,大概率会遇到一个尴尬:讲电力市场的经济学原理,听众昏昏欲睡;讲博弈论数学推导,听众直接放弃。而“电力市场讲义(博弈论)PPT”这个方向,恰恰是解决这个矛盾的——它把电力市场的竞价机制、出清规则、阻塞管理这些工程问题,用博弈论的框架重新组织,让听众既能看懂“为什么这么定价”,也能动手算“如果我是发电商该怎么报价”。
我做过几轮面向从业者的内部培训,最深的体会是:一份好的电力市场博弈论讲义,不是把教材目录搬进幻灯片,而是用“场景→模型→算例→结论”四步把抽象概念钉在具体数字上。它适合三类人:电力交易机构的分析师、发电集团的报价员、以及高校里做电力市场方向的研究生。如果你属于这三类,接下来的内容会帮你把这份讲义从零搭起来,并且避开我踩过的那些坑。
2. 先定框架:电力市场博弈论讲义该覆盖哪几块内容
2.1 电力市场的三个博弈层级与对应模型
电力市场的博弈不是单一层次的。从时间尺度和决策变量来看,至少可以拆成三层:中长期合约博弈、日前市场竞价博弈、实时平衡调整博弈。每一层对应的博弈模型完全不同,讲义如果混在一起讲,听众必然晕。
中长期合约层面,核心是双边协商和集中竞价两种模式下的讨价还价问题,对应的博弈模型是鲁宾斯坦 bargaining 模型和纳什讨价还价解。这一层的决策变量是合约电量和合约电价,时间跨度是月到年。我一般会用“两个发电商争夺同一笔大用户合约”作为场景,让听众先感受“谁先出价谁吃亏”的直觉。
日前市场层面,核心是发电商在已知负荷预测和网络约束下的报价策略,对应的是古诺模型(数量竞争)和伯川德模型(价格竞争)的变体。这一层是讲义的重头戏,因为日前市场的出清结果直接决定次日发电计划。决策变量是各时段的申报电量和申报电价,时间粒度是小时或15分钟。
实时平衡层面,核心是平衡服务市场中的容量预留和调用博弈,对应的是拍卖理论和机制设计。这一层听众最容易忽略,但恰恰是偏差考核最严的地方。我通常用“两个机组同时被调用时谁先降出力”作为引子,引出序贯博弈的逆向归纳法。
注意:三层博弈的数学工具不同,讲义里不要试图用一个统一模型套所有层。我见过有人硬用古诺模型解释实时平衡,结果连“为什么实时价格尖峰”都讲不通。
2.2 讲义结构:从场景到算例的六段式
一份能讲能算的讲义,我建议按六段式组织,每段对应PPT的若干页:
第一段,场景导入。用真实市场规则(比如“日前市场采用统一边际电价出清”)作为背景,提出一个具体问题:“假设你是一家拥有两台机组的发电商,明天日前市场的负荷预测是已知的,你该怎么报价?”这个问题必须让听众觉得“这跟我有关”。
第二段,博弈要素拆解。把参与者、策略空间、收益函数、信息结构四个要素逐一对应到电力市场语境。参与者是发电商、售电公司、交易中心;策略空间是申报曲线;收益函数是利润;信息结构是完全信息还是不完全信息。这一段要用表格把抽象概念和电力术语一一映射。
第三段,模型建立。根据场景选择合适的博弈模型。如果是完全信息静态博弈,用纳什均衡;如果是完全信息动态博弈,用子博弈精炼纳什均衡;如果是不完全信息,用贝叶斯纳什均衡。这一段要给出模型的数学表达式,但不要陷入推导细节。
第四段,算例求解。这是讲义的核心价值所在。必须有一个完整的数值算例,从参数设定到均衡求解到结果解读,每一步都能在PPT上展示。算例规模控制在2-3个参与者、2-3个策略,否则手算不可行,听众跟不上。
第五段,结果讨论。把均衡结果和直觉对比:均衡价格是否等于边际成本?是否存在默契合谋的空间?网络阻塞如何改变均衡?这一段要引导听众思考“如果规则变了,均衡会怎么变”。
第六段,延伸阅读。给出2-3个进阶方向,比如“考虑机组组合约束的博弈”“考虑新能源不确定性的贝叶斯博弈”,让有兴趣的听众有继续深入的路标。
2.3 每段PPT的页数与节奏控制
我自己的经验是:场景导入不超过5页,博弈要素拆解8-10页,模型建立10-12页,算例求解15-20页,结果讨论8-10页,延伸阅读3-5页。总计50-60页,对应90-120分钟的讲授。
节奏上,算例求解部分必须留足时间。我通常会在算例的每一步设置一个“暂停点”,让听众先自己算一步,再展示答案。比如给出收益矩阵后,先让听众找纳什均衡,再翻页展示。这样听众的参与感会强很多,也不容易走神。
提示:PPT上不要放太多文字。算例的数值表格可以放,但推导过程用动画分步展示,不要一页塞满。我见过一份讲义把整个雅可比矩阵的推导放在一页,结果听众直接放弃。
3. 用Python把算例跑通:从收益矩阵到纳什均衡
3.1 算例设定:两个发电商的日前市场报价博弈
假设日前市场有两个发电商G1和G2,各自拥有一台机组。G1的边际成本是200元/MWh,G2的边际成本是220元/MWh。市场出清规则是:报价低者全额中标,报价高者不中标;如果报价相同,各中标50%。负荷需求是200MWh,且完全无弹性。
每个发电商的策略空间简化为两个报价:高价(250元/MWh)和低价(210元/MWh)。注意,低价低于G2的边际成本,所以G2报低价会亏损;高价高于两者的边际成本,报高价且中标则有利润。
这个算例的收益矩阵可以手算,但用Python可以快速验证并扩展到更多策略。下面是用numpy和nashpy求解纳什均衡的代码。
import numpy as np import nashpy as nash # 参数设定 cost_G1 = 200 # G1边际成本 元/MWh cost_G2 = 220 # G2边际成本 元/MWh demand = 200 # 负荷需求 MWh # 策略:0=高价(250), 1=低价(210) prices = [250, 210] # 构建收益矩阵 # 行玩家G1,列玩家G2 payoff_G1 = np.zeros((2, 2)) payoff_G2 = np.zeros((2, 2)) for i, p1 in enumerate(prices): for j, p2 in enumerate(prices): if p1 < p2: # G1中标全部 payoff_G1[i, j] = (p1 - cost_G1) * demand payoff_G2[i, j] = 0 elif p1 > p2: # G2中标全部 payoff_G1[i, j] = 0 payoff_G2[i, j] = (p2 - cost_G2) * demand else: # 报价相同,各中标50% payoff_G1[i, j] = (p1 - cost_G1) * demand * 0.5 payoff_G2[i, j] = (p2 - cost_G2) * demand * 0.5 print("G1收益矩阵:") print(payoff_G1) print("G2收益矩阵:") print(payoff_G2) # 求解纳什均衡 game = nash.Game(payoff_G1, payoff_G2) equilibria = list(game.support_enumeration()) print("\n纳什均衡:") for eq in equilibria: print(f"G1策略概率:{eq[0]}, G2策略概率:{eq[1]}")这段代码的逻辑很直接:先定义成本和需求参数,然后遍历四种策略组合,根据报价高低决定中标份额和利润。最后用nashpy的support_enumeration求解所有纳什均衡。
参数说明:cost_G1和cost_G2是边际成本,决定了报价的盈亏平衡点;demand是总需求,影响利润绝对值但不影响均衡结构;prices列表是策略空间,这里简化为两个离散报价,实际应用中可以根据需要扩展为更多档位。
运行结果会显示:G1的占优策略是报高价(因为低价虽然能中标但利润更低),G2的占优策略也是报高价(因为低价会亏损)。所以唯一的纳什均衡是(高价,高价),均衡价格250元/MWh,远高于边际成本。这个结果直接引出“默契合谋”的讨论——在无监管的报价博弈中,高价均衡是稳定的。
3.2 扩展算例:加入网络阻塞的博弈
上面的算例假设无网络约束。如果加入阻塞,比如G1和G2位于不同节点,节点间传输容量有限,那么中标结果会改变。假设传输容量只有100MWh,G1在负荷中心,G2在远端。此时如果G1报高价、G2报低价,G2最多只能送100MWh,剩余100MWh必须由G1供应。
# 加入阻塞的收益矩阵 capacity = 100 # 传输容量 MWh payoff_G1_block = np.zeros((2, 2)) payoff_G2_block = np.zeros((2, 2)) for i, p1 in enumerate(prices): for j, p2 in enumerate(prices): if p1 < p2: # G1报价低,优先中标,但G2仍可送容量内的电量 # 实际出清:G1中标demand - capacity,G2中标capacity # 但G2报价高,是否中标取决于是否被需要 # 简化处理:G1中标全部需求,G2不中标 payoff_G1_block[i, j] = (p1 - cost_G1) * demand payoff_G2_block[i, j] = 0 elif p1 > p2: # G2报价低,但受容量限制,最多送capacity # G1补足剩余需求 payoff_G2_block[i, j] = (p2 - cost_G2) * capacity payoff_G1_block[i, j] = (p1 - cost_G1) * (demand - capacity) else: # 报价相同,按容量比例分配 payoff_G1_block[i, j] = (p1 - cost_G1) * (demand - capacity) * 0.5 payoff_G2_block[i, j] = (p2 - cost_G2) * capacity * 0.5 print("阻塞场景下G1收益矩阵:") print(payoff_G1_block) print("阻塞场景下G2收益矩阵:") print(payoff_G2_block) game_block = nash.Game(payoff_G1_block, payoff_G2_block) equilibria_block = list(game_block.support_enumeration()) print("\n阻塞场景下的纳什均衡:") for eq in equilibria_block: print(f"G1策略概率:{eq[0]}, G2策略概率:{eq[1]}")这段代码的关键变化在于:当G2报价低时,它只能中标capacity,剩余需求由G1以高价中标。这改变了G1的收益结构——即使报高价,G1也能获得(demand - capacity)的中标电量。参数capacity是传输容量,它决定了阻塞的严重程度。capacity越小,G1的市场力越大。
运行结果会显示:阻塞场景下,G1报高价仍然有正收益,因为剩余需求必须由它满足。G2报低价虽然能中标,但只能中标100MWh,利润有限。均衡可能仍然是(高价,高价),但G1的收益更高了。这个结果引出“网络阻塞加剧市场力”的结论。
3.3 结果解读:均衡价格为什么高于边际成本
从上面两个算例可以看出,纳什均衡价格250元/MWh远高于G1的边际成本200元/MWh和G2的边际成本220元/MWh。这不是计算错误,而是博弈结构的必然结果。
原因在于:策略空间是离散的,且低价策略对G2来说亏损,所以G2不会报低价。G1知道G2不会报低价,所以G1报高价是安全的。这种“我知道你知道我不会降价”的推理链,就是纳什均衡的核心逻辑。
如果策略空间连续,且允许报价在边际成本附近,均衡会不同。但在实际电力市场中,报价档位是有限的,且监管规则(如报价上限)会进一步限制策略空间。所以讲义里一定要强调:均衡结果依赖于策略空间的设定,改变策略空间可能改变均衡。
注意:不要用“均衡价格等于边际成本”的完全竞争结论去套电力市场。电力市场是寡头市场,均衡价格高于边际成本是常态。讲义里要把这个反直觉的结论讲透,否则听众会用完全竞争的直觉去理解,结果全错。
4. 避坑指南:做电力市场博弈论讲义最容易翻车的五个地方
4.1 模型假设和电力市场规则对不上
现象:讲义里用古诺模型(数量竞争)讲日前市场,但实际日前市场是价格竞争(伯川德模型),听众发现模型和规则对不上,直接质疑讲义的可靠性。
原因:古诺模型假设发电商选择产量,价格由市场出清决定;但实际日前市场是发电商申报价格-电量曲线,交易中心按报价排序出清。两者的策略变量不同。
解决:先确认市场规则。如果是统一边际电价出清,用伯川德模型或供应函数均衡;如果是按报价支付,用第一价格拍卖模型。讲义里要明确写出“本算例对应的市场规则是……”,不要让听众猜。
4.2 算例参数太多,手算不可行
现象:算例设了5个发电商、10个策略档位,结果收益矩阵有100个元素,PPT上放不下,听众也跟不上。
原因:贪多求全,想把所有现实复杂性都塞进一个算例。
解决:算例规模控制在2-3个参与者、2-3个策略。先用简化算例讲清均衡概念,再用文字描述“如果扩展到N个参与者,均衡会怎么变”。不要试图在一个算例里解决所有问题。
4.3 忽略信息结构,把不完全信息当完全信息讲
现象:讲义里假设所有发电商都知道彼此的边际成本,但实际市场中成本是私有信息,听众质疑“现实中怎么可能知道对手成本”。
原因:完全信息博弈的数学处理更简单,但不完全信息才是电力市场的常态。
解决:在讲完完全信息算例后,加一段“如果成本是私有信息”的讨论,引入贝叶斯博弈的基本思想。不需要完整求解贝叶斯纳什均衡,但要让听众知道“信息结构改变均衡结果”。
4.4 均衡多重性没有交代
现象:算例求解出多个纳什均衡,讲义只展示其中一个,听众自己算发现还有别的均衡,产生困惑。
原因:离散策略博弈经常有多个均衡,尤其是混合策略均衡。
解决:在算例求解后,明确列出所有均衡,并讨论“哪个均衡更可能出现”。可以用“风险占优”或“帕累托占优”作为筛选标准。如果均衡太多,可以简化策略空间,减少均衡数量。
4.5 PPT动画和算例步骤不同步
现象:讲义里算例是分步展示的,但PPT动画设置错误,导致听众看到的步骤和讲解对不上,节奏混乱。
原因:PPT制作时没有按讲授节奏设置动画,或者动画顺序和逻辑顺序不一致。
解决:在制作PPT时,先写讲授脚本,再按脚本设置动画。每一步动画对应一个逻辑步骤,不要为了炫技设置无意义的飞入飞出。算例的数值表格用“出现”动画,不要用“擦除”或“缩放”,避免分散注意力。
5. 进阶技巧:用敏感度分析让讲义从“能讲”变成“能说服”
5.1 敏感度分析的三个维度
一份讲义如果只给出一个均衡结果,听众可能会觉得“这只是特例”。但如果给出敏感度分析,展示均衡如何随参数变化,说服力会强很多。我通常从三个维度做敏感度分析:
第一,成本差异维度。改变G1和G2的边际成本差距,观察均衡价格的变化。如果成本差距缩小,低价策略变得有利可图,均衡可能从(高价,高价)变为混合策略。
第二,需求水平维度。改变负荷需求,观察中标份额和利润的变化。需求增加时,即使报高价也能中标更多电量,均衡价格可能上升。
第三,传输容量维度。改变传输容量,观察阻塞对均衡的影响。容量减小时,市场力增强,均衡价格上升。
5.2 用Python批量跑敏感度分析
下面这段代码演示如何批量改变成本参数,观察均衡结果的变化。
import numpy as np import nashpy as nash import pandas as pd def solve_equilibrium(cost1, cost2, demand=200, prices=[250, 210]): """给定成本参数,求解纳什均衡""" payoff_G1 = np.zeros((2, 2)) payoff_G2 = np.zeros((2, 2)) for i, p1 in enumerate(prices): for j, p2 in enumerate(prices): if p1 < p2: payoff_G1[i, j] = (p1 - cost1) * demand payoff_G2[i, j] = 0 elif p1 > p2: payoff_G1[i, j] = 0 payoff_G2[i, j] = (p2 - cost2) * demand else: payoff_G1[i, j] = (p1 - cost1) * demand * 0.5 payoff_G2[i, j] = (p2 - cost2) * demand * 0.5 game = nash.Game(payoff_G1, payoff_G2) equilibria = list(game.support_enumeration()) return equilibria # 批量测试不同成本组合 results = [] for cost1 in [180, 200, 220]: for cost2 in [200, 220, 240]: eq = solve_equilibrium(cost1, cost2) # 取第一个均衡的策略概率 if eq: prob_G1 = eq[0][0] prob_G2 = eq[0][1] results.append({ 'cost_G1': cost1, 'cost_G2': cost2, 'G1_high_prob': prob_G1[0], 'G2_high_prob': prob_G2[0], 'num_equilibria': len(eq) }) df = pd.DataFrame(results) print(df.to_string(index=False))这段代码的逻辑是:定义一个求解函数,接受成本参数并返回均衡;然后遍历不同的成本组合,记录均衡策略概率。参数cost1和cost2是边际成本,prices是策略空间。输出是一个DataFrame,展示不同成本组合下的均衡策略概率。
运行结果会显示:当G1成本远低于G2时,G1报高价的概率更高;当两者成本接近时,可能出现混合策略均衡。这个表格可以直接放进PPT,作为敏感度分析的展示。
5.3 把敏感度分析结果转化为讲义结论
敏感度分析的输出不是一堆数字,而是几条可讲授的结论。比如:
“当G1的边际成本从200降到180时,G1报高价的概率从100%降到70%,因为低价策略变得更有吸引力。这说明成本优势会改变博弈均衡,成本领先的发电商更倾向于激进报价。”
“当G2的边际成本从220升到240时,G2报低价必然亏损,所以G2报高价的概率保持100%。这说明成本劣势的发电商更倾向于保守报价,避免亏损。”
这些结论要写在PPT的结论页上,配合敏感度表格展示。听众看到数字变化,再听到结论,理解会深很多。
5.4 一个我常用的收尾技巧
讲义的最后一页,我通常不放“谢谢”或“问答”,而是放一个“如果让你来设计市场规则”的开放问题。比如:“如果监管机构希望降低均衡价格,应该调整哪个参数?报价上限?传输容量?还是需求侧响应?”
这个问题没有标准答案,但能引导听众把讲义里的博弈模型和实际规则设计联系起来。我一般会留5-10分钟让听众讨论,然后收一句:“电力市场的博弈论不是数学游戏,它决定了每一度电的价格。你设计的规则,就是别人博弈的棋盘。”
这个收尾方式比“总结”有效得多,因为它把听众从被动接收变成主动思考。我自己的习惯是:每次讲完这份讲义,都会根据听众的讨论反馈调整下一版的算例参数。讲义不是一次性的,它是活的。
希望帮到你。
本文还有配套的精品资源,点击获取