主要内容

particleswarm

粒子群优化

描述

例子

x= particleswarm (有趣的,据nvar)试图找到一个向量x达到当地最低的有趣的据nvar的维度(设计变量的数量)有趣的

请注意

传递额外的参数解释如何通过额外参数的目标函数,如果必要的。

例子

x= particleswarm (有趣的,据nvar,,乌兰巴托)定义了一组上下界限的设计变量,x发现,这样一个解决方案的范围x乌兰巴托

例子

x= particleswarm (有趣的,据nvar,,乌兰巴托,选项)最小化优化使用默认参数值所取代选项。集磅= []乌兰巴托= []如果不存在边界。

x= particleswarm (问题)发现的最低标准问题描述的结构问题

例子

(x,fval,exitflag,输出)= particleswarm (___)上面描述的,对于任何输入参数,返回:

  • 一个标量fval目标函数值有趣的(x)

  • 一个值exitflag描述了退出条件

  • 一个结构输出包含的信息优化过程

例子

全部折叠

一个简单的两变量的函数最小化。

定义目标函数。

有趣= @ (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有趣的

例子:4

数据类型:

下界,指定为一个真正的向量或数组的双打。代表了下界element-wisex乌兰巴托

在内部,particleswarm将一个数组的向量磅(:)

例子:磅=[0;无穷;4)意味着x (1)≥0,x (3)≥4

数据类型:

上界,指定为一个真正的向量或数组的双打。乌兰巴托代表了上界element-wisex乌兰巴托

在内部,particleswarm将一个数组乌兰巴托的向量乌兰巴托(:)

例子:乌兰巴托= (Inf; 4; 10)意味着x (2)≤4,x (3)≤10

数据类型:

选项particleswarm指定的输出optimoptions函数。

有些选项是缺席的optimoptions显示。这些选项中列出斜体。有关详细信息,请参见视图的优化选择

CreationFcn

函数创建初始群体。指定为“pswcreationuniform”或一个函数处理。默认是“pswcreationuniform”。看到创建群

显示

水平显示返回到命令行中。

  • “关闭”“没有”显示没有输出。

  • “最后一次”显示最终的输出(默认)。

  • “通路”给出了迭代显示。

DisplayInterval 区间迭代显示。对每一个迭代显示打印一行DisplayInterval迭代。默认是1
FunctionTolerance 负的标量用默认1 e-6。迭代结束时的相对变化量最好在过去的目标函数值MaxStallIterations迭代小于options.FunctionTolerance
FunValCheck

检查是否目标函数和约束值是有效的。“上”会显示一个错误当目标函数或约束返回一个值,是复杂的,,或。默认的,“关闭”,显示没有错误。

HybridFcn

函数,继续优化particleswarm终止。指定一个名称或一个函数处理。可能的值:

  • “fmincon”

  • “fminsearch”

  • “fminunc”

  • “patternsearch”

也可以是细胞数组指定混合函数及其选项,如{@fmincon, fminconopts}。默认是[]。看到混合函数

看到当使用混合功能

InertiaRange 双元素的向量相同的标志值增加的订单。给出了低和自适应惯性的上界。获得一个常数(非适应)惯性,设置的两大要素InertiaRange相同的值。默认是[0.1,1.1]。看到粒子群优化算法
InitialSwarmMatrix 粒子的初始人口或部分人口。——- - - - - -据nvar矩阵,每一行代表一个粒子。如果<SwarmSize,然后particleswarm创造了更多的粒子的总数SwarmSize。如果>SwarmSize,然后particleswarm使用第一个SwarmSize行。
InitialSwarmSpan

初始粒子位置的范围@pswcreationuniform创建。可以是一个积极的标量或矢量吗据nvar元素,据nvar是变量的数量。对于任何粒子组件范围-InitialSwarmSpan / 2, InitialSwarmSpan / 2,转移和扩展如果必要匹配任何界限。默认是2000年

InitialSwarmSpan也会影响初始粒子速度的范围。看到初始化

MaxIterations 最大迭代次数particleswarm需要。默认是据nvar 200 *,在那里据nvar是变量的数量。
MaxStallIterations 正整数用默认20.。迭代结束时的相对变化量最好在过去的目标函数值MaxStallIterations迭代小于options.FunctionTolerance
MaxStallTime 最大的秒数没有最著名的改善目标函数值。积极的标量用默认
MaxTime 最长时间以秒为单位particleswarm运行。默认是
MinNeighborsFraction 最低的自适应邻域大小,一个标量01。默认是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)

算法停止条件,作为一个整数返回识别算法停止的原因。以下列出的值exitflag和相应的原因particleswarm停止了。

1

相对客观价值在过去的变化options.MaxStallIterations迭代小于options.FunctionTolerance

0

迭代次数超过options.MaxIterations

1

迭代停止输出函数或情节的功能。

2

范围不一致:对于一些,磅(我)>乌兰巴托(我)

3

最下面的目标函数值options.ObjectiveLimit

4

最好的目标函数值没有改变options.MaxStallTime秒。

5

运行时间超过options.MaxTime秒。

解决方案过程总结,作为一个结构,其中包含返回的信息优化过程。

迭代

解算器的迭代次数

funccount

目标函数的评价。

消息

原因算法停止。

hybridflag

退出旗混合功能。关系到HybridFcn选项

rngstate

默认状态随机数字生成器在算法开始之前。

算法

粒子群优化算法的描述,看看粒子群优化算法

选择功能

应用程序

优化住编辑任务提供了一个可视化界面particleswarm

扩展功能

版本历史

介绍了R2014b