主要内容

partminleswarm.

粒子群优化

描述

例子

X= particleswarm(乐趣据nvar试图找到一个向量X达到局部最小值乐趣据nvar尺寸(设计变量的数量)是乐趣

笔记

传递额外的参数说明如何在必要时向目标函数传递额外参数。

例子

X= particleswarm(乐趣据nvar乌兰巴托在设计变量上定义一组下限和上限,X,因此在该范围内发现解决方案X乌兰巴托

例子

X= particleswarm(乐趣据nvar乌兰巴托选项最小化默认优化参数替换为值选项.放lb = []乌兰巴托= []如果没有边界存在。

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

例子

[Xfval.ExitFlag.输出] = particleswarm(___,对于上述任何输入参数,返回:

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

  • 一个值ExitFlag.描述退出条件

  • 结构输出包含关于优化过程的信息

例子

全部收缩

最小化一个简单的二元函数。

定义目标函数。

fun = @(x)x(1)* exp(-norm(x)^ 2);

调用partminleswarm.来最小化函数。

rng默认的重复性的%据nvar = 2;X = Pricstleswarm(有趣,NVARS)
优化结束:最后一个options的目标值中的相对变化.maxstallerations迭代率小于options.functionTolectance。X = 311.4814

正如您在函数图中看到的那样,这个解决方案离真正的最小值还很远。

fsurf(@(x,y)x。* exp( - (x。^ 2 + y。^ 2)))

通常,最好设置界限。看用界限最小化简单的功能

最大限度地减少两个变量具有绑定约束的简单功能。

定义目标函数。

fun = @(x)x(1)* exp(-norm(x)^ 2);

设置变量的边界。

磅=(-10、-15);UB = [15,20];

调用partminleswarm.来最小化函数。

rng默认的重复性的%据nvar = 2;X = PricticleSwarm(有趣,NVARS,LB,UB)
优化结束:最后一个options的目标值中的相对变化.maxstallerations迭代率小于options.functionTolectance。
x =1×2-0.7071 -0.0000

使用更大的人口和混合函数来试图获得更好的解决方案。

指定目标函数和边界。

fun = @(x)x(1)* exp(-norm(x)^ 2);磅=(-10、-15);UB = [15,20];

指定选项。

选项= Optimoptions('particleswarm''群体化',100,“HybridFcn”, @fmincon);

调用partminleswarm.来最小化函数。

rng默认的重复性的%据nvar = 2;x = particleswarm(有趣,据nvar磅,乌兰巴托,选项)
优化结束:最后一个options的目标值中的相对变化.maxstallerations迭代率小于options.functionTolectance。
x =1×2-0.7071 -0.0000

返回可选的输出参数以更详细地检查解决方案流程。

定义问题。

fun = @(x)x(1)* exp(-norm(x)^ 2);磅=(-10、-15);UB = [15,20];选项= Optimoptions('particleswarm''群体化',50,“HybridFcn”, @fmincon);

调用partminleswarm.用所有的输出来最小化函数并获得关于解决过程的信息。

rng默认的重复性的%据nvar = 2;[x,fval,出口,输出] = particleswarm(有趣,nvars,lb,Ub,选项)
优化结束:最后一个options的目标值中的相对变化.maxstallerations迭代率小于options.functionTolectance。
x =1×2-0.7071 -0.0000
fval = -0.4289
EXITFLAG = 1
输出=结构与字段:rngstate: [1x1 struct]迭代:43 funccount: 2203消息:'优化结束:客观值的相对变化…“hybridflag: 1

输入参数

全部收缩

目标函数,指定为函数句柄或函数名称。写下目标函数接受行的长度向量据nvar并返回标量值。

当。。。的时候“UseVectorized”选项是真正的,写乐趣接受A.流行-经过-据nvar矩阵,其中流行是目前的人口大小。在这种情况下,乐趣返回与载体相同的向量流行包含健身功能值。确保这件事乐趣不承担任何特定的尺寸流行,因为partminleswarm.即使在矢量化计算中也可以通过人口的单个成员。

例子:fun = @(x)(x-[4,2])。^ 2

数据类型:char|function_handle.|字符串

变量数,指定为正整数。解算器通过了长度的行向量据nvar乐趣

例子:4.

数据类型:双倍的

下界,指定为实向量或双精度数数组。表示下限元素明智X乌兰巴托

在内部,partminleswarm.转换阵列向量磅(:)

例子:磅=[0;无穷;4)方法x(1)≥0X(3)≥4

数据类型:双倍的

上限,指定为真正的矢量或双打数组。乌兰巴托表示上限元素明智X乌兰巴托

在内部,partminleswarm.转换阵列乌兰巴托向量UB(:)

例子:UB = [INF; 4; 10]方法X(2)≤4X(3)≤10

数据类型:双倍的

选项partminleswarm.,指定为输出优化选择功能。

某些选择缺席优化选择显示。这些选项以斜体列出。有关详细信息,请参见查看选项

CreationFcn

创建初始群的函数。指定为'pswreationuniform'或功能手柄。默认为'pswreationuniform'.看创建群

显示

显示级别返回到命令行。

  • '离开''没有任何'显示无输出。

  • '最终的'仅显示最终输出(默认值)。

  • 'iter'提供迭代显示。

displayinterval. 迭代显示间隔。迭代显示为每一行打印一行displayinterval.迭代。默认为1
functiontolerance. 默认为非负标量1 e-6.迭代结束时,最佳目标函数值的相对变化比上一个MaxStallIterations迭代率小于options.FunctionTolerance.
FunValCheck

检查目标函数和约束值是否有效。'上'当目标函数或约束返回复杂的值时,显示错误,INF.,或.默认的,'离开',显示没有错误。

HybridFcn

函数,在之后继续优化partminleswarm.终止。指定为名称或函数句柄。可能的值:

  • '粉丝'

  • “fminsearch”

  • “fminunc”

  • 'patternsearch'

也可以是指定混合函数及其选项的单元格数组,例如{@ fmincon,fminconopts}.默认为[].看混合函数

何时使用混合函数

惯性 同符号值的二元实向量按递增顺序排列。给出了自适应惯性的下界和上界。为了获得一个常数(非自适应的)惯性,设置两个元素惯性到相同的价值。默认为[0.1,1.1].看粒子群优化算法
initialswarmmatrix. 粒子的初始总体或部分总体。m-经过-据nvar矩阵,每一行代表一个粒子。如果m<SwarmSize, 然后partminleswarm.创建更多的粒子,使总数是SwarmSize.如果m>SwarmSize, 然后partminleswarm.使用第一个SwarmSize行。
initialswarmspan.

初始范围的粒子位置@pswcreationuniform创造。可以是正标量或矢量据nvar元素,据nvar是变量的数量。任何粒子组分的范围是-InitialSwarmSpan / 2, InitialSwarmSpan / 2,在必要时进行移位和缩放,以匹配任何边界。默认为2000年

initialswarmspan.还影响初始粒子速度范围。看初始化

最大 最大迭代次数partminleswarm.需要。默认为200 * NVARS., 在哪里据nvar是变量的数量。
MaxStallIterations 默认正整数20..迭代结束时,最佳目标函数值的相对变化比上一个MaxStallIterations迭代率小于options.FunctionTolerance.
MaxStallTime 最佳已知目标函数值没有改进的最大秒数。默认正标量INF.
MaxTime. 最长时间的时间partminleswarm.运行。默认为INF.
minneighborsfraction. 最小自适应邻域大小,标量0.1.默认为0.25.看粒子群优化算法
Objectivelimit. 最小目标值,停止标准。标量,默认-inf.
outputfcn. 功能句柄或功能手柄阵列。输出功能可以读取迭代数据,并停止求解器。默认为[].看输出功能和绘图功能
Plotfcn. 功能名称,函数句柄或功能函数句柄阵列。对于自定义绘图功能,通过功能句柄。绘图函数可以读取迭代数据,绘制每个迭代,并停止求解器。默认为[].可用内置绘图功能:'pswplotbestf'.看输出功能和绘图功能
selfadjustment重量 调整速度时每个粒子最佳位置的权重。有限标量默认1.49.看粒子群优化算法
社交调节重量 调整速度时邻域最佳位置的加权。有限标量默认1.49.看粒子群优化算法
SwarmSize 群中的粒子数量大于1.默认为分钟(100,10 * NVARS), 在哪里据nvar是变量的数量。
使用指α. 计算目标函数并行真正的.默认为错误的.看并行或向量化函数计算
UseVectorized 以向量化的方式计算目标函数真正的.默认为错误的.看并行或向量化函数计算

优化问题,指定为具有以下字段的结构。

解算器 'particleswarm'
客观的 功能句柄到目标函数,或目标函数的名称。
据nvar 问题的变量数。
载体或下界阵列。
乌兰巴托 矢量或上限阵列。
选项 选择创建的优化选择
rngstate 解决方案过程开始时随机数生成器的可选状态。

数据类型:塑造

输出参数

全部收缩

解决方案,作为真实载体返回,使目标函数最小化受到任何限制约束。

客观价值,作为真正的标量返回有趣的(x)

算法停止条件,返回作为识别算法停止的原因的整数。以下列出了值的值ExitFlag.以及相应的原因partminleswarm.停止了。

1

客观价值相对于过去的变化选项。maxStallIterations迭代率小于options.FunctionTolerance.

0.

超出迭代次数选项。maxIterations

-1

由输出函数或绘图函数停止的迭代。

-2

界限不一致:一些一世LB(i)>UB(i)

-3

最佳目标函数值如下options.Objectivelimit.

-4

最佳目标函数内值不变化options.maxstalltime.秒。

-5

运行时间超过options.maxtime.秒。

解决方案过程摘要,作为包含有关优化过程信息的结构。

迭代

求解器迭代的数量

funccount

客观函数评估数。

信息

原因算法停止。

hybridflag

从混合函数退出标志。与之涉及HybridFcn选项

rngstate

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

算法

关于粒子群优化算法的描述,请参见粒子群优化算法

选择功能

应用程序

优化Live Editor任务提供可视界面partminleswarm.

扩展功能

介绍了R2014b