主要内容

Simulannealbnd.

使用模拟退火算法查找最小功能

描述

例子

X= simulannealbnd(乐趣X0.找到当地的最小值,X,功能句柄乐趣计算目标函数的值。X0.是模拟退火算法,真实矢量的初始点。

笔记

通过额外的参数如有必要,如何将额外参数传递给客观函数。

例子

X= simulannealbnd(乐趣X0.UB.在设计变量上定义一组下限和上限X,使解决方案始终在范围内≤.X≤.UB..如果x(我)下面是无界的集合磅(i) =负无穷, 而如果x(我)在上面无界,设置乌兰巴托(i) =正无穷

例子

X= simulannealbnd(乐趣X0.UB.选项使用指定的优化选项最小化选项.创造选项使用优化选择.如果没有界限,请设置lb = []和/或UB = []

X= simulannealbnd(问题找到最低限度问题,描述的结构问题

[Xfval.) = simulannealbnd (___,返回目标函数的值乐趣在解决方案X

例子

[Xfval.ExitFlag.输出) = simulannealbnd (___另外,返回一个值ExitFlag.这描述了退出条件Simulannealbnd.和一个结构输出有关于优化过程的信息。

例子

全部收缩

最小化De Jong的第五个功能,具有许多当地最小值的二维功能。

剧集De Jong的第五个功能。

dejong5fcn.

图包含轴。轴包含2个类型的表面,轮廓。

最小化De Jong的第五功能Simulannealbnd.从点开始[0,0]

有趣= @ dejong5fcn;x0 = [0 0];x = simulannealbnd(有趣,x0)
优化终止:更改最佳函数值小于options.functiontolerance。
X =1×2-32.0285 -0.1280

Simulannealbnd.算法使用MATLAB®随机数流,因此您可能会获得不同的结果。

在有界区域内最小化De Jong第五函数。

剧集De Jong的第五个功能。

dejong5fcn.

图包含轴。轴包含2个类型的表面,轮廓。

开始Simulannealbnd.从此开始[0,0],并设置每个组件的下界为-64,上界为64。

有趣= @ dejong5fcn;x0 = [0 0];lb = [-64 -64];UB = [64 64];x = Simulannealbnd(乐趣,x0,lb,Ub)
优化终止:更改最佳函数值小于options.functiontolerance。
X =1×2-15.9790 -31.9593

Simulannealbnd.算法使用MATLAB®随机数流,因此您可能会获得不同的结果。

遵守进步Simulannealbnd.通过设置选项来使用一些plot函数。

设置模拟退火选项以使用多个绘图功能。

选择= optimoptions ('simulannealbnd''plotfcns'......{@saplotbestx, @saplotbestf、@saplotx @saplotf});

开始Simulannealbnd.从此开始[0,0],并设置每个组件的下界为-64,上界为64。

RNG.默认%的再现性有趣= @ dejong5fcn;x0 = [0,0];LB = [-64,-64];UB = [64,64];X = SimulanneAlbnd(有趣,X0,LB,UB,选项)

图模拟退火包含4个轴。带标题最佳点的轴1包含类型栏的对象。具有标题最佳功能值的轴2:1.99203包含类型线的对象。具有标题电流点的轴3包含类型栏的物体。具有标题电流功能值的轴4:1.99203包含类型线的对象。

优化终止:更改最佳函数值小于options.functiontolerance。
X =1×2-15.9790 -31.9593

获得模拟退火最小化的所有输出。

剧集De Jong的第五个功能。

dejong5fcn.

图包含轴。轴包含2个类型的表面,轮廓。

开始Simulannealbnd.从此开始[0,0],并设置每个组件的下界为-64,上界为64。

有趣= @ dejong5fcn;x0 = [0,0];LB = [-64,-64];UB = [64,64];[x,fval,出口,输出] = simulannealbnd(有趣,x0,lb,Ub)
优化终止:更改最佳函数值小于options.functiontolerance。
X =1×2-15.9790 -31.9593
fval = 1.9920.
EXITFLAG = 1
输出=结构与字段:迭代:1762 Funccount:1779消息:'优化终止:最佳函数值的变化小于选项。'rngstate:[1x1 struct]问题类型:'绑定'温度:[2x1双] TOTETIME:1.9546

Simulannealbnd.算法使用MATLAB®随机数流,因此您可能会获得不同的结果。

输入参数

全部收缩

要最小化的功能,指定为函数句柄或函数名称。乐趣一个函数接受向量吗X并返回一个真正的标量F,客观函数评估X

乐趣可以指定为文件的函数句柄:

x = simulannealbnd(@ myfun,x0)

在哪里myfun.是一个matlab.®等功能

函数f = myfun(x)f = ...%compute函数值x

乐趣也可以是匿名函数的函数句柄:

x = simulannealbnd(@(x)rang(x)^ 2,x0,lb,Ub);

例子:Fun = @(x)sin(x(1))* cos(x(2))

数据类型:字符|function_handle.|细绳

初始点,指定为真正的矢量。Simulannealbnd.使用元素的数量X0.确定变量的数量乐趣接受。

例子:x0 = [1,2,3,4]

数据类型:双倍的

下限,指定为真实的矢量或真实数组。如果元素的数量X0.等于, 然后指定

x(我)> =磅(我)对所有人一世

如果元素个数(磅)<元素个数(x0), 然后指定

x(我)> =磅(我)为了1 <= i <= numel(lb)

在这种情况下,索盘发出警告。

例子:要指定所有控制变量都为正,lb = zeros(size(x0))

数据类型:双倍的

上界,指定为实向量或实数组。如果元素的数量X0.等于UB., 然后UB.指定

x(i)<= UB(i)对所有人一世

如果numel(Ub), 然后UB.指定

x(i)<= UB(i)为了1 <= I <= numel(ub)

在这种情况下,索盘发出警告。

例子:要指定所有控制变量小于1,UB =α(大小(x0))

数据类型:双倍的

优化选项,指定为返回的对象优化选择或结构。有关详细信息,请参见模拟退火选项

优化选择隐藏列出的选项斜斜体;看Optimoptions隐藏的选项

{}表示默认值。详情请参阅模拟退火选项

选项 描述 价值

AcceptanceFcn

函数,该算法用于确定一个新点是否被接受。指定为'acceptansa'或者函数句柄。

功能手柄|{'Acceptansa'}

Annealingfcn.

函数算法用于生成新点。指定为内置退火功能或函数句柄的名称。

函数名|'AnnealingBoltz'|{'Annealingfast'}

数据类型

决策变量的类型

'风俗'|{'双倍的'}

展示

显示水平

“关闭”|'iter'|“诊断”|{'最终的'}

displayinterval.

迭代显示的间隔

正整数|{10}

functiontolerance.

函数值的终止公差

对于选项结构,使用塔尔芬

正标量|{1E-6}

Hybridfcn.

自动运行Hybridfcn.(另一优化函数)在求解器的迭代结束期间或结束时。指定为名称或函数句柄。

何时使用混合函数

'fminsearch' | 'fminunc' | 'fmincon' | {[]}

或者

1-BY-2电池阵列|{@solver, hybridoptions}, 在哪里解算器= fminsearchpatternsearchFminunc., 或者粉刺{[]}

HybridInterval

间隔(如果没有'结尾'或者'绝不')在那里Hybridfcn.叫做

正整数|'绝不'|{'结尾'}

InitialTemperature.

温度初始值

正标量|正矢量|{100}

MaxFunctionEvaluations.

允许的最大客观函数评估数

对于选项结构,使用MaxFunEvals

正整数|{3000 * numberOfVariables}

最大

允许的最大迭代数

对于选项结构,使用麦克斯特

正整数|{inf}

MaxStallIterations

当前点的平均函数值的平均变化的迭代次数小于options.FunctionTolerance.

对于选项结构,使用Stalliterlimit.

正整数|{500 * numberOfVariables}

MaxTime

算法在运行后停止MaxTime

对于选项结构,使用时限

正标量|{inf}

Objectivelimit.

期望的最小目标函数值

标量|{-inf}

OutputFcn

功能获取(s)迭代数据,可以在运行时更改选项

对于选项结构,使用outputfcns.

功能手柄|电池阵列函数处理|{[]}

Plotfcn.

绘图函数在迭代期间调用

对于选项结构,使用Plotfcns.

功能手柄|内置绘图功能名称|电池阵列函数处理|内置绘图函数名称的单元格阵列|'saplotbestf'|'saplotbestx'|'saplotf'|'saplotstopping'|“saplottemperature”|{[]}

地图

每个间隔都调用绘图函数

正整数|{1}

ReannealInterval.

再次退火时间间隔

正整数|{100}

温度浮出水

用于更新温度计划的函数

功能手柄|内置温度功能名称|'lightmboltz'|'温度快餐'|{'stingsatureexp'}

例子:选项= Optimoptions(@ SimulanneAlbnd,'maxItrations',150)

数据类型:塑造

问题结构,指定为具有以下字段的结构:

  • 客观的- 目标函数

  • X0.- 初始点

  • - 下限X

  • UB.- 上限X

  • 求解器-'simulannealbnd'

  • 选项- 使用的选项优化选择或选项结构

  • rngstate.- 可选字段以重置随机数生成器的状态

笔记

问题必须拥有上面规定的所有字段。

数据类型:塑造

输出参数

全部收缩

解,作为实向量返回。的大小X与大小相同X0..通常情况下,X是当地解决问题的地方ExitFlag.是积极的。

解决方案的目标函数值,作为实数返回。一般来说,fval.=有趣(x)

原因Simulannealbnd.停止,返回整数。

出口标志 意义
1

目标函数值的平均变化options.maxstall迷你迭代率小于options.FunctionTolerance.

5.

目标函数值小于options.Objectivelimit.

0.

达到的最大函数评估数或迭代次数。

-1

优化由输出函数或绘图函数终止。

-2

找不到可行的点。

-5

超过了时间限制。

有关优化过程的信息,作为具有字段的结构返回:

  • 问题型- 问题类型:无限制或受约束。

  • 迭代- 计算的迭代次数。

  • Funccount.- 目标函数的评估数。

  • 信息—算法终止的原因。

  • 温度- 求解器终止时的温度。

  • 总时间-求解器运行的总时间。

  • rngstate.- Matlab随机数发生器的状态,就在算法开始之前。您可以使用值rngstate.重现产出Simulannealbnd..看重现你的结果

替代功能

应用程序

优化活动编辑器任务为Simulannealbnd.

在R2007A介绍