QuadraticForm
class qiskit.circuit.library.QuadraticForm(num_result_qubits=None, quadratic=None, linear=None, offset=None, little_endian=True)
Bases : QuantumCircuit
Met en œuvre une forme quadratique sur des variables binaires encodées dans des registres de qubits.
Une forme quadratique sur les variables binaires est une fonction quadratique agissant sur une variable binaire de bits, . Pour une matrice entière , un vecteur entier et un entier , la fonction peut être écrite comme suit
Si , ou contiennent des valeurs scalaires, ce circuit ne calcule qu'une approximation de la forme quadratique.
Muni de qubits pour coder la valeur, ce circuit calcule en représentation [complémentaire à deux] ( https://stackoverflow.com/questions/1049722/what-is-twos-complement ).
Comme nous utilisons le complément à deux, par exemple la valeur de nécessite 2 bits pour représenter la valeur et 1 bit pour le signe : 3 = '011' où le premier 0 indique une valeur positive. En revanche, serait -3 = '101', où le premier 1 indique une valeur négative et 01 est le complément à deux de 3.
Si la valeur de est trop grande pour être représentée par m qubits, la chaîne de bits résultante est .
La mise en œuvre de ce circuit est décrite au point [1], Fig. 6.
Références :
[1] Gilliam et al, Grover Adaptive Search for Constrained Polynomial Binary Optimization (Recherche adaptative de Grover pour l'optimisation binaire polynomiale contrainte). arXiv:1912.04088
La classe qiskit.circuit.library.arithmetic.quadratic_form.QuadraticForm est obsolète depuis Qiskit 2.1. Il sera supprimé Qiskit 3.0. Utilisez plutôt le site QuadraticFormGate.
Paramètres
- num_result_qubits (int | None) – Le nombre de qubits nécessaires pour coder le résultat. Appelée « » dans la documentation de la classe.
- quadratic (np.ndarray | list[list[float |ParameterExpression]] | None) – Une matrice contenant les coefficients quadratiques, .
- linear (np.ndarray | list[float |ParameterExpression] | None) – Un tableau contenant les coefficients linéaires, .
- offset (float |ParameterExpression | None) – Un décalage constant, .
- little_endian (bool) – Encoder le résultat en peu d'endianness.
Augmentations
- ValueError - Si
linearetquadraticont des tailles différentes. - ValueError - Si
num_result_qubitsn'est pas spécifié mais ne peut être déterminé parce que certaines valeurs de la forme quadratique sont paramétrées.
Attributs
name
Type : str
Un nom lisible par l'homme pour le circuit.
Exemple
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuitMéthodes
required_result_qubits
static required_result_qubits(quadratic, linear, offset)
Obtenir le nombre de qubits de résultat requis.
Paramètres
- quadratic (ndarray |list[list[float]]) – Une matrice contenant les coefficients du second degré.
- linear (ndarray |list[float]) – Un tableau contenant les coefficients linéaires.
- offset (float) – Un décalage constant.
Retours
Le nombre de qubits nécessaires pour représenter la valeur de la forme quadratique en complément à deux.
Type de retour