文档帮助中心
粒子群优化
据nvar, x = particleswarm(有趣)
x = particleswarm(磅,有趣,据nvar乌兰巴托)
x = particleswarm(有趣,据nvar磅,乌兰巴托,选项)
x = particleswarm(问题)
[x, fval exitflag,输出]= particleswarm (___)
例子
x= particleswarm (有趣的,据nvar)试图找到一个向量x达到局部最小值有趣的。据nvar的尺寸(设计变量的数量)有趣的。
x= particleswarm (有趣的,据nvar)
x
有趣的
据nvar
传递额外的参数(Optimization Toolbox)说明如何在必要时将额外的参数传递给目标函数。
x= particleswarm (有趣的,据nvar,磅,乌兰巴托)在设计变量上定义一组下界和上界,x,从而在这个范围内找到一个解磅≤x≤乌兰巴托。
x= particleswarm (有趣的,据nvar,磅,乌兰巴托)
磅
乌兰巴托
x= particleswarm (有趣的,据nvar,磅,乌兰巴托,选项)中的值替换默认优化参数后最小化选项。集磅= []和乌兰巴托= []如果没有边界存在。
x= particleswarm (有趣的,据nvar,磅,乌兰巴托,选项)
选项
磅= []
乌兰巴托= []
x= particleswarm (问题)求出问题,在那里问题是一个结构。
x= particleswarm (问题)
问题
(x,fval,exitflag,输出)= particleswarm (___),对于上述任何输入参数,返回:
(x,fval,exitflag,输出)= particleswarm (___)
fval
exitflag
输出
一个标量fval,即目标函数值有趣的(x)
有趣的(x)
一个值exitflag描述退出条件
一个结构输出包含关于优化过程的信息
全部折叠
最小化一个包含两个变量的简单函数。
定义目标函数。
有趣= @ (x) x (1) * exp(规范(x) ^ 2);
调用particleswarm来最小化函数。
particleswarm
rng默认的%的再现性据nvar = 2;据nvar, x = particleswarm(有趣)
优化结束:目标值相对于最后一个选项的相对变化。maxstalliteration:迭代次数小于选择次数。x = 629.4474 311.4814
正如你在函数图中看到的,这个解离真正的最小值还很远。
fsurf (@ x (x, y)。* exp (- (x ^ 2 + y ^ 2)))
通常,最好设置界限。看到用界限使一个简单函数最小化。
使用有界约束最小化两个变量的简单函数。
设置变量的界限。
磅= (-10、-15);乌兰巴托= (15 20);
rng默认的%的再现性据nvar = 2;x = particleswarm(磅,有趣,据nvar乌兰巴托)
优化结束:目标值相对于最后一个选项的相对变化。maxstalliteration:迭代次数小于选择次数。
x =1×2-0.7071 - -0.0000
使用更大的种群和混合函数来获得更好的解决方案。
指定目标函数和界限。
有趣= @ (x) x (1) * exp(规范(x) ^ 2);磅= (-10、-15);乌兰巴托= (15 20);
指定的选项。
选择= optimoptions (“particleswarm”,“SwarmSize”,100,“HybridFcn”,@fmincon);
rng默认的%的再现性据nvar = 2;x = particleswarm(有趣,据nvar磅,乌兰巴托,选项)
返回可选的输出参数,以更详细地检查解决方案流程。
定义问题。
有趣= @ (x) x (1) * exp(规范(x) ^ 2);磅= (-10、-15);乌兰巴托= (15 20);选择= optimoptions (“particleswarm”,“SwarmSize”,50岁,“HybridFcn”,@fmincon);
调用particleswarm使用所有输出最小化该函数并获取有关解决方案流程的信息。
rng默认的%的再现性据nvar = 2;[x, fval exitflag、输出]= particleswarm(乐趣,据nvar磅、乌兰巴托、期权)
fval = -0.4289
exitflag = 1
输出=结构体字段:rngstate: [1x1 struct]迭代:43 funccount: 2203消息:“优化结束:目标值的相对变化……”
目标函数,指定为函数句柄或函数名。写一个目标函数来接受一个长度为的行向量据nvar并返回一个标量值。
当“UseVectorized”选择是真正的,写有趣的接受流行——- - - - - -据nvar矩阵,流行是当前的人口规模。在这种情况下,有趣的返回长度相同的向量流行包含适应度函数值。确保有趣的不承担任何特定的大小流行,因为particleswarm即使在向量化计算中,也可以传递总体中的单个成员。
“UseVectorized”
真正的
流行
例子:有趣= @ (x) (x - (4,2)) ^ 2
有趣= @ (x) (x - (4,2)) ^ 2
数据类型:字符|function_handle|字符串
字符
function_handle
字符串
变量的数目,指定为正整数。求解器传递长度的行向量据nvar来有趣的。
例子:4
4
数据类型:双
双
[]
下界,指定为实向量或双精度数组。磅表示下界元素磅≤x≤乌兰巴托。
在内部,particleswarm将一个数组磅的向量磅(:)。
磅(:)
例子:磅=[0;无穷;4)意味着x (1)≥0,x (3)≥4。
磅=[0;无穷;4)
x (1)≥0
x (3)≥4
上界,指定为实向量或双精度数组。乌兰巴托以明智的方式表示上界元素磅≤x≤乌兰巴托。
在内部,particleswarm将一个数组乌兰巴托的向量乌兰巴托(:)。
乌兰巴托(:)
例子:乌兰巴托= (Inf; 4; 10)意味着x (2)≤4,x (3)≤10。
乌兰巴托= (Inf; 4; 10)
x (2)≤4
x (3)≤10
optimoptions
选项particleswarm的输出optimoptions函数。
有些选项是不存在的optimoptions显示。这些选项以斜体列出。有关详细信息,请参见视图选项(优化工具箱)。
CreationFcn
创建初始群集的函数。指定为“pswcreationuniform”或者函数句柄。默认是“pswcreationuniform”。看到创建群。
“pswcreationuniform”
显示
显示级别返回到命令行。
“关闭”或“没有”显示没有输出。
“关闭”
“没有”
“最后一次”只显示最终输出(默认)。
“最后一次”
“通路”给出了迭代显示。
“通路”
DisplayInterval
1
FunctionTolerance
1 e-6
MaxStallIterations
options.FunctionTolerance
检查目标函数和约束值是否有效。“上”当目标函数或约束返回一个复杂的值时显示错误,正,或南。默认的,“关闭”,则不会显示错误。
“上”
正
南
HybridFcn
之后继续优化的函数particleswarm终止。指定为名称或函数句柄。可能的值:
“fmincon”
“fminsearch”
“fminunc”
“patternsearch”
也可以是指定混合函数及其选项的单元格数组,如{@fmincon, fminconopts}。默认是[]。看到混合函数。
{@fmincon, fminconopts}
看到何时使用混合函数。
InertiaRange
[0.1,1.1]
InitialSwarmMatrix
米
SwarmSize
InitialSwarmSpan
粒子位置的初始范围@pswcreationuniform创建。是一个正的标量还是一个向量据nvar元素,据nvar是变量的个数。任何粒子分量的范围是-InitialSwarmSpan / 2, InitialSwarmSpan / 2如果需要匹配任何边界,则进行移位和缩放。默认是2000。
@pswcreationuniform
-InitialSwarmSpan / 2, InitialSwarmSpan / 2
2000
InitialSwarmSpan也会影响初始粒子速度的范围。看到初始化。
MaxIterations
据nvar 200 *
20.
MaxStallTime
MaxTime
MinNeighborsFraction
0
0.25
ObjectiveLimit
负
OutputFcn
PlotFcn
“pswplotbestf”
SelfAdjustmentWeight
1.49
SocialAdjustmentWeight
分钟(100,10 *据nvar)
UseParallel
假
UseVectorized
优化问题,指定为具有以下字段的结构。
解算器
“particleswarm”
客观的
rngstate
数据类型:结构体
结构体
解,作为实向量返回,使目标函数在任何约束条件下最小化。
目标值,作为实标量返回有趣的(x)。
算法停止条件,以整数形式返回,确定算法停止的原因。下面列出了的值exitflag以及相应的原因particleswarm停止了。
相对于上一个目标值的变化options.MaxStallIterations迭代小于options.FunctionTolerance。
options.MaxStallIterations
超过迭代次数options.MaxIterations。
options.MaxIterations
通过输出函数或绘图函数停止迭代。
2
界限是不一致的:对一些人来说我,磅(我)>乌兰巴托(我)。
我
磅(我)
乌兰巴托(我)
3
最佳目标函数值如下options.ObjectiveLimit。
options.ObjectiveLimit
最佳目标函数值没有变化options.MaxStallTime秒。
options.MaxStallTime
5
运行时间超过options.MaxTime秒。
options.MaxTime
解决方案流程摘要,作为包含优化流程信息的结构返回。
迭代
求解器迭代次数
funccount
目标函数评估的次数。
消息
算法停止的原因。
默认随机数生成器在算法开始之前的状态。
有关粒子群优化算法的说明,请参阅粒子群优化算法。
若要并行运行,请设置“UseParallel”选项真正的。
“UseParallel”
选择= optimoptions ('solvername”、“UseParallel’,真的)
solvername
有关更多信息,请参见如何在全局优化工具箱中使用并行处理。
遗传算法|patternsearch
遗传算法
patternsearch
您的系统中存在此示例的修改版本。你想打开这个版本吗?
你点击了一个链接,对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入该命令来运行它。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站来获取可用的翻译内容,并查看本地事件和报价。根据你的位置,我们建议你选择:。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文),以获得最佳的网站表现。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系你当地的办公室