量子ビット
qiskit_addon_sqd.qubit
量子サンプルを扱うための関数。
solve_qubit
solve_qubit(bitstring_matrix, hamiltonian, *, verbose=False, **scipy_kwargs)
部分空間に射影されたハミルトニアンのエネルギーと固有状態を求めよ。
この部分空間は、 bitstring_matrix のビット列(行)で指定される計算基底状態の集まりによって定義される。 ソルバーがその構造を必要とするため、 bitstring_matrix はこの関数でソートされ、重複が取り除かれる。
この関数は scipy.sparse.linalg.eigsh を呼び出す。
パラメーター
-
bitstring_matrix (ndarray) – 各行が1つのビット列を表すような、ビット値の
bool表現の 2D 配列。 このビット列のセットは、hamiltonianが投影され対角化される部分空間を指定する。 -
hamiltonian (SparsePauliOp) – パウリ演算子として指定されるハミルトニアン。
-
verbose (bool) – サブルーチンのステージを表示するかどうか。
-
**( 註 )
に渡すキーワード引数 scipy.sparse.linalg.eigsh.
戻り値
- 1D 配列の固有値
- 2D 配列に固有ベクトルを入れる。 各列は固有ベクトルを表す。
レイズ
ValueError - bitstring_matrix のビット列(行)は、長さが ˶< 64 でなければならない。
戻りの型
project_operator_to_subspace
project_operator_to_subspace(bitstring_matrix, hamiltonian, *, verbose=False)
bitstring_matrix の計算基底状態(行)によって定義されるヒルベルト部分空間にパウリ演算子を射影する。
出力スパース行列 A は、 NxN 行列 s.t を表す。 N は bitstring_matrix の行数である。 A の行は入力コンフィギュレーションを表し、列は対応する行のコンフィギュレーションに関連する連結コンポーネントを表す。 行列の非ゼロ要素は、連結成分に関連する複素振幅を表す。
bitstring_matrix のビット列は一意でなければならず、符号なし整数表現に従って昇順にソートされていなければならない。 さもなければ、投影は間違った結果を返す。 この関数は、一意性と順序を明示的にチェックしない。 を参照のこと。 qiskit_addon_sqd.qubit.sort_and_remove_duplicates() を参照のこと。ビット文字列行列が適切にフォーマットされていることを確認する簡単な方法がある。
この関数は、いくつかの計算を効率的に行うために jax 。 jax はビット配列を int64_t に変換する。つまり、 bitstring_matrix のビット配列は、 63 を超える長さを持つことはできない。
パラメーター
- bitstring_matrix (ndarray) – 各行が1つのビット列を表すような、ビット値の
bool表現の 2D 配列。 このビット列のセットは、hamiltonianが投影され対角化される部分空間を指定する。 - hamiltonian (SparsePauliOp) –
bitstring_matrixで定義されるヒルベルト部分空間に射影するパウリ演算子。 - verbose (bool) – サブルーチンのステージを表示するかどうか。
戻り値
A scipy.sparse.coo_matrix は部分空間に射影された演算子を表す。 行は入力コンフィギュレーションを表し、列は対応する行のコンフィギュレーションに関連する連結コンポーネントを表す。 行列の非ゼロ要素は、連結成分のペアに関連する複素振幅を表す。
レイズ
ValueError - bitstring_matrix のビット列(行)は、長さが ˶< 64 でなければならない。
戻りの型
スマトリックス
sort_and_remove_duplicates
sort_and_remove_duplicates(bitstring_matrix)
ビット文字列行列をソートし、重複するエントリを削除します。
最も低いビット列の値は、最もインデックスが低い行に配置される。
パラメーター
bitstring_matrix (ndarray) – 各行が1つのビット列を表すような、ビット値の bool 表現の 2D 配列。
戻り値
bitstring_matrix の並べ替えバージョンで、繰り返し行がない。
戻りの型
matrix_elements_from_pauli
matrix_elements_from_pauli(bitstring_matrix, pauli)
ビット列で定義される部分空間におけるパウリ作用素の疎行列要素を求める。
出力によって定義される疎行列 A は、 NxN 行列 s.t を表している。 N は bitstring_matrix の行数である。 A の行は入力コンフィギュレーションを表し、列は対応する行のコンフィギュレーションに関連する連結コンポーネントを表す。 出力配列はスパース行列 A を以下のように定義する:
A[rows[k], cols[k]] = amplutides[k].
bitstring_matrix のビット列は一意でなければならず、符号なし整数表現に従って昇順にソートされていなければならない。 さもなければ、投影は間違った結果を返す。 この関数は、一意性と順序を明示的にチェックしない。 を参照のこと。 qiskit_addon_sqd.qubit.sort_and_remove_duplicates() を参照のこと。ビット文字列行列が適切にフォーマットされていることを確認する簡単な方法がある。
この関数は、いくつかの計算を効率的に行うために jax 。 jax はビット配列を int64_t に変換する。つまり、 bitstring_matrix のビット配列は、 63 を超える長さを持つことはできない。
パラメーター
- bitstring_matrix (ndarray) – 各行が1つのビット列を表すような、ビット値の
bool表現の 2D 配列。 行列内のビット列は、符号なし整数表現に従ってソートされていなければならない。 さもなければ、投影は間違った結果を返す。 - pauli (Pauli) – 連結要素を見つけるためのパウリ演算子
戻り値
- ゼロでない行列要素に対応する複素振幅
- 非ゼロの行列要素に対応する行インデックス
- 行列の非ゼロ要素に対応する列インデックス
レイズ
ValueError - bitstring_matrix のビット列(行)は、長さが ˶< 64 でなければならない。
戻りの型