random_lines - Random lines and particle swarm optimizers

random_lines Random lines is a population based optimizer which using quadratic fits along randomly oriented directions.
particle_swarm Particle swarm is a population based optimizer which uses force and momentum to select candidate points.

Random Lines Algorithm finds the optimal minimum of a function.

Sahin, I. (2013). Minimization over randomly selected lines. An International Journal Of Optimization And Control: Theories & Applications (IJOCTA), 3(2), 111-119. http://dx.doi.org/10.11121/ijocta.01.2013.00167

bumps.random_lines.random_lines(cfo, NP, CR=0.9, epsilon=1e-10, abort_test=None, maxiter=1000)[source]

Random lines is a population based optimizer which using quadratic fits along randomly oriented directions.

cfo is the cost function object. This is a dictionary which contains the following keys:

cost is the function to be optimized. If parallel_cost exists, it should accept a list of points, not just a single point on each evaluation.

n is the problem dimension

x0 is the initial point

x1 and x2 are lower and upper bounds for each parameter

monitor is a callable which is called each iteration using callback(step, x, fx, k), where step is the iteration number, x is the population, fx is value of the cost function for each member of the population and k is the index of the best point in the population.

f_opt is the target value of the optimization

NP is the number of fit parameters

CR is the cross-over ratio, which is the proportion of dimensions that participate in any random orientation vector.

epsilon is the convergence criterion.

abort_test is a callable which indicates whether an external processes requests the fit to stop.

maxiter is the maximum number of generations

Returns success, num_evals, f(x_best), x_best.

bumps.random_lines.particle_swarm(cfo, NP, epsilon=1e-10, maxiter=1000)[source]

Particle swarm is a population based optimizer which uses force and momentum to select candidate points.

cfo is the cost function object. This is a dictionary which contains the following keys:

cost is the function to be optimized. If parallel_cost exists, it should accept a list of points, not just a single point on each evaluation.

n is the problem dimension

x0 is the initial point

x1 and x2 are lower and upper bounds for each parameter

monitor is a callable which is called each iteration using callback(step, x, fx, k), where step is the iteration number, x is the population, fx is value of the cost function for each member of the population and k is the index of the best point in the population.

f_opt is the target value of the optimization

NP is the number of fit parameters

epsilon is the convergence criterion.

abort_test is a callable which indicates whether an external processes requests the fit to stop.

maxiter is the maximum number of generations

Returns success, num_evals, f(x_best), x_best.