文章插图
一、粒子群算法
粒子群算法,也称粒子群优化算法(Particle Swarm Optimization),缩写为 PSO,是近年来发展起来的一种新的进化算法((Evolu2tionary Algorithm - EA) 。PSO 算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的交叉(Crossover) 和变异(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优 。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性 。
优化问题是工业设计中经常遇到的问题,许多问题最后都可以归结为优化问题.为了解决各种各样的优化问题,人们提出了许多优化算法,比较著名的有爬山法、遗传算法等.优化问题有两个主要问题:一是要求寻找全局最小点,二是要求有较高的收敛速度.爬山法精度较高,但是易于陷入局部极小.遗传算法属于进化算法(EvolutionaryAlgorithms)的一种,它通过模仿自然界的选择与遗传的机理来寻找最优解.遗传算法有三个基本算子:选择、交叉和变异.但是遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验.1995年Eberhart博士和kennedy博士提出了一种新的算法;粒子群优化(ParticalSwarmOptimization-PSO)算法.这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性.
粒子群优化(ParticalSwarmOptimization-PSO)算法是近年来发展起来的一种新的进化算法(Evolu2tionaryAlgorithm-EA).PSO算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质.但是它比遗传算法规则更为简单,它没有遗传算法的交叉(Crossover)和变异(Mutation)操作.它通过追随当前搜索到的最优值来寻找全局最优
二、遗传算法
遗传算法是计算数学中用于解决最佳化的,是进化算法的一种 。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等 。遗传算法通常实现方式为一种模拟 。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化 。传统上,解用表示(即0和1的串),但也可以用其他表示方法 。进化从完全随机个体的种群开始,之后一代一代发生 。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群 。
主要特点
遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用 。的共同特征为:
①首先组成一组候选解
②依据某些适应性条件测算这些候选解的适应度
③根据适应度保留某些候选解,放弃其他候选解
④对保留的候选解进行某些操作,生成新的候选解 。
在遗传算法中,上述几个特征以一种特殊的方式组合在一起:基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作 。这种特殊的组合方式将遗传算法与其它搜索算法区别开来 。
遗传算法还具有以下几方面的特点:
(1)遗传算法从问题解的串集开始搜索,而不是从单个解开始 。这是遗传算法与传统优化算法的极大区别 。传统优化算法是从单个初始值求最优解的;容易误入局部最优解 。遗传算法从串集开始搜索,覆盖面大,利于全局择优 。
(2)遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化 。
(3)遗传算法基本上不用搜索空间的知识或其他辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作 。适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定 。这一特点使得遗传算法的应用范围大大扩展 。
(4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导他的搜索方向 。
(5)具有自组织、自适应和自学习性 。遗传算法利用进化过程获得的信息自行组织搜索时,适应度大的个体具有较高的生存概率,并获得更适应的基因结构 。
推荐阅读
- 中国茶叶的分类和基础知识(详细)
- 汽车|人工智能的普及,当然会让一部分职业“消失”,某些工作会被替代
- 算法面试 - 水壶问题
- 烧制优良紫砂茶具奠定茶物质基础
- 零基础自学办公软件 如何学习办公软件
- 命理学七政天星(四余 七政四余排盘算法初篇)
- 一文了解人工智能学科
- LRU算法详解及最简单的Java实现
- 指纹识别算法基本原理介绍
- 什么是排序算法的稳定性?