Skip to main content
IBM Quantum Platform

RGQFTMultiplikator

class qiskit.circuit.library.RGQFTMultiplier(num_state_qubits, num_result_qubits=None, name='RGQFTMultiplier')

GitHub

Basen: Multiplier

Eine QFT-Multiplikationsschaltung zur Speicherung des Produkts zweier Eingangsregister an einer anderen Stelle.

Die Multiplikation in dieser Schaltung wird nach dem in Abb. 3 in [1] dargestellten Verfahren realisiert, wobei die Rotationen der gewichteten Summe wie in Abb. 5 in [1] dargestellt umgesetzt werden. Die QFT wird auf das Ausgaberegister angewendet, worauf Rotationen folgen, die durch Eingaberegister gesteuert werden. Die Rotationen wandeln den Zustand in das Produkt zweier Eingangsregister in der QFT-Basis um, das mithilfe der inversen QFT wieder in die QFT-Basis zurückgeführt wird.

Ein Beispiel für eine Schaltung, die eine modulare QFT-Multiplikation an zwei Eingangsregistern mit jeweils 2 Qubits und einem Ausgangsregister mit 2 Qubits durchführt, sieht wie folgt aus:

  a_0: ────────────────────────────────────────■───────■──────■──────■────────────────
                                               │       │      │      │
  a_1: ─────────■───────■───────■───────■──────┼───────┼──────┼──────┼────────────────
                │       │       │       │      │       │      │      │
  b_0: ─────────┼───────┼───────■───────■──────┼───────┼──────■──────■────────────────
                │       │       │       │      │       │      │      │
  b_1: ─────────■───────■───────┼───────┼──────■───────■──────┼──────┼────────────────
       ┌──────┐ │P(4π)  │       │P(2π)  │      │P(2π)  │      │P(π)  │       ┌───────┐
out_0: ┤0     ├─■───────┼───────■───────┼──────■───────┼──────■──────┼───────┤0      ├
       │  qft │         │P(2π)          │P(π)          │P(π)         │P(π/2) │  iqft │
out_1: ┤1     ├─────────■───────────────■──────────────■─────────────■───────┤1      ├
       └──────┘                                                              └───────┘
Siehe auch

Das MultiplierGate Objekt stellt eine Multiplikation dar, genau wie diese Schaltungsklasse, ermöglicht es dem Compiler jedoch, je nach Kontext die optimale Zerlegung auszuwählen. Konkrete Implementierungen können über die Option festgelegt HLSConfig werden, z. B. kann diese Schaltung über die Option ausgewählt Multiplier=["qft_r17"] werden.

Quellenangaben:

[1] Ruiz-Perez et al, Quantenarithmetik mit der Quanten-Fourier-Transformation, 2017. arXiv:1411.5949

Parameter

  • num_state_qubits (int) – Die Anzahl der Qubits in einem der beiden Eingangsregister für den Zustand ∣a⟩|a\rangle oder ∣b⟩|b\rangle. Die beiden Eingangsregister müssen die gleiche Anzahl von Qubits haben.
  • num_result_qubits (int | None) – Die Anzahl der Ergebnis-Qubits, auf die die Ausgabe beschränkt werden soll. Wenn die Anzahl der Ergebnis-Qubits nn ist, wird die Multiplikation modulo 2n2^n durchgeführt, um die Ausgabe auf die angegebene Anzahl von Qubits zu begrenzen. Der Standardwert ist 2 * num_state_qubits , um jedes mögliche Ergebnis der Multiplikation der beiden Eingänge darzustellen.
  • name (str) – Der Name des Schaltkreisobjekts.

Attribute

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
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.