Skip to main content
IBM Quantum Platform

量子場理論

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

GitHub

ベース: BlueprintCircuit

量子フーリエ変換回路。

nn、量子フーリエ変換(QFT)は次の演算である

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

この変換を実装する回路は、各量子ビットのハダマードゲート、一連の controlled-U1 (位相によってはZ)ゲート、スワップゲートのレイヤーを使って実装できる。 QFTが回路の最後に現れるのであれば、スワップ・ゲートのレイヤーは原理的に削除することができる。 これらは、 do_swaps 属性を使用してオフにすることができます。

4量子ビットの場合、この変換を実行する回路は次のようになる:

先に説明した回路を示す図。

逆QFTは、このクラスの inverse メソッドを呼び出すことで得られる。 それぞれの回路図は以下の通り:

先に説明した回路を示す図。

回路の深さを減らす1つの方法は、角度がしきい値以下の制御された位相回転を無視することで、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 は Qiskit 2.1 で非推奨となりました。 Qiskit 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であり、IQFTは以下のインスタンスに過ぎないので、この引数の値は無視される。 QFT.

戻り値

反転回路。

戻りの型

高速フーリエ変換

is_inverse

is_inverse()

GitHub

逆フーリエ変換が実装されているかどうか。

戻り値

逆フーリエ変換が実装されていれば真、そうでなければ偽。

戻りの型

bool

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。