科学网

 找回密码
  注册
演化计算:粒子群优化算法(10)
潘峰 2024-4-17 09:26
通常,把粒子群优化算法(Particle Swarm Optimization, PSO)划分为群体智能。但它仍然可以看做是演化计算的分支。 PSO是模拟鸟群等的活动而抽象出来的一个智能算法,与前面的遗传算法相比,总体上软件设计仍然可以按照四大模块依次进行:即个体类、工具箱类、种群类和测试类。 一个粒子可看作一个可能解,它包含位置X(x1 ...
个人分类: 算法|291 次阅读|没有评论
演化计算:矩阵结构遗传算法(9)
潘峰 2022-11-20 09:24
针对传统遗传算法在函数优化问题中的不足,提出构建一种矩阵结构种群的遗传算法 MGA ( Matrix S tructure Genetic Algorithm ) 。 MGA 采用矩阵形式的数据结构,借助于矩阵的行、列及主对角线等概念描述种群,并在此结构上对选择、交叉和变异三种算子均进行改进。选择算子是 通过逐行寻优构建 ...
个人分类: 算法|1668 次阅读|没有评论
演化计算:工具箱的应用(8)
潘峰 2022-4-28 10:13
在(7)中我们给出了对种群操作的一些基本算子,是针对二进制编码的;若是浮点数编码的,也可以类似的设计。 这里再理一理思路: 1)首先,对问题进行建模,即设计一种可能解的类型,本系列文中称为Point类; 2)采用面向对象的组合机制设计新类,即若干Point类的对象作为新类(种群类,不妨为EASet)的数据成员; 3)&nb ...
个人分类: 算法|1424 次阅读|没有评论
演化计算:工具箱的设计(7)
潘峰 2021-11-7 12:15
class Tools { public static void copy ( Point a , Point b ) { System . arraycopy ( a . x , 0 , b . x , 0 , Point . size ); ...
个人分类: 算法|1249 次阅读|1 个评论
演化计算:以变异为主导的演化(6)
潘峰 2021-7-4 12:17
20世纪60年代,I.Rechenberg和H.P.Schwefel等提出了利用生物变异的思想随机改变风洞实验参数,获得了较好的效果。并进一步发展,形成了演化计算的分支----演化策略(Evolutionary Strategy,ES)。 本节按照前面的思路:以个体、群体、主类构成演化程序;这里的演化策略与传统的稍有不同,不是对实数编码进行变异,而是对二 ...
个人分类: 算法|1836 次阅读|没有评论
演化计算:基于实践的认知(5)
潘峰 2021-6-27 11:06
在前面的(1-4)节中,主要是快速引入一个简单演化算法的应用例子,并提供可实践的完整代码让有兴趣的爱好者学习,这也是我们认为对演化计算的研究起点应该从实践开始。 前面的(1-4)是基于面向对象设计的实践,为什么要基于面向对象?那是因为基于面向过程的程序设计是从机器的角度思考问题,程序由函数模块组成。而面向 ...
个人分类: 算法|1536 次阅读|没有评论
演化计算:基于面向对象设计的认知(4)
潘峰 2021-6-21 11:02
前面(2)、(3)节给出了一个采用二进制编码的计算一元函数极值的遗传算法实现,通过适当的修改扩展为解决更多复杂的问题。 A)若是多元函数求极值,只需把一维数组表示的编码改为二维数组表示多个变量的编码; B)若各个变量的范围不同,也需要把xmax,xmin设为一维数组等; C)若要改为N进制,方法类似。 总结一下来说: ...
个人分类: 算法|1509 次阅读|没有评论
演化计算:基于面向对象设计的认知(3)
潘峰 2021-6-20 10:29
种群类中的数据成员主要是(2)中Point类型的对象,我们采用一维数组组织这些对象。这种以类A的对象作为类B的成员的方法,在面向对象中称为组合。 为了让父代种群产生的子代种群有存储的空间,一般需要在种群类中设定两个长度相同的数组,分别用于存放父代个体和子代个体,另还需要设定种群演化的交叉率、变异率及种群规模 ...
个人分类: 算法|1548 次阅读|没有评论
演化计算:基于面向对象设计的认知(2)
潘峰 2021-6-15 00:42
在(1)中,我们提到一个演化算法可由三个类构成,即个体类、种群类和主类。 以采用遗传算法(GA)计算函数f(x)=x*sin(10*pi*x)+2.0在 上的最大值为例,个体类Point设计如下: classPoint{ int ; init(); } &n ...
个人分类: 算法|1318 次阅读|没有评论
演化计算:基于面向对象设计的认知(1)
潘峰 2021-6-14 02:07
自2003年暑假学习演化计算后,也曾尝试学习一下一个基本的遗传算法,但一直没有进行下去,觉得太复杂了。 其实简单的遗传算法描述是容易理解的,只是一些用C语言写的代码太复杂,让人一看就不想再学了。像写一个“Hello,world”一样写智能算法,这一直是我想要的。 2020年寒假20多天的居家,总算静下心来,终于完成了遗 ...
个人分类: 算法|1336 次阅读|没有评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 14:53

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部