遗传算法属于典型的优化问题,其经典例子是旅行商问题,但是,在数学建模竞赛中,不可能再出现旅行商问题。遗传算法在数学建模中还有其他的用途,比如: 无约束一维变量优化、无约束多维变量优化、有约束优化等,下面将通过实例来认识遗传算法。
无约束一维变量优化
解题步骤:
(1)写出待优化函数的函数文件,代码如下:
function f = myfun1 (x)
f = -x -10*sin(5*x) - 7*cos(4*x);
end
保存该代码 MATLAB 路径的一个目录中,文件名定义为 myfun1.m。(注意:本问题是求函数的最大值,故待优化函数取原函数的相反数。)
(2)设置选项结构的相关参数
新建脚本:
% 调用函数 fplot 画出待优化函数的图形
fplot('x+10*sin(5*x)+7*cos(4*x)',[0,9]);
% 获得默认的选项结构
options=gaoptimset;
% 设置输入适应度函数的数据类型
options. PopulationType = 'doubleVector';
% 设置种群大小
options. PopulationSize