WeightedAdder
class qiskit.circuit.library.WeightedAdder(num_state_qubits=None, weights=None, name='adder')
Basen: BlueprintCircuit
Eine Schaltung zur Berechnung der gewichteten Summe von Qubit-Registern.
Bei Qubit-Basiszuständen und nichtnegativen ganzzahligen Gewichten führt diese Schaltung die folgende Operation durch
wobei die Anzahl der benötigten Summenqubits ist. Dies kann wie folgt berechnet werden
oder , wenn die Summe der Gewichte 0 ist (dann ist der Ausdruck im Logarithmus ungültig).
Bei Qubits in einem Schaltplan gilt das erste Gewicht für das oberste Qubit. Für ein Beispiel, bei dem der Zustand von 4 Qubits in einem Summenregister addiert wird, kann die Schaltung schematisch wie folgt gezeichnet werden
┌────────┐
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 ├
└────────┘Parameter
- num_state_qubits (int | None) – Die Anzahl der Zustandsqubits.
- weights (list[int] | None) – Liste der Gewichte, eines für jedes Zustandsqubit. Wenn keine angegeben werden, wird standardmäßig für jedes Qubit der Wert 1 verwendet.
- name (str) – Der Name des Stromkreises.
Attribute
num_carry_qubits
Die Anzahl der Carry-Qubits, die zur Berechnung der Summe erforderlich sind.
Beachten Sie, dass dies nicht unbedingt gleich der Anzahl der Ancilla-Qubits ist, diese können mit num_ancilla_qubits abgefragt werden.
Rückgabe
Die Anzahl der Carry-Qubits, die zur Berechnung der Summe erforderlich sind.
num_control_qubits
Die Anzahl der zusätzlich benötigten Kontrollqubits.
Man beachte, dass die Gesamtzahl der Ancilla-Qubits durch Aufruf der Methode num_ancilla_qubits ermittelt werden kann.
Rückgabe
Die Anzahl der zusätzlich benötigten Steuerqubits (0 oder 1).
num_state_qubits
Die Anzahl der zu summierenden Qubits.
Rückgabe
Die Anzahl der Zustandsqubits.
num_sum_qubits
Die Anzahl der Summenqubits in der Schaltung.
Rückgabe
Die Anzahl der Qubits, die benötigt wird, um die gewichtete Summe der Qubits darzustellen.
weights
Die Gewichte für die Qubitzustände.
Rückgabe
Das Gewicht für die Qubitzustände.
name
Typ: str
Ein von Menschen lesbarer Name für den Stromkreis.
Beispiel
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit