文档帮助中心
使用模拟退火算法求函数的最小值
X = simulannealbnd(乐趣,X0)
X = simulannealbnd(乐趣,X0,LB,UB)
x = simulannealbnd(有趣,x0,磅,乌兰巴托,选项)
x = simulannealbnd(问题)
[x, fval] = simulannealbnd (___)
[X,FVAL,exitflag,输出] = simulannealbnd(___)
例
X= simulannealbnd (开玩笑,x0)求一个局部最小值,X,到功能手柄开玩笑一个计算目标函数的值。x0是用于模拟退火算法,实向量的初始点。
X= simulannealbnd (开玩笑,x0)
X
开玩笑
x0
传递额外的参数(Optimization Toolbox)说明如何在必要时向目标函数传递额外的参数。
X= simulannealbnd (开玩笑,x0,磅,乌兰巴托)定义了在设计变量的一组上限和下限的X,所以解总是在这个范围内磅≤X≤乌兰巴托。如果x(我)下面是无界的吗磅(i) =负无穷, 而如果x(我)是无界的上方,设置乌兰巴托(i) =正无穷。
X= simulannealbnd (开玩笑,x0,磅,乌兰巴托)
磅
乌兰巴托
x(我)
磅(i) =负无穷
乌兰巴托(i) =正无穷
X= simulannealbnd (开玩笑,x0,磅,乌兰巴托,选项)中指定的优化选项最小化选项。创建选项使用optimoptions。如果没有边界存在,设置磅= []和/或UB = []。
X= simulannealbnd (开玩笑,x0,磅,乌兰巴托,选项)
选项
optimoptions
磅= []
UB = []
X= simulannealbnd (问题)找到最低的问题,在那里问题中描述的结构。创建问题从优化应用程序中导出一个问题,如出口你的工作(优化工具箱)。
X= simulannealbnd (问题)
问题
[X,FVAL)= simulannealbnd (___),对于任何语法,返回目标函数的值开玩笑在解决方案X。
[X,FVAL)= simulannealbnd (___)
FVAL
[X,FVAL,exitflag,产量)= simulannealbnd (___)另外返回一个值exitflag的退出条件simulannealbnd和结构产量有关优化过程的信息。
[X,FVAL,exitflag,产量)= simulannealbnd (___)
exitflag
产量
simulannealbnd
全部收缩
最小化德容的第五个功能,与许多局部极小二维功能。
德容的第五个功能。
dejong5fcn
最小化De Jong的第五个函数simulannealbnd从零开始[0,0]。
[0,0]
有趣= @dejong5fcn;X0 = [0 0];X = simulannealbnd(乐趣,X0)
优化终止:在最好的函数值的变化小于options.FunctionTolerance。
x =1×2-32.0285 -0.1280
该simulannealbnd算法使用MATLAB®随机数流,因此您可能会得到不同的结果。
在有界区域内最小化德容的第五个函数。
开始simulannealbnd从这一点开始[0,0],并设置每个组件的下界为-64和上界为64。
有趣= @dejong5fcn;X0 = [0 0];磅= [-64 -64];UB = [64 64];X = simulannealbnd(乐趣,X0,LB,UB)
x =1×2-15.9790 - -31.9593
观察…的进展simulannealbnd通过设置选项来使用一些绘图函数。
设置模拟退火选择使用几种情节的功能。
选择= optimoptions (“simulannealbnd”,'PlotFcns',…{@saplotbestx, @saplotbestf、@saplotx @saplotf});
rng默认的%的再现性有趣= @dejong5fcn;x0 = (0,0);磅= (-64、-64);乌兰巴托= (64、64);x = simulannealbnd(有趣,x0,磅,乌兰巴托,选项)
获得模拟退火最小化的所有输出。
有趣= @dejong5fcn;x0 = (0,0);磅= (-64、-64);乌兰巴托= (64、64);[X,FVAL,exitflag,输出] = simulannealbnd(乐趣,X0,LB,UB)
fval = 1.9920
exitflag = 1
输出=同场的结构:迭代:1762 funccount:1779的消息:“优化终止:在最好的函数值变化小于options.FunctionTolerance”。rngstate:[1x1的结构] problemtype: 'boundconstraints' 温度:[2×1双] TOTALTIME:1.0315
函数被最小化,指定为功能句柄或函数名。开玩笑函数是否接受一个向量X并返回实标量F中,目标函数评估在X。
F
开玩笑可以指定为文件的函数句柄:
X = simulannealbnd(@ myfun,X0)
在哪里myfun是MATLAB®等功能
myfun
函数f = myfun(x) f =…计算函数值在x处
开玩笑也可以是一个匿名函数的函数句柄:
x = simulannealbnd (@ (x)规范(x) ^ 2, x0,磅,乌兰巴托);
例子:有趣= @ (x) sin (x (1)) * cos (x (2))
有趣= @ (x) sin (x (1)) * cos (x (2))
数据类型:字符|function_handle|字符串
字符
function_handle
字符串
初始点,指定为实向量。simulannealbnd使用元素的个数x0来确定变量的个数开玩笑接受。
例子:x0 = (1、2、3、4)
x0 = (1、2、3、4)
数据类型:双
双
下界,指定为实向量或实数组。如果元素的个数x0等于的磅, 然后磅该指定
x(我)> =磅(我)对所有一世。
x(我)> =磅(我)
一世
如果元素个数(磅)<元素个数(x0), 然后磅该指定
元素个数(磅)<元素个数(x0)
x(我)> =磅(我)对于1 <= I <= numel(Ib)的。
1 <= I <= numel(Ib)的
在这种情况下,解决方案发出警告。
例子:要指定所有控制变量为正,磅= 0(大小(x0))
磅= 0(大小(x0))
上界,指定为实向量或实数组。如果元素的个数x0等于的乌兰巴托, 然后乌兰巴托该指定
x (i) < =乌兰巴托(我)对所有一世。
x (i) < =乌兰巴托(我)
如果numel(UB), 然后乌兰巴托该指定
numel(UB), 然后乌兰巴托该指定
x (i) < =乌兰巴托(我)对于1 <= i <= numel(ub)。
1 <= i <= numel(ub)
例子:要指定所有控制变量都小于1,UB =酮(尺寸(X0))
UB =酮(尺寸(X0))
优化选项,指定为对象通过返回optimoptions或结构。有关详细信息,请参见模拟退火选项。
optimoptions皮张的选项中列出斜体;看到选项optimoptions隐藏。
{}表示默认值。请参阅模拟退火选项。
{}
AcceptanceFcn
函数,该算法用于确定是否接受新点。指定为'acceptancesa'或函数句柄。
'acceptancesa'
功能手柄|{ 'acceptancesa'}
{ 'acceptancesa'}
AnnealingFcn
功能算法用来生成新的点。作为指定的名称的内置功能退火或函数句柄。
函数名|'annealingboltz'|{ 'annealingfast'}
'annealingboltz'
{ 'annealingfast'}
数据类型
决策变量的类型
“自定义”|{'双'}
“自定义”
{'双'}
显示
水平显示
“关闭”|'ITER'|“诊断”|{'最后'}
“关闭”
'ITER'
“诊断”
{'最后'}
DisplayInterval
迭代显示间隔
正整数|{10}
{10}
FunctionTolerance
在函数值终止宽容
对于选项结构,请使用TolFun。
TolFun
积极的标量|{1E-6}
{1E-6}
HybridFcn
自动运行HybridFcn期间或在求解器的迭代端(另一优化功能)。指定为名称或功能句柄。
看到当使用混合功能。
'fminsearch' | 'patternsearch' | 'fminunc' | 'fmincon' | {[]}
或
1×2单元数组|{@solver, hybridoptions},在那里解算器= fminsearch,patternsearch,fminunc,或fmincon{[]}
{@solver, hybridoptions}
解算器= fminsearch
patternsearch
fminunc
fmincon
{[]}
HybridInterval
时间间隔(如果不是'结束'或“永远”),在该HybridFcn被称为
'结束'
“永远”
正整数|“永远”|{'结束'}
{'结束'}
InitialTemperature
温度初值
正的标量|正的向量|{100}
{100}
MaxFunctionEvaluations
允许的最大目标函数计算数
对于选项结构,请使用MaxFunEvals。
MaxFunEvals
正整数|{3000 * numberOfVariables}
{3000 * numberOfVariables}
MaxIterations
允许的最大迭代次数
对于选项结构,请使用麦克斯特。
麦克斯特
正整数|{}天道酬勤
{}天道酬勤
MaxStallIterations
适应度函数值在当前点的平均变化迭代次数小于options.FunctionTolerance
options.FunctionTolerance
对于选项结构,请使用StallIterLimit。
StallIterLimit
正整数|{500 * numberOfVariables}
{500 * numberOfVariables}
MaxTime
运行后,算法停止MaxTime秒
对于选项结构,请使用时限。
时限
积极的标量|{}天道酬勤
ObjectiveLimit
所需的最小目标函数值
标量|{无穷}
{无穷}
OutputFcn
功能(S)GET(S)迭代数据,并可以在运行时更改选项
对于选项结构,请使用OutputFcns。
OutputFcns
功能手柄|功能手柄单元阵列|{[]}
PlotFcn
迭代过程中调用绘图功能(S)
对于选项结构,请使用PlotFcns。
PlotFcns
函数处理|内置小区函数名|单元数组函数处理|单元数组内置小区函数名|“saplotbestf”|'saplotbestx'|“saplotf”|'saplotstopping'|“saplottemperature”|{[]}
“saplotbestf”
'saplotbestx'
“saplotf”
'saplotstopping'
“saplottemperature”
PlotInterval
每隔一段时间调用绘图函数
正整数|{1}
{1}
ReannealInterval
再次退火时间间隔
正整数|{100}
TemperatureFcn
用于更新温度计划的功能
功能手柄|内置温度的函数名称|'temperatureboltz'|'temperaturefast'|{ 'temperatureexp'}
'temperatureboltz'
'temperaturefast'
{ 'temperatureexp'}
例子:选项= optimoptions(@ simulannealbnd, 'MaxIterations',150)
选项= optimoptions(@ simulannealbnd, 'MaxIterations',150)
数据类型:结构
结构
问题结构,指定为具有以下字段的结构:
客观的- 目标函数
客观的
x0——起点
磅- 下界X
乌兰巴托-适用于X
解算器-“simulannealbnd”
解算器
“simulannealbnd”
选项-以optimoptions或选项结构
rngstate- 可选字段重置随机数生成器的状态
rngstate
创建结构问题从优化应用程序中导出一个问题,如导入和导出您的工作(优化工具箱)。
问题必须具有上面指定的所有字段。
解,作为实向量返回。的大小X是一样的大小吗x0。通常情况下,X是局部解决问题的时候吗exitflag是积极的。
目标函数在解处的值,作为实数返回。一般来说,FVAL=有趣的(x)。
有趣的(x)
原因simulannealbnd停止,返回一个整数。
1
在目标函数在值平均变化options.MaxStallIterations迭代次数小于options.FunctionTolerance。
options.MaxStallIterations
五
目标函数值小于options.ObjectiveLimit。
options.ObjectiveLimit
0
达到的函数计算或迭代的最大数目。
由输出函数或绘图函数终止的优化。
-2
没有可行点发现。
5
超过了时间限制。
关于优化过程的信息,以带字段的结构返回:
problemtype- 问题类型:无约束或限制的约束。
problemtype
迭代- 迭代次数来计算。
迭代
funccount-目标函数的评价次数。
funccount
信息-算法终止的原因。
信息
温度- 温度当解算器终止。
温度
totaltime-求解程序运行的总时间。
totaltime
rngstate- 国家MATLAB的随机数生成器,该算法开始之前。您可以使用值rngstate的输出simulannealbnd。看到重现您的结果。
GA|optimoptions|patternsearch
GA
您的系统中存在此示例的修改版本。你想打开这个版本吗?
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入命令,运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站来获取可用的翻译内容,并查看本地事件和报价。根据你的位置,我们建议你选择:。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
联系当地办事处