Skip to main content
IBM Quantum Platform

AQCSynthesisPlugin

class qiskit.transpiler.passes.synthesis.aqc_plugin.AQCSynthesisPlugin

GitHub

ベース: UnitarySynthesisPlugin

AQCベースのQiskitユニタリー合成プラグイン。

このプラグインは transpile()unitary_synthesis_method "aqc"によって呼び出されます。

unitary_synthesis_plugin_config このプラグインはカスタマイズをサポートしており、追加パラメータをプラグインに渡すことができます。 transpile() 関数の

辞書でサポートされているパラメータ:

network_layout (str)

ネットワーク・ジオメトリのタイプ。 {"sequ", "spin", "cart", "cyclic_spin", "cyclic_line"} のいずれか。デフォルト値は "spin"

connectivity_type (str)

量子ビット間接続のタイプ、 {"full", "line", "star"}。デフォルト値は "full"

深さ (int)

CNOT-networkの深さ、つまりレイヤーの数で、各レイヤーは1つのCNOTブロックで構成される。

オプティマイザー (Minimizer)

最適化プロセスで使用される Minimizer プロトコルの実装。

シード (int)

ランダムシード。

initial_point (ndarray)

最適化プロセスを開始する角度/パラメータの初期値。


属性

max_qubits

サポートされる量子ビットの最大数は 14 である。

min_qubits

最小サポート量子ビット数は 3

supported_bases

プラグインは合成用のベースをサポートしていない。

supports_basis_gates

このプラグインは基底ゲートをサポートしておらず、デフォルトでは ["rx", "ry", "rz", "cx"] ゲート基底を使って回路を合成する。

supports_coupling_map

プラグインはカップリングマップをサポートしていません。

supports_gate_errors

このプラグインはゲートエラーをサポートしていません。

supports_gate_errors_by_qubit

プラグインが gate_errors_by_qubit

これは、 supports_gate_errors/gate_errors 、同じデータの異なるビューを使用することによって異なります。 ゲート名でキー設定される代わりに、これは量子ビットでキー設定され、(ゲート名の代わりに)ゲートを表すインスタンスを使用する。 Gate インスタンスを使ってゲートを表します(ゲート名の代わりに)。

gate_errors_by_qubit は、 {(qubits,): [Gate, error]} の形式の辞書となる。 例:

{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}

このディクショナリは、ターゲットのバックエンドが各クォビットの各ゲートのゲートエラーを報告するかどうかに依存するため、完全でなかったり、空だったりする可能性があることに注意してください。 gate_errors で報告されるゲート・エラー・レートは、ターゲット・デバイス Backend オブジェクトによって提供されるものであり、正確な意味はバックエンドによって異なる可能性がある。

デフォルトは False

supports_gate_lengths

プラグインはゲートの長さをサポートしていません。

supports_gate_lengths_by_qubit

プラグインが gate_lengths_by_qubit

これは、 supports_gate_lengths/gate_lengths 、同じデータの異なるビューを使用することによって異なります。 ゲート名でキー設定される代わりに、これは量子ビットでキー設定され、(ゲート名の代わりに)ゲートを表すインスタンスを使う。 Gate インスタンスでゲートを表します

gate_lengths_by_qubit は、 {(qubits,): [Gate, length]} の形式の辞書となる。 例:

{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}

ここで、 length の値は秒単位である。

このディクショナリは、ターゲットのバックエンドが各クォビットの各ゲートのゲート長を報告することに依存するため、完全でなかったり、空であったりする可能性があることに注意してください。

デフォルトは False

supports_natural_direction

このプラグインは自然な方向をサポートしておらず、双方向の2量子ビットゲートを想定している。

supports_pulse_optimize

プラグインはパルスの最適化をサポートしていません。

supports_target

プラグインがオプションとして target

targetTarget オブジェクトになります。

False デフォルトでは、プラグイン・インターフェイスが Target クラスより前のものだからです。 プラグインがこの属性に対して True を返す場合、プラグインは,,, のいずれかが設定されていれば、渡された値の代わりに Targetsupports_gate_lengthssupports_gate_errorssupports_coupling_mapsupports_basis_gates のいずれかが設定されている場合、渡された値の代わりに使用されることが期待されます(理想的には、これらのパラメータはすべて重複した情報を含む必要がありますが)。


方法

run

run(unitary, **options)

GitHub

与えられたユニタリー行列に対して合成を実行する

パラメーター

  • unitary (numpy.ndarray) – に合成するユニタリー行列。 DAGCircuit オブジェクト
  • options - クラスの support_* メソッドの出力に基づいて渡されるオプションの kwargs。 のこれらのメソッドのドキュメントを参照してください。 UnitarySynthesisPlugin のドキュメントを参照してください。

戻り値

ユニタリーのダグ回路表現。 あるいは、 (dag, wires) という形式のタプルを返すこともできる。 dag は、ユニタリーの回路表現のダグ回路表現で、 wires は、以下のマッピングに使用するマッピングワイヤである。 qiskit.dagcircuit.DAGCircuit.substitute_node_with_dag(). タプルを返し、 wiresNone の場合、これは DAGCircuit だけが返されたのと同じように振る舞います。 さらに、 None 、代替は行われない。

**リターンタイプ

DAGサーキット

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