970 lines
34 KiB
Plaintext
970 lines
34 KiB
Plaintext
---
|
||
title: QuadraticProgram (v0.29)
|
||
description: API reference for qiskit.optimization.problems.QuadraticProgram in qiskit v0.29
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.optimization.problems.QuadraticProgram
|
||
---
|
||
|
||
# QuadraticProgram
|
||
|
||
<Class id="qiskit.optimization.problems.QuadraticProgram" isDedicatedPage={true} github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/optimization/problems/quadratic_program.py" signature="QuadraticProgram(name='')" modifiers="class">
|
||
Bases: `object`
|
||
|
||
Quadratically Constrained Quadratic Program representation.
|
||
|
||
This representation supports inequality and equality constraints, as well as continuous, binary, and integer variables.
|
||
|
||
**Parameters**
|
||
|
||
**name** (`str`) – The name of the quadratic program.
|
||
|
||
## Methods
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-binary-var" />
|
||
|
||
### binary\_var
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.binary_var" signature="QuadraticProgram.binary_var(name=None)">
|
||
Adds a binary variable to the quadratic program.
|
||
|
||
**Parameters**
|
||
|
||
**name** (`Optional`\[`str`]) – The name of the variable.
|
||
|
||
**Return type**
|
||
|
||
`Variable`
|
||
|
||
**Returns**
|
||
|
||
The added variable.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already occupied.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-binary-var-dict" />
|
||
|
||
### binary\_var\_dict
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.binary_var_dict" signature="QuadraticProgram.binary_var_dict(keys, name=None, key_format='{}')">
|
||
Uses ‘var\_dict’ to construct a dictionary of binary variables
|
||
|
||
**Parameters**
|
||
|
||
* **name** (`Optional`\[`str`]) – The name(s) of the variable(s).
|
||
* **key\_format** (`str`) – The format used to name/index the variable(s).
|
||
* **keys** (`Union`\[`int`, `Sequence`]) – If keys: int, it is interpreted as the number of variables to construct. Otherwise, the elements of the sequence are converted to strings via ‘str’ and substituted into key\_format.
|
||
|
||
**Return type**
|
||
|
||
`Dict`\[`str`, `Variable`]
|
||
|
||
**Returns**
|
||
|
||
A dictionary mapping the variable names to variable instances.
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already taken.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if less than one variable instantiation is attempted.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if key\_format has more than one substitution or a nested substitution.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-binary-var-list" />
|
||
|
||
### binary\_var\_list
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.binary_var_list" signature="QuadraticProgram.binary_var_list(keys, name=None, key_format='{}')">
|
||
Uses ‘var\_list’ to construct a list of binary variables
|
||
|
||
**Parameters**
|
||
|
||
* **name** (`Optional`\[`str`]) – The name(s) of the variable(s).
|
||
* **key\_format** (`str`) – The format used to name/index the variable(s).
|
||
* **keys** (`Union`\[`int`, `Sequence`]) – If keys: int, it is interpreted as the number of variables to construct. Otherwise, the elements of the sequence are converted to strings via ‘str’ and substituted into key\_format.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`Variable`]
|
||
|
||
**Returns**
|
||
|
||
A list of variable instances.
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already taken.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if less than one variable instantiation is attempted.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if key\_format has more than one substitution or a nested substitution.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-clear" />
|
||
|
||
### clear
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.clear" signature="QuadraticProgram.clear()">
|
||
Clears the quadratic program, i.e., deletes all variables, constraints, the objective function as well as the name.
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-continuous-var" />
|
||
|
||
### continuous\_var
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.continuous_var" signature="QuadraticProgram.continuous_var(lowerbound=0, upperbound=1e+20, name=None)">
|
||
Adds a continuous variable to the quadratic program.
|
||
|
||
**Parameters**
|
||
|
||
* **lowerbound** (`Union`\[`float`, `int`]) – The lowerbound of the variable.
|
||
* **upperbound** (`Union`\[`float`, `int`]) – The upperbound of the variable.
|
||
* **name** (`Optional`\[`str`]) – The name of the variable.
|
||
|
||
**Return type**
|
||
|
||
`Variable`
|
||
|
||
**Returns**
|
||
|
||
The added variable.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already occupied.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-continuous-var-dict" />
|
||
|
||
### continuous\_var\_dict
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.continuous_var_dict" signature="QuadraticProgram.continuous_var_dict(keys, lowerbound=0, upperbound=1e+20, name=None, key_format='{}')">
|
||
Uses ‘var\_dict’ to construct a dictionary of continuous variables
|
||
|
||
**Parameters**
|
||
|
||
* **lowerbound** (`Union`\[`float`, `int`]) – The lower bound of the variable(s).
|
||
* **upperbound** (`Union`\[`float`, `int`]) – The upper bound of the variable(s).
|
||
* **name** (`Optional`\[`str`]) – The name(s) of the variable(s).
|
||
* **key\_format** (`str`) – The format used to name/index the variable(s).
|
||
* **keys** (`Union`\[`int`, `Sequence`]) – If keys: int, it is interpreted as the number of variables to construct. Otherwise, the elements of the sequence are converted to strings via ‘str’ and substituted into key\_format.
|
||
|
||
**Return type**
|
||
|
||
`Dict`\[`str`, `Variable`]
|
||
|
||
**Returns**
|
||
|
||
A dictionary mapping the variable names to variable instances.
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already taken.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if less than one variable instantiation is attempted.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if key\_format has more than one substitution or a nested substitution.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-continuous-var-list" />
|
||
|
||
### continuous\_var\_list
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.continuous_var_list" signature="QuadraticProgram.continuous_var_list(keys, lowerbound=0, upperbound=1e+20, name=None, key_format='{}')">
|
||
Uses ‘var\_list’ to construct a list of continuous variables
|
||
|
||
**Parameters**
|
||
|
||
* **lowerbound** (`Union`\[`float`, `int`]) – The lower bound of the variable(s).
|
||
* **upperbound** (`Union`\[`float`, `int`]) – The upper bound of the variable(s).
|
||
* **name** (`Optional`\[`str`]) – The name(s) of the variable(s).
|
||
* **key\_format** (`str`) – The format used to name/index the variable(s).
|
||
* **keys** (`Union`\[`int`, `Sequence`]) – If keys: int, it is interpreted as the number of variables to construct. Otherwise, the elements of the sequence are converted to strings via ‘str’ and substituted into key\_format.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`Variable`]
|
||
|
||
**Returns**
|
||
|
||
A list of variable instances.
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already taken.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if less than one variable instantiation is attempted.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if key\_format has more than one substitution or a nested substitution.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-export-as-lp-string" />
|
||
|
||
### export\_as\_lp\_string
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.export_as_lp_string" signature="QuadraticProgram.export_as_lp_string()">
|
||
Returns the quadratic program as a string of LP format.
|
||
|
||
**Return type**
|
||
|
||
`str`
|
||
|
||
**Returns**
|
||
|
||
A string representing the quadratic program.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-from-docplex" />
|
||
|
||
### from\_docplex
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.from_docplex" signature="QuadraticProgram.from_docplex(model)">
|
||
Loads this quadratic program from a docplex model.
|
||
|
||
Note that this supports only basic functions of docplex as follows: - quadratic objective function - linear / quadratic constraints - binary / integer / continuous variables
|
||
|
||
**Parameters**
|
||
|
||
**model** (`Model`) – The docplex model to be loaded.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the model contains unsupported elements.
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-from-ising" />
|
||
|
||
### from\_ising
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.from_ising" signature="QuadraticProgram.from_ising(qubit_op, offset=0.0, linear=False)">
|
||
Create a quadratic program from a qubit operator and a shift value.
|
||
|
||
**Parameters**
|
||
|
||
* **qubit\_op** (`Union`\[`OperatorBase`, `WeightedPauliOperator`]) – The qubit operator of the problem.
|
||
* **offset** (`float`) – The constant value in the Ising Hamiltonian.
|
||
* **linear** (`bool`) – If linear is True, $x^2$ is treated as a linear term since $x^2 = x$ for $x \in \{0,1\}$. Else, $x^2$ is treat as a quadratic term. The default value is False.
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – If there are Pauli Xs in any Pauli term
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – If there are more than 2 Pauli Zs in any Pauli term
|
||
* **NotImplementedError** – If the input operator is a ListOp
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-feasibility-info" />
|
||
|
||
### get\_feasibility\_info
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_feasibility_info" signature="QuadraticProgram.get_feasibility_info(x)">
|
||
Returns whether a solution is feasible or not along with the violations. :type x: `Union`\[`List`\[`float`], `ndarray`] :param x: a solution value, such as returned in an optimizer result.
|
||
|
||
**Returns**
|
||
|
||
Whether the solution provided is feasible or not. List\[Variable]: List of variables which are violated. List\[Constraint]: List of constraints which are violated.
|
||
|
||
**Return type**
|
||
|
||
feasible
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – If the input x is not same len as total vars
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-linear-constraint" />
|
||
|
||
### get\_linear\_constraint
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_linear_constraint" signature="QuadraticProgram.get_linear_constraint(i)">
|
||
Returns a linear constraint for a given name or index.
|
||
|
||
**Parameters**
|
||
|
||
**i** (`Union`\[`int`, `str`]) – the index or name of the constraint.
|
||
|
||
**Return type**
|
||
|
||
`LinearConstraint`
|
||
|
||
**Returns**
|
||
|
||
The corresponding constraint.
|
||
|
||
**Raises**
|
||
|
||
* **IndexError** – if the index is out of the list size
|
||
* **KeyError** – if the name does not exist
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-num-binary-vars" />
|
||
|
||
### get\_num\_binary\_vars
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_num_binary_vars" signature="QuadraticProgram.get_num_binary_vars()">
|
||
Returns the total number of binary variables.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
|
||
**Returns**
|
||
|
||
The total number of binary variables.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-num-continuous-vars" />
|
||
|
||
### get\_num\_continuous\_vars
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_num_continuous_vars" signature="QuadraticProgram.get_num_continuous_vars()">
|
||
Returns the total number of continuous variables.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
|
||
**Returns**
|
||
|
||
The total number of continuous variables.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-num-integer-vars" />
|
||
|
||
### get\_num\_integer\_vars
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_num_integer_vars" signature="QuadraticProgram.get_num_integer_vars()">
|
||
Returns the total number of integer variables.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
|
||
**Returns**
|
||
|
||
The total number of integer variables.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-num-linear-constraints" />
|
||
|
||
### get\_num\_linear\_constraints
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_num_linear_constraints" signature="QuadraticProgram.get_num_linear_constraints()">
|
||
Returns the number of linear constraints.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
|
||
**Returns**
|
||
|
||
The number of linear constraints.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-num-quadratic-constraints" />
|
||
|
||
### get\_num\_quadratic\_constraints
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_num_quadratic_constraints" signature="QuadraticProgram.get_num_quadratic_constraints()">
|
||
Returns the number of quadratic constraints.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
|
||
**Returns**
|
||
|
||
The number of quadratic constraints.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-num-vars" />
|
||
|
||
### get\_num\_vars
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_num_vars" signature="QuadraticProgram.get_num_vars(vartype=None)">
|
||
Returns the total number of variables or the number of variables of the specified type.
|
||
|
||
**Parameters**
|
||
|
||
**vartype** (`Optional`\[`VarType`]) – The type to be filtered on. All variables are counted if None.
|
||
|
||
**Return type**
|
||
|
||
`int`
|
||
|
||
**Returns**
|
||
|
||
The total number of variables.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-quadratic-constraint" />
|
||
|
||
### get\_quadratic\_constraint
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_quadratic_constraint" signature="QuadraticProgram.get_quadratic_constraint(i)">
|
||
Returns a quadratic constraint for a given name or index.
|
||
|
||
**Parameters**
|
||
|
||
**i** (`Union`\[`int`, `str`]) – the index or name of the constraint.
|
||
|
||
**Return type**
|
||
|
||
`QuadraticConstraint`
|
||
|
||
**Returns**
|
||
|
||
The corresponding constraint.
|
||
|
||
**Raises**
|
||
|
||
* **IndexError** – if the index is out of the list size
|
||
* **KeyError** – if the name does not exist
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-get-variable" />
|
||
|
||
### get\_variable
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.get_variable" signature="QuadraticProgram.get_variable(i)">
|
||
Returns a variable for a given name or index.
|
||
|
||
**Parameters**
|
||
|
||
**i** (`Union`\[`int`, `str`]) – the index or name of the variable.
|
||
|
||
**Return type**
|
||
|
||
`Variable`
|
||
|
||
**Returns**
|
||
|
||
The corresponding variable.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-integer-var" />
|
||
|
||
### integer\_var
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.integer_var" signature="QuadraticProgram.integer_var(lowerbound=0, upperbound=1e+20, name=None)">
|
||
Adds an integer variable to the quadratic program.
|
||
|
||
**Parameters**
|
||
|
||
* **lowerbound** (`Union`\[`float`, `int`]) – The lowerbound of the variable.
|
||
* **upperbound** (`Union`\[`float`, `int`]) – The upperbound of the variable.
|
||
* **name** (`Optional`\[`str`]) – The name of the variable.
|
||
|
||
**Return type**
|
||
|
||
`Variable`
|
||
|
||
**Returns**
|
||
|
||
The added variable.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already occupied.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-integer-var-dict" />
|
||
|
||
### integer\_var\_dict
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.integer_var_dict" signature="QuadraticProgram.integer_var_dict(keys, lowerbound=0, upperbound=1e+20, name=None, key_format='{}')">
|
||
Uses ‘var\_dict’ to construct a dictionary of integer variables
|
||
|
||
**Parameters**
|
||
|
||
* **lowerbound** (`Union`\[`float`, `int`]) – The lower bound of the variable(s).
|
||
* **upperbound** (`Union`\[`float`, `int`]) – The upper bound of the variable(s).
|
||
* **name** (`Optional`\[`str`]) – The name(s) of the variable(s).
|
||
* **key\_format** (`str`) – The format used to name/index the variable(s).
|
||
* **keys** (`Union`\[`int`, `Sequence`]) – If keys: int, it is interpreted as the number of variables to construct. Otherwise, the elements of the sequence are converted to strings via ‘str’ and substituted into key\_format.
|
||
|
||
**Return type**
|
||
|
||
`Dict`\[`str`, `Variable`]
|
||
|
||
**Returns**
|
||
|
||
A dictionary mapping the variable names to variable instances.
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already taken.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if less than one variable instantiation is attempted.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if key\_format has more than one substitution or a nested substitution.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-integer-var-list" />
|
||
|
||
### integer\_var\_list
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.integer_var_list" signature="QuadraticProgram.integer_var_list(keys, lowerbound=0, upperbound=1e+20, name=None, key_format='{}')">
|
||
Uses ‘var\_list’ to construct a dictionary of integer variables
|
||
|
||
**Parameters**
|
||
|
||
* **lowerbound** (`Union`\[`float`, `int`]) – The lower bound of the variable(s).
|
||
* **upperbound** (`Union`\[`float`, `int`]) – The upper bound of the variable(s).
|
||
* **name** (`Optional`\[`str`]) – The name(s) of the variable(s).
|
||
* **key\_format** (`str`) – The format used to name/index the variable(s).
|
||
* **keys** (`Union`\[`int`, `Sequence`]) – If keys: int, it is interpreted as the number of variables to construct. Otherwise, the elements of the sequence are converted to strings via ‘str’ and substituted into key\_format.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`Variable`]
|
||
|
||
**Returns**
|
||
|
||
A list of variable instances.
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the variable name is already taken.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if less than one variable instantiation is attempted.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if key\_format has more than one substitution or a nested substitution.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-is-feasible" />
|
||
|
||
### is\_feasible
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.is_feasible" signature="QuadraticProgram.is_feasible(x)">
|
||
Returns whether a solution is feasible or not.
|
||
|
||
**Parameters**
|
||
|
||
**x** (`Union`\[`List`\[`float`], `ndarray`]) – a solution value, such as returned in an optimizer result.
|
||
|
||
**Return type**
|
||
|
||
`bool`
|
||
|
||
**Returns**
|
||
|
||
`True` if the solution provided is feasible otherwise `False`.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-linear-constraint" />
|
||
|
||
### linear\_constraint
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.linear_constraint" signature="QuadraticProgram.linear_constraint(linear=None, sense='<=', rhs=0.0, name=None)">
|
||
#### Adds a linear equality constraint to the quadratic program of the form:
|
||
|
||
linear \* x sense rhs.
|
||
|
||
**Parameters**
|
||
|
||
* **linear** (`Union`\[`ndarray`, `spmatrix`, `List`\[`float`], `Dict`\[`Union`\[`int`, `str`], `float`], `None`]) – The linear coefficients of the left-hand-side of the constraint.
|
||
* **sense** (`Union`\[`str`, `ConstraintSense`]) – The sense of the constraint, - ‘==’, ‘=’, ‘E’, and ‘EQ’ denote ‘equal to’. - ‘>=’, ‘>’, ‘G’, and ‘GE’ denote ‘greater-than-or-equal-to’. - ‘\<=’, ‘\<’, ‘L’, and ‘LE’ denote ‘less-than-or-equal-to’.
|
||
* **rhs** (`float`) – The right hand side of the constraint.
|
||
* **name** (`Optional`\[`str`]) – The name of the constraint.
|
||
|
||
**Return type**
|
||
|
||
`LinearConstraint`
|
||
|
||
**Returns**
|
||
|
||
The added constraint.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the constraint name already exists or the sense is not valid.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-maximize" />
|
||
|
||
### maximize
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.maximize" signature="QuadraticProgram.maximize(constant=0.0, linear=None, quadratic=None)">
|
||
Sets a quadratic objective to be maximized.
|
||
|
||
**Parameters**
|
||
|
||
* **constant** (`float`) – the constant offset of the objective.
|
||
* **linear** (`Union`\[`ndarray`, `spmatrix`, `List`\[`float`], `Dict`\[`Union`\[`int`, `str`], `float`], `None`]) – the coefficients of the linear part of the objective.
|
||
* **quadratic** (`Union`\[`ndarray`, `spmatrix`, `List`\[`List`\[`float`]], `Dict`\[`Tuple`\[`Union`\[`int`, `str`], `Union`\[`int`, `str`]], `float`], `None`]) – the coefficients of the quadratic part of the objective.
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
|
||
**Returns**
|
||
|
||
The created quadratic objective.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-minimize" />
|
||
|
||
### minimize
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.minimize" signature="QuadraticProgram.minimize(constant=0.0, linear=None, quadratic=None)">
|
||
Sets a quadratic objective to be minimized.
|
||
|
||
**Parameters**
|
||
|
||
* **constant** (`float`) – the constant offset of the objective.
|
||
* **linear** (`Union`\[`ndarray`, `spmatrix`, `List`\[`float`], `Dict`\[`Union`\[`int`, `str`], `float`], `None`]) – the coefficients of the linear part of the objective.
|
||
* **quadratic** (`Union`\[`ndarray`, `spmatrix`, `List`\[`List`\[`float`]], `Dict`\[`Tuple`\[`Union`\[`int`, `str`], `Union`\[`int`, `str`]], `float`], `None`]) – the coefficients of the quadratic part of the objective.
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
|
||
**Returns**
|
||
|
||
The created quadratic objective.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-pprint-as-string" />
|
||
|
||
### pprint\_as\_string
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.pprint_as_string" signature="QuadraticProgram.pprint_as_string()">
|
||
DEPRECATED Returns the quadratic program as a string in Docplex’s pretty print format. :rtype: `str` :returns: A string representing the quadratic program.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-prettyprint" />
|
||
|
||
### prettyprint
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.prettyprint" signature="QuadraticProgram.prettyprint(out=None)">
|
||
DEPRECATED Pretty prints the quadratic program to a given output stream (None = default).
|
||
|
||
**Parameters**
|
||
|
||
**out** (`Optional`\[`str`]) – The output stream or file name to print to. if you specify a file name, the output file name is has ‘.mod’ as suffix.
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-quadratic-constraint" />
|
||
|
||
### quadratic\_constraint
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.quadratic_constraint" signature="QuadraticProgram.quadratic_constraint(linear=None, quadratic=None, sense='<=', rhs=0.0, name=None)">
|
||
#### Adds a quadratic equality constraint to the quadratic program of the form:
|
||
|
||
x \* Q \* x \<= rhs.
|
||
|
||
**Parameters**
|
||
|
||
* **linear** (`Union`\[`ndarray`, `spmatrix`, `List`\[`float`], `Dict`\[`Union`\[`int`, `str`], `float`], `None`]) – The linear coefficients of the constraint.
|
||
* **quadratic** (`Union`\[`ndarray`, `spmatrix`, `List`\[`List`\[`float`]], `Dict`\[`Tuple`\[`Union`\[`int`, `str`], `Union`\[`int`, `str`]], `float`], `None`]) – The quadratic coefficients of the constraint.
|
||
* **sense** (`Union`\[`str`, `ConstraintSense`]) – The sense of the constraint, - ‘==’, ‘=’, ‘E’, and ‘EQ’ denote ‘equal to’. - ‘>=’, ‘>’, ‘G’, and ‘GE’ denote ‘greater-than-or-equal-to’. - ‘\<=’, ‘\<’, ‘L’, and ‘LE’ denote ‘less-than-or-equal-to’.
|
||
* **rhs** (`float`) – The right hand side of the constraint.
|
||
* **name** (`Optional`\[`str`]) – The name of the constraint.
|
||
|
||
**Return type**
|
||
|
||
`QuadraticConstraint`
|
||
|
||
**Returns**
|
||
|
||
The added constraint.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the constraint name already exists.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-read-from-lp-file" />
|
||
|
||
### read\_from\_lp\_file
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.read_from_lp_file" signature="QuadraticProgram.read_from_lp_file(filename)">
|
||
Loads the quadratic program from a LP file.
|
||
|
||
**Parameters**
|
||
|
||
**filename** (`str`) – The filename of the file to be loaded.
|
||
|
||
**Raises**
|
||
|
||
* **FileNotFoundError** – If the file does not exist.
|
||
* [**MissingOptionalLibraryError**](qiskit.aqua.MissingOptionalLibraryError "qiskit.aqua.MissingOptionalLibraryError") – If CPLEX is not installed.
|
||
|
||
<Admonition title="Note" type="note">
|
||
This method requires CPLEX to be installed and present in `PYTHONPATH`.
|
||
</Admonition>
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-remove-linear-constraint" />
|
||
|
||
### remove\_linear\_constraint
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.remove_linear_constraint" signature="QuadraticProgram.remove_linear_constraint(i)">
|
||
Remove a linear constraint
|
||
|
||
**Parameters**
|
||
|
||
**i** (`Union`\[`str`, `int`]) – an index or a name of a linear constraint
|
||
|
||
**Raises**
|
||
|
||
* **KeyError** – if name does not exist
|
||
* **IndexError** – if index is out of range
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-remove-quadratic-constraint" />
|
||
|
||
### remove\_quadratic\_constraint
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.remove_quadratic_constraint" signature="QuadraticProgram.remove_quadratic_constraint(i)">
|
||
Remove a quadratic constraint
|
||
|
||
**Parameters**
|
||
|
||
**i** (`Union`\[`str`, `int`]) – an index or a name of a quadratic constraint
|
||
|
||
**Raises**
|
||
|
||
* **KeyError** – if name does not exist
|
||
* **IndexError** – if index is out of range
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-substitute-variables" />
|
||
|
||
### substitute\_variables
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.substitute_variables" signature="QuadraticProgram.substitute_variables(constants=None, variables=None)">
|
||
Substitutes variables with constants or other variables.
|
||
|
||
**Parameters**
|
||
|
||
* **constants** (`Optional`\[`Dict`\[`Union`\[`int`, `str`], `float`]]) – replace variable by constant e.g., \{‘x’: 2} means ‘x’ is substituted with 2
|
||
* **variables** (`Optional`\[`Dict`\[`Union`\[`str`, `int`], `Tuple`\[`Union`\[`str`, `int`], `float`]]]) – replace variables by weighted other variable need to copy everything using name reference to make sure that indices are matched correctly. The lower and upper bounds are updated accordingly. e.g., \{‘x’: (‘y’, 2)} means ‘x’ is substituted with ‘y’ \* 2
|
||
|
||
**Return type**
|
||
|
||
`QuadraticProgram`
|
||
|
||
**Returns**
|
||
|
||
An optimization problem by substituting variables with constants or other variables. If the substitution is valid, QuadraticProgram.status is still QuadraticProgram.Status.VALIAD. Otherwise, it gets QuadraticProgram.Status.INFEASIBLE.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if the substitution is invalid as follows. - Same variable is substituted multiple times. - Coefficient of variable substitution is zero.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-to-docplex" />
|
||
|
||
### to\_docplex
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.to_docplex" signature="QuadraticProgram.to_docplex()">
|
||
Returns a docplex model corresponding to this quadratic program.
|
||
|
||
**Return type**
|
||
|
||
`Model`
|
||
|
||
**Returns**
|
||
|
||
The docplex model corresponding to this quadratic program.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – if non-supported elements (should never happen).
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-to-ising" />
|
||
|
||
### to\_ising
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.to_ising" signature="QuadraticProgram.to_ising()">
|
||
Return the Ising Hamiltonian of this problem.
|
||
|
||
**Returns**
|
||
|
||
The qubit operator for the problem offset: The constant value in the Ising Hamiltonian.
|
||
|
||
**Return type**
|
||
|
||
qubit\_op
|
||
|
||
**Raises**
|
||
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – If a variable type is not binary.
|
||
* [**QiskitOptimizationError**](qiskit.optimization.QiskitOptimizationError "qiskit.optimization.QiskitOptimizationError") – If constraints exist in the problem.
|
||
</Function>
|
||
|
||
<span id="qiskit-optimization-problems-quadraticprogram-write-to-lp-file" />
|
||
|
||
### write\_to\_lp\_file
|
||
|
||
<Function id="qiskit.optimization.problems.QuadraticProgram.write_to_lp_file" signature="QuadraticProgram.write_to_lp_file(filename)">
|
||
Writes the quadratic program to an LP file.
|
||
|
||
**Parameters**
|
||
|
||
**filename** (`str`) – The filename of the file the model is written to. If filename is a directory, file name ‘my\_problem.lp’ is appended. If filename does not end with ‘.lp’, suffix ‘.lp’ is appended.
|
||
|
||
**Raises**
|
||
|
||
* **OSError** – If this cannot open a file.
|
||
* **DOcplexException** – If filename is an empty string
|
||
|
||
**Return type**
|
||
|
||
`None`
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### linear\_constraints
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.linear_constraints">
|
||
Returns the list of linear constraints of the quadratic program.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`LinearConstraint`]
|
||
|
||
**Returns**
|
||
|
||
List of linear constraints.
|
||
</Attribute>
|
||
|
||
### linear\_constraints\_index
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.linear_constraints_index">
|
||
Returns the dictionary that maps the name of a linear constraint to its index.
|
||
|
||
**Return type**
|
||
|
||
`Dict`\[`str`, `int`]
|
||
|
||
**Returns**
|
||
|
||
The linear constraint index dictionary.
|
||
</Attribute>
|
||
|
||
### name
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.name">
|
||
Returns the name of the quadratic program.
|
||
|
||
**Return type**
|
||
|
||
`str`
|
||
|
||
**Returns**
|
||
|
||
The name of the quadratic program.
|
||
</Attribute>
|
||
|
||
### objective
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.objective">
|
||
Returns the quadratic objective.
|
||
|
||
**Return type**
|
||
|
||
`QuadraticObjective`
|
||
|
||
**Returns**
|
||
|
||
The quadratic objective.
|
||
</Attribute>
|
||
|
||
### quadratic\_constraints
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.quadratic_constraints">
|
||
Returns the list of quadratic constraints of the quadratic program.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`QuadraticConstraint`]
|
||
|
||
**Returns**
|
||
|
||
List of quadratic constraints.
|
||
</Attribute>
|
||
|
||
### quadratic\_constraints\_index
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.quadratic_constraints_index">
|
||
Returns the dictionary that maps the name of a quadratic constraint to its index.
|
||
|
||
**Return type**
|
||
|
||
`Dict`\[`str`, `int`]
|
||
|
||
**Returns**
|
||
|
||
The quadratic constraint index dictionary.
|
||
</Attribute>
|
||
|
||
### status
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.status">
|
||
Status of the quadratic program. It can be infeasible due to variable substitution.
|
||
|
||
**Return type**
|
||
|
||
`QuadraticProgramStatus`
|
||
|
||
**Returns**
|
||
|
||
The status of the quadratic program
|
||
</Attribute>
|
||
|
||
### variables
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.variables">
|
||
Returns the list of variables of the quadratic program.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`Variable`]
|
||
|
||
**Returns**
|
||
|
||
List of variables.
|
||
</Attribute>
|
||
|
||
### variables\_index
|
||
|
||
<Attribute id="qiskit.optimization.problems.QuadraticProgram.variables_index">
|
||
Returns the dictionary that maps the name of a variable to its index.
|
||
|
||
**Return type**
|
||
|
||
`Dict`\[`str`, `int`]
|
||
|
||
**Returns**
|
||
|
||
The variable index dictionary.
|
||
</Attribute>
|
||
</Class>
|
||
|