Generate start points
points = list(RandSet,problem)
points = list(RandSet,problem) generates pseudorandom start points using the parameters in the RandSet RandomStartPointSet object, and information from the problem problem structure.
A RandomStartPointSet object. This contains parameters for generating the points: number of points, and artificial bounds.
An optimization problem structure. list generates points uniformly within the bounds of the problem structure. If a component is unbounded, list uses the artificial bounds from RandSet. list takes the dimension of the points from the x0 field in problem.
A k-by-n matrix. The number of rows k is the number of start points that RandSet specifies. The number of columns n is the dimension of the start points. n is equal to the number of elements in the x0 field in problem. The MultiStart algorithm uses each row of points as an initial point in an optimization.
Create a matrix representing 40 seven-dimensional start points:
rs = RandomStartPointSet('NumStartPoints',40); % 40 points problem = createOptimProblem('fminunc','x0',ones(7,1),... 'objective',@rosenbrock); ptmatrix = list(rs,problem); % matrix values between % -1000 and 1000 since those are the default bounds % for unconstrained dimensions
The list method generates a pseudorandom random matrix using the default random number stream. Each row of the matrix represents a start point to run. list generates points that satisfy the bounds in problem. If lb is the vector of lower bounds, ub is the vector of upper bounds, there are n dimensions in a point, and there are k rows in the matrix, the random matrix is
lb + (ub - lb).*rand(k,n)
If a component has no bounds, RandomStartPointSet uses a lower bound of -ArtificialBound, and an upper bound of ArtificialBound.
If a component has a lower bound lb, but no upper bound, RandomStartPointSet uses an upper bound of lb + 2*ArtificialBound.
Similarly, if a component has an upper bound ub, but no lower bound, RandomStartPointSet uses a lower bound of ub - 2*ArtificialBound.
The default value of ArtificialBound is 1000.
To obtain identical pseudorandom results, reset the default random number stream. See Reproduce Results.