本框架提供了有关粒子群算法(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
GDI+SDK参考(翻译版本)序言 4目标 4适用范围 4适用读者 4运行环境 4文档组织 4相关主题 4GDI+的安全考虑 6检验构造函数调用成功与否 6分配缓冲区 6错误校验 8线程同步 9相关主题 10关于GDI+ 11GDI+介绍 11GDI+概览 11GDI+的三个组成部分 11基于类的接口架构 12GDI+提供了哪些新东西? 12新特征 12编程模式的改变 15线条、曲线和图形 19矢量图概览 19钢笔、线条和矩形 20椭圆和弧 22多边形 22基数样条 23贝塞尔样条 24路径 25画刷和填充图形 27开放与闭合曲线 29区域 30裁剪 31路径平直化 32线条和曲线的抗锯齿功能 32图象、位图和图元文件 33位图类型 34图元文件 37绘制、定位和复制图片 39裁剪和缩放图象 40坐标系统和转换 42坐标系统类型 42以矩阵来表示转换 44全局和局部转换 48图形容器 51使用GDI+ 56使用入门 56绘制线条 56绘制字符串 58使用钢笔绘制线条和形状 59使用钢笔绘制线条和矩形 59设置钢笔的宽度和对齐方式 60绘制具有线帽的线条 61联接线条 62绘制自定义虚线 62绘制用纹理填充的线条 63使用画笔填充形状 63用纯色填充形状 64用阴影图案填充形状 64用图像纹理填充形状 64在形状中平铺图像 65用渐变色填充形状 68使用图像、位图和图元文件 68加载和显示位图 68加载和显示图元文件 69记录图元文件 69剪裁和缩放图像 71旋转、反射和扭曲图像 72缩放时使用插值模式控制图像质量 73创建缩略图像 75采用高速缓存位图来提高性能 76通过避免自动缩放改善性能 76读取图像元数据 77使用图像编码器和解码器 83列出已安装的编码器 83列出已安装的解码器 84获取解码器的类标识符 86获取编码器的参数列表 88将BMP图像转换为PNG图像 100设定JPEG的压缩等级 101对JPEG图像进行无损变换 102创建和保存多帧图像 105从多帧图像中复制单帧 107Alpha混合线条和填充 109绘制不透明和半透明的线条 109用不透明和半透明的画笔绘制 110使用复合模式控制Alpha混合 111使用颜色矩阵设置图像中的Alpha值 112设置单个象素的alpha值 114使用字体和文本 115构造字体系列和字体 115绘制文本 116格式化文本 117枚举已安装的字体 120创建专用的字体集合 122获取字体规格 126对文本使用消除锯齿效果 130构造并绘制曲线 131绘制基数样条曲线 131绘制贝塞尔样条 133用渐变画刷填充形状 134创建线性渐变 134创建路径渐变 137将Gamma校正应用于渐变 144构造并绘制路径 145使用线条、曲线和形状创建图形 145填充开放式图形 147使用图形容器 147管理Graphics对象的状态 148使用嵌套的Graphics容器 151变换 154使用世界变换 154为什么变换顺序非常重要 155使用区域 156对区域使用点击检测 156对区域使用剪辑 157对图像重新着色 158使用颜色矩阵对单色进行变换 158转换图像颜色 160缩放颜色 161旋转颜色 164剪取颜色 166使用颜色重映射表 168打印 169将GDI+输出至打印机 169显示一个打印对话框 172通过提供打印机句柄优化打印 173附录:GDI+参考 176
2024/10/10 11:31:03 1.75MB GDI+ GDI+中文 GDI+帮助
1
支撑向量机的代码样例,欢迎提出改进意见和建议哈附送数据集
2024/10/10 10:55:21 10.02MB SVM
1
Springer的LLNCS类:包括1、history.txt 宏包的版本历史信息2、llncs.cls 模板类文件3、llncs.dem 一个编码的样例文件4、llncs.doc 文档的指南,本文的源代码等等5、llncsdoc.pdf 模板的使用指南PDF版本6、llncsdoc.sty classmodificationstohelpfortheinstructions7、llncs.ind 作者索引文件(模拟的)8、subjidx.ind 来自于Springer书宏包的主题索引演示样例9、llncs.dvi 生成的DVI样例10、sprmindx.s
2024/10/9 9:03:08 233KB Latex llncs Springer
1
软件架构文档(样例)
2024/10/6 3:46:38 247KB 软件架构文档(样例)
1
三次B样条全局拟合程序,送给需要的人!本书是按照《thenurbsbook》这本书上的P410的最小二乘法曲线逼近的拟合方法!本方法的特点是通过需要插值点序列的两个端点,而不一定通过其他的插值点。
1
改变一生的名言警句大全1.每个人都要为自己负百分之百的责任一点都推脱不了2.把每一天当做最后一天来过,这正是解决拖延症最有效的方法之一。
3.我只做我能力范围内的事,如果能力范围内没有机会出现,我只会等待,而非扩展能力范围。
4.如果知道有成功必有失败,那么渴望成功的心意就不必太过坚持;
如果知道出生之后最终将走向死亡,那么保养生命的方法就不必太过劳心。
5.来到这个世界生活不是我的选择但既然来了我就有责任为之有所作为6.我今天愿意做别人不愿意做的事情明天就会拥有别人不会拥有的东西7.一个人如果一直失败,那么最主要的原因是,他一直在试图跨越7米高的栏杆。
8.别人都在你看不到的地方暗自努力,在你看得到的地方,他们也和你一样显得吊儿郎当,和你一样抱怨,而只有你相信这些都是真的,最后也只有你一人继续不思进取。
9.建功立业、有所作为的人必定是谦虚谨慎、处世圆通的人;
错失良机、碌碌无为的人,必定是固执倔强的人。
10.其实每个人的内心深处都是非常非常脆弱的,他都希望得到你的爱,只要你把你的爱分享给别人,你的一生都会很快乐。
11.你用什么样的心态对待生活,生活就怎样对待你你用什么样的态度对待别人,别人就用什么样的态度对待你12.不要说大话、假话13.一切都会过去14.不要送破烂东西给别人,你自己都觉得不好的东西不要给别人15.活着就是上苍给予我们的最大的恩赐。
活着就是成功16.这个世界上没有完美的事,永远也无法达到完美17.保护自己最好的方式就是不要去伤害别人18.五种幸福:长寿、富贵、健康平安、修行美德、长寿善终19.六种不幸:短命夭折、疾病、忧愁、贫穷、丑恶、懦弱20.你认识多少人不重要,重要的是多少人认识你21.把顾客当成我们的亲人,因为顾客是我们的衣食父母22.不要说任何人的坏话23.其实你想做任何事业老天爷都愿意帮助你的24.你越是不想让别人得到什么,反而你最后也得不到25.天下没有白吃的午餐26.过去不等于未来27.第一次做好,追求零缺点工作28.拿东西要养成哪里拿哪里放的习惯29.金钱用完了,还可以获取,时间用完了,生命就结束了30.当我们的想法不改变,这辈子命运的改变是不可能的31.天下所有平庸的人,碌碌无为的人,原因就是太懒了32.天下所有有才华的人,没有取得成就,原因就是太傲了33.饮食五字诀:杂、少、淡、慢、温34.活着给他人带来益处,死后不给人带来祸害35.君子总是说得少做得多,小人则未做事先说大话36.君子要谨慎言语以养德,节制饮食以养身37.节俭,这是美德中的大德;
奢侈,这是恶行中的大恶38.我宁要100个人1%的努力,也不要我自己一个人100%的努力39.你的成功几率与你从所做的事情中得到的快乐程度成正比40.人们失败的最大原因是破碎的专注力41.你承担什么就能获得什么42.成就者的宿命---被批评43.最大的报复是巨大的成功44.不射门你100%射不进45.积极的心态决定了成功的85%46.人们不会听你说的话他们会观察你每天的行为47.花言巧语、假装和善的人很少有仁德修养48.多责备自己,少责备别人,这样就可以远离怨恨了49.自己不想要的事物,也不要强加给别人50.一件事被所有人都认为是机会的时候,其实它已不是机会了51.没有目标的人,永远为有目标的人去努力52.你把秘密说给别人听,就要做好有一天被公开的准备53.男怕入错行,女怕嫁错郎54.别人为我们做的所有一切都是不应该的55.我们为别人所做的所有的一切都是应该的56.世上没有不好的人只有不好的心态57.生命中什么才是最重要的?爱58.少许诺,多兑现59.千万别把自己当回事60.珍惜每一份工作 要懂得它的来之不易61.越成功的人越像饱满的稻穗,腰弯的越低62.天地万物皆为我所用,而不是为我所有63.存好心说好话行好事做好人64.贪婪心是毒 怨恨心是毒 愚痴心是毒 傲慢心是毒 怀疑心是毒65.好好爱自己 我们才是世界上最昂贵的产品66.想要戒掉坏习惯 从现在就开始67.人情不讨 人情永远在 人情一讨 就什么都没有了68.世界上没有懒惰的人 只有没有目标的人 没有目标 就没有动力69.一心向着自己目标前进的人 整个世界都给他让路70.帮助自己的唯一方法就是去帮助别人71.财富不是朋友 而朋友却是财富72.无目标的努力 犹如在黑暗中远征73.人之所以痛苦 在于追求错误的东西74.暂时没有得到意味着你将得到更好的75.合理的要求是锻炼 不合理的要求
2024/9/29 14:56:55 29KB 改变一生的名言警句大全
1
该程序可实现在局域网内收发文字信息和文件的功能。
希望可以通过这个样例让读者对java网络编程和IO编程有所了解。
其中,主要参考了李刚的《疯狂java讲义》,有一些代码直接拷贝自该书第17章,头像图片来源于网络,特此说明。
另外需要说明的是:本程序在jdk1.8下开发,在笔者的局域网环境下测试通过,能实现发送文字消息和传输小文件的功能,但笔者并不能保证能在你的环境下也一定可以测试通过~O__O“…
2024/9/28 18:17:19 676KB tcp 网络
1
软件设计师考试考眼分析与样卷解析2016版高清全网唯一带书签
2024/9/26 0:31:24 108.17MB 软件设计师 考眼分析
1
附件中A_star.py为算法实现,有两个txt文件作为测试样例,mediumMaze是一个封闭的迷宫,openmaze是一个开放的迷宫
2024/9/23 22:13:36 2KB 迷宫问题 python A*
1
共 519 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡