Skip to main content
IBM Quantum Platform

RGQFTM배율

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

GitHub

베이스: Multiplier

두 입력 레지스터의 곱셈을 제자리에 저장하는 QFT 곱셈 회로입니다.

이 회로에서 곱셈 연산은 [[1] ]의 그림 3에 제시된 절차를 사용하여 구현되며, 가중 합 회전 연산은 [[1]] 의 그림 5에 제시된 방식대로 구현된다. QFT는 출력 레지스터에 적용되며, 그 다음에는 입력 레지스터에 의해 제어되는 회전 연산이 수행됩니다. 회전 연산은 상태를 QFT 기저에서 두 입력 레지스터의 곱으로 변환하며, 이는 역 QFT를 사용하여 QFT 기저로 되돌려집니다.

예를 들어, 2 큐비트 크기의 두 입력 레지스터에 대해 모듈식 양자장론(QFT) 곱셈 연산을 수행하고 2 큐비트 크기의 출력 레지스터를 갖는 회로는 다음과 같습니다:

  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      ├
       └──────┘                                                              └───────┘
관련 참조

MultiplierGate 객체는 이 회로 클래스처럼 곱셈 연산을 나타내지만, 컴파일러가 문맥에 따라 최적의 분해 방식을 선택할 수 있도록 합니다. 구체적인 구현 방식은 을 통해 HLSConfig설정할 수 있으며, 예를 들어 이 회로는 을 통해 선택할 수 Multiplier=["qft_r17"] 있습니다.

참조 자료:

[1] 루이즈-페레즈 외., 양자 푸리에 변환을 이용한 양자 연산, 2017. arXiv:1411.5949

매개변수

  • num_state_qubits (int) – 상태 a|a\rangle 또는 b|b\rangle 에 대한 입력 레지스터의 큐비트 수. 두 입력 레지스터는 동일한 수의 큐비트를 가져야 합니다.
  • num_result_qubits (int | None) – 출력을 제한할 결과 큐비트 수입니다. 결과 큐비트 수가 nn 인 경우 곱셈 모듈러 2n2^n 를 수행하여 출력을 지정된 큐비트 수로 제한합니다. 기본값은 2 * num_state_qubits 으로 두 입력값의 곱셈으로 가능한 모든 결과를 나타냅니다.
  • name (str) – 회로 개체의 이름입니다.

속성

name

유형: str

사람이 읽을 수 있는 회로의 이름입니다.

예제

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.