WeightedAdder
class qiskit.circuit.library.WeightedAdder(num_state_qubits=None, weights=None, name='adder')
Bases : BlueprintCircuit
Un circuit pour calculer la somme pondérée des registres de qubits.
Étant donné les états de base des qubits et les poids entiers non négatifs , ce circuit effectue l'opération suivante
où est le nombre de qubits de somme requis. Cette valeur peut être calculée comme suit
ou si la somme des poids est égale à 0 (l'expression du logarithme n'est alors pas valide).
Pour les qubits d'un schéma de circuit, le premier poids s'applique au qubit le plus élevé. Pour un exemple où l'état de 4 qubits est ajouté dans un registre de somme, le circuit peut être schématisé comme suit
┌────────┐
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 ├
└────────┘Paramètres
- num_state_qubits (int | None) – Le nombre de qubits d'état.
- weights (list[int] | None) – Liste des poids, un pour chaque qubit d'état. Si aucune valeur n'est fournie, la valeur par défaut est 1 pour chaque qubit.
- name (str) – Le nom du circuit.
Attributs
num_carry_qubits
Le nombre de qubits de report nécessaires pour calculer la somme.
Notez que ce nombre n'est pas nécessairement égal au nombre de qubits ancillaires, qui peuvent être interrogés à l'aide de num_ancilla_qubits.
Retours
Le nombre de qubits de report nécessaires pour calculer la somme.
num_control_qubits
Le nombre de qubits de contrôle supplémentaires requis.
Notez que le nombre total de qubits ancillaires peut être obtenu en appelant la méthode num_ancilla_qubits.
Retours
Le nombre de qubits de contrôle supplémentaires requis (0 ou 1).
num_state_qubits
Le nombre de qubits à additionner.
Retours
Le nombre de qubits d'état.
num_sum_qubits
Le nombre de qubits de somme dans le circuit.
Retours
Le nombre de qubits nécessaires pour représenter la somme pondérée des qubits.
weights
Les poids des états des qubits.
Retours
Le poids des états du qubit.
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_circuit