改进GA的过程编码的改进把机组的启停状态UC用二进制编码。用一位二进制码表示一台机组在一个时段上的运行状态变量。
对于有10台机组,24个时段的情况,则一个串长为L=240(位),这样每个串都表示了一个发电厂在1d(一个调度周期)内的机组组合状态。机组间分配负荷用实数遗传算法处理,用实数编码表示机组的连续变量有功功率gl输出:对于10台机组采用一维实数组表示由各台机组输出的有功功率组成的解向量gl<240>.由此得到个体的编码,形式如下:PP=UC<1>UC<2>UC<240>gl<1>gl<2>gl<240>约束条件及适应度函数的改进首先根据群体规模,随机地生成机组组合的初期解初始群体,然后开始遗传法寻优。对于开状态的机组用实数遗传算法进行最优负荷分配后,利用适应度函数对个体进行评价。机组组合优化是有约束的最小化问题。可通过惩罚方法将该问题转化为非约束的最小化问题:minF+iRi式中,F为机组组合目标函数;i为第i个约束的惩罚系数;Ri为第i个约束形式。
Ri=|gi(x)|gi(x)为等约束时max{0,gi(x)}当gi(x)为不等约束时包括了各约束关系,其中发电功率约束在最优负荷分配中考虑。将式的最小化问题转化为最大化问题,得机组组合优化的适应度函数:f=1F+iRi根据群体中个体的适应度,确定个体的选择概率Psi=fni=1fi式中,fi为个体i的适应度。选择概率Psi反应了个体i的适应度在整个群体的个体适应度综合中所占的比例,个体的适应度越大,其被选择的概率就越高。根据式计算出群体中个体的选择概率后,进行选择复制并送入配对库中,使得适应度高的个体有更多的机会繁殖后代。
根据罚函数处理等式约束的原理公式,在负荷分配过程中将原规化问题转化为只含有不等约束的规划问题:minFi=Fi(Pit)+ili=1Ri这样就在负荷分配过程中考虑了功率约束,得到负荷分配个体的适应度,用实数遗传算法进行功率分配后再返回到二进制遗传算法,由于在负荷分配中考虑了功率分配,在二进制遗传算法中利用目标函数计算机组组合个体的适应度时,就不需再考虑功率约束,只考虑开停机约束就行了,此时单个个体的适应度为f=1minF(Uit,Pit)选择操作采用最常用的赌轮法来选择复制个体,为防止在染色体的平均适应值不断提高的同时,各代的最佳染色体却下降的情况发生,又加以采用最优保存策略,即对当前解群中适应值最大的个体予以保留,直接遗传到下一代。
选择的标准体现在适应值较大的串被选中的概率较大。一般按下式得出概率值随机选择K对串:Ps=fiNi=1fi在C++程序实现中基本思想是首先计算出当前解群的所有数字串的适应值sumfitness,由此产生一个取值范围在0和sumfitness之间均匀分布的伪随机数r,则满足条件:ri=1firNi=1fi第i个数字串被选做匹配集(其中,fi为第i个数字串的适应度值).


