ScipyMilpOptimizer#

class ScipyMilpOptimizer(disp=False)[source]#

Bases: OptimizationAlgorithm

The MILP optimizer from Scipy wrapped as a Qiskit OptimizationAlgorithm.

This class provides a wrapper for scipy.milp (https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.milp.html) to be used within the optimization module.

Initializes the ScipyMILPOptimizer.

Parameters:

disp (bool) – Whether to print MILP output or not.

Attributes

disp#

Returns the display setting.

Returns:

Whether to print scipy.milp information or not.

Methods

get_compatibility_msg(problem)[source]#

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

Checks if the problem has only linear objective function and linear constraints. The scipy.milp supports only linear objective function and linear constraints.

Parameters:

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

Returns:

An empty string (if compatible) or 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

solve(problem)[source]#

Tries to solve the given problem using the optimizer.

Runs the optimizer to try to solve the optimization problem. If problem is not convex, this optimizer may raise an exception due to incompatibility, depending on the settings.

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