Matlab遗传算法工具箱的应用
- 格式:pdf
- 大小:223.03 KB
- 文档页数:2
matlab - 遗传算法工具箱函数及实例讲解matlab遗传算法工具箱函数及实例讲解最近研究了一下遗传算法,因为要用遗传算法来求解多元非线性模型。
还好用遗传算法的工具箱予以实现了,期间也遇到了许多问题。
首先,我们要熟悉遗传算法的基本原理与运算流程。
基本原理:遗传算法是一种典型的启发式算法,属于非数值算法范畴。
它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。
它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。
遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。
从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。
如此模仿生命的进化进行不断演化,直到满足期望的终止条件。
运算流程:Step 1:对遗传算法的运行参数进行赋值。
参数包括种群规模、变量个数、交叉概率、变异概率以及遗传运算的终止进化代数。
Step 2:建立区域描述器。
根据轨道交通与常规公交运营协调模型的求解变量的约束条件,设置变量的取值范围。
Step 3:在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。
Step 4:执行比例选择算子进行选择操作。
Step 5:按交叉概率对交叉算子执行交叉操作。
Step 6:按变异概率执行离散变异操作。
Step 7:计算Step 6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。
Step 8:判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果。
其次,运用遗传算法工具箱。
运用基于Matlab的遗传算法工具箱非常方便,遗传算法工具箱里包括了我们需要的各种函数库。
目前,基于Matlab的遗传算法工具箱也很多,比较流行的有英国设菲尔德大学开发的遗传算法工具箱GATBX、GAOT以及Math Works公司推出的GADS。
matlab遗传算法工具箱导出数据的方法-回复如何使用MATLAB遗传算法工具箱导出数据MATLAB是一种广泛使用的数值计算和数据可视化软件,其遗传算法工具箱(Genetic Algorithm Toolbox)是一款强大的用于解决优化问题的工具。
在使用遗传算法工具箱时,可能会遇到需要导出数据的情况。
本文将详细介绍如何使用MATLAB遗传算法工具箱导出数据,并提供一步一步的操作指南。
第一步:加载遗传算法工具箱首先,打开MATLAB软件并加载遗传算法工具箱。
在命令窗口输入"ga"命令,即可加载遗传算法工具箱。
第二步:定义适应度函数在使用遗传算法工具箱前,需要定义一个适应度函数。
适应度函数用于度量个体对问题的适应程度,其中最佳适应程度对应最优解。
在定义适应度函数时,可以根据特定问题的要求进行自定义。
第三步:设置遗传算法参数在使用遗传算法工具箱之前,还需要设置一些遗传算法的参数。
这些参数包括种群数量、迭代次数、交叉概率、变异概率等。
根据具体问题的要求,选择合适的参数值。
第四步:运行遗传算法在完成适应度函数和参数设置后,就可以运行遗传算法了。
在命令窗口输入"ga"命令,并将适应度函数和参数作为输入参数传递给该命令。
第五步:导出数据使用遗传算法工具箱进行优化后,可能需要将优化结果导出。
下面介绍几种常用的导出数据的方法。
方法一:使用内置函数MATLAB提供了一些内置函数用于导出数据,其中比较常用的是"save"和"xlswrite"函数。
1. 使用"save"函数"save"函数用于保存变量和工作空间中的数据。
通过在命令窗口输入"save"命令,再将需要保存的变量名作为参数传递给该命令,即可将变量保存为.mat文件。
例如,要将名为"result"的变量保存为.mat文件,可以使用以下命令:save('result.mat', 'result')2. 使用"xlswrite"函数"xlswrite"函数用于将数据写入Excel文件。
GADS--Matlab遗传算法工具箱使用总结e-mail:978299005@一、GADS简介与启动MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
在Matlab平台上主要有三个遗传算法(GA)的工具箱,分别是:GAOT,美国北卡罗来纳大学开发;GATBX,英国谢菲尔德大学开发;GADS,Matlab7以后的版本中自带的。
GATBX可以包含GAOT,而GADS显然年代又近了一些。
这里主要讲的是GADS。
GADS(Genetic Algorithm and Direct Search Toolbox)遗传算法与直接搜索工具箱。
可以在命令行中直接使用,在M文件的程序中调用ga函数,或在GUI 界面中使用它来解决实际问题。
在不同的Matlab版本中启动方法稍有区别。
以笔者的Matlab 2010b为例,启动有两种方法:1、在Matlab命令行中输入optimtool回车,在出现的对话框左上角找到Solver,选择ga- Genetic Algorithm即可。
2、Matlab界面中单击左下角Start,选择toolboxes,选择其中的optimization再点击optimization tool即可打开对话框,然后如1中,选择ga即可。
二、GADS的具体使用【1】先介绍ga函数的格式。
Ga函数可以在命令行中直接使用。
在命令行中键入命令type ga可以打印出ga函数的代码。
键入help ga,就打印出ga函数的帮助提示。
以下是help ga的输出:GA Constrained optimization using genetic algorithm.GA attempts to solve problems of the form:min F(X) subject to: A*X <= B, Aeq*X = Beq (linear constraints)X C(X) <= 0, Ceq(X) = 0 (nonlinear constraints)LB <= X <= ubX = GA(FITNESSFCN,NVARS) finds a local unconstrained minimum X to theFITNESSFCN using GA. NVARS is the dimension (number of designvariables) of the FITNESSFCN. FITNESSFCN accepts a vector X of size1-by-NVARS, and returns a scalar evaluated at X.X = GA(FITNESSFCN,NVARS,A,b) finds a local minimum X to the functionFITNESSFCN, subject to the linear inequalities A*X <= B. Linearconstraints are not satisfied when the PopulationType option is set to'bitString' or 'custom'. See the documentation for details.X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq) finds a local minimum X to thefunction FITNESSFCN, subject to the linear equalities Aeq*X = beq aswell as A*X <= B. (Set A=[] and B=[] if no inequalities exist.) Linearconstraints are not satisfied when the PopulationType option is set to'bitString' or 'custom'. See the documentation for details.X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub) defines a set of lower andupper bounds on the design variables, X, so that a solution is found inthe range lb <= X <= ub. Use empty matrices for lb and ub if no boundsexist. Set lb(i) = -Inf if X(i) is unbounded below; set ub(i) = Inf ifX(i) is unbounded above. Linear constraints are not satisfied when thePopulationType option is set to 'bitString' or 'custom'. See thedocumentation for details.X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON) subjects theminimization to the constraints defined in NONLCON. The functionNONLCON accepts X and returns the vectors C and Ceq, representing thenonlinear inequalities and equalities respectively. GA minimizesFITNESSFCN such that C(X)<=0 and Ceq(X)=0. (Set lb=[] and/or ub=[] ifno bounds exist.) Nonlinear constraints are not satisfied when thePopulationType option is set to 'bitString' or 'custom'. See thedocumentation for details.X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options) minimizeswith the default optimization parameters replaced by values in thestructure OPTIONS. OPTIONS can be created with the GAOPTIMSET function.See GAOPTIMSET for details.X = GA(PROBLEM) finds the minimum for PROBLEM. PROBLEM is a structurethat has the following fields:fitnessfcn: <Fitness function>nvars: <Number of design variables>Aineq: <A matrix for inequality constraints>bineq: <b vector for inequality constraints>Aeq: <Aeq matrix for equality constraints>beq: <beq vector for equality constraints>lb: <Lower bound on X>ub: <Upper bound on X>nonlcon: <nonlinear constraint function>options: <Options structure created with GAOPTIMSET>rngstate: <State of the random number generator>[X,FVAL] = GA(FITNESSFCN, ...) returns FVAL, the value of the fitnessfunction FITNESSFCN at the solution X.[X,FVAL,EXITFLAG] = GA(FITNESSFCN, ...) returns EXITFLAG whichdescribes the exit condition of GA. Possible values of EXITFLAG and thecorresponding exit conditions are1 Average change in value of the fitness function overoptions.StallGenLimit generations less than options.TolFun andconstraint violation less than options.TolCon.3 The value of the fitness function did not change inoptions.StallGenLimit generations and constraint violation lessthan options.TolCon.4 Magnitude of step smaller than machine precision and constraintviolation less than options.TolCon. This exit condition appliesonly to nonlinear constraints.5 Fitness limit reached and constraint violation less thanoptions.TolCon.0 Maximum number of generations exceeded.-1 Optimization terminated by the output or plot function.-2 No feasible point found.-4 Stall time limit exceeded.-5 Time limit exceeded.[X,FVAL,EXITFLAG,OUTPUT] = GA(FITNESSFCN, ...) returns astructure OUTPUT with the following information:rngstate: <State of the random number generator before GA started>generations: <Total generations, excluding HybridFcn iterations>funccount: <Total function evaluations>maxconstraint: <Maximum constraint violation>, if anymessage: <GA termination message>[X,FVAL,EXITFLAG,OUTPUT,POPULATION] = GA(FITNESSFCN, ...) returns thefinal POPULATION at termination.[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] = GA(FITNESSFCN, ...) returnsthe SCORES of the final POPULATION.Example:Unconstrained minimization of 'rastriginsfcn' fitness function ofnumberOfVariables = 2x = ga(@rastriginsfcn,2)Display plotting functions while GA minimizesoptions = gaoptimset('PlotFcns',...{@gaplotbestf,@gaplotbestindiv,@gaplotexpectation,@gaplotstopping});[x,fval,exitflag,output] = ga(@rastriginsfcn,2,[],[],[],[],[],[],[],options)An example with inequality constraints and lower boundsA = [1 1; -1 2; 2 1]; b = [2; 2; 3]; lb = zeros(2,1);% Use mutation function which can handle constraintsoptions = gaoptimset('MutationFcn',@mutationadaptfeasible);[x,fval,exitflag] = ga(@lincontest6,2,A,b,[],[],lb,[],[],options);FITNESSFCN can also be an anonymous function:x = ga(@(x) 3*sin(x(1))+exp(x(2)),2)If FITNESSFCN or NONLCON are parameterized, you can use anonymousfunctions to capture the problem-dependent parameters. Suppose you wantto minimize the fitness given in the function myfit, subject to thenonlinear constraint myconstr, where these two functions areparameterized by their second argument a1 and a2, respectively. Heremyfit and myconstr are MATLAB file functions such asfunction f = myfit(x,a1)f = exp(x(1))*(4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + a1);andfunction [c,ceq] = myconstr(x,a2)c = [1.5 + x(1)*x(2) - x(1) - x(2);-x(1)*x(2) - a2];% No nonlinear equality constraints:ceq = [];To optimize for specific values of a1 and a2, first assign the valuesto these two parameters. Then create two one-argument anonymousfunctions that capture the values of a1 and a2, and call myfit andmyconstr with two arguments. Finally, pass these anonymous functions toGA:a1 = 1; a2 = 10; % define parameters first% Mutation function for constrained minimizationoptions = gaoptimset('MutationFcn',@mutationadaptfeasible);x = ga(@(x)myfit(x,a1),2,[],[],[],[],[],[],@(x)myconstr(x,a2),options)解释如下:ga函数最完整的格式是[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES]= GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)。
MATLAB技术遗传算法应用MATLAB技术在遗传算法应用方面的研究和应用是计算机科学领域的一个重要研究方向。
遗传算法是一种模拟自然选择和适应性进化的优化算法,通常用于解决优化问题。
而MATLAB是一种强大的数学计算软件,具有丰富的算法库和工具箱,因此在遗传算法的研究和应用中发挥着重要的作用。
遗传算法是一种基于生物进化理论的优化算法,它通过模拟生物遗传和进化的过程,以自然选择和适应性进化为基础,在解空间中搜索最优解。
遗传算法的基本思想是通过模拟自然选择和遗传操作,不断地产生新的解,并通过适应性评价对新解进行选择和进化,最终找到最优解。
遗传算法具有全局搜索能力和较强的鲁棒性,因此广泛应用于各个领域的优化问题。
在MATLAB中,遗传算法的应用可以通过使用遗传算法工具箱来实现。
遗传算法工具箱提供了一些基本的函数和工具,方便用户进行遗传算法的建模和优化。
用户可以根据自己的需求,选择合适的遗传算法模型和参数,然后利用MATLAB编程实现算法的具体逻辑。
在使用遗传算法工具箱时,用户可以通过改变种群大小、交叉概率、变异概率等参数来调节算法的性能,以便更好地适应不同的问题。
除了使用遗传算法工具箱,MATLAB还提供了其他一些相关的工具和函数,用于支持遗传算法的研究和应用。
例如,MATLAB的优化工具箱提供了一些高级的优化算法和函数,可以与遗传算法相结合,进一步提升算法的性能。
此外,MATLAB还提供了一些用于数据处理和可视化的函数,方便用户对算法的结果进行分析和展示。
在实际的研究和应用中,MATLAB技术在遗传算法方面发挥了重要的作用。
首先,MATLAB提供了丰富的数学计算和编程功能,可以方便地进行算法的实现和调试。
其次,MATLAB具有强大的图形界面和可视化功能,可以方便地对算法的过程和结果进行可视化展示。
此外,MATLAB还提供了丰富的工具和函数,可以方便地进行算法的性能评估和优化。
除了基本的遗传算法,MATLAB还支持一些改进和扩展的遗传算法技术。
福建电脑2006年第8期MATLAB遗传算法工具箱及其军事应用雒战波,罗键(厦门大学自动化系福建厦门361005)【摘要】:用MATLAB语言及MATLAB语言编制的优化工具箱进行优化设计具有语言简单、函数丰富、用法比较灵活、编程效率高等特点。
本文简要阐述了遗传算法的基本原理,并对英国Sheffield大学的MATLAB遗传算法工具箱作了简要的介绍,探讨了其在军事目标分配中的应用。
【关键词】:MATLAB遗传算法工具箱军事应用遗传算法(GeneticAlgorithm,简称GA),最先是由JohnHol-land教授于1975年提出的。
它是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,不依赖于问题具体的领域,提供了一种求解非线性、多模型、多目标等复杂系统优化问题的框架。
由于GA的独特特点和广泛应用,基于MATLAB的遗传算法工具箱相继出现,主要由英国设菲尔德(Sheffield)大学的遗传工具箱、美国北卡罗莱纳那州立大学推出的GAOT以及MathWorks公司的遗传算法与直接搜索工具箱(GADST)。
本文主要介绍英国设菲尔德大学的遗传工具箱及其应用。
1.遗传算法基本原理遗传算法与传统搜索算法不同,它是以适应度函数为依据,通过对种群中的所有个体实施遗传操作,实现群体内个体结构重组的迭代过程搜索法。
选择、杂交、变异构成了遗传算法的三个主要遗传操作。
参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定等要素组成了遗传算法的核心内容[1]。
其主要步骤有:(1)编码:在进行搜索之前,先将解空间的解数据表示成遗传空间的基因型串结构数据,这些串结构数据的不同组合就构成了不同的点;(2)初始种群的生成:随机产生N个初始串结构数据,每个串结构数据称为一个个体,也称为染色体(chromosome),N个个体构成了一个种群;(3)适应度评估检测:GA在搜索进化过程中一般不需要其他外部信息,仅用适应度来评估个体或解的优劣,并作为以后遗传操作的依据。
Matlab技术在遗传算法中的应用遗传算法是一种模拟生物进化机制的数学优化算法,广泛应用于复杂问题的求解。
而Matlab作为一种强大的数学计算工具,提供了丰富的函数库和工具箱,能够有效地支持遗传算法的实现和优化。
本文将深入探讨Matlab技术在遗传算法中的应用,从问题建模、编码方式、适应度函数设计、选择运算、交叉运算和变异运算等方面展开讨论,并结合实例进行具体分析。
一、问题建模在运用遗传算法求解问题之前,首先需要将问题进行建模。
Matlab提供了丰富的数学建模工具,可以将实际问题转化为数学形式。
无论是目标函数的构建,还是约束条件的引入,都可以通过Matlab的数学建模工具进行简便的实现。
在遗传算法求解问题时,准确而合理的问题建模将为算法的求解提供良好的基础。
二、编码方式在遗传算法中,个体的编码方式对问题求解效果具有重要影响。
Matlab提供了丰富的编码和进化工具,可以灵活地进行数据表示和转换。
常用的编码方式有二进制编码、实数编码和排列编码等。
针对不同的问题特性和求解需求,选择合适的编码方式对提高遗传算法的求解效率和精度至关重要。
三、适应度函数设计适应度函数是遗传算法中的核心部分,用于评价个体的适应程度。
根据具体问题,设计合理的适应度函数能够更好地引导个体的进化过程。
在Matlab中,可以利用其强大的数学计算能力和优化工具箱,设计并优化复杂的适应度函数,以提高算法的求解质量和效率。
四、选择运算选择运算是遗传算法的重要环节,用于根据适应度函数选择优良个体,使其能够通过遗传操作传递优良的基因到下一代。
Matlab提供了多样化的选择操作函数,比如轮盘赌选择、锦标赛选择等,可以根据具体问题需求选择合适的选择算子。
此外,通过Matlab的并行计算功能,可以加速选择运算的过程,提高算法的求解速度。
五、交叉运算交叉运算是遗传算法中的重要操作,用于模拟生物遗传中的杂交过程。
通过交叉运算,可以将个体的基因信息进行交换,产生新的个体。
【最新整理,下载后即可编辑】最新发布的MATLAB 7.0 Release 14已经包含了一个专门设计的遗传算法与直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox,GADS)。
使用遗传算法与直接搜索工具箱,可以扩展MATLAB及其优化工具箱在处理优化问题方面的能力,可以处理传统的优化技术难以解决的问题,包括那些难以定义或不便于数学建模的问题,可以解决目标函数较复杂的问题,比如目标函数不连续、或具有高度非线性、随机性以及目标函数没有导数的情况。
本章8.1节首先介绍这个遗传算法与直接搜索工具箱,其余各节分别介绍该工具箱中的遗传算法工具及其使用方法。
8.1 遗传算法与直接搜索工具箱概述本节介绍MATLAB的GADS(遗传算法与直接搜索)工具箱的特点、图形用户界面及运行要求,解释如何编写待优化函数的M文件,且通过举例加以阐明。
8.1.1 工具箱的特点GADS工具箱是一系列函数的集合,它们扩展了优化工具箱和MATLAB数值计算环境的性能。
遗传算法与直接搜索工具箱包含了要使用遗传算法和直接搜索算法来求解优化问题的一些例程。
这些算法使我们能够求解那些标准优化工具箱范围之外的各种优化问题。
所有工具箱函数都是MATLAB的M文件,这些文件由实现特定优化算法的MATLAB语句所写成。
使用语句type function_name就可以看到这些函数的MATLAB代码。
我们也可以通过编写自己的M文件来实现来扩展遗传算法和直接搜索工具箱的性能,也可以将该工具箱与MATLAB的其他工具箱或Simulink结合使用,来求解优化问题。
工具箱函数可以通过图形界面或MATLAB命令行来访问,它们是用MATLAB语言编写的,对用户开放,因此可以查看算法、修改源代码或生成用户函数。
遗传算法与直接搜索工具箱可以帮助我们求解那些不易用传统方法解决的问题,譬如表查找问题等。
遗传算法与直接搜索工具箱有一个精心设计的图形用户界面,可以帮助我们直观、方便、快速地求解最优化问题。
!"#$"%遗传算法工具箱函数及应用实例于玲!!贾春强""!#沈阳化工学院机械工程学院!辽宁沈阳!!$!%"#"&大连理工大学机械工程学院!辽宁大连!!’$"($摘要%基于!"#$"%语言的遗传算法工具箱支持二进制和浮点数编码方式!并且提供了多种选择&交叉&变异的方法’通过具体实例对!"#$"%的遗传算法工具箱的用法进行了说明介绍(关键词%)*+,*-#遗传算法#工具箱#优化中图分类号%./(0!&12文献标识码%3文章编号%!$$"4"(((""$$%)!!4$$"14$"&’()#*+(,"(-./"01$2,*(!"#$"%345++$%+/678*(9:!;<4=>’(?@*"(9A5!#67899,9:);78*<=7*,><?=<;;@=<?A68;<B*<?C<D+=+E+;9:F8;G=7*,.;78<9,9?BH68;<B*<?!!I!%"H F8=<*J"#67899,9:);78*<=7*,><?=<;;@=<?H K*,=*<L<=M;@D=+B9:.;78<9,9?BH K*,=*<!!’I"(H F8=<*N 4%,#B")#C.8;O;<;+=73,?9@=+8G.99,-9P-*D;Q9<)*+,*-DERR9@+D+8;-=<*@B*<Q:,9*+H*<Q+8;@;*@;+8;;P7;,,;<+ 9R;@*+9@D9:D;,;7+=9<H7@9DD9M;@*<Q GE+*+=9<=<+8;.99,-9PH+S9;P*GR,;D*-9E+89S+9ED;+8;.99,-9P*@;=<+@9QE7;Q =<+8=D R*R;@#C+=D+98;,R@;*Q;@D=GR@9M;+8;*-=,=+B+9*<*,BT;+8;UE;D+=9<*<Q D9,M;R@9-,;G ED=<?+8;.99,-9P# D2E F+B-,C G*+,*-J?;<;+=7*,?9@=+8GJ+99,-9PJ9R+=G=T*+=9<:遗传算法与!"#$"%语言!"#$"%是一种开放式软件!经过一定的程序可以将开发的优秀的应用程序集加入到!"#$"%工具的行列(这样!许多领域前沿的研究者和科学家都可以将自己的成果集成到!"#$"%之中!被全人类继承和利用(因此!!"#$"%中含有诸多的面向不同应用领域的工具箱!例如%信号处理工具箱&图像处理工具箱&通信工具箱&系统辨识工具箱&优化工具箱&鲁棒控制工具箱&非线性控制工具箱等!而且工具箱还在不断地扩展之中(A遗传算法工具箱的函数及其功能目前!国内图书市场上有关!"#$"%方面的书籍要么侧重于!"#$"%语言编程介绍!要么侧重于各种工具箱函数的解说!而对怎样用工具箱函数来解决实际问题鲜有涉及(本文将对遗传算法工具箱函数进行说明介绍(遗传算法工具箱&’()包括了许多实用的函数!这些函数按照功能可以分为以下几类%!"#主界面函数主程序*"+,提供了遗传算法工具箱与外部的接口(它的函数格式如下%-./012345/%345/#6"708194:;*"<%4=12>!0?"$@A!0?"$(5>!>#"6#345!45#>!#06,@A!#06,(5>!>0$07#@A!>0$07#(5>!.(?06@A>!.(?06(5>!,=#@A>!,=#(5>B输出参数输入参数!"!核心函数及其它函数具体见表C(G遗传算法工具箱应用实例$%&无约束优化问题利用遗传算法计算函数’<(B;(DEF*>G1<H(BDI*74><J(B/的最大值!其中(!-F!K:选择二进制编码!种群中的个体数目为EF!二进制编. 012345 %345#6"708194求得的最优解!包括染色体和适配度最终得到的种群最优种群的搜索轨迹每一代的最好适应度和平均适应度%4=12>0?"$@A0?"$(5>>#"6#34545#>#06,@A#06,(5>>0$07#@A>0$07#(5>.(?06@A.(?06(5>,=#@A,=#(5>变量上下界矩阵!矩阵的行数确定变量个数适应度函数传递给适应度函数的参数!默认值为+ALMM,初始种群选项(一个向量+05>G$41/564%N45>/2G>5$"O,!这里05>G$41表示两代之间的差距#564%N45>取F表示二进制编码!取E表示浮点数编码#2G>5$"O控制运行中是否输出当前群体和最好结果!取F表示运行中不输出!取E表示运行中输出(默认值为+E0P Q/E/F,终止函数的名称!默认值为+R,".&01)06,R,传递给终止函数的参数!默认值为+REFFR,选择函数的名称!默认值为+R146,&04,S0$07#R,传递给选择函数的参数!默认值为+RF+FTR,交叉函数名称表!以空格分开!浮点数编码默认值为+R/"6G#UV4?06/U0=6G>#G7V4?06/>G,5$0V4?06R,!二进制编码默认值为+R>G,5$0V4?06R,传递给交叉函数的参数表!浮点数编码默认值为+RW/F#W/C#W/FR,!二进制编码默认值为+F+Q,变异函数名称表!以空格分开!浮点数编码默认值为+R%4=12"6O!=#"#G41/,=$#GA41L1G9!=#"#G41141/L1G9!=#"#G41=P1G9!=#"#G41R,!二进制编码默认值为+R%G1"6O!=#"#G41R,传递给变异函数的参数表!浮点数编码默认值为+J/F#Q/EFF/C#J/EFF/C#J/F/F,!二进制编码默认值为+F+FH,表:表A码长度为!"!交叉概率为"#$%!变异概率为"#"&"采用’()*的程序清单如下#+编写目标函数文件,-.#/!文件存放在工作目录下"0123.4,256,7!89:7;<,-.=6,7!,-.4,26>?@<6,7=A>$89:7<@BA"C642=%C@>BDC 3,6=EC @>$F 生成初始种群!大小为A"?"424.G,-<424.4:74H8I:=A"!5"?$;!J,-.K>$L 调用遗传算法函数"5@?82MG ,-?NG ,-O.P:38;<I :=5"?$;!K,-.K !5;!424.G ,-!5A8Q R?A?A;!K/:@’82*8P/K !!%!K2,P/’8,/S 8783.K !5"#"&;!5K:P4.TU,98PK;!5!;!K2,2V240W1.:.4,2K !5!?!%?X;>?$经过!%次遗传迭代!运算结果为#!<D#&%RR "=!><!E#&%%E $即当!为D#&%RR 时!"=!>取最大值!E#&%%E "遗传算法一般用来取得近似最优解!另外!遗传算法的收敛性跟其初始值有关!大家运行上面的命令所得到的结果可能跟我的结果不同或是差别很大!但多执行几次上面的命令%随机取不同的初始群体&一定可以得到近似最优解"#$%有约束优化问题考虑如下问题#/42"=!><=!A Q !>!B=!!Q A>!6#.#&A =!><!A Q !!!BA !"&!=!><!!A EQ !!!BA !"本例中存在两个不等式约束!因此我们需要把有约束问题转换成无约束问题来求解"近年来提出了多种用遗传算法满足约束的技术!工程中常用的策略是惩罚策略!通过惩罚不可行解!将约束问题转换为无约束问题"惩罚项的适值函数一般有加法和乘法两种构造方式!本例采用加法形式的适值函数!惩罚函数由两部分构成!可变乘法因子和违反约束乘法"种群中的个体数目为A""!实数编码!交叉概率为"#$%!变异概率为"#"&"遗传算法求的是函数的极大值!因此在求极小值问题时!需将极大值问题转换为极小值问题求解"采用’()*的程序清单如下#Y 编写目标函数文件04.#/!文件存放在工作目录下"0123.4,256,7!89:7;<04.=6,7!,-.4,26>?@A<6,7=A>$@!<6,7=!>$PA<"#A $P!<"#&$Z 约束条件IA<@AQ !C @!BA $I!<@A#[!\EQ @!#[!BA $Z 加惩罚项的适值40?=IA]<">^=I!]<">89:7<=@AQ !>#[!B=@!Q A>#[!$876889:7<=@AQ !>#[!B=@!Q A>#[!BPAC I ABP!CI!$89:7<Q 89:7$82M_设置参数边界!本例边界为!O "N,12M6<,286%!!A &C5Q A !A;$‘调用遗传算法函数"5@O82MG,-ONG,-O.P:38;<I:=N,12M6!KW42K>O $a 性能跟踪"-7,.=.P:38=b !A>!.P:38=b !X>!KPQ K>$T,7MO,2-7,.=.P:38=b !A>!.P:38=b !!>!KNC K>$@7:N87=K’828P:.4,2K>cOd7:N87=Ke4..2866K>$f8I82M=K 解的变化K !K 种群平均值的变化K>$经过A""次遗传迭代!运算结果为#!<O5AOA;$此时极小值89:7=!><A $I A =!><"$I !!!><"#!%!显然最优解满足约束条件"!结论遗传算法工具箱功能强大!包括了大量的算子函数!提供各种类型的选择策略!交叉’变异的方式!适用于各类不同的实际问题"由于大多数实际问题都是有约束条件的!所以!用遗传算法处理约束条件的方法仍属于难点问题!需要进一步的研究和探讨"(参考文献)(")高尚#基于$%&’%(遗传算法优化工具箱的优化计算())*微型电脑应用!+,,+!"-.-/#0+102*(+)姜阳!孔峰*基于$%&’%(遗传算法工具箱的控制系统设计仿真())*广西工学院学报!+,,"!"+.23#41-*(5)飞思科技产品研发中心*$%&’%(4*0辅助优化计算与设计($)*北京#电子工业出版社!+,,5*%编辑阳光&作者简介#于玲%A$D$Q &!女!硕士!主要从事机电液一体化的教学及科研工作"收稿日期#!""EQ "DQ "R!!!!!!!!!!初始化函数424.4:74H8,I :#/P,178..8#/2,P/’8,/S 8783.#/.,1P2S 8783.#/64/-78U,98P#/3d3743U,98P#/7428PU,98P#/7428P,PM8PU,98P#/N,12M:PdW1.:.4,2#/2,2V240W1.:.4,2#//:@’82*8P/#/,-.W:@’82*8P/#/0!N#/N!0#/变异交叉二进制格式和浮点数格式的初始化函数有序数据的初始化函数常用的轮盘赌法基于归一化的优先选择法竞争选择法二进制格式或浮点数格式的交叉函数有序数据的交叉函数!可以将演化函数组合使用浮点数格式的变异函数主程序I :#/用来判断是否满足终止条件用来计算遗传算法满足精度要求时!染色体所需要的二进制位数用来完成二进制数和浮点数之间的相互转换选择函数终止函数二进制表示函数演化函数3:73N4.6#/424.4:74H8I :#/表"。
基于Matlab遗传算法工具箱的优化计算实现一、概述随着科技的发展和社会的进步,优化问题在众多领域,如工程设计、经济管理、生物科学、交通运输等中扮演着越来越重要的角色。
优化计算的目标是在给定的约束条件下,寻找一组变量,使得某个或某些目标函数达到最优。
许多优化问题具有高度的复杂性,传统的数学方法往往难以有效求解。
寻求新的、高效的优化算法成为了科研人员的重要任务。
遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传学机制的搜索算法,通过模拟自然界的进化过程,寻找问题的最优解。
自20世纪70年代初由美国密歇根大学的John Holland教授提出以来,遗传算法因其全局搜索能力强、鲁棒性好、易于与其他算法结合等优点,被广泛应用于各种优化问题中。
1. 遗传算法简介遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传学机制的优化搜索算法。
该算法起源于对生物进化过程中遗传机制的研究,通过模拟自然选择和遗传过程中的交叉、突变等操作,在搜索空间内寻找最优解。
自20世纪70年代初由John Holland教授提出以来,遗传算法已在多个领域取得了广泛的应用,包括函数优化、机器学习、模式识别、自适应控制等。
遗传算法的基本思想是将问题的解表示为“染色体”,这些染色体在算法中通过选择、交叉和突变等操作进行演化。
选择操作模仿了自然选择中“适者生存”的原则,根据适应度函数对染色体进行筛选交叉操作则模拟了生物进化中的基因重组过程,通过交换染色体中的部分基因,生成新的个体突变操作则是对染色体中的基因进行小概率的随机改变,以维持种群的多样性。
在遗传算法中,种群初始化是算法的起点,通过随机生成一组初始解作为初始种群。
根据适应度函数对种群中的个体进行评估,选择出适应度较高的个体进行交叉和突变操作,生成新的种群。
这个过程不断迭代进行,直到满足终止条件(如达到最大迭代次数或找到满足精度要求的最优解)为止。
MATLAB中的遗传算法优化方法介绍与应用引言遗传算法是一种模拟自然进化和基因遗传规律的优化方法,通过模拟生物进化过程中的选择、交叉和变异等操作,逐步搜索并优化问题的解。
在MATLAB中,遗传算法是一种强大的优化工具,被广泛应用于各个领域的问题求解。
本文将介绍遗传算法的基本原理、MATLAB中的实现方法以及一些应用示例。
一、遗传算法的基本原理1.1 遗传算法的基本原理遗传算法基于达尔文的进化论和遗传学原理,通过模拟自然界生物种群的遗传和进化过程,以求得问题的最优解。
遗传算法的基本原理包括以下几个步骤:(1)初始化种群:随机生成一组个体,每个个体都代表问题的一个解。
(2)适应度评价:根据问题的要求,对每个个体进行适应度评价,评估其解的优劣程度。
(3)选择操作:根据适应度评价结果,选择一些个体作为父代,用于产生下一代个体。
(4)交叉操作:将选中的父代个体进行交叉,生成新的子代个体。
(5)变异操作:对部分子代个体进行变异操作,引入一定的随机扰动,增加搜索范围。
(6)更新种群:将子代和部分父代个体合并,形成新的种群。
(7)终止条件判断:判断是否达到终止条件,如果满足,则输出最优解;否则,返回第(2)步。
1.2 MATLAB中的遗传算法工具箱MATLAB提供了遗传算法工具箱,用于实现遗传算法的各个步骤。
通过利用该工具箱提供的函数和操作,用户可以方便地构建自己的优化问题,并应用遗传算法进行求解。
下面是一些常用的MATLAB函数:(1)gamultiobj:多目标遗传算法函数,用于多目标优化问题求解。
(2)ga:单目标遗传算法函数,用于单目标优化问题求解。
(3)GADefaults:遗传算法的默认参数设置。
(4)fitnessfcn:适应度函数,用于评估个体的适应度。
(5)crossoverfcn:交叉函数,用于实现个体的交叉操作。
(6)mutationfcn:变异函数,用于实现个体的变异操作。
(7)selectionfcn:选择函数,用于实现个体的选择操作。
matlab遗传算法种群初始化摘要:一、遗传算法简介二、MATLAB 中的遗传算法工具箱三、种群初始化方法在遗传算法中的应用四、结论正文:一、遗传算法简介遗传算法(Genetic Algorithm,GA)是一种模拟自然界生物进化过程的优化算法。
其主要思想是将进化过程中的种群、适应度函数、选择、交叉和变异等生物学概念引入到算法中,通过模拟这些生物学过程来寻找问题的最优解。
遗传算法具有较强的全局搜索能力,适用于解决复杂、非线性、非凸优化问题。
二、MATLAB 中的遗传算法工具箱MATLAB 提供了遗传算法工具箱(GA Toolbox),用户可以在MATLAB 中直接调用这个工具箱中的函数来实现遗传算法。
这个工具箱中包含了两个主要的函数:ga 和gaoptimset。
其中,ga 函数用于执行遗传算法,其语法如下:```matlab[x,fval] = ga(fitnessfcn,nvars,a,b,aeq,beq,lb,ub,nonlcon,options)```其中,fitnessfcn 表示适应度函数,nvars 表示变量个数,a 和b 分别表示交叉概率和变异概率,aeq 和beq 表示交叉和变异的约束条件,lb 和ub 表示变量范围的下界和上界,nonlcon 表示非线性约束条件,options 表示算法参数。
gaoptimset 函数用于设置遗传算法的参数,其语法如下:```matlabgaoptimset("param1",value1,"param2",value2,...)```其中,param1、value1 等表示需要设置的参数及其值。
三、种群初始化方法在遗传算法中的应用在遗传算法中,种群初始化是一个重要的步骤。
合理的种群初始化方法可以提高算法的收敛速度和搜索能力。
MATLAB 中的遗传算法工具箱提供了两种种群初始化方法:随机初始化和均匀初始化。
遗传算法matlab及应用遗传算法(Genetic Algorithm, GA)是一种模拟自然选择和遗传机制的优化算法,其思想源于达尔文的进化论。
遗传算法具有并行搜索和全局优化能力,因此广泛应用于很多领域,如工程、经济、生物学、计划和调度等。
遗传算法的基本过程包括选择、交叉、变异和替代。
首先,通过选择操作,根据个体适应度函数的值,选择出适应度较高的个体。
然后,通过交叉操作,将选择出的个体按照某种交叉方式进行基因组合,生成新个体。
接下来,通过变异操作,对新个体的基因进行变异,增加了种群的多样性。
最后,根据某种选择策略,将新个体替代掉原先的个体,进而形成新一代的种群。
通过迭代这个过程,直到满足终止条件为止,得到适应度较高的个体,即问题的优化解。
在MATLAB中,可以使用遗传算法工具箱来实现遗传算法。
这个工具箱提供了一系列的函数,可以方便地定义问题的适应度函数、选择策略、交叉和变异操作等。
通过调用这些函数,就可以快速地实现遗传算法,并进行优化问题的求解。
遗传算法在实际应用中有着广泛的应用。
以下是一些典型的应用案例:1. 组合优化问题:如旅行商问题(TSP)和背包问题等。
遗传算法可以通过优化个体的基因序列,找到最优的组合方案。
2. 函数优化问题:如寻找函数的全局极值。
遗传算法可以通过搜索多个解空间,找到函数的最优解。
3. 机器学习问题:如参数寻优、特征选择和神经网络优化等。
遗传算法可以通过优化参数或特征集合,提高机器学习模型的性能。
4. 控制问题:如PID控制器参数优化、路径规划和机器人行为决策等。
遗传算法可以通过优化控制器参数或路径,实现对系统行为的优化。
5. 时间序列预测问题:如股票价格预测和交通流量预测等。
遗传算法可以通过优化时序模型的参数,提高预测的准确性。
总之,遗传算法在许多实际问题的求解中,都具备了很好的应用潜力。
通过定义适应度函数、选择策略和遗传操作等,结合MATLAB中的遗传算法工具箱,可以快速实现复杂问题的优化求解,得到满意的结果。
matlab遗传算法ga工具箱调用gpu运算标题:利用Matlab遗传算法GA工具箱调用GPU运算随着科技的飞速发展,计算能力的需求也在不断提高。
特别是对于那些需要大量计算的任务,如机器学习、深度学习和大数据分析等,传统的CPU已经无法满足需求。
在这种情况下,GPU(图形处理器)作为一种并行处理的强大工具,受到了越来越多的关注。
本文将详细介绍如何在Matlab中使用遗传算法GA工具箱调用GPU进行运算。
首先,我们需要了解什么是遗传算法。
遗传算法是一种模拟自然选择和遗传机制的优化算法。
它通过模拟生物进化过程中的“适者生存”和“遗传变异”机制,在求解复杂问题时能够找到全局最优解或近似最优解。
Matlab GA工具箱是Matlab 提供的一个用于实现遗传算法的工具箱,其提供了丰富的函数和接口,使得用户可以方便地实现各种遗传算法。
然而,遗传算法通常需要处理大量的数据和复杂的运算,这使得其计算效率成为了一个关键问题。
为了解决这个问题,我们可以利用GPU强大的并行计算能力来加速遗传算法的运算。
Matlab GA工具箱支持调用GPU进行运算,只需要简单的设置即可实现。
在Matlab中,我们可以通过以下步骤来调用GPU进行运算:1. 首先,我们需要确认计算机是否安装了GPU以及CUDA驱动程序。
CUDA 是NVIDIA公司推出的一种编程模型,可以让开发者直接访问GPU的硬件资源。
只有安装了CUDA驱动程序,才能在Matlab中使用GPU进行运算。
2. 然后,我们需要在Matlab中设置工作区为GPU。
这可以通过以下命令实现:```matlabg = gpuDevice();set(g,'ExecutionMode','manual');```3. 接下来,我们需要将数据从CPU复制到GPU。
这可以通过以下命令实现:```matlabd_X = gpuArray(X);```其中,X是我们需要复制到GPU的数据。
简单的遗传算法可以使用Matlab自带的遗传算法工具箱,但是要从Matlab2010版本之后才会自带这个工具箱,且调用命令也有变化,分别是gatool和optimtool。
GUI界面如下图所示:1、problem setup and results设置与结果(1)Solver:求解程序,选择要用的求解程序(遗传算法,遗传算法多目标等)(2)problem:1)fitness function适应度函数,求最小,这里的使用度函数要自己编写,书写格式是“@函数名”。
2)number of variable变量数,必须是整数,即,使用这个GUI界面的适应度函数的变量必须是[1*n]的向量,而不能是[m*n]的矩阵。
3)constraints约束4)linear inequalities线性不等式,A*x<=b形式,其中A是矩阵,b是向量5)linear equalities线性等式,A*x=b形式,其中A是矩阵,b是向量6)bounds定义域,lower下限,upper上限,列向量形式,每一个位置对应一个变量7)nonlinear constraint function非线性约束,用户定义,非线性等式必须写成c=0形式,不等式必须写成c<=0形式8)integer variable indices整型变量标记约束,使用该项时Aeq和beq必须为空,所有非线性约束函数必须返回一个空值,种群类型必须是实数编码举例,若是想让第一个、第三个、第五个变量保持是整数的话,则直接在此处填写[1 3 5] 9)run solver and view results求解use random states from previous run使用前次的状态运行,完全重复前次运行的过程和结果2、population(1)population type编码类型1)double vector实数编码,采用双精度。
整数规划的种群类型必须是实数编码。
Matlab技术在遗传算法优化中的应用指南遗传算法是一种模拟生物进化的优化算法,它通过模拟进化的过程来寻找问题的最优解。
近年来,随着计算机技术的不断发展和Matlab软件的广泛应用,遗传算法在工程和科学领域的应用越来越广泛。
本文将介绍如何利用Matlab技术在遗传算法优化中取得更好的效果。
一、遗传算法概述遗传算法是一种模拟自然界进化过程的优化算法。
其基本思想是通过模拟生物遗传、突变和选择等过程,不断改进解的质量,逐步逼近最优解。
在遗传算法中,解被表示为染色体,染色体由若干个基因组成。
每个基因代表问题的一个自变量或参数。
遗传算法通过种群中个体间的交叉、突变和选择等操作,模拟出基因在自然界中的交换和变异,最终得到能够适应环境的个体。
二、Matlab中的遗传算法工具箱Matlab提供了全面的遗传算法工具箱,包含了丰富的函数和算法,使得用户能够方便地使用和实现遗传算法。
下面将介绍Matlab中一些常用的遗传算法函数和工具。
1. ga函数ga函数是Matlab中最基本的遗传算法函数,它实现了标准的遗传算法框架。
用户可以通过设置参数,如目标函数、变量范围、种群大小、迭代次数等来调用ga函数进行优化。
2. Genome类Genome类是Matlab中用于描述染色体的一个重要类。
通过设置基因和适应度函数等属性,可以方便地定义问题的解空间和优化目标。
3. 优化工具Matlab的优化工具箱中提供了多种遗传算法优化函数,如gamultiobj、paretosearch等。
这些函数用于多目标优化问题,能够得到问题的各种最优解。
三、遗传算法的应用遗传算法在各个领域的应用越来越广泛,包括机器学习、控制算法设计、电力系统优化等。
下面将举几个具体的例子来说明遗传算法在工程领域的应用。
1. 机器学习遗传算法可以用于优化神经网络的结构和权重。
通过调整网络的连接和节点数,以及不同的激活函数和损失函数,可以得到更好的机器学习模型。
2. 控制算法设计在控制系统设计中,遗传算法可以用于调整控制器的参数,使得系统的性能指标达到最优。
兵工自动化 软件技术 O. I. Automation 2005年第24卷第6期 Software Technique 2005, Vol. 24, No. 6
·115·文章编号:1006-1576(2005)06-0115-02 Matlab遗传算法工具箱的应用
曾日波 (江西财经大学 电子学院,江西 南昌 330013)
摘要:Matlab遗传算法(GA)优化工具箱是基于基本操作及终止条件、二进制和十进制相互转换等操作的综合函数库。其实现步骤包括:通过输入及输出函数求出遗传算法主函数、初始种群的生成函数,采用选择、交叉、变异操作求得基本遗传操作函数。以函数仿真为例,对该函数优化和GA改进,只需改写函数m文件形式即可。 关键词:遗传算法;Matlab;遗传算法工具箱;仿真 中图分类号:TP391.9 文献标识码:A
Application of Genetic Algorithm Toolbox Based on Matlab
ZENG Ri-bo (College of Finance and Economics Electronics, Jiangxi University, Nanchang 330013, China)
Abstract: The optimization toolbox of Matlab genetic algorithm (GA) is a excellent generalized function library is to bases on basic operation and terminate term, the inter-conversion between binary system and ten system the system etc. Its step includes: the main function of GA and the creation functions of initial population was calculated through inputting and outputting functions, and the basic functions of genetic operation was computed by choosing, interlacing, and aberrance functions to realize the system. Take the function simulation as an example, the optimization of function and improvement of GA were achieved by modification the file format of m function. Keywords: Genetic algorithm; Matlab; Optimization toolbox; Simulation
1 引言 遗传算法(GA:Genetic Algorithm)是对生物进化过程进行的数学方式仿真。将Matlab引入遗传算法,在Matlab平台上开发遗传算法的优化工具箱(GAOT:Genetic Algorithm for Optimization Toolbox),可更好地认识GA,改进GA。
2 基于Matlab的优化工具箱 遗传算法的优化工具箱(GAOT)是从遗传算法的基本结构出发,考虑到基本操作及终止条件、二进制和十进制的相互转换等操作的综合函数库。
2.1遗传算法主函数 function[x,endPop,bPop,traceInfo]= ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps, selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)
输出参数:x-最优解,endPop-最终种群,bPop-最优种群的搜索轨迹。 输入参数:bounds-变量上下界的矩阵,evalFN-适应度函数,evalOps-传递给适应度函数的参数,startPop-初始种群,termFN-终止函数的名称,termOps-传递个终止函数的参数,selectFN-选择函数的名称,selectOps-传递个选择函数的参数,xOverFNs-交叉函数名称表,以空格分开,xOverOps-传递给交叉函数的参数表,mutFNs-变异函数表,mutOps-传递给交叉函数的参数表。
2.2 初始种群的生成函数
function[pop]=initializega (num,bounds,eevalFN,eevalOps,options)
输出参数:pop-生成的初始种群。 输入参数:num-种群中的个体数目,bounds-代表变量的上下界的矩阵,eevalFN-适应度函数,eevalOps-传递给适应度函数的参数,options-选择编码形式(浮点编码或是二进制编码)[precision F_or_B],precision-变量进行二进制编码时指定的精度,F_or_B-为1时选择浮点编码,否则为二进制编码,由precision指定精度)。
2.3 基本遗传操作函数 (1) 选择 function[newPop] = Select(oldPop,options) 参数说明:newPop-由父代种群选出的新的种群,oldPop-当前的种群(即父代种群),options-选择概率。 (2) 交叉 function [c1,c2]=crossover(p1,p2,bounds,ops) 参数说明:p1-第一个父代个体,p2-第二个父代个体,bounds-可行域的边界矩阵,c1、c2-产生的两个新的子代。 (3) 变异 function [child] = Mutation(par,bounds,genInfo,Ops) 变异操作是由一个父代产生单个子代。 3 仿真实例与分析
收稿日期:2005-06-15;修回日期:2005-08-07 作者简介:曾日波(1964-),男,江西人,2000年获华中科技大学工程硕士学位,从事嵌入式系统的应用研究。 兵工自动化 软件技术 O. I. Automation 2005年第24卷第6期 Software Technique 2005, Vol. 24, No. 6
·116· 3.1 仿真实例
基于Matlab的GAOT进行函数优化和GA改进,只需改写函数m文件形式。以求解函数f(x)=x+10sin5x+7cos4x在区间[0,9]的极大值为例:按照工具箱函数,取popsize=10、maxGen-Term=25,几何规划排序选择、算术交叉、非统一变异,其中pc=0.95、pm=0.08。即当x=7.8569时,f(x)=24.8554。仿真结果如图1:x轴表示遗传算法进化的代数,y轴表示种群中染色体的适应度值,实线代表种群个体中当前最优值的轨迹,虚线代表种群中个体的平均值的轨迹。迭代过程如表1。
25 20 15 10 5 0 0 5 10 15 20 25
迭代次数
遗传算法进化值
图1 仿真结果 表1 迭代过程 迭代次数 1 3 6 7 9 函数值 20.190259 20.551384 24.270734 24.420093 24.744628迭代次数 11 15 16 25 50 函数值 24.845763 24.855317 24.855361 24.855361 24.855361
3.2 传统遗传算法与GAOT的应用比较 采用自适应遗传算法即变固定的交叉率和变异率为自适应变化,以加快其收敛性。图2、3是传统遗传算法和GAOT的比较。
0 -1 -2 -3 -4 -5
-6
-7
0 5 10 15 20 25 30
迭代次数
×10-1
遗传算法进化值
图2 传统遗传算法 仿真实验既利用了GAOT本身提供的m函数文件,也将改进的GA算法编成m文件在GAOT中运行。通过仿真图能够直观地反映GA,与其他传统寻优方法相比,它具有明显优势,同时直观显示改进GA比传统GA具有收敛速度快、不易陷入局部极小、精度高等特性。
0 -1 -2 -3 -4 -5
-6
-7
0 5 10 15 20 25 30
迭代次数
×10
-1
遗传算法进化值
图3 GAOT应用 4 结束语
基于Matlab的遗传算法优化工具箱提供了一个标准的、可扩展的、简单的算法,利用Matlab的强大的矩阵运算能力,使用者可以避免维护遗传算法种群和染色体的数据结构的繁重编程工作,将精力集中在遗传算法的改进和具体问题的应用中去。
参考文献: [1] 周明, 孙树栋. 遗传算法原理及应用[M]. 北京: 国防工业出版社, 1999. [2] 张志涌, 徐彦琴. Matlab教程[M]. 北京: 北京航空航天大学出版社, 2001. [3] Christopher R Houck, Jeffery A Joines, Michael G Kay. Agenetical Gorithm for Function Optimization: A Vatlab Implementation [Z].
摘登编号:1006-1576(2005)06-20;收稿日期:2005-08-02 来稿摘登
虚拟现实在火工品生产培训中的作用 袁志国,刘有智 (中北大学 化学工程系,山西 太原 030051)
摘要:虚拟现实技术是由多媒体技术与仿真技术相结合而生成的。它具有多感知性、沉浸特性、交互性和自主性等特征。分为桌面型虚拟现实、沉浸型虚拟现实、增强现实型虚拟现实和分布式共享型虚拟现实等四种类型。并广泛应用在火工品生产培训中,起着多感知性、强化培训效果和节约培训成本等作用。
Application of Virtual Reality Technology in Powder and Detonator Produce Training
YUAN Zhi-guo, LIU You-zhi (Dept. of Chemical Engineering, North University of China, Taiyuan 030051, China)
Abstract: The virtual reality technology was created by the cooperation of multi-media technology and simulation technology. It includes multi-sensation feature, immersion feature, interaction feature, autonomy feature and so on. The virtual reality technology can be divided into desktop type virtual reality, immersion type virtual reality, increasing- reality type virtual reality, and distributed type reality. It was widely applied in produce training of power and detonator. This technology has the effects as follows: multi-sensation, improving the training effect, and saving training cost.