OptimizationResult#

class OptimizationResult(x, fval, variables, status, raw_results=None, samples=None)[source]#

Bases: object

A base class for optimization results.

The optimization algorithms return an object of the type OptimizationResult with the information about the solution obtained.

OptimizationResult allows users to get the value of a variable by specifying an index or a name as follows.

Examples

>>> from qiskit_optimization import QuadraticProgram
>>> from qiskit_optimization.algorithms import CplexOptimizer
>>> problem = QuadraticProgram()
>>> _ = problem.binary_var('x1')
>>> _ = problem.binary_var('x2')
>>> _ = problem.binary_var('x3')
>>> problem.minimize(linear={'x1': 1, 'x2': -2, 'x3': 3})
>>> print([var.name for var in problem.variables])
['x1', 'x2', 'x3']
>>> optimizer = CplexOptimizer()
>>> result = optimizer.solve(problem)
>>> print(result.variable_names)
['x1', 'x2', 'x3']
>>> print(result.x)
[0. 1. 0.]
>>> print(result[1])
1.0
>>> print(result['x1'])
0.0
>>> print(result.fval)
-2.0
>>> print(result.variables_dict)
{'x1': 0.0, 'x2': 1.0, 'x3': 0.0}

Note

The order of variables should be equal to that of the problem solved by optimization algorithms. Optimization algorithms and converters of QuadraticProgram should maintain the order when generating a new OptimizationResult object.

Parameters:
  • x (Union[List[float], np.ndarray] | None) – the variable values found in the optimization, or possibly None in case of FAILURE.

  • fval (float | None) – the objective function value.

  • variables (List[Variable]) – the list of variables of the optimization problem.

  • raw_results (Any | None) – the original results object from the optimization algorithm.

  • status (OptimizationResultStatus) – the termination status of the optimization algorithm.

  • samples (List[SolutionSample] | None) – the solution samples.

Raises:

QiskitOptimizationError – if sizes of x and variables do not match.

Attributes

fval#

Returns the objective function value.

Returns:

The function value corresponding to the objective function value found in the optimization.

raw_results#

Return the original results object from the optimization algorithm.

Currently a dump for any leftovers.

Returns:

Additional result information of the optimization algorithm.

samples#

Returns the list of solution samples

Returns:

The list of solution samples.

status#

Returns the termination status of the optimization algorithm.

Returns:

The termination status of the algorithm.

variable_names#

Returns the list of variable names of the optimization problem.

Returns:

The list of variable names of the optimization problem.

variables#

Returns the list of variables of the optimization problem.

Returns:

The list of variables.

variables_dict#

Returns the variable values as a dictionary of the variable name and corresponding value.

Returns:

The variable values as a dictionary of the variable name and corresponding value.

x#

Returns the variable values found in the optimization or None in case of FAILURE.

Returns:

The variable values found in the optimization.

Methods

get_correlations()[source]#

Get <Zi x Zj> correlation matrix from the samples.

Returns:

A correlation matrix.

Return type:

ndarray

prettyprint()[source]#

Returns a pretty printed string of this optimization result.

Returns:

A pretty printed string representing the result.

Return type:

str