QuadraticForm
class qiskit.circuit.library.QuadraticForm(num_result_qubits=None, quadratic=None, linear=None, offset=None, little_endian=True)
Basi: QuantumCircuit
Implementa una forma quadratica su variabili binarie codificate in registri di qubit.
Una forma quadratica su variabili binarie è una funzione quadratica che agisce su una variabile binaria di bit, . Per una matrice intera , un vettore intero e un intero la funzione può essere scritta come
Se , o contengono valori scalari, questo circuito calcola solo un'approssimazione della forma quadratica.
Dotato di qubit per codificare il valore, questo circuito calcola nella rappresentazione [a complemento di due] ( https://stackoverflow.com/questions/1049722/what-is-twos-complement ).
Poiché utilizziamo il complemento a due, ad esempio il valore di richiede 2 bit per rappresentare il valore e 1 bit per il segno: 3 = '011', dove il primo 0 indica un valore positivo. D'altra parte, sarebbe -3 = '101', dove il primo 1 indica un valore negativo e 01 è il complemento a due di 3.
Se il valore di è troppo grande per essere rappresentato con m qubit, la stringa di bit risultante è .
L'implementazione di questo circuito è illustrata nella [1], Fig. 6.
Riferimenti:
[1] Gilliam et al, Ricerca adattiva di Grover per l'ottimizzazione binaria polinomiale vincolata. arXiv:1912.04088
La classe qiskit.circuit.library.arithmetic.quadratic_form.QuadraticForm è deprecata a partire da Qiskit 2.1. Verrà rimosso Qiskit 3.0. Utilizzate invece il sito QuadraticFormGate.
Parametri
- num_result_qubits (int | None) – Il numero di qubit necessari per codificare il risultato. Chiamato " " nella documentazione del corso.
- quadratic (np.ndarray | list[list[float |ParameterExpression]] | None) – Una matrice contenente i coefficienti quadratici, .
- linear (np.ndarray | list[float |ParameterExpression] | None) – Un array contenente i coefficienti lineari, .
- offset (float |ParameterExpression | None) – Un offset costante, .
- little_endian (bool) – Codificare il risultato con poca endianness.
Aumenti
- ValueError - Se
linearequadratichanno dimensioni diverse. - ValueError - Se
num_result_qubitsnon è specificato ma non può essere determinato perché alcuni valori della forma quadratica sono parametrizzati.
Attributi
name
Tipo: str
Un nome leggibile per il circuito.
Esempio
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuitMetodi
required_result_qubits
static required_result_qubits(quadratic, linear, offset)
Ottenere il numero di qubit di risultato richiesti.
Parametri
- quadratic (ndarray |list[list[float]]) – Una matrice contenente i coefficienti del secondo grado.
- linear (ndarray |list[float]) – Un array contenente i coefficienti lineari.
- offset (float) – Un offset costante.
Risultati
Il numero di qubit necessari per rappresentare il valore della forma quadratica in complemento a due.
Tipo di restituzione