SlsqpOptimizer#
- class SlsqpOptimizer(iter=100, acc=1e-06, iprint=0, trials=1, clip=100.0, full_output=False)[source]#
Bases:
MultiStartOptimizer
The SciPy SLSQP optimizer wrapped as an Qiskit
OptimizationAlgorithm
.This class provides a wrapper for
scipy.optimize.fmin_slsqp
(https://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.optimize.fmin_slsqp.html) to be used within the optimization module. The arguments forfmin_slsqp
are passed via the constructor.Examples
>>> from qiskit_optimization.problems import QuadraticProgram >>> from qiskit_optimization.algorithms import SlsqpOptimizer >>> problem = QuadraticProgram() >>> # specify problem here >>> x = problem.continuous_var(name="x") >>> y = problem.continuous_var(name="y") >>> problem.maximize(linear=[2, 0], quadratic=[[-1, 2], [0, -2]]) >>> optimizer = SlsqpOptimizer() >>> result = optimizer.solve(problem)
Initializes the SlsqpOptimizer.
This initializer takes the algorithmic parameters of SLSQP and stores them for later use of
fmin_slsqp
whensolve()
is invoked. This optimizer can be applied to find a (local) optimum for problems consisting of only continuous variables.- Parameters:
iter (int) – The maximum number of iterations.
acc (float) – Requested accuracy.
iprint (int) –
The verbosity of fmin_slsqp :
iprint <= 0 : Silent operation
iprint == 1 : Print summary upon completion (default)
iprint >= 2 : Print status of each iterate and summary
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
orclip
values correspondingly for the initial guesses.full_output (bool) – If
False
, return only the minimizer of func (default). Otherwise, output final objective function and summary information.
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:
- 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:
- 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:
- 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: