WeightedAdder
class qiskit.circuit.library.WeightedAdder(num_state_qubits=None, weights=None, name='adder')
Bases: BlueprintCircuit
Um circuito para computar a soma ponderada de registros de qubit.
Dados os estados da base do qubit e os pesos inteiros não negativos , esse circuito executa a operação
em que é o número de qubits de soma necessários. Isso pode ser calculado como
ou se a soma dos pesos for 0 (então a expressão no logaritmo é inválida).
Para qubits em um diagrama de circuito, o primeiro peso se aplica ao qubit mais alto. Para um exemplo em que o estado de 4 qubits é adicionado a um registro de soma, o circuito pode ser desenhado esquematicamente como
┌────────┐
state_0: ┤0 ├ | state_0 * weights[0]
│ │ |
state_1: ┤1 ├ | + state_1 * weights[1]
│ │ |
state_2: ┤2 ├ | + state_2 * weights[2]
│ │ |
state_3: ┤3 ├ | + state_3 * weights[3]
│ │
sum_0: ┤4 ├ |
│ Adder │ |
sum_1: ┤5 ├ | = sum_0 * 2^0 + sum_1 * 2^1 + sum_2 * 2^2
│ │ |
sum_2: ┤6 ├ |
│ │
carry_0: ┤7 ├
│ │
carry_1: ┤8 ├
│ │
control_0: ┤9 ├
└────────┘Parâmetros
- num_state_qubits (int | None) – O número de qubits de estado.
- weights (list[int] | None) – Lista de pesos, um para cada qubit de estado. Se nenhum valor for fornecido, o padrão será 1 para cada qubit.
- name (str) – O nome do circuito.
Atributos
num_carry_qubits
O número de qubits de transporte necessários para computar a soma.
Observe que isso não é necessariamente igual ao número de qubits de ancilla, que podem ser consultados usando num_ancilla_qubits.
Retorna
O número de qubits de transporte necessários para computar a soma.
num_control_qubits
O número de qubits de controle adicionais necessários.
Observe que o número total de qubits de ancilla pode ser obtido chamando o método num_ancilla_qubits.
Retorna
O número de qubits de controle adicionais necessários (0 ou 1).
num_state_qubits
O número de qubits a serem somados.
Retorna
O número de qubits de estado.
num_sum_qubits
O número de qubits de soma no circuito.
Retorna
O número de qubits necessários para representar a soma ponderada dos qubits.
weights
Os pesos para os estados do qubit.
Retorna
O peso para os estados do qubit.
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_circuit