本框架提供了有关粒子群算法(PSO)和遗传算法(GA)的完整实现,以及一套关于改进、应用、测试、结果输出的完整框架。
本框架对粒子群算法与遗传算法进行逻辑解耦,对其中的改进点予以封装,进行模块化,使用者可以采取自己对该模块的改进替换默认实现组成新的改进算法与已有算法进行对比试验。
试验结果基于Excel文件输出,并可通过设定不同的迭代结束方式选择试验数据的输出方式,包括:1.输出随迭代次数变化的平均达优率数据(设定终止条件区间大于0)。
2.输出随迭代次数变化的平均最优值数据(设定终止条件区间等于0)。
本框架了包含了常用基准函数的实现以及遗传算法与粒子群算法对其的求解方案实现和对比,如TSP,01背包,Banana函数,Griewank函数等。
并提供大量工具方法,如KMeans,随机序列生成与无效序列修补方法等等。
对遗传算法的二进制编码,整数编码,实数编码,整数序列编码(用于求解TSP等),粒子群算法的各种拓扑结构,以及两种算法的参数各种更新方式均有实现,并提供接口供使用者实现新的改进方式并整合入框架进行试验。
其中还包括对PSO进行离散化的支持接口,和自己的设计一种离散PSO方法及其用以求解01背包问题的实现样例。
欢迎参考并提出宝贵意见,特别欢迎愿意协同更新修补代码的朋友(邮箱starffly@foxmail.com)。
代码已作为lakeast项目托管在GoogleCode:http://code.google.com/p/lakeasthttp://code.google.com/p/lakeast/downloads/list某些类的功能说明:org.lakest.common中:BoundaryType定义了一个枚举,表示变量超出约束范围时为恢复到约束范围所采用的处理方式,分别是NONE(不处理),WRAP(加减若干整数个区间长度),BOUNCE(超出部分向区间内部折叠),STICK(取超出方向的最大限定值)。
Constraint定义了一个代表变量约束范围的类。
Functions定义了一系列基准函数的具体实现以供其他类统一调用。
InitializeException定义了一个代表程序初始化出现错误的异常类。
Randoms类的各个静态方法用以产生各种类型的随机数以及随机序列的快速产生。
Range类的实现了用以判断变量是否超出约束范围以及将超出约束范围的变量根据一定原则修补到约束范围的方法。
ToStringBuffer是一个将数组转换为其字符串表示的类。
org.lakeast.ga.skeleton中:AbstractChromosome定义了染色体的公共方法。
AbstractDomain是定义问题域有关的计算与参数的抽象类。
AbstractFactorGenerator定义产生交叉概率和变异概率的共同方法。
BinaryChromosome是采用二进制编码的染色体的具体实现类。
ConstantFactorGenerator是一个把交叉概率和变异概率定义为常量的参数产生器。
ConstraintSet用于在计算过程中保存和获取应用问题的各个维度的约束。
Domain是遗传算法求解中所有问题域必须实现的接口。
EncodingType是一个表明染色体编码类型的枚举,包括BINARY(二进制),REAL(实数),INTEGER(整型)。
Factor是交叉概率和变异概率的封装。
IFactorGenerator参数产生器的公共接口。
Population定义了染色体种群的行为,包括种群的迭代,轮盘赌选择和交叉以及最优个体的保存。
org.lakeast.ga.chromosome中:BinaryChromosome二进制编码染色体实现。
IntegerChromosome整数编码染色体实现。
RealChromosome实数编码染色体实现。
SequenceIntegerChromosome整数序列染色体实现。
org.lakeast.pso.skeleton中:AbstractDomain提供一个接口,将粒子的位置向量解释到离散空间,同时不干扰粒子的更新方式。
AbstractF
2024/10/11 21:51:28 1.42MB 遗传算法 粒子群算法 GA PSO
1
粒子群算法,又称粒子群优化算法(ParticalSwarmOptimization),缩写为PSO,是近年来发展起来的一种新的进化算法(EvolutionaryAlgorithm-EA),由Eberhart博士和kennedy博士于1995年提出,其源于对鸟群捕食的行为研究。
2024/10/8 0:38:49 2KB matlab PSO 粒子群优化算
1
粒子群算法(启发式算法)的多目标优化,我也翻过一些这方面的论文。
单目标与多目标优化主要区别在于多目标优化问题有多个目标函数,一个解对于某个目标来说可能是较好的,而对于其他目标来讲可能是较差的。
因此,存在一个折衷解的集合,也就是所谓的Pareto集。
教科书上,解决多目标优化问题的方法一般是,通过数学变换把多目标转换为单目标求解,但是实际问题中涉及到多目标优化问题往往具有非线性、不可微、不连续等特征,难以用数学方法搞定。
而启发式算法则不需要这些严格条件,其实也是启发式算法兴起的原因。
2024/9/26 7:11:04 450KB 粒子群算法 多目标
1
代码解释的很详细,可以直接用,已经测试过了,很好用。
2024/9/26 7:18:41 113KB 很实用
1
采用多种群协同的多目标粒子群算法,测试函数为ZDT1。
.....................................................
1
粒子群算法,改变权重的四种方式,对应的代码,可以用于在粒子群算法编程中,调整惯性权重
2024/9/4 13:32:31 516B 粒子群算法、
1
个人收集的各类智能算法,共有20多个源代码,包括:遗传算法,蚁群算法,粒子群算法,微分进化算法,遗传神经网络算法,粒子群SVM算法,粒子群神经网络算法等混合算法。


6.11MB 蚁群算法
1
粒子群算法优化PID参数,PSO,参数整定
2024/8/14 14:55:02 3KB PSO ITAE
1
光伏阵列能否正常工作直接关系到整个光伏发电系统运行的安全性和可靠性。
对于光伏阵列故障诊断中传统的BP神经网络诊断算法准确率低、收敛速度慢等问题,提出一种基于粒子群优化RBF神经网络的故障诊断算法。
建立以光伏阵列的4种故障特征参数为输入、5种情况为输出的故障诊断模型,对基于粒子群算法的网络模型的自适应权重寻优进行仿真实验。
最后,将优化算法与BP神经网络算法以及RBF神经网络算法进行对比。
实验结果表明,优化算法不仅可以有效地诊断光伏阵列的故障类型,而且还可以提高故障诊断的准确率。
2024/7/16 10:56:42 958KB 行业研究
1
粒子群算法(PSO)工具箱,及其使用简介。
有最普通的PSO算法的简单例子。
2024/7/15 15:19:13 800KB PSO 工具箱 使用说明
1
共 231 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡