鉴于能源危机的严重性,各国均提出了节能减排,可持续发展等目标,并已经成为了全人类的共识。
云计算技术及其应用
由于 MapReduce 中的库函数将所有的分布式计算细节工作全都隐藏起来了,因此想要在 Hadoop 中运行一个 MapReduce 作业是非常容易的事情,只需要执行简单的一行代码“JobClientrunJob(conf)”即可。
可是在这简洁的代码背后却隐藏着十分繁琐的过程。事实上,MapReduce 作业框架是由一个运行在主节点 (Jobtracke Node) 上的JobTracker 和运行在集群上的所有从节点 (TaskTracker Node) 上的 TaskTracker 共同组成的。

一旦出现任务失败的情况则重新发布给其他的 TaskTracker 再次执行,而运行在从节点( TaskTracker Node) 上的TaskTracker 仅仅负责任务的执行,并定期向JobTracker 汇报任务的执行情况。MapReduce的整个作业过程图。
用来完成向 Jobtracke Node 申请一个新的作业ID,并将运行该作业的资源拷贝至以该作业 ID 命名的目录 Jobtracker 的文件系统中,最后告知 Jobtracke Node 中的 Jobtracker 做好执行作业的准备。
作业的初始化。首先创建一个正在运行的作业对象以便跟踪任务的状态和进程: 紧接着从共享文件系统中获取 Jobtracke Node 已经计算好的输入划分信息。
任务分配。Jobtracke根据 TaskTracker Node 中 TaskTracker返回的心跳报告情况来向其分配任务。
任务执行。任务的执行全部由 TaskTracker Node完成,TaskTracker 有固定的槽来运行 map tasks 和 reduce tasks,然后启动一个新的 Java虚拟机来运行每个任务。
任务完成。当JobTracker 收到最后一个作业已经完成的消息之后,便将作业的状态设置为“成功”,并打印一条消息在控制台上,并调用jobRun()函数返回。综合上面有关 Hadoop 平台的介绍可以看出,HDFS 和 MapReduce 构成了 Hadoop平台的结构核心。
HDFS 在集群上实现了分布式文件系统,而 MapReduce 则在该集群上完成了分布式计算的任务处理。
本章较为系统的论述了云计算的基本概念与主要特征,同时也详细研究了云计算服务的架构,以及云计算的分类,并且对目前比较流行的几个云计算平台各自的特点分别做出了介绍。
同时也进行了比较分析,在此基础上选取了 Hadoop 平台作为实现本文中云计算算法的开发平台,与此同时对 Hadoop 平台的计算背景与优势进行了较为详细的研究。
在此基础上,针对 Hadoop 平台的两大核心技术--HDFS 和 MapReduce 进行了详细论述,分析了这两大技术的运行原理与执行过程,为云计算算法的设计与实现提供了坚实的理论基础。
基于粒子群算法的配电网重构优化
伟大的自然界不仅给我们赖以生存和环境和能源,同时也给了我们无限的美景和智慧的启发,而存在于自然界中的各种生命形式更是以一种蓬勃的态势展现在我们面前。
每种生命形式都有着不同的功能和千变万化的生活习性,这些功能习性是在自然界中经过亿万年的演化而形成,每一种看似很司空见惯的功能习性背后都蕴含着无穷的智慧,都值得我们深入研究。
鸟类是自然界中再平常不过的生物了,并且通常以群居的方式生活。一些科学家对鸟类的群体行为进行了研究,并进行了计算机模拟仿真,粒子群优化算法(Particle SwarmOptimization,PSO)就是在这样的背景下产生的。
并于 1995 年由 Kennedy 和 Eberhart博士所首先提出,其本源思想是对鸟类捕食行为的研究。
粒子群优化算法同遗传算法类似,也是一种基于群体智能 (Swarm Intelligence) 方法的演化算法 (Evolutionary computation) 技术。
由于该算法相对于其他算法而言有着参数少,对初始种群质量依赖度低,高收敛速度,高鲁棒性,简单易实现等优点,目前该算法已经广泛应用在包括电力系统在内的多个领域,并取得的了很好的效果。
配电网中除了输送电能的线路外,还有大量的分段开关,以及少量的联络开关而且整个配电网被设计成闭环网,但实际运行中却呈现开环辐射状态。这样是为了增强配电网的供电可靠性同时又不增加继电保护装置的整定难度。
配电网重构就是以改善某或某些指标(如系统网损,负荷均衡,电压质量等) 为目标,并且在保证满足配电网呈辐射状运行约束、线路容量约束、电压质量约束等一系列条件的前提下,寻找出的一种配电网最佳运行结构。
具体的操作过程就是首先根据目标函数和约束条件根据某种算法求出最佳运行方式的网络拓扑结构方案,然后通过接通或切断配电网中的这些开关来实现该网络拓扑结构,从而达到最优的运行方式。
在粒子群算法中,编码是一个非常重要的环节,一个合适的编码方式,可以提高算法收敛效率,增加算法稳定性,甚至起到事半功倍的效果。
由于配电网重构问题的求解实际上是对开关的开关状态进行求解,从而造成在通常的粒子群算法编码中,往往采用二进制编码的方式,即每个开关的状态都用0或1来表示。
这样做看似很符合逻辑,而且也降低了编码的难度,但是实际上却大大增加了粒子编码的长度,与此同时也增加了不可行解的数量,从而造成算法效率的低下。鉴于这种情况文献中提出了一种基于环路的十进制编码方式。
其方法的根本是利用配电网闭环设计开环运行的特点,换句话说也就是一个大的配电网可以拆分成许多个小的环状网的特点,利用小环网的数量来定义粒子的编码长度。
如若想形成小环网唯一的办法就是将常开的联络开关闭合,相比于网络中为数众多的分段开关而言联络开关的数量可以说是少之又少的,这样一来便减少了粒子的编码长度,这便是基于环路的编码方式的基本思想。
配电网都是闭环设计开环运行的,因此在求解的过程中首先必须满足辐射状的要求。根据上述编码方式可知。
每一个粒子的位置中都是某一个环网中打开的开关,这样就可以保证所有的环网都是开环的状态,进而可以保证整个配电网络都是以辐射状的方式运行,这也是该编码方式的另一个显著优点,避免了判断网络辐射状的计算,大大节约了计算时间和资源。
虽然网络保持辐射状是配电网运行的基础,但是保持整个网络的连通才是配电网运行的重中之重,因为这关系到供电的质量问题。
在当今社会我们每一个人对电能的依赖度都很高,任何一个人都不希望自己所在的区域停电,因此每一个配电网络在重构的过程中都必须保证所有的节点都与电源节点处于连通的状态,这样也就意味着必须保证网终的连通性,不允许孤岛和孤点的出现。
针对网络连通性判断的问题,前人已经做出了不少的研究,文献中提出了一种基于连通矩阵的网络连通性为断方法,本文在此基础之上提出一种改进型的基于连通知阵的网络连通性判断方法。
首先对连通性矩阵做出定义: 连通矩阵T =[]表达了节点与节点的连接关系、节点与支路的连接关系及潮流的方向。
本章首先针对配电网优化重构的问题,构建了以有功线损最小为目标的目标函数,同时也根据实际情况针对目标函数提出了若干约束条件,并将这些约束以罚函数项的形式融合于粒子群优化算法的适应值函数中。
其次在优化计算之前采用了基于环路的十进制编码方式,这样既缩短了粒子个体的长度,又缩小了求解范围,在一定程度上提高了算法的效率。
同时本章提出了一种改进型的搜素算法,该方法更适合计算机编程,并且可以在原有的基础之上减少一半的存储空间。
在该问题的粒子群优化计算过程中,针对潮流计算的问题,本章采用了一种快速配电网潮流计算方法,在保证准确度的情况下减少了潮流计算的迭代次数,从另一个方面提高了算法的效率。最后通过对 IEEE 标准三馈线实验系统进行仿真计算验证了文章中所提方法的有效性。
基于云计算平台的配电网重构优化
首先 Hadoop 会有一个输入分片的过程 (Input Split) ,即将大的文件划分成若干个小的数据片,并分发至各个数据节点(DataNode) 上,默认的分块大小为 64M 字节。
紧接着 Hadoop 会根据节点配置中的“mapred.tasktracker.map.tasks.maximum”参数来生成相应的数量的 maper 来同时执行用户定义的 map 函数,对数据进行分析。
具体到本文中算法而定义的 map 主要过程应该为,首先将文本中的数据读入,然后按照每行进行分割,紧接着需要对每行的数据信息进行切割和分析。
接下来判断是否为第一次迭代,若为第一次迭代则不进行粒子位置的改变和更新,直接将数据信息以键值对输出。
从图中可以看出,在进行粒子速度和位置的更新之前首先要对是否为第一次迭代进行判断,这是由于第一次迭代时粒子已经有了初始的速度和位置,并且默认当前的位置为该粒子的历史最优位置,因此直接输出中间键值对即可。
在对粒子的编码时在编码字符串中加入一个表征是否为第一次迭代的标志位,在初始化是将所有粒子的标志位均设为 0,第一次迭代结束后将该标志为置为 1,这样当信息读入的是就可以辨别是否为第一次迭代。
本章首先针对粒子群本身所具有云化特性,提出了一种基于 Hadoop 平台的并行粒子群算法的云化方案。
针对这一云化方案,本章又分别给出了 Map 和 Reduce 两阶段的具体算法流程,并具体分析了两阶段的输入输出和执行过程。
同时本章还给出了 Hadoop平台搭建和 Eclipse 配置的详细过程,并在该平台下以第3 章中的 EEE 标准三馈线试验系统为算例,编写出基于云计算的粒子群优化算法进行仿真计算。
最后与第 3 章中的传统算法计算结果进行比较分析,验证了本章提出的云化粒子群算法的准确性和高效性,同时又针对该算法运行时间长的少势给出了一些改进措施,提高了算法的整体性能。