AQCSynthesisPlugin
class qiskit.transpiler.passes.synthesis.aqc_plugin.AQCSynthesisPlugin
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
target は Target オブジェクトになります。
False デフォルトでは、プラグイン・インターフェイスが Target クラスより前のものだからです。 プラグインがこの属性に対して True を返す場合、プラグインは,,, のいずれかが設定されていれば、渡された値の代わりに Targetsupports_gate_lengths 、 supports_gate_errors、 supports_coupling_map、 supports_basis_gates のいずれかが設定されている場合、渡された値の代わりに使用されることが期待されます(理想的には、これらのパラメータはすべて重複した情報を含む必要がありますが)。
方法
run
run(unitary, **options)
与えられたユニタリー行列に対して合成を実行する
パラメーター
- unitary (numpy.ndarray) – に合成するユニタリー行列。
DAGCircuitオブジェクト - options - クラスの
support_*メソッドの出力に基づいて渡されるオプションの kwargs。 のこれらのメソッドのドキュメントを参照してください。UnitarySynthesisPluginのドキュメントを参照してください。
戻り値
ユニタリーのダグ回路表現。 あるいは、 (dag, wires) という形式のタプルを返すこともできる。 dag は、ユニタリーの回路表現のダグ回路表現で、 wires は、以下のマッピングに使用するマッピングワイヤである。 qiskit.dagcircuit.DAGCircuit.substitute_node_with_dag(). タプルを返し、 wires が None の場合、これは DAGCircuit だけが返されたのと同じように振る舞います。 さらに、 None 、代替は行われない。
**リターンタイプ