基本遗传算法,又称为sga算法,其中包括了详尽的注释,执行效果还不错!
标签: 算法
上传时间: 2015-09-28
上传用户:baiom
GA(Simple Genetic Algorithm)是一种强大的智能多变量优化算法,它模仿种群繁殖规律来进行优化。 本sga可以优化变量,求最小值,最大值(当把函数倒数也就求最小值啦) 并且支持浮点编码,grey编码,二进制编码;轮赌法选择,锦标赛选择;单点交叉,均布交叉,浮点交叉;单点变异,浮点变异;
标签: Algorithm Genetic Simple 多变量
上传时间: 2013-12-18
上传用户:英雄
王小平《遗传算法——理论、应用与软件实现》随书光盘,内容有: \GA 本书中所附源程序C或C++代码文件及其可执行文件 Scs.cpp 基本分类算法源程序,输入数据文件cfile.txt,efile.txt,gfile.txt,pfile.txt,rfile.txt,tfile.txt sga.c 基本遗传算法源程序, 输入数据文件input,输出文件output A_life.c 基于遗传算法的人工生命模拟源程序, 输入数据文件world GA_nn.c 基于遗传算法优化神经网络结构源程序,输入数据文件sample Patmat.c 基于遗传算法提取基元图形源程序 \Sources 遗传算法相关自由软件及代码。
上传时间: 2016-10-04
上传用户:skhlm
基本遗传算法的matlab源程序,bstr2rval.m为基本编码转为实际值子函数,createPop.m创建初始种群子函数,crossOper.m基因交叉子函数,indiEval.m个体实际值子函数,mutateOper.m基因变异子函数,selectOper.m选择算子子函数,sga.m基本遗传算法子函数
上传时间: 2014-01-01
上传用户:er1219
很经典的一个算法。大家做工程和通信用的着。遗传算法(Genetic Algorithm)是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它是有美国Michigan大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著《Adaptation in Natural and Artificial Systems》,GA这个名称才逐渐为人所知,J.Holland教授所提出的GA通常为简单遗传算法(sga)。
上传时间: 2017-02-09
上传用户:wkchong
关于Oracle的性能调整,一般包括两个方面,一是指Oracle数据库本身的调整,比如sga、PGA的优化设置,二是连接Oracle的应用程序以及SQL语句的优化。做好这两个方面的优化,就可以使一套完整的Oracle应用系统处于良好的运行状态。 本 文主要是把一些Oracle Tuning的文章作了一个简单的总结,力求以实际可操作为目的,配合讲解部分理论知识,使大部分具有一般Oracle知识的使用者能够对Oracle Tuning有所了解,并且能够根据实际情况对某些参数进行调整。关于更加详细的知识,请参见本文结束部分所提及的推荐书籍,同时由于该话题内容太多且复 杂,本文必定有失之偏颇甚至错误的地方,请不吝赐教,并共同进步。
上传时间: 2017-02-25
上传用户:zhanditian
由我收集或写出的GA源码,包括GA、sga、AGA、TSPGA、GAPID、Nsga、Nsga2等。
标签: 源码
上传时间: 2014-01-14
上传用户:evil
一个用于学习GA的简单程序,自己编写的sga,不是使用的工具箱函数
标签: 程序
上传时间: 2014-10-28
上传用户:frank1234
Oracle数据库性能调优,包括了对SHARED POOL、sga的调优,也包括了SQL语句调优,是一本好书。
上传时间: 2017-08-03
上传用户:ve3344
遗传算法为群体优化算法,也就是从多个初始解开始进行优化,每个解称为一个染色体,各染色体之间通过竞争、合作、单独变异,不断进化。 优化时先要将实际问题转换到遗传空间,就是把实际问题的解用染色体表示,称为编码,反过程为解码,因为优化后要进行评价,所以要返回问题空间,故要进行解码。sga采用二进制编码,染色体就是二进制位串,每一位可称为一个基因;解码时应注意将染色体解码到问题可行域内。 遗传算法模拟“适者生存,优胜劣汰”的进化机制,染色体适应生存环境的能力用适应度函数衡量。对于优化问题,适应度函数由目标函数变换而来。一般遗传算法求解最大值问题,如果是最小值问题,则通过取倒数或者加负号处理。sga要求适应度函数>0,对于<0的问题,要通过加一个足够大的正数来解决。这样,适应度函数值大的染色体生存能力强。 遗传算法有三个进化算子:选择(复制)、交叉和变异。 sga中,选择采用轮盘赌方法,也就是将染色体分布在一个圆盘上,每个染色体占据一定的扇形区域,扇形区域的面积大小和染色体的适应度大小成正比。如果轮盘中心装一个可以转动的指针的话,旋转指针,指针停下来时会指向某一个区域,则该区域对应的染色体被选中。显然适应度高的染色体由于所占的扇形区域大,因此被选中的几率高,可能被选中多次,而适应度低的可能一次也选不中,从而被淘汰。算法实现时采用随机数方法,先将每个染色体的适应度除以所有染色体适应度的和,再累加,使他们根据适应度的大小分布于0-1之间,适应度大的占的区域大,然后随机生成一个0-1之间的随机数,随机数落到哪个区域,对应的染色体就被选中。重复操作,选出群体规模规定数目的染色体。这个操作就是“优胜劣汰,适者生存”,但没有产生新个体。 交叉模拟有性繁殖,由两个染色体共同作用产生后代,sga采用单点交叉。由于sga为二进制编码,所以染色体为二进制位串,随机生成一个小于位串长度的随机整数,交换两个染色体该点后的那部分位串。参与交叉的染色体是轮盘赌选出来的个体,并且还要根据选择概率来确定是否进行交叉(生成0-1之间随机数,看随机数是否小于规定的交叉概率),否则直接进入变异操作。这个操作是产生新个体的主要方法,不过基因都来自父辈个体。 变异采用位点变异,对于二进制位串,0变为1,1变为0就是变异。采用概率确定变异位,对每一位生成一个0-1之间的随机数,看是否小于规定的变异概率,小于的变异,否则保持原状。这个操作能够使个体不同于父辈而具有自己独立的特征基因,主要用于跳出局部极值。 遗传算法认为生物由低级到高级进化,后代比前一代强,但实际操作中可能有退化现象,所以采用最佳个体保留法,也就是曾经出现的最好个体,一定要保证生存下来,使后代至少不差于前一代。大致有两种类型,一种是把出现的最优个体单独保存,最后输出,不影响原来的进化过程;一种是将最优个体保存入子群,也进行选择、交叉、变异,这样能充分利用模式,但也可能导致过早收敛。 由于是基本遗传算法,所以优化能力一般,解决简单问题尚可,高维、复杂问题就需要进行改进了。 下面为代码。函数最大值为3905.9262,此时两个参数均为-2.0480,有时会出现局部极值,此时一个参数为-2.0480,一个为2.0480。算法中变异概率pm=0.05,交叉概率pc=0.8。如果不采用最优模式保留,结果会更丰富些,也就是算法最后不一定收敛于极值点,当然局部收敛现象也会有所减少,但最终寻得的解不一定是本次执行中曾找到过的最好解。
标签: 遗传算法
上传时间: 2015-06-04
上传用户:芃溱溱123