你可以通过四种方式来判断MultiStart
用于本地求解器的起始点:
请注意
你可以控制是否MultiStart
使用所有的起始点,或仅那些满足边界或其他不等式约束的点。有关更多信息,请参见过滤器起始点(可选).
运行的语法MultiStart
为k
开始点
[Xmin,Fmin,Flag,Outpt,Allmins] =运行(MS,问题,K);
的正整数k
指定起始点的数目MultiStart
用途。MultiStart
使用问题的维度和边界生成随机的起始点问题
结构。MultiStart
生成k - 1
随机的开始点,也使用x0
从中开始点问题
结构。
创建一个RandomStartPointSet
对象如下:
stpoints = RandomStartPointSet;
运行MultiStart
从一个RandomStartPointSet
如下:
[xmin, fmin,国旗,outpt allmins] = (ms,问题,stpoints)运行;
默认情况下一个RandomStartPointSet
对象生成10个起始点。控件控制起始点的数量NumStartPoints
财产。例如,要生成40个起始点:
stpoints = RandomStartPointSet (“NumStartPoints”, 40);
你可以设置ArtificialBound
对于一个RandomStartPointSet
.这ArtificialBound
与问题结构的界限合作:
如果一个组件没有边界,RandomStartPointSet
使用的下界-ArtificialBound
,的上界ArtificialBound
.
如果组件具有下限磅
但没有上限,RandomStartPointSet
使用上限磅+ 2 * ArtificialBound
.
类似地,如果一个组件有一个上界乌兰巴托
但没有下限,RandomStartPointSet
使用的下界乌兰巴托- 2 * ArtificialBound
.
例如,生成100.
起始点ArtificialBound
的50
:
stpoints = RandomStartPointSet (“NumStartPoints”, 100,...“ArtificialBound”,50);
一个RandomStartPointSet
对象生成的起始点具有与x0
点在问题结构上;看到列表
.
使用特定的起点集,将它们包装在一个CustomStartPointSet
如下:
在矩阵中放置起始点。矩阵的每一行代表一个起点。MultiStart
运行矩阵的所有行,但才能通过筛选StartPointsToRun
财产。有关更多信息,请参见MultiStart算法.
创建一个CustomStartPointSet
来自矩阵的对象:
tpoints = CustomStartPointSet (ptmatrix);
例如,创建一组40个五维点,每个点的分量等于10加上一个平均为25的指数分布变量:
PTS = -25*log(rand(40,5)) + 10;tpoints = CustomStartPointSet (pts);
运行MultiStart
从一个CustomStartPointSet
如下:
[xmin, fmin,国旗,outpt allmins] = (ms,问题,tpoints)运行;
从a中得到原始的点矩阵CustomStartPointSet
对象,使用列表
:
分=列表(tpoints);%假设tpoints是一个CustomStartPointSet
一个CustomStartPointSet
有两个属性:StartPointsDimension
和NumStartPoints
.您可以使用这些属性来查询CustomStartPointSet
对象。例如,tpoints.
对象具有以下属性:
tpoints.startpointsdimension ans = 5 tpoints.numstartPoints ANS = 40
使用特定的一组起点以及一些随机生成的点,通过一个小区数组RandomStartPointSet
要么CustomStartPointSet
对象。
例如,使用40个特定的五维点用于起始点的CustomStartPointSet对象还有40个额外的五维点RandomStartPointSet
:
PTS = -25*log(rand(40,5)) + 10;tpoints = CustomStartPointSet (pts);rpt = RandomStartPointSet (“NumStartPoints”, 40);allpts = {tpoints, rpt};
运行MultiStart
从allpts
单元阵列:
%假设ms和问题存在[xmin, fmin,国旗,outpt allmins] = (ms,问题,allpts)运行;