LinearAmplitudeFunction
class qiskit.circuit.library.LinearAmplitudeFunction(num_state_qubits, slope, offset, domain, image, rescaling_factor=1, breakpoints=None, name='F')
ベース: QuantumCircuit
量子ビットの振幅に対する(区分的)線形関数を実装した回路。
関数 の振幅関数 は写像である
ここで は の量子ビット状態である。
この回路は、区分線形関数 に対して を実装します。この場合、マッピング はテイラー展開と線形制御されたパウリ-Y回転を用いて近似的に実装できます。詳細は [1, 2 を]参照してください。 この近似では、 rescaling_factor を使ってテイラー展開の精度を決定する。
一般に、関心関数 は、区間 、区間 domain から区間 、区間 image、区間 から区間 の代わりに定義される。アフィン変換を使えば、区間 から区間 を再スケールすることができる:
への
が、 間隔 で、傾き とオフセット を持つ区分線形関数である場合、次のように書くことができる
ここで、 は、引数が区間 に属する場合に 1 となり、それ以外の場合は 0 となる指示関数である。 のブレークポイントは、引数 breakpoints で指定できます。
参照資料:
[1] ヴェルナー, S., & エガー, D. J. (2018). 量子リスク分析。 arXiv:1806.06893
[2] ガコン, J., Zoufal, C. および Woerner, S. (2020). 量子技術を活用したシミュレーションベースの最適化。 arXiv:2005.10780
クラス qiskit.circuit.library.arithmetic.linear_amplitude_function.LinearAmplitudeFunction は Qiskit 2.2 で非推奨となりました。 Qiskit 3.0 で削除されます。 代わりにクラス qiskit.circuit.library.LinearAmplitudeFunctionGate。
パラメーター
- num_state_qubits (int) – 変数 をエンコードするのに使われる量子ビットの数。
- slope (float |list[float]) – 一次関数の傾き。 区分線形関数の場合は、傾きのリスト。
- offset (float |list[float]) – 線形関数のオフセット。 区分線形関数の場合は、オフセットのリストにすることができる。
- domain (tuple[float, float]) – タプルとしての関数のドメイン 。
- image (tuple[float, float]) – タプルとしての関数のイメージ 。
- rescaling_factor (float) – テイラー近似の精度を調整するための再スケーリング係数。
- breakpoints (list[float] | None) – 関数が区分線形である場合のブレークポイント。 None の場合、関数は区分的でない。
- name (str) – サーキットの名称
属性
name
タイプ: str
人間が読める回路名。
例
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit