list

Class: RandomStartPointSet

Generate start points

Syntax

points = list(RandSet,problem)

Description

points = list(RandSet,problem) generates pseudorandom start points using the parameters in the RandSet RandomStartPointSet object, and information from the problem problem structure.

Input Arguments

RandSet

A RandomStartPointSet object. This contains parameters for generating the points: number of points, and artificial bounds.

problem

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.

Output Arguments

points

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.

Examples

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

Algorithms

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.

Was this topic helpful?