QuadraticForm
class qiskit.circuit.library.QuadraticForm(num_result_qubits=None, quadratic=None, linear=None, offset=None, little_endian=True)
ベース: QuantumCircuit
量子ビットレジスタにエンコードされた2値変数に2次形式を実装する。
2進変数上の2次形式とは、 ビットの2進変数 に作用する2次関数 のことである。整数行列 、整数ベクトル 、整数 の場合、関数は次のように書ける
, または にスカラー値が含まれている場合、この回路は2次形式の近似値のみを計算する。
この回路は、値をエンコードするための 量子ビットを与えられ、 を [2の補数表現] ( https://stackoverflow.com/questions/1049722/what-is-twos-complement )表現で計算する。
2の補数を使うので、例えば の値を表すには2ビット、符号には1ビットが必要である。 一方、 は、 -3 = '101'となり、最初の1は負の値を示し、01は3の2の補数である。
もし の値が大きすぎてm量子ビットで表現できない場合、結果のビット列は 。
この回路の実装については、 [1]、図6で説明する。
参照資料:
[1] ギリアムら 制約付き多項式2値最適化のためのグローバー適応探索. arXiv:1912.04088
クラス qiskit.circuit.library.arithmetic.quadratic_form.QuadraticForm は Qiskit 2.1 で非推奨となりました。 削除されます Qiskit 3.0。 代わりに QuadraticFormGate。
パラメーター
- num_result_qubits (int | None) – 結果を符号化するために必要な量子ビットの数。 クラスのドキュメントでは「 」と呼ばれています。
- quadratic (np.ndarray | list[list[float |ParameterExpression]] | None) – 二次係数を含む行列、 。
- linear (np.ndarray | list[float |ParameterExpression] | None) – 線形係数を含む配列、 。
- offset (float |ParameterExpression | None) – 定数オフセット、 。
- little_endian (bool) – 結果をリトルエンディアンでエンコードする。
レイズ
- ValueError -
linearとquadraticのサイズが不一致の場合。 - ValueError - 二次形式のいくつかの値がパラメータ化されているため、
num_result_qubitsが指定されていないが決定できない場合。
属性
name
タイプ: str
人間が読める回路名。
例
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit