Matlab遗传算法工具箱的应用
Matlab遗传算法工具箱在物流网络设计中的应用

1 2 参 数 设 置 .
I { , , , } 候 选 工厂 集 合 ; E{ , , , E 12 … M 为 J 12 …
M } 为候 选 物 流 中心 集 合 ; ∈{ , … , 1 2, NK) 消 费 为 区 域 集 合 ; 为 消 费 区域 k 产 品 的 需 求 量 ; 候 选 D 对 为 工厂i 的年 平 均 固定 成 本 ; , 在 设 置 物 流 中心 的 g为 地 年 平 均 固定 成 本 ; 从 工 厂 i 工厂 的单 位 产 品 运 c为 到
te lgit s n t o ka d d a t h o dsrb t n h o si e c w r n e l h t ef w iti ui wi l o
a n gsi it s Ex m pes o h aii f mo g l it f li . a o s c ac ie l h wste v l t o dy te ag i m t t b . r g a mig h lorh wi Ma l 70 p o r m n , t h a Ke w or : e ei loi y ds g n t ag rhm;o it sn t r;o it s c t lgsi ewo k lgsi c c
各设 施 间 产 品流 量 的决 策 问题 。
自适应遗传算法 , 采用Ma a 7 0 U b .编程 , 通过算 例 验证 了算法的有效性 。
1 1 假 设 条 件 .
( )仅 考 虑 生 产 销 售 一 种 产 品 , 品需 求 量按 消 1 产
matlab - 遗传算法工具箱函数及实例讲解

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遗传算法工具箱导出数据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遗传算法工具箱使用总结

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还提供了丰富的工具和函数,可以方便地进行算法的性能评估和优化。
除了基本的遗传算法,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的并行计算功能,可以加速选择运算的过程,提高算法的求解速度。
五、交叉运算交叉运算是遗传算法中的重要操作,用于模拟生物遗传中的杂交过程。
通过交叉运算,可以将个体的基因信息进行交换,产生新的个体。
使用MATLAB遗传算法工具实例(详细)(精编文档).doc

【最新整理,下载后即可编辑】最新发布的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语言编写的,对用户开放,因此可以查看算法、修改源代码或生成用户函数。
遗传算法与直接搜索工具箱可以帮助我们求解那些不易用传统方法解决的问题,譬如表查找问题等。
遗传算法与直接搜索工具箱有一个精心设计的图形用户界面,可以帮助我们直观、方便、快速地求解最优化问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
兵工自动化 软件技术 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.