本文是参加工作之初,研究水电站优化运行时所写,已成为遥远的过去了。记得当时好像是要投下稿,所以煞有介事的写了中英文摘要。学生时代曾经研究过用演化类算法求解负荷分配问题,那是刻意往“新”上靠,因为动态规划方法是写进教科书的传统方法,不宜做毕业论文。实际上,只要算力可及,传统动态规划方法比引入随机因素的演化算法要“靠谱”,演化算法的好处在于“简单粗暴”,按它的套路总能够处理,维数灾的“灾点”比较高。
一个问题,当自己不再关注时,热门也成了冷门。这个问题本就比较小众,现在或许没什么人研究它了吧。压箱底好多年,贴出来,供“万一需要的人”参考。
目录
负荷分配问题的动态规划算法递归实现
摘要
本文研究了水电站优化运行中的负荷分配问题,给出了可行解的充分必要条件暨构造方法,在此基础上设计了动态规划算法的一个递归方案,并通过数值试验,验证了算法设计的有效性。该递归设计思路清晰、简单易行,可以在工程实际中参考实施。
关键词:水电站;优化运行;负荷分配;动态规划;递归
Abstract
This paper presents a study on the power dispatch problem of hydropower station economic operation. A rule to construct feasible solutions is proposed. Then a recursion approach of dynamic programming (DP) is designed based on the rule. After all, the efficiency of this new method is showed through a numerical example. The recursion design of DP on the power dispatch problem is clear, easy to implement and deserves referring to in real project.
Key words: hydropower station; economic operation; dynamical programming; recursion
1 引言
水电站厂内优化运行作为整个水电站优化运行的一部分,主要研究机组特性曲线,负荷的优化分配等,以在有限资源条件下获得尽可能多的经济效益。本文考察如下基本的负荷分配问题:
设有n台机组,总的发电负荷任务为N,已知各机组耗流量特性曲线以及出力范围
,要求将总的发电任务在n台机组间进行分配,使得总的耗水量最小。表达为数学模型即
其中,N满足可行性条件。
实际中求解上述问题的常用方法有等微增率法、动态规划法、演化算法等,动态规划法是其中较突出的一种。[1]中介绍了动态规划求解问题 (1) 的思想方法,但其流程复杂,可读性较差,在研究动态规划求解负荷分配问题的过程中,我们找到了一种简单易行的递归实现方法。下文分别对该方案的基本思想、技术要点、递归过程进行详细介绍。
2 算法设计
2.1 基本思想
动态规划适用于求解多阶段决策过程,使用动态规划方法求解负荷分配问题 (1),需把原问题转化为多阶段决策过程。为此,定义k阶段状态变量
其中,满足可行性条件
。则由动态规划基本原理,对
,有如下递推关系式
成立。从而,问题 (1) 转化为通过 (2)-(3) 式求。为求某k阶段状态变量
,若对每一个可行的
,相应的k-1阶段变量
已求出,则
不难得到。
2.2 离散化与可行域
使用动态规划求解负荷分配问题 (1),需要作变量的离散化处理,如果直接在变量的给定区间上离散化,将包含进对许多不可行解的计算尝试,浪费大量计算资源。关于问题 (1) 的可行域,我们给出如下定理。
定理1(可行解的充分必要条件1)是问题(1)的一个可行解的充分必要条件是
满足下式
证明:必要性。若是可行解,即满足 (1) 的约束条件,亦即满足
从而
进而易见 (4) 式成立。
充分性。若满足 (4) 式,则只需证明
,即可说明
是可行解。由 (4) 式知
令,得
即有成立。
证毕。
定理2(可行解的充分必要条件2)