本框架提供了有关粒子群算法(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
E6术的研究和自动测试实例的设计与实现摘要随着计算机软件的规模越来越大,软件测试成为了软件质量保障的关键环节,软件测试自动化也成为了软件测试领域所无法逾越的发展阶段....第一章引言1.1选题背景软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保障的关键步骤。
其定义可简略概括为:为了发现错误而运行程序的过程。
随着软件规模的不断扩大,软件质量问题已成为制约计算机发展的主要因素之一......1.2本文的目标和主要工作第二章性能测试研究2.1软件测试概述2.2.1性能测试2.2.2测试工具2.2主流性能测试工具比较第三章项目分析与规划测试3.1《学生XX管理系统1.3版》项目分析3.1.2功能概述3.1.3系统组件与配置3.1.4分析使用模型及任务分布3.2定义负载测试目标3.3测试思路与测试方案设计3.3.1设计压力应用思路3.3.2测试方案设计3.3.3性能测试用例第四章学生XX管理系统性能测试实例的实现4.1创建用户脚本4.2完善测试脚本4.2.1事务设置4.2.2用参数化取代常量值4.2.3集合点4.2.4脚本检验4.3方案执行4.3.1场景创建4.3.2加压计划4.3.3多IP地址4.4运行结果处理分析4.4.1Throughput4.4.2TransactionResponseTime4.4.3分解界面4.4.4针对测试用例3的图表分析第五章测试总结致谢参考文献
1
KAREL是一种与Pascal非常相似的低级语言。
它具有强类型变量,常量,自定义类型,过程,函数,并且可以访问您可能无法使用TP的各种有用的内置函数。
KAREL是一种编译语言; 源必须从KAREL源文件(.KL)转换为p-code(.PC),然后才能在控制器上加载和执行。
一旦您的KAREL程序加载到控制器上,它就像一个黑匣子 ; 您不能像TP程序一样看到源代码或步骤。
作为R-30iB控制器,您的机器人必须具有KAREL软件选项才能加载您自己的自定义KAREL程序。
2024/10/7 8:04:22 6.11MB FANUC KAREL 机器人
1
设计一个包含学生基本信息(学号,姓名,成绩)的顺序表,编程完成如下功能:⑴初始化顺序表L:根据用户指定的学生数,逐个输入学生信息;
⑵打印表中所有学生信息:逐个显示表中所有学生的基本信息;
⑶判断L是否为空表;
⑷查找指定学生:根据姓名进行查找,返回学生的位序,并输出学生的学号和成绩;
⑸根据指定的位置,返回并输出相应学生的基本信息;
⑹给定一个学生信息,将其插入到表中指定的位置;
⑺删除指定位置的学生记录;
⑻统计表中学生个数(求表长度);
⑼销毁表L;
以上为必做题,下面为附加题(选做)。
⑽建立两个有序(学号)的学生顺序表La和Lb:分别向顺序表La和Lb逐个输入m个和n个学生的信息(并不一定按学号大小顺序输入);
⑾打印表La和Lb中的学生信息;
⑿将La和Lb归并为新的有序表Lc;
⒀打印表Lc中的学生信息;
⒁销毁顺序表La、Lb和Lc。
其他要求:⑴将所需要的标准头文件以及一些符号常量的定义等放在Common.h头文件中;
⑵顺序表类型定义(采用定义二)和基本操作函数声明放在Sqlist.h头文件中;
⑶基本操作函数的实现放在Sqlist.cpp文件中;
⑷测试应用程序放在SqlistTestApp.cpp文件中(可以任意重复测试)。
2024/9/22 21:16:40 768KB 顺序表
1
利用二维光子晶体仿真设计了四信道光滤波器.首先根据时域耦合模理论导出了实现100%信道耦合的条件;然后根据该条件设计了四信道滤波器,并利用时域有限差分法进行了仿真.仿真结果显示,四信道耦合效率均超过96%,当晶格常量取570nm时,四信道的中心频率在1520nm到1580nm之间,信道间隔均小于20nm,信道间窜扰很小。
505KB 11
1
VisualBasic.NET提供了大量的工具和语言方面的功能。
当然,不可能用一本书包含VisualBasic.NET的所有内容,这些内容要用一个书库来容纳。
本书的目的是让您尽快入门,它相当于一个路标,可以指导您的学习。
在介绍完创建应用程序的基础知识后(如创建窗口和对话框,如何用代码处理突发事件,什么是面向对象的程序设计,以及如何在应用程序中使用它等)。
目录:第1章初识VisualBasic.NET11.1Windows和DOS编程11.2安装VisualBasic.NET31.3VisualBasic.NET集成开发环境71.3.1配置文件设置页71.3.2Projects选项卡71.3.3菜单81.3.4工具栏91.4创建简单的应用程序101.4.1VisualStudio.NET集成开发环境中的窗口121.4.2工具箱141.4.3改进型匈牙利表示法171.4.4代码编辑器181.5使用帮助系统211.6小结231.7练习23第2章Microsoft.NETFramework242.1Microsoft的信心来自于Windows242.1.1MSN1.0252.1.2.NET理念252.1.3.NET与Java有些类似262.1.4现在所处的阶段272.2为Windows编写软件272.2.1.NETFramework类282.2.2执行代码292.3公共语言运行库302.3.1载入并执行代码312.3.2应用程序隔离312.3.3安全性312.3.4互操作322.3.5异常处理322.4通用类型系统和公共语言规范322.5小结332.6练习33第3章编写软件343.1信息和数据343.1.1算法343.1.2编程语言353.2变量363.3注释和空白383.3.1注释383.3.2空白393.4数据类型393.4.1使用数字393.4.2使用字符串453.4.3使用日期523.4.4布尔型583.5存储变量583.5.1二进制593.5.2位和字节593.5.3值的表示603.5.4值的转换613.6方法633.6.1使用方法的原因633.6.2创建方法673.6.3选择方法名称693.6.4作用域703.7小结723.8练习72第4章流程控制734.1做出决策734.2If语句734.2.1Else语句754.2.2可进行多重选择的ElseIf语句764.2.3嵌套的If语句774.2.4单行If语句784.2.5比较运算符784.2.6字符串比较864.3SelectCase语句874.3.1使用SelectCase语句884.3.2不区分大小写的SelectCase语句914.3.3多重选择934.3.4CaseElse语句954.3.5SelectCase中的不同数据类型964.4循环964.4.1For…Next循环964.4.2ForEach…Next循环1004.4.3Do…Loop循环1014.4.4嵌套循环1074.4.5提前退出循环1084.4.6死循环1104.5小结1114.6练习111第5章处理数据结构1125.1数组1125.1.1定义和使用数组1125.1.2用值初始化数组1205.2枚举1215.2.1使用枚举1215.2.2确定状态1245.2.3设置无效值1275.3常量1275.3.1使用常量1285.3.2改变常量1295.3.3各种常量类型1305.4结构1305.4.1创建结构1305.4.2为结构添加属性1335.5集合和列表1335.5.1使用数组列表1345.5.2从数组列表中进行删除操作1375.5.3显示数组列表中的项1405.5.4集合1415.6用散列表创建查询表1445.6.1使用散列表1455.6.2Remove.RemoveAt和Clear方法1485.6.3区分大小写1505.7高级数组操作1525.8小结1545.9练习155第6章构建Windo
2024/8/26 10:30:34 11.93MB VB.NET 入门经典 (第三版) vb.net
1
参考资料:《数据结构》(C语言版)严蔚敏&&吴伟民&&米宁著要求选用顺序存储结构和二叉链表存储结构实现抽象数据类型二叉树的基本操作。
有个亮点是利用字符在dos界面显示二叉树的结构形态。
里面包含了完整的源程序和实验报告文档。
实验报告包含了完整的步骤包括:一.抽象数据类型二叉树的定义二.存储结构定义(包括顺序存储和二叉链表)及各基本操作的实现三.测试方案。
包括详细的测试函数四.测试结果。
对所有操作的测试过程中二叉树的变化截图。
五.二叉树各基本操作时间复杂度与存储结构特点分析及对算法的改进设想。
六.实验总结和体会实现的基本操作如下:InitBiTree(&T)DestroyBiTree(&T)CreateBiTree(&T)ClearBiTree(&T)BiTreeEmpty(T)BiTreeDepth(T)Root(T)Value(T,e)Assign(T,&e,value)Parent(T,e)LeftChild(T,e)RightChild(T,e)LeftSibling(T,e)RightSibling(T,e)InsertChild(T,p,LR,c)DeleteChild(T,p,LR)PreOrderTraverse(T,Visit())InOrderTraverse(T,Visit())PostOrderTraverse(T,Visit())LevelOrderTraverse(T,Visit())下载清单:Base.h//全局常量、公共变量、公共函数等BiTree.h//二叉链表二叉树实现BiTree_Main.cpp//二叉链表二叉树测试程序SqBiTree.h//顺序存储二叉树实现SqBiTree_Main.cpp//顺序存储二叉树测试程序抽象数据类型实现-二叉树-实验报告.doc
1
谭浩强-C++程序设计内容目录:第1篇基本知识第1章C++的初步知识*1.1从C到C++*1.2最简单的C++程序1.3C++程序的构成和书写形式1.4C++程序的编写和实现1.5关于C++上机实践第2章数据类型与表达式2.1C++的数据类型2.2常量2.3变量2.4C++的运算符2.5算术运算符与算术表达式2.6赋值运算符与赋值表达式2.7逗号运算符与逗号表达式第2篇面向过程的程序设计第3章程序设计初步3.1面向过程的程序设计和算法3.2C++程序和语句3.3赋值语句3.4C++的输入与输出3.5编写顺序结构的程序3.6关系运算和逻辑运算3.7选择结构和if语句3.8条件运算符和条件表达式3.9多分支选择结构和switch语句3.10编写选择结构的程序3.11循环结构和循环语句3.12循环的嵌套3.13break语句和continue语句3.14编写循环结构的程序第4章函数与预处理4.1概述4.2定义函数的一般形式4.3函数参数和函数的值4.4函数的调用*4.5内置函数*4.6函数的重载*4.7函数模板*4.8有默认参数的函数4.9函数的嵌套调用4.10函数的递归调用4.11局部变量和全局变量4.12变量的存储类别4.13变量属性小结4.14关于变量的声明和定义4.15内部函数和外部函数4.16预处理命令第5章数组5.1数组的概念5.2一维数组的定义和引用5.3二维数组的定义和引用5.4用数组名作函数参数5.5字符数组*5.6C++处理字符串的方法——字符串类与字符串变第6章指针6.1指针的概念6.2变量与指针6.3数组与指针6.4字符串与指针6.5函数与指针6.6返回指针值的函数6.7指针数组和指向指针的指针6.8有关指针的数据类型和指针运算的小结*6.9引用第7章自定义数据类型7.1结构体类型7.2共用体7.3枚举类型7.4用typedef声明类型第3篇基于对象的程序设计第8章类和对象8.1面向对象程序设计方法概述8.2类的声明和对象的定义8.3类的成员函数8.4对象成员的引用8.5类的封装性和信息隐蔽8.6类和对象的简单应用举例第9章关于类和对象的进一步讨论9.1构造函数9.2析构函数9.3调用构造函数和析构函数的顺序9.4对象数组9.5对象指针9.6共用数据的保护9.7对象的动态建立和释放9.8对象的赋值和复制9.9静态成员9.10友元9.11类模板第10章运算符重载10.1什么是运算符重载10.2运算符重载的方法10.3重载运算符的规则10.4运算符重载函数作为类成员函数和友元函数10.5重载双目运算符10.6重载单目运算符10.7重载流插入运算符和流提取运算符10.8不同类型数据间的转换第4篇面向对象的程序设计第11章继承与派生11.1继承与派生的概念11.2派生类的声明方式11.3派生类的构成11.4派生类成员的访问属性11.5派生类的构造函数和析构函数11.6多重继承11.7基类与派生类的转换11.8继承与组合11.9继承在软件开发中的重要意义第12章多态性与虚函数12.1多态性的概念12.2一个典型的例子12.3虚函数12.4纯虚函数与抽象类第13章输入输出流13.1C++的输入和输出13.2标准输出流13.3标准输入流13.4文件操作与文件流13.5字符串流
1
3.几何图形(满分50分)版本1:满分10分设计抽象类GeometricObject及其子类Triangle和Circle。
GeometricObject类设计要求如下:■一个名为color的Color类型的私有数据域,表示对象的颜色■一个名为filled的Boolean类型的私有数据域,表示对象是否■一个名为dateCreated的Date类型的私有数据域,表示对象的■一个无参构造方法。
■一个能创建特定color和filled的有参构造方法。
■相关数据域的访问器和修改器。
■两个个名为draw和erase的抽象方法。
■一个名为getArea的抽象方法。
■一个名为getPerimeter的抽象方法。
■重写toString方法。
Triangle类设计要求如下:■三个名为side1、side2和side3的double类型的私有数据域表们的默认值是1.0。
要求三个数据域保留2位小数。
■一个无参的构造方法创建默认三角形。
■一个能创建带指定side1、side2和side3的有参构造方法。
■所有三个数据域的访问器和修改器方法。
■父类抽象方法的实现。
■重写toString方法。
Circle类设计要求如下:■一个名为radius的double类型的私有数据域,表示圆的半径,数据域保留2位小数。
■一个名为PI的静态常量,其值为3.14■一个无参的构造方法创建默认三角形。
■一个能创建带指定radius的有参构造方法。
■radius数据域的访问器和修改器方法。
■父类抽象方法的实现。
■重写toString方法。
测试类TestGeometricObject1设计要求如下:■一个能随机生成Circle类和Triangle类对象的静态方法GeometricObject[]RandomCreateGeometricObject()■以随机生成的数组为参数,输出数组中每个对象的基本信息、周长和面积。
■类中其它方法的测试版本2:满分20分将上面的抽象类GeometricObject改为接口,接口只保留其中四个抽象方法,声明类Circle、Triangle实现该接口,类的基本要求如上,同时为每个类增加一个将当前对象序列化到指定文件的方法writeToFile(Filef)。
测试类TestGeometricObject2设计要求如下:■一个能随机生成Circle类和Triangle类对象的静态方法,该方法将随机生成的象序列化到指定的文件GeometricObjects.dat中,序列化成功返回真,否则返回假。
BooleanRandomCreateGeometricObject()■将GeometricObjects.dat文件中对象全部读出,存储到GeometricObject对象数组中,然后以此数组为参数,输出数组中每个对象的基本信息、周长和面积。
■类中其它方法的测试。
新增一个类Rectangle,也实现接口GeometricObject,同时修改测试类TestGeometricObject2,体会开-闭原则。
版本3:满分20分在第2步的基础上设计实现一个具有GUI界面的几何图形绘制系统系统,要求实现根据选择的几何图形类型来绘制和删除相应的图形,其中相关参数应通过界面输入,并可计算图形的周长和面积。
2024/7/31 3:21:55 23KB 几何图形 jpanel 课程设计CQUT xhay
1
一、实验目的1、理解符号常量的定义方法;
2、熟记不同数据类型字面常量的数值范围;
3、理解数据类型转换方法4、学习java程序的开发步骤;
5、学习调试程序的基本步骤;
6、理解java程序的层次结构;
2024/7/28 20:44:36 316KB jdk1.8
1
共 117 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡