QuadraticForm
class qiskit.circuit.library.QuadraticForm(num_result_qubits=None, quadratic=None, linear=None, offset=None, little_endian=True)
Bases: QuantumCircuit
Implementa uma forma quadrática em variáveis binárias codificadas em registros de qubit.
Uma forma quadrática em variáveis binárias é uma função quadrática que atua em uma variável binária de bits, . Para uma matriz inteira , um vetor inteiro e um inteiro , a função pode ser escrita como
Se , ou contiverem valores escalares, esse circuito calculará apenas uma aproximação da forma quadrática.
Fornecido com qubits para codificar o valor, esse circuito calcula em uma representação [de complemento de dois] ( https://stackoverflow.com/questions/1049722/what-is-twos-complement ).
Como usamos o complemento de dois, por exemplo, o valor de requer 2 bits para representar o valor e 1 bit para o sinal: 3 = '011', em que o primeiro 0 indica um valor positivo. Por outro lado, seria -3 = '101', em que o primeiro 1 indica um valor negativo e 01 é o complemento de dois de 3.
Se o valor de for muito grande para ser representado com m qubits, a cadeia de bits resultante será .
A implementação desse circuito é discutida em [1], Fig. 6.
Referências
[1] Gilliam et al, Grover Adaptive Search for Constrained Polynomial Binary Optimization (Pesquisa adaptativa de Grover para otimização binária polinomial restrita). arXiv:1912.04088
A classe qiskit.circuit.library.arithmetic.quadratic_form.QuadraticForm está obsoleta desde o Qiskit 2.1. Ele será removido do Qiskit 3.0. Em vez disso, use o site QuadraticFormGate.
Parâmetros
- num_result_qubits (int | None) – O número de qubits necessários para codificar o resultado. Chamado de na documentação da classe.
- quadratic (np.ndarray | list[list[float |ParameterExpression]] | None) – Uma matriz contendo os coeficientes quadráticos, .
- linear (np.ndarray | list[float |ParameterExpression] | None) – Uma matriz contendo os coeficientes lineares, .
- offset (float |ParameterExpression | None) – Um deslocamento constante, .
- little_endian (bool) – Codificar o resultado com pouca endianidade.
Aumentos
- ValueError - Se
linearequadratictiverem tamanhos incompatíveis. - ValueError - Se
num_result_qubitsnão for especificado, mas não puder ser determinado porque alguns valores da forma quadrática são parametrizados.
Atributos
name
Tipo: str
Um nome legível por humanos para o circuito.
Exemplo
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuitMétodos
required_result_qubits
static required_result_qubits(quadratic, linear, offset)
Obtenha o número de qubits de resultado necessários.
Parâmetros
- quadratic (ndarray |list[list[float]]) – Uma matriz que contém os coeficientes quadráticos.
- linear (ndarray |list[float]) – Uma matriz que contém os coeficientes lineares.
- offset (float) – Um deslocamento constante.
Retorna
O número de qubits necessários para representar o valor da forma quadrática no complemento de dois.
Tipo de retorno