输入:
电厂报价报量`arr1[][]`,
用户报价报量`arr2[][]`。
不应该是数组,而应该是一个抽象的数据类型,存有
输出:
出清价格:Price
成交电量对(一个用户可以在多个成交对之中)ResultSet。
算法流程:
0-. 按地区分组
0. 数据有效筛选(购方申报数据筛选和售方数据筛选不一样)
- 按照报价排序,电厂升序p1,用户降序p2,相应的报量序列为q1,q2;【价格相同时,售方按照单机容量等级由大到小进行排列】
- 得到成交电量对,其中成交电量为q_current =
min{q1[0],q2[0]}
; - 更新p1,p2以及q1,q2.
从对应的报量序列中减去当前成交的电量q_current,如果报量为0,则将其与对应的报价排序中的元素移除;
- 对更新后的序列执行步骤1,直至q1,q2中有一个为空,结束。
可视化
过程可视化?
结果可视化:
图片,表格
编码
其中,不同步骤的数据模型是不一样的,最起码在这里的模型是没有那些成本信息的。
问题在于如何返送回去?
数据进行封装,通过id进行索引。
- 基本数据模型:
:
抽象父类—–发电商顶级类 —
|
—电力用户顶级类— - 代理类:
- 封装类:
最终保存的结果【比如一个用户成交了几笔,关联交易表】在entity怎么保存。
交易实体类
广东省的出清
在广东的规则中,对日前市场如何出清是这样描述的:
“电力调度机构综合考虑发电侧电力报价曲线、用户侧电力需求价格曲线、非市场用户负荷预测、外送受电曲线、A 类机组出力曲线、发电机组检修计划、输变电设备检修计划、发电机组运行约束条件、电网安全运行约束条件等因素,以社会福利最大为优化目标,采用安全约束机组组合(SCUC)、安全约束经济调度(SCED)算法进行集中优化计算,出清得到运行日的机组开机组合以及分时发电出力曲线、售电公司与批发用户分时分节点的中标用电曲线、分时节点电价。”