MATLAB R2018a 全局优化工具箱学习(一)遗传算法


Global Optimization Toolbox
 

在MATLAB R2018a 中发现了全局优化的工具箱以及增加的数据和机器学习工具箱,对于求解全局最优值很是方便。


MATLAB Global Optimization Toolbox 学习:


全局优化工具箱提供了一些函数, 用于寻找包含多个极大值或极小值的问题的全局解。工具箱包括全局搜索、多初始点、模式搜索、遗传算法、多目标遗传算法、模拟退火和粒子群求解。您可以使用这些求解器解决优化问题。通过设置选项和自定义创建、更新和搜索功能, 可以提高规划求解的有效性。您可以使用自定义数据类型与遗传算法和模拟退火求解来表示不容易用标准数据类型表示的问题。混合函数选项使您可以通过在第一个之后应用第二个求解器来改进解决方案。
 

一、ga算法:

遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。

[x,fval] = ga(fun,nvars)
[x,fval] = ga(fun,nvars,A,b)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon)
[x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
[x,fval] = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon)
[x,fval] = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon,options)

参数解释:


% x         为所求得的最小值点,而不是最小值

% fval      为对应最小值点x处的最小值

% fun       为目标函数。注:若fun为m文件,要用通过句柄@进行引用

% nvars     为目标函数的未知数个数

% A         线性约束条件:不等式中的系数

% b         线性约束条件:不等式右端的值

%Aeq        线性约束条件:等式中的系数

%beq        线性约束条件:等式右端的值

%lb            x的下界

%ub            x的上界

%nonlcon    非线性约束条件:在MathWorks提供的文档中,是通过函数句柄的方法传入参数,对于约束条件{c<=0;ceq=0},构造一个function,使[c,ceq]作为返回值,c = *(x);ceq = **(x)的形式,nonlcon = @function;

%options    options的用法,相对较为复杂,笔者渣也只是掌握一小部分,以后抽时间再整理出来

%IntCon        整形变量,输入值为变量的位置


说明:在MATLAB的ga函数中,返回值还包括exitflag,scores等。
并且MATLAB中的ga算法,有的时候计算最值并没有粒子群算法等精确,并且由于这些启发式算法在确定初代的时候,初代值一般是随机给出的。因此建议在进行计算的时候,选取多个函数并计算多次,选择合适的值。

 

你可能感兴趣的:(数学建模,编程语言学习)