Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

# 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.