particleswarm
粒子群优化
语法
描述
例子
一个简单的函数最小化
一个简单的两变量的函数最小化。
定义目标函数。
有趣= @ (x) x (1) * exp(规范(x) ^ 2);
调用particleswarm
最小化函数。
rng默认的%的再现性据nvar = 2;据nvar, x = particleswarm(有趣)
优化结束:相对客观价值的变化在过去的选择。小于OPTIONS.FunctionTolerance MaxStallIterations迭代。x = 629.4474 - 311.4814
这个解决方案是远离真正的最低,当你看到一个函数图。
fsurf (@ x (x, y)。* exp (- (x ^ 2 + y ^ 2)))
通常,最好设定界限。看到减少一个简单的函数和边界。
减少一个简单的函数和边界
减少一个简单的函数的两个变量绑定约束。
定义目标函数。
有趣= @ (x) x (1) * exp(规范(x) ^ 2);
设置范围的变量。
磅= (-10、-15);乌兰巴托= (15 20);
调用particleswarm
最小化函数。
rng默认的%的再现性据nvar = 2;x = particleswarm(磅,有趣,据nvar乌兰巴托)
优化结束:相对客观价值的变化在过去的选择。小于OPTIONS.FunctionTolerance MaxStallIterations迭代。
x =1×2-0.7071 - -0.0000
减少使用默认的选项
使用一个更大的人口和混合函数试图得到一个更好的解决方案。
指定目标函数和边界。
有趣= @ (x) x (1) * exp(规范(x) ^ 2);磅= (-10、-15);乌兰巴托= (15 20);
指定的选项。
选择= optimoptions (“particleswarm”,“SwarmSize”,100,“HybridFcn”,@fmincon);
调用particleswarm
最小化函数。
rng默认的%的再现性据nvar = 2;x = particleswarm(有趣,据nvar磅,乌兰巴托,选项)
优化结束:相对客观价值的变化在过去的选择。小于OPTIONS.FunctionTolerance MaxStallIterations迭代。
x =1×2-0.7071 - -0.0000
检查解决方案流程
返回可选输出参数详细检查解决方案过程。
定义问题。
有趣= @ (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磅、乌兰巴托、期权)
优化结束:相对客观价值的变化在过去的选择。小于OPTIONS.FunctionTolerance MaxStallIterations迭代。
x =1×2-0.7071 - -0.0000
fval = -0.4289
exitflag = 1
输出=结构体字段:rngstate:(1 x1 struct)迭代:43 funccount: 2203信息:优化结束:相对客观价值的变化…“hybridflag: 1
输入参数
有趣的
- - - - - -目标函数
函数处理|函数名
目标函数,指定为一个函数处理或函数名。写目标函数接受一个行向量的长度据nvar
并返回一个标量值。
当“UseVectorized”
选择是真正的
,写有趣的
接受流行
——- - - - - -据nvar
矩阵,流行
是当前人口规模。在这种情况下,有趣的
返回一个向量长度一样流行
包含适应度函数值。确保有趣的
不承担任何特定的大小流行
,因为particleswarm
可以通过一个单一的人口即使在矢量化计算。
例子:有趣= @ (x) (x - (4,2)) ^ 2
数据类型:字符
|function_handle
|字符串
据nvar
- - - - - -数量的变量
正整数
磅
- - - - - -下界
[]
(默认)|真正的向量或数组
下界,指定为一个真正的向量或数组的双打。磅
代表了下界element-wise磅
≤x
≤乌兰巴托
。
在内部,particleswarm
将一个数组磅
的向量磅(:)
。
例子:磅=[0;无穷;4)
意味着x (1)≥0
,x (3)≥4
。
数据类型:双
乌兰巴托
- - - - - -上界
[]
(默认)|真正的向量或数组
上界,指定为一个真正的向量或数组的双打。乌兰巴托
代表了上界element-wise磅
≤x
≤乌兰巴托
。
在内部,particleswarm
将一个数组乌兰巴托
的向量乌兰巴托(:)
。
例子:乌兰巴托= (Inf; 4; 10)
意味着x (2)≤4
,x (3)≤10
。
数据类型:双
选项
- - - - - -选项particleswarm
选择使用optimoptions
选项particleswarm
指定的输出optimoptions
函数。
有些选项是缺席的optimoptions
显示。这些选项中列出斜体。有关详细信息,请参见视图的优化选择。
CreationFcn |
函数创建初始群体。指定为 |
显示 |
水平显示返回到命令行中。
|
DisplayInterval | 区间迭代显示。对每一个迭代显示打印一行DisplayInterval 迭代。默认是1 。 |
FunctionTolerance |
负的标量用默认1 e-6 。迭代结束时的相对变化量最好在过去的目标函数值MaxStallIterations 迭代小于options.FunctionTolerance 。 |
FunValCheck | 检查是否目标函数和约束值是有效的。 |
HybridFcn |
函数,继续优化
也可以是细胞数组指定混合函数及其选项,如 看到当使用混合功能。 |
InertiaRange |
双元素的向量相同的标志值增加的订单。给出了低和自适应惯性的上界。获得一个常数(非适应)惯性,设置的两大要素InertiaRange 相同的值。默认是[0.1,1.1] 。看到粒子群优化算法。 |
InitialSwarmMatrix |
粒子的初始人口或部分人口。米 ——- - - - - -据nvar 矩阵,每一行代表一个粒子。如果米 <SwarmSize ,然后particleswarm 创造了更多的粒子的总数SwarmSize 。如果米 >SwarmSize ,然后particleswarm 使用第一个SwarmSize 行。 |
InitialSwarmSpan |
初始粒子位置的范围
|
MaxIterations |
最大迭代次数particleswarm 需要。默认是据nvar 200 * ,在那里据nvar 是变量的数量。 |
MaxStallIterations |
正整数用默认20. 。迭代结束时的相对变化量最好在过去的目标函数值MaxStallIterations 迭代小于options.FunctionTolerance 。 |
MaxStallTime |
最大的秒数没有最著名的改善目标函数值。积极的标量用默认正 。 |
MaxTime |
最长时间以秒为单位particleswarm 运行。默认是正 。 |
MinNeighborsFraction |
最低的自适应邻域大小,一个标量0 来1 。默认是0.25 。看到粒子群优化算法。 |
ObjectiveLimit |
最低目标价值,停止准则。标量,默认负 。 |
OutputFcn |
函数处理或处理单元阵列的功能。输出函数可以读取迭代数据,并停止解决者。默认是[] 。看到输出函数和情节。 |
PlotFcn |
函数名、函数处理或处理单元阵列的功能。自定义绘制函数,通过函数处理。绘制函数可以读取迭代数据,每次迭代,并停止解决者。默认是[] 。可用的内置的情节功能:“pswplotbestf” 。看到输出函数和情节。 |
SelfAdjustmentWeight |
每个粒子的权重调整速度时的最佳位置。有限的标量用默认1.49 。看到粒子群优化算法。 |
SocialAdjustmentWeight |
权重的附近最好的位置,调整速度。有限的标量用默认1.49 。看到粒子群优化算法。 |
SwarmSize |
数量的粒子群,一个整数比1 。默认是分钟(100,10 *据nvar) ,在那里据nvar 是变量的数量。 |
UseParallel |
计算目标函数在平行真正的 。默认是假 。看到平行或矢量化功能评估。 |
UseVectorized |
计算目标函数在矢量化的方式真正的 。默认是假 。看到平行或矢量化功能评估。 |
问题
- - - - - -优化问题
结构
优化问题,与以下字段指定为一个结构。
解算器 |
“particleswarm” |
客观的 |
函数处理目标函数,目标函数的名称。 |
据nvar |
的变量数量的问题。 |
磅 |
向量或数组的下界。 |
乌兰巴托 |
向量或数组的上界。 |
选项 |
选择创建的optimoptions 。 |
rngstate |
随机数发生器的可选状态的解决方案的过程。 |
数据类型:结构体
输出参数
x
——解决方案
真正的向量
解决方案,作为一个真正的返回向量最小化目标函数受任何约束限制。
fval
——客观价值
真正的标量
客观的价值,作为真正的标量返回有趣的(x)
。
exitflag
——算法停止条件
整数
算法停止条件,作为一个整数返回识别算法停止的原因。以下列出的值exitflag
和相应的原因particleswarm
停止了。
|
相对客观价值在过去的变化 |
|
迭代次数超过 |
|
迭代停止输出函数或情节的功能。 |
|
范围不一致:对于一些 |
|
最下面的目标函数值 |
|
最好的目标函数值没有改变 |
|
运行时间超过 |
输出
——解决方案过程总结
结构
解决方案过程总结,作为一个结构,其中包含返回的信息优化过程。
|
解算器的迭代次数 |
|
目标函数的评价。 |
|
原因算法停止。 |
|
退出旗混合功能。关系到 |
|
默认状态随机数字生成器在算法开始之前。 |
算法
粒子群优化算法的描述,看看粒子群优化算法。
选择功能
应用程序
的优化住编辑任务提供了一个可视化界面particleswarm
。
扩展功能
自动并行支持金宝app
加速代码通过自动运行并行计算使用并行计算工具箱™。
并行运行,设置“UseParallel”
选项真正的
。
选择= optimoptions ('
solvername
”、“UseParallel’,真的)
有关更多信息,请参见如何使用并行处理在全球优化工具箱。
版本历史
介绍了R2014b
打开举例
你们possedez一个版本modifiee de cet(中央东部东京)为例。Souhaitez-vous打开cet(中央东部东京)为例用vos修改吗?
对MATLAB
你们有派对在联合国留置权,对应这个对MATLAB:
倒实行la对saisissez-la在fenetre德对MATLAB。Les navigateurs web不sup金宝appportent Les MATLAB命令。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。