news 2026/6/5 9:36:18

打开PyCharm新建工程,合作博弈的数学工具箱哐当一声砸在桌面上。综合能源系统的利益分配问题像块硬骨头,咱们今天要用Shapley值的牙口啃碎它

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打开PyCharm新建工程,合作博弈的数学工具箱哐当一声砸在桌面上。综合能源系统的利益分配问题像块硬骨头,咱们今天要用Shapley值的牙口啃碎它

复现:基于合作博弈的综合能源系统利益分配优化调度

先抓个典型场景:某工业园区里有燃气轮机、光伏电站、储能电池三股势力,每天要为园区供电600MWh。单独作战时各自的成本分别是燃机45万、光伏60万、储能70万。这仨要是组队合作,总成本能压到多少?省下来的银子怎么分才公平?

掏出Python的PuLP库开始建模,先定义玩家集合:

players = ['GT', 'PV', 'BESS'] # 燃气轮机、光伏、储能 coalitions = powerset(players) # 所有可能的联盟组合

联盟收益计算函数得把数学公式翻译成代码。对于任意联盟S,其成本等于该联盟独立供电时的最低成本:

def coalition_cost(S): if 'GT' in S and 'PV' in S and 'BESS' in S: return 380000 # 全联盟合作成本 elif 'GT' in S and 'PV' in S: return 420000 # 其他联盟组合的成本计算...

Shapley值的计算就像在给每个参与者论功行赏。遍历所有可能的联盟排列,计算边际贡献的平均值:

from itertools import permutations shapley_values = {p:0 for p in players} for perm in permutations(players): for i, p in enumerate(perm): coalition = perm[:i+1] prev_coalition = perm[:i] marginal = coalition_cost(prev_coalition) - coalition_cost(coalition) shapley_values[p] += marginal / len(players)!

跑完算法发现燃机分到15.8万收益,光伏8.2万,储能6万。但实际调度中还得考虑运行约束,比如光伏的间歇性问题。加上时序特性后的模型需要引入动态博弈:

for t in time_steps: pv_output = solar_forecast[t] if pv_output < threshold: adjust_gt_generation() # 燃机补偿光伏波动 update_payment_penalty() # 惩罚偏离计划的行为

调试时遇到个坑:当储能频繁充放电时,Shapley值计算结果出现负收益。检查发现是联盟成本函数没考虑设备折旧成本,补上循环寿命模型后问题解决:

def battery_degradation(cycles): return 0.2 * cycles ** 1.5 # 经验公式计算容量衰减

最终的利益分配方案通过模糊综合评价,既保证了个体理性又满足联盟稳定性。这让我想起《三体》里的黑暗森林法则——合作反而能在能源领域打破猜疑链,让每个参与者都获得比单干时更好的收益。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 0:11:08

一种评估源网荷储协同接纳新能源能力方法代码 该代码为一两阶段优化代码,第一阶段以综合成本最大求...

一种评估源网荷储协同接纳新能源能力方法代码 该代码为一两阶段优化代码&#xff0c;第一阶段以综合成本最大求解出新能源消纳功率带入到第二阶段模型&#xff0c;二阶段模型还包括无功补偿设备。随着新能源占比逐年提升&#xff0c;电网调度面临新挑战。咱们今天聊个硬核实操—…

作者头像 李华
网站建设 2026/6/5 7:06:51

PCB设计文件终极指南:使用pcb-tools轻松预览和优化制造文件

作为PCB设计初学者&#xff0c;你是否曾被复杂的Gerber文件和Excellon钻孔文件搞得头晕眼花&#xff1f;pcb-tools正是你需要的解决方案——这个强大的Python工具库能够将抽象的制造文件转换为直观的可视化图像&#xff0c;让PCB设计审查变得简单高效。 【免费下载链接】pcb-to…

作者头像 李华
网站建设 2026/6/2 20:32:36

golang格式化打印json

一、背景与作用 在 Go 项目中&#xff0c;经常需要把结构体、map 等数据序列化为 JSON&#xff0c;用于&#xff1a; 打日志&#xff08;debug&#xff09; 写文件&#xff08;配置 / 结果快照&#xff09; 排查复杂嵌套数据&#xff08;如告警、监控、Agent 返回&#xff09; …

作者头像 李华
网站建设 2026/6/3 16:01:05

【(ADC)采样量化和编码】

ADC介绍ADC&#xff0c;其全称是Analog-to-Digital Converter&#xff0c;即模/数转换器&#xff0c;是一种将模拟信号转换为数字信号的电子原件。那么ADC究竟有什么作用呢&#xff1f;ADC转换的主要流程ADC将模拟信号转换为数字量&#xff0c;一般都需要经过三个步骤&#xff…

作者头像 李华
网站建设 2026/6/3 15:57:51

43、深入了解 Dash 和 Zsh 脚本编程

深入了解 Dash 和 Zsh 脚本编程 在 shell 脚本编程的世界里,不同的 shell 有着各自独特的特性和功能。Dash 和 Zsh 就是其中比较有代表性的两种,下面我们就来详细了解一下它们的脚本编程相关知识。 Dash 脚本编程 在使用 Dash shell 时,需要注意它并不能识别 Bash shell …

作者头像 李华