量子場理論
class qiskit.circuit.library.QFT(num_qubits=None, approximation_degree=0, do_swaps=True, inverse=False, insert_barriers=False, name=None)
ベース: BlueprintCircuit
量子フーリエ変換回路。
、量子フーリエ変換(QFT)は次の演算である
この変換を実装する回路は、各量子ビットのハダマードゲート、一連の 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を行うと、次のようになる(この例では障壁を取り除いた):

クラス 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)
この回路を反転させる。
パラメーター
annotated (bool) – は、逆ゲートが注釈付きゲートとして実装できるかどうかを示す。 QFTの逆引きはIQFTであり、IQFTは以下のインスタンスに過ぎないので、この引数の値は無視される。 QFT.
戻り値
反転回路。
戻りの型