WeightedAdder
class qiskit.circuit.library.WeightedAdder(num_state_qubits=None, weights=None, name='adder')
Bases: BlueprintCircuit
Un circuito para calcular la suma ponderada de registros de qubits.
Dados estados base qubit y pesos enteros no negativos , este circuito realiza la operación
donde es el número de qubits de suma necesarios. Se puede calcular como
o si la suma de los pesos es 0 (entonces la expresión del logaritmo no es válida).
Para los qubits de un circuito, el primer peso se aplica al qubit superior. Para un ejemplo en el que el estado de 4 qubits se suma en un registro de suma, el circuito puede dibujarse esquemáticamente 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) – El número de qubits de estado.
- weights (list[int] | None) – Lista de pesos, uno por cada qubit de estado. Si no se especifica ningún valor, el valor predeterminado es 1 para cada qubit.
- name (str) – El nombre del circuito.
Atributos
num_carry_qubits
El número de qubits de acarreo necesarios para calcular la suma.
Tenga en cuenta que esto no es necesariamente igual al número de qubits ancilla, estos pueden ser consultados utilizando num_ancilla_qubits.
Devuelve
El número de qubits de acarreo necesarios para calcular la suma.
num_control_qubits
El número de qubits de control adicionales necesarios.
Obsérvese que el número total de qubits ancilla puede obtenerse llamando al método num_ancilla_qubits.
Devuelve
El número de qubits de control adicionales necesarios (0 o 1).
num_state_qubits
El número de qubits que hay que sumar.
Devuelve
El número de qubits de estado.
num_sum_qubits
El número de qubits de suma en el circuito.
Devuelve
El número de qubits necesarios para representar la suma ponderada de los qubits.
weights
Los pesos de los estados de los qubits.
Devuelve
El peso de los estados qubit.
name
Tipo: str
Un nombre legible para el circuito.
Ejemplo
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit