Skip to main content
IBM Quantum Platform

qft

class qiskit.circuit.library.QFT(num_qubits=None, approximation_degree=0, do_swaps=True, inverse=False, insert_barriers=False, name=None)

GitHub

베이스: BlueprintCircuit

양자 푸리에 변환 회로.

양자 푸리에 변환(QFT)은 nn 큐비트에서 다음과 같은 연산을 수행합니다

j12n/2k=02n1e2πijk/2nk|j\rangle \mapsto \frac{1}{2^{n/2}} \sum_{k=0}^{2^n - 1} e^{2\pi ijk / 2^n} |k\rangle

이 변환을 구현하는 회로는 각 큐비트에 있는 Hadamard 게이트, 일련의 controlled-U1 (또는 위상에 따라 Z) 게이트, 스왑 게이트 레이어를 사용하여 구현할 수 있습니다. 스왑 게이트 레이어는 원칙적으로 회로 끝에 QFT가 나타나면 삭제할 수 있으며, 그러면 재주문은 고전적으로 수행될 수 있기 때문입니다. do_swaps 속성을 사용하여 해제할 수 있습니다.

4 큐비트의 경우, 이 변환을 구현하는 회로는 다음과 같습니다:

앞서 설명한 회로를 보여주는 다이어그램입니다.

이 클래스에서 inverse 메서드를 호출하면 역 QFT를 얻을 수 있습니다. 각 회로도는 다음과 같습니다:

앞서 설명한 회로를 보여주는 다이어그램입니다.

회로 깊이를 줄이는 한 가지 방법은 각도가 임계값 미만인 제어 위상 회전을 무시하여 대략적으로 QFT를 구현하는 것입니다. 이에 대한 자세한 내용은 https://arxiv.org/abs/quant-ph/9601018 또는 https://arxiv.org/abs/quant-ph/0403071.

여기서는 approximation_degree 속성을 사용하여 조정할 수 있습니다. 가장 작은 approximation_degree 회전 각도가 QFT에서 삭제됩니다. 예를 들어, 근사도 2의 5 큐비트에 대한 QFT가 산출됩니다(이 예에서는 배리어가 제거됨):

앞서 설명한 회로를 보여주는 다이어그램입니다.
버전부터 사용되지 않음 2.1

qiskit.circuit.library.basis_change.qft.QFT 클래스는 키스킷 2.1 에서 더 이상 사용되지 않습니다. 키스킷 3.0 에서 제거됩니다. ('모든 이전 인수에 액세스하려면 qiskit.circuit.library.QFTGate 또는 qiskit.synthesis.qft.synth_qft_full 대신 사용하세요.',)

매개변수

  • num_qubits (int | None) – QFT가 작동하는 큐비트 수입니다.
  • approximation_degree (int) – 근사치 정도입니다(근사치가 없는 경우 0).
  • do_swaps (bool) – QFT에 최종 스왑을 포함할지 여부입니다.
  • inverse (bool) – True이면 역 푸리에 변환이 구성됩니다.
  • insert_barriers (bool) – True이면 시각화 개선 사항으로 장벽이 삽입됩니다.
  • name (str) – 회로의 이름.

속성

approximation_degree

QFT의 근사도입니다.

리턴

현재 설정된 근사도입니다.

do_swaps

QFT의 최종 스왑이 적용되는지 여부입니다.

리턴

최종 스왑이 적용되면 참이고, 적용되지 않으면 거짓입니다.

insert_barriers

더 나은 시각화를 위해 장벽을 삽입했는지 여부.

리턴

장벽이 삽입되면 참이고, 삽입되지 않으면 거짓입니다.

num_qubits

QFT 회로의 큐비트 수입니다.

리턴

회로의 큐비트 수입니다.

name

유형: str

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

예제

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit

메소드

inverse

inverse(annotated=False)

GitHub

이 회로를 뒤집습니다.

매개변수

annotated (bool) – 는 역 게이트가 주석이 달린 게이트로 구현될 수 있는지 여부를 나타냅니다. 이 인수의 값은 QFT의 역이 IQFT이므로 무시됩니다 QFT.

리턴

반전된 회로.

리턴 유형

QFT

is_inverse

is_inverse()

GitHub

역 푸리에 변환이 구현되었는지 여부입니다.

리턴

역 푸리에 변환이 구현되면 참이고, 그렇지 않으면 거짓입니다.

리턴 유형

부울

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.