Z2Symmetries
class qiskit.quantum_info.Z2Symmetries(symmetries, sq_paulis, sq_list, tapering_values=None, *, tol=1e-14)
ベース: object
$Z_2$ 対称性コンバータは、問題のハミルトニアンから対称性を識別し、それを用いて、この問題に対するポーリスのような演算子のテーパー表現(より効率的な表現)を提供する。 特定された対称性ごとに、2つの対称セクタ(対称性の2つの可能な固有値-テーパリング値-)をテストしなければならないという代償を払って、1つの量子ビットをパウリ表現で排除することができる。 主オペレータの基底状態を求めるような特定の問題では、解の対称セクタを先験的に特定することができるため、計算オーバーヘッドを効果的に削減することができる。
Z2Symmetries オブジェクトが構築されると、以下のアトリビュートを読み込んで更新することができる。
tapering_values
tol
参考文献
[1] : Bravyi, S、 et al, "Tapering off qubits to simulate fermionic Hamiltonians" (フェルミオンのハミルトニアンをシミュレートするための量子ビットのテーパリング)。
パラメーター
- symmetries (Iterable[Pauli]) – $Z_2$ の対称性のリストを表すオブジェクト。 tau_1 tau_2dots これらは対称群の生成子に対応する。
- sq_paulis (Iterable[Pauli]) – {q(i)}{jneq i} 対称性と反交流し、他のすべての対称性と交 通する単一量子ビットパウリ演算子のリストを表すオブジェクト。これらの作用素を用いてユニタリー・クリフォード作用素を構成する。
- sq_list (Iterable[int]) – クリフォード作用素を構築するのに使われる1量子ビットパウリ作用素の添字のリスト。
- tapering_values (Iterable[int] | None) – 各対称性の対称セクターを決定する固有値のリスト。
- tol (float) – 係数の実数部と複素数部を無視するための許容閾値。
レイズ
QiskitError - 無効なパウリ。 対称性、単一量子ビット・サポート・ポーリスとテーパリング値のリストは同じ長さでなければならない。 この長さは、適用された対称性の数であり、排除された量子ビットの数に直接変換される。
属性
cliffords
対称性と単一量子ビットXに基づいて構築されたクリフォード演算子を取得します。
戻り値
ハミルトニアンの対角化に使用されるユニタリーのリスト。
settings
オペレーターの設定を戻します。
sq_list
正方形のリストを返す。
sq_paulis
平方ポーリスを返す。
symmetries
対称性を返す。
方法
convert_clifford
convert_clifford(operator)
この方法はテーパリングの最初の部分を操作する。 この演算子は、現在の対称性で定義されているクリフォード・ユニタリーと合成することによって変換される。
パラメーター
operator (SparsePauliOp) – テーピングするオペレーター。
戻り値
SparsePauliOp 変換された演算子に対応する。
戻りの型
find_z2_symmetries
classmethod find_z2_symmetries(operator)
の Z2 パウリ型対称性を見つける。 SparsePauliOp.
戻り値
Z2Symmetries インスタンス。
パラメーター
operator (SparsePauliOp)
戻りの型
is_empty
taper
taper(operator)
tapering_valuesで定義された z2_symmetries 情報とセクターに基づいてオペレーターをテーパーする。 対称オブジェクトが空の場合に operator を返します。
テーパリングは2段階のアルゴリズムで、まず演算子を同じ固有値を持つ SparsePauliOp に変換する2段階のアルゴリズムです。 これらの冗長量子ビットの数Mは、同定された対称性の数Mに等しい。
削減の第二段階は、これらの量子ビットを対応するPauli Xの可能な固有値に置き換えることで、 2^M、量子ビットがM個少ない新しい演算子を与える。 もし固有値のセクターが以前に解のために特定されていたなら、これはMより少ない量子ビットで1つの新しい演算子に減少する。
パラメーター
operator (SparsePauliOp) – テーピングするオペレーター。
戻り値
[SparsePauliOpそれ以外の場合は SparsePauliOp.
戻りの型
tapering_valuesがNoneの場合
taper_clifford
taper_clifford(operator)
テーパリングの第2パートを操作する。 この関数は、入力演算子がすでに convert_clifford(). 対称性に起因する冗長な量子ビットは取り除かれ、2つの可能な固有値に置き換えられる。
パラメーター
operator (SparsePauliOp) – への呼び出しの結果、部分的に先細りになった演算子。 convert_clifford().
戻り値
[SparsePauliOpそれ以外の場合は SparsePauliOp.
戻りの型
tapering_valuesがNoneの場合