CobylaOptimizer#

class CobylaOptimizer(rhobeg=1.0, rhoend=0.0001, maxfun=1000, disp=None, catol=0.0002, trials=1, clip=100.0)[source]#

Bases: MultiStartOptimizer

The SciPy COBYLA optimizer wrapped as an Qiskit OptimizationAlgorithm.

This class provides a wrapper for scipy.optimize.fmin_cobyla (https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.optimize.fmin_cobyla.html) to be used within the optimization module. The arguments for fmin_cobyla are passed via the constructor.

Examples

>>> from qiskit_optimization.problems import QuadraticProgram
>>> from qiskit_optimization.algorithms import CobylaOptimizer
>>> problem = QuadraticProgram()
>>> # specify problem here
>>> optimizer = CobylaOptimizer()
>>> result = optimizer.solve(problem)

Initializes the CobylaOptimizer.

This initializer takes the algorithmic parameters of COBYLA and stores them for later use of fmin_cobyla when solve() is invoked. This optimizer can be applied to find a (local) optimum for problems consisting of only continuous variables.

Parameters:
  • rhobeg (float) – Reasonable initial changes to the variables.

  • rhoend (float) – Final accuracy in the optimization (not precisely guaranteed). This is a lower bound on the size of the trust region.

  • disp (int | None) – Controls the frequency of output; 0 implies no output. Feasible values are {0, 1, 2, 3}.

  • maxfun (int) – Maximum number of function evaluations.

  • catol (float) – Absolute tolerance for constraint violations.

  • trials (int) – The number of trials for multi-start method. The first trial is solved with the initial guess of zero. If more than one trial is specified then initial guesses are uniformly drawn from [lowerbound, upperbound] with potential clipping.

  • clip (float) – Clipping parameter for the initial guesses in the multi-start method. If a variable is unbounded then the lower bound and/or upper bound are replaced with the -clip or clip values correspondingly for the initial guesses.

Attributes

clip#

Returns the clip value for this optimizer.

Returns:

The clip value.

trials#

Returns the number of trials for this optimizer.

Returns:

The number of trials.

Methods

get_compatibility_msg(problem)[source]#

Checks whether a given problem can be solved with this optimizer.

Checks whether the given problem is compatible, i.e., whether the problem contains only continuous variables, and otherwise, returns a message explaining the incompatibility.

Parameters:

problem (QuadraticProgram) – The optimization problem to check compatibility.

Returns:

Returns a string describing the incompatibility.

Return type:

str

is_compatible(problem)#

Checks whether a given problem can be solved with the optimizer implementing this method.

Parameters:

problem (QuadraticProgram) – The optimization problem to check compatibility.

Returns:

Returns True if the problem is compatible, False otherwise.

Return type:

bool

multi_start_solve(minimize, problem)#

Applies a multi start method given a local optimizer.

Parameters:
Returns:

The result of the multi start algorithm applied to the problem.

Return type:

OptimizationResult

solve(problem)[source]#

Tries to solves the given problem using the optimizer.

Runs the optimizer to try to solve the optimization problem.

Parameters:

problem (QuadraticProgram) – The problem to be solved.

Returns:

The result of the optimizer applied to the problem.

Raises:

QiskitOptimizationError – If the problem is incompatible with the optimizer.

Return type:

OptimizationResult