主要内容

遗传算法中的混合方案

此示例显示如何使用混合方案来使用遗传算法和另一种优化方法优化函数。GA.可以快速地达到一个局部最小值的邻域,但它需要许多函数计算才能达到收敛。要加快解决过程,首先运行GA.对于少数世代接近最佳点。然后使用解决方案GA.作为另一个优化求解器的初始点,以执行更快、更有效的局部搜索。

rosenbrock的功能

本例使用Rosenbrock函数(也称为Dejong的第二个函数)作为适应度函数:

F X = 1 0. 0. X 2 - X 1 2 2 + 1 - X 1 2

Rosenbrock函数在最优化中臭名昭著,因为当试图最小化这个函数时,大多数方法都表现出缓慢的收敛速度。Rosenbrock函数在x* =(1,1)处有一个唯一的最小值,在这里它有一个函数值 F X * = 0.

Rosenbrock函数的代码在于dejong2fcn.文件。

类型dejong2fcn.m.
功能分数= dejong2fcn(pop)%dejong2fcn计算Dejongs第二功能。%此功能也被称为RosenBrock的功能版权所有2003-2004 MathWorks,Inc。Scors = Zeros(大小(POP,1),1);对于i = 1:size(pop,1)p = pop(i,:);评分(i)= 100 *(p(1)^ 2  -  p(2))^ 2 +(1  -  P(1))^ 2;结尾

绘制RosenBrock的函数范围-2 <= x(1)<= 2;-2 <= x(2)<= 2。

plotobjective (@dejong2fcn [2 2; 2 2]);

图包含轴对象。轴对象包含2个类型表面的物体,轮廓。

遗传算法解决方案

首先,使用GA.单独找到最少的rosenbrock的功能。

fitnessfcn = @ dejong2fcn;numberofvariables = 2;

包括监视优化过程的绘图函数。

选项= Optimoptions(@ga,'plotfcn',{@ gaplotbestf,@ gaplotstopping};

设置随机数流的再现性,并运行GA.使用选项。

rng默认[x,fval] = ga(fitnessfcn,numberofvariables,[],[],[],[],[],[],[],选项)
优化终止:FITHS值的平均变化小于选项。功能化。

图遗传算法包含2个轴对象。带有标题的轴对象1 Best: 0.491302 Mean: 664119包含2个类型为line的对象。这些对象代表最佳适应度,平均适应度。带有标题停止标准的轴对象2包含类型栏的对象。

X =1×20.3454 - 0.1444
fval = 0.4913.

使用默认停止条件,GA.没有提供一个非常准确的解决方案。您可以更改停止条件以尝试找到更准确的解决方案,但是GA.需要许多函数计算来接近全局最优x* =(1,1)。

相反,执行更高效的本地搜索,该搜索开始在哪里GA.使用混合函数选项停止GA.

添加Hybrid功能

混合函数从点开始GA.停止。混合函数选择是fminsearch.Patternsearch., 或者Fminunc..因为这种优化示例是平滑且无限制的,所以使用Fminunc.为混合函数。提供Fminunc.在指定混合函数时,将绘图选项作为附加参数。

fminuncoptions = Optimoptions(@Fminunc,'plotfcn',{“optimplotfval”“optimplotx”});选项= Optimoptions(选项,“HybridFcn”,{@ fminunc,fminuncoptions};

GA.再次Fminunc.为混合函数。

[x,fval,出口,输出] = ga(fitnessfcn,numberofvariables,[],[],[],[],[],[],[],选项)
优化终止:FITHS值的平均变化小于选项。功能化。

图优化绘图功能包含2个轴对象。轴对象1具有标题电流功能值:1.72147E-11包含类型线的对象。具有标题电流点的轴对象2包含类型栏的对象。

发现本地最低限度。优化完成,因为梯度的大小小于最优耐受性的值。

图遗传算法包含2个轴对象。轴对象1,标题最佳:0.664192意思:4.61776E + 06包含2个类型的线。这些对象代表最佳适应度,平均适应度。带有标题停止标准的轴对象2包含类型栏的对象。

X =1×21.0000 1.0000
fval = 1.7215e-11
EXITFLAG = 1
输出=结构与字段:问题类型:'unconstrained' rngstate: [1x1 struct] generations: 51 funccount: 2534 message: 'Optimization terminated: average change in the fitness value less than options.FunctionTolerance....' maxconstraint: [] hybridflag: 1

GA.图中显示了每一代人口的最佳值和平均值。情节标题确定了最佳价值GA.当它停止。混合函数Fminunc.从发现的最佳点开始GA..这Fminunc.绘图显示解决方案Xfval.,由使用GA.Fminunc.在一起。在这种情况下,使用混合函数可以提高求解的准确性和效率。这output.hybridflag.字段显示Fminunc.停止退出标志1,表明这一点X是一个真正的局部极小值。

相关的话题