Skip to main content
IBM Quantum Platform

PiecewiseChebyshev

class qiskit.circuit.library.PiecewiseChebyshev(f_x, degree=None, breakpoints=None, num_state_qubits=None, name='pw_cheb')

GitHub

ベース: BlueprintCircuit

入力関数に対する区分的チェビシェフ近似。

与えられた関数 f(x)f(x) と次数 dd に対して、このクラスは与えられた区間上の f(x)f(x) に対する nn クビット上の区分多項式チェビシェフ近似を実装します。 近似の多項式はすべて次数 dd

パラメータの値は [1に従って]計算され、回路の構成とそれが量子ビットにどのように作用するかのより詳細な説明は [2を]参照。

例:

import numpy as np
from qiskit import QuantumCircuit
from qiskit.circuit.library.arithmetic.piecewise_chebyshev import PiecewiseChebyshev
f_x, degree, breakpoints, num_state_qubits = lambda x: np.arcsin(1 / x), 2, [2, 4], 2
pw_approximation = PiecewiseChebyshev(f_x, degree, breakpoints, num_state_qubits)
pw_approximation._build()
qc = QuantumCircuit(pw_approximation.num_qubits)
qc.h(list(range(num_state_qubits)))
qc.append(pw_approximation.to_instruction(), qc.qubits)
qc.draw(output='mpl')
先のコードで出力された回路図。

参照資料:

[1] ヘーナー, T., ロエテラー, M. および スヴォア, K. M. (2018). 算術演算のための量子回路の最適化。 arXiv:1805.12445

[2] カレラ・バスケス、A、 Hiptmair, H., & Woerner, S. (2022). リチャードソン外挿を用いた量子線形システムアルゴリズムの強化。 ACM Transactions on Quantum Computing 3, 1, Article 2

パラメーター

  • f_x (float | Callable[[int], float]) – 近似される関数。 定数関数は f_x = constant と指定する。
  • degree (int | None) – 多項式の次数。 デフォルトは1です。
  • breakpoints (list[int] | None) – ブレイクポイントで区分線形関数を定義する。 デフォルトはフルインターバル。
  • num_state_qubits (int | None) – 状態を表す量子ビットの数。
  • name (str) – 回路オブジェクトの名前。

属性

breakpoints

区分近似のブレークポイント。

戻り値

区分近似のブレークポイント。

degree

多項式の次数。

戻り値

多項式の次数。

f_x

近似される関数。

戻り値

近似される関数。

num_state_qubits

状態 x|x\rangle を表す状態量子ビットの数。

戻り値

状態量子ビットの数。

polynomials

区分近似の多項式。

戻り値

区分近似の多項式。

レイズ

TypeError - 入力関数が正しい形式でない場合。

name

タイプ: str

人間が読める回路名。

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。