Skip to main content
IBM Quantum Platform

Z2Symmetries

class qiskit.quantum_info.Z2Symmetries(symmetries, sq_paulis, sq_list, tapering_values=None, *, tol=1e-14)

GitHub

ベース: object

$Z_2$ 対称性コンバータは、問題のハミルトニアンから対称性を識別し、それを用いて、この問題に対するポーリスのような演算子のテーパー表現(より効率的な表現)を提供する。 特定された対称性ごとに、2つの対称セクタ(対称性の2つの可能な固有値-テーパリング値-)をテストしなければならないという代償を払って、1つの量子ビットをパウリ表現で排除することができる。 主オペレータの基底状態を求めるような特定の問題では、解の対称セクタを先験的に特定することができるため、計算オーバーヘッドを効果的に削減することができる。

Z2Symmetries オブジェクトが構築されると、以下のアトリビュートを読み込んで更新することができる。

tapering_values

セクターを決定する価値。

タイプ

リスト[ int ]またはなし

tol

係数の実数部と複素数部を無視する許容閾値。

タイプ

浮動小数点

参考文献

[1] : Bravyi, S、 et al, "Tapering off qubits to simulate fermionic Hamiltonians" (フェルミオンのハミルトニアンをシミュレートするための量子ビットのテーパリング)。

arXiv:1701.08213

パラメーター

  • 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)

GitHub

この方法はテーパリングの最初の部分を操作する。 この演算子は、現在の対称性で定義されているクリフォード・ユニタリーと合成することによって変換される。

パラメーター

operator (SparsePauliOp) – テーピングするオペレーター。

戻り値

SparsePauliOp 変換された演算子に対応する。

戻りの型

SparsePauliOp

find_z2_symmetries

classmethod find_z2_symmetries(operator)

GitHub

の Z2 パウリ型対称性を見つける。 SparsePauliOp.

戻り値

Z2Symmetries インスタンス。

パラメーター

operator (SparsePauliOp)

戻りの型

Z2Symmetries

is_empty

is_empty()

GitHub

z2_symmetries が空かどうかを確認する。

戻り値

空っぽかどうか。

戻りの型

bool

taper

taper(operator)

GitHub

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)

GitHub

テーパリングの第2パートを操作する。 この関数は、入力演算子がすでに convert_clifford(). 対称性に起因する冗長な量子ビットは取り除かれ、2つの可能な固有値に置き換えられる。

パラメーター

operator (SparsePauliOp) – への呼び出しの結果、部分的に先細りになった演算子。 convert_clifford().

戻り値

[SparsePauliOpそれ以外の場合は SparsePauliOp.

戻りの型

tapering_valuesがNoneの場合

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。