用Matlab实现遗传算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用GA找到函数最小值

x = ga(fitnessfcn,nvars)

局部无约束最小值,x是目标函数的适应度函数,nvars是适应度函数的尺寸(设计变量的数量)。目标函数和适应度函数接受了1×N大小的x矢量,在x返回一个标量的计算值。

x = ga(fitnessfcn,nvars,A,b)

在线性不等式约束下,适应度函数的局部最小值。如果这个问题有m个线性不等式和n个变量,则A是m×n矩阵,b是m×1矩阵。

注意:当人口类型选项设置为“位串”或者“自定义”,线性约束不满足。x = ga(fitnessfcn,nvars,A,b,Aeq,beq)

存在线性等式约束下,适应度函数的局部最小值。如果没有不等式存在,设置A=[] 和 b=[]。如果问题存在r个线性等式约束和n个变量,那么Aeq 是r ×n矩阵的大小,beq是r大小的矢量。

注意:当人口类型选项设置为“位串”或者“自定义”,线性约束不满足。x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)

定义了一系列设计变量x的最小和最大边界。以至于在范围内找到一个解。如果没有边界存在,LB 和 UB设置为空矩阵。如果x(i)无下界,设置LB(i) = -Inf;如果x(i)无上界,设置UB(i) = Inf。

x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)

服从在非线性约束条件下的最小值,非线性函数接收x,返回C和Ceq向量,分别代表非线性的不等式和等式。GA最小化适应度函数,在C(x)≤0和

Ceq(x)=0的条件下。如果无边界存在,设置 LB=[] 和 UB=[]。

注意:当人口类型选项设置为“位串”或者“自定义”,非线性约束不满足。

x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)

用在结构选项中的值代替默认的优化参数来进行最小化,它也可以用gaoptimset函数来创建,具体参考gaoptimset的用法。

x = ga(problem)

在problem下找到最小值,problem是包含下表的结构。

正如在使用者向导的优化工具Importing and Exporting Your Work描述的一样,它依靠从优化工具导出一个问题来创建结构问题。

[x,fval] = ga(...)

在x下,返回适应度函数的值fval。

[x,fval,exitflag] = ga(...)

返回exitflag(终止条件值),整体识别算法的终止条件,下面列出了exitflag的值和算法相应的终止条件。

• 1 —Average cumulative change in value of the fitness function over options.StallGenLimit generations less than options.TolFun and

constraint violation less than options.TolCon.

• 2 — Fitness limit reached and constraint violation less than options.TolCon.

• 3 — The value of the fitness function did not change in options.StallGenLimit generations and constraint violation less than options.TolCon.

• 4 —Magnitude of step smaller than machine precision and constraint violation less than options.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(...)

返回output的值, 它是一个包含了每一代的输出和关于算法的其他性能信息,它的结构包括下面的范围。

•randstate —The state of rand, the MATLAB random number generator, just before the algorithm started.

•randnstate — The state of randn the MATLAB normal random number generator, just before the algorithm started. You can use the values of randstate and randnstate to reproduce the output of ga. See

Reproducing Your Results.

•generations — The number of generations computed.

•funccount — The number of evaluations of the fitness function •message — The reason the algorithm terminated.

•maxconstraint — Maximum constraint violation, if any.

[x,fval,exitflag,output,population] = ga(...)

返回population的矩阵,它的行是最后一代。

[x,fval,exitflag,output,population,scores] = ga(...)

返回最后一代的scores的值。

注意:(默认下)对于族群类型使用Double Vector的问题,GA不会接受任何那些输入类型复杂的函数。为了解决复杂数据所涉及的问题,靠分开你的实部和虚部,写下你的函数使他们接收实向量。

相关文档
最新文档