矩形件排样的模拟退火算法求解.pdfadfsasdfasdfadsfasd
2024/10/20 3:02:34 135KB 退火算法
1
论文结合一个具体算例,分别采用基于传统非线性的LINGO规划方法和在环境下采用遗传算法MATLAB求解所建模型,计算结果证明了采用遗传算法求解模型的可行性。
2024/10/19 13:39:56 5.88MB 遗传算法
1
VRP问题求解车辆路径,主要采用爬山算法。
带容量约束和路径约束
2024/10/14 8:16:52 1KB VRP
1
本框架提供了有关粒子群算法(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
人工智能—一种现代的方法课后习题Wumpus世界是一个由多个房间组成并连接起来的山洞。
在洞穴的某处隐藏着一只怪兽(Wumpus),它会吃掉进入它房间的任何人。
探险者(Agent)可以射杀怪兽,但是探险者只有一支箭。
某些房间是无底洞,任何人漫游到这些房间都会被无底洞吞噬(怪兽除外,他由于太大可以幸免)。
生活在该环境下的唯一希望是存在发现一堆金子的可能性。
2024/10/11 7:51:15 107.63MB AI 怪兽世界 C++ MFC
1
**Fenics中文教程概述**Fenics是一个强大的开源计算软件,主要用于解决各种科学和工程问题的数值模拟,尤其在偏微分方程(PDEs)求解方面表现出色。
该软件集成了多种工具,包括DOLFIN、UFL、FFC、FFX和PETSc等,为用户提供了灵活、高效且易于使用的界面。
本教程是针对中国用户的Fenics中文教程,旨在帮助初学者快速理解和应用Fenics进行数值模拟。
**Fenics的核心组件**1.**DOLFIN**:这是Fenics的主要接口,用于定义物理问题,如几何、边界条件和方程,并执行求解过程。
DOLFIN通过PythonAPI与用户交互,允许用户用简洁的代码描述复杂的物理模型。
2.**UFL**:通用有限元语言(UnifiedFormLanguage)是Fenics中定义PDEs的高级符号语言。
它允许用户以数学表达式的方式写出方程,简化了代码编写。
3.**FFC**:形式编译器(FormCompiler)将UFL中的符号表达式转换为高效的C++代码,从而实现快速的求解过程。
4.**FFX**:用于生成高效的并行代码,以利用多核处理器或分布式计算资源。
5.**PETSc**:Portable,ExtensibleToolkitforScientificComputation,是一个库,提供了数值算法的高效实现,如线性代数操作,常用于大规模科学计算。
**Fenics中文教程内容**本教程包括以下几个部分:1.**基础知识**:介绍Fenics的基本概念,如有限元方法、变分形式和计算流程,为初学者建立必要的理论背景。
2.**安装与设置**:详细说明如何在不同的操作系统上安装和配置Fenics环境,包括Python环境、依赖库和相关工具的安装。
3.**问题建模**:通过实例讲解如何使用DOLFINAPI定义几何、边界条件和PDEs,以及如何创建计算图谱。
4.**求解器与后处理**:介绍如何选择合适的求解策略,如何调用线性代数库进行求解,并展示如何利用ParaView等工具进行结果可视化。
5.**高级主题**:涵盖并行计算、自适应网格细化、时间依赖问题的处理以及复杂物理模型的建模等进阶内容。
6.**案例研究**:通过实际的工程和科学问题,演示Fenics在热传导、流体力学、弹性力学等领域的应用。
**学习资源与实践**本教程提供的"fenics-中文教程.pdf"是一个完整的PDF文档,包含了详尽的步骤和示例,适合自学。
同时,配合Fenics的官方文档和在线社区,用户可以进一步深化理解和应用。
此外,参与Fenics的开源项目和论坛讨论,也是提高技能和解决问题的有效途径。
Fenics中文教程为中文使用者提供了一个全面了解和掌握这一强大工具的机会,无论是科研人员还是工程技术人员,都能从中受益,利用Fenics解决实际问题,提升工作效率。
2024/10/8 19:06:44 5.66MB fenics pdf
1
2001年数学建模竞赛题的重做,本文关于2001的数学建模竞赛题重新作出讨论与探讨,用MATLAB重新对问题进行求解。
2024/10/7 13:11:44 267KB 血管 模型重建 MATLAB
1
comsol是非常强悍的求解器,comsol的实例课程讲解,ppt版本,非常不错的。
2024/10/6 3:30:53 4.35MB comsol 实例 讲解
1
规划软件Gurobi的相关介绍.Gurobi是目前比较流行且速度很快的求解线性规划、混合整数规划的软件。
2024/10/3 21:26:44 1.17MB Gurobi 规划软件
1
设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。
要求:要检查有关运算的条件,并对错误的条件产生报警。
优化代码:能正确对加减乘除进行进出栈
2024/10/2 21:26:31 284KB 数据结构 计算器 递归
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡