レイアウト
class qiskit.transpiler.Layout(input_dict=None)
ベース: object
レイアウトを表す双方向ディクテーション。
両対称辞書からレイアウトを構築し、仮想量子ビットを物理量子ビットにマッピングする
方法
add
add(virtual_bit, physical_bit=None)
bitとphysical_bitの間にマップ要素を追加する。 physical_bit が定義されていない場合、ビットは新しい物理ビットにマップされる。
パラメーター
add_register
add_register(reg)
regの各ビットをマップするphysical_qubitsを最後に追加。
パラメーター
reg (Register) – ビットレジスタ。 例えば、 QuantumRegister(3, 'qr')。
combine_into_edge_map
combine_into_edge_map(another_layout)
selfとanother_layoutを "edge map "に結合する。
例:
self another_layout resulting edge map
qr_1 -> 0 0 <- q_2 qr_1 -> q_2
qr_2 -> 2 2 <- q_1 qr_2 -> q_1
qr_3 -> 3 3 <- q_0 qr_3 -> q_0エッジマップは、例えばcomposeでダグを合成するのに使われる。
パラメーター
another_layout (Layout) – もう一つのレイアウトを組み合わせる。
戻り値
エッジマップ」。
戻りの型
レイズ
LayoutError - other_layoutはselfより大きくできるが、小さくはできない。 それ以外はレイズ。
compose
compose(other, qubits)
このレイアウトを別のレイアウトと合成する。
このレイアウトがP-quビットからQ-quビットの位置へのマッピングを表し、もう一方のレイアウトがQ-quビットからR-quビットの位置へのマッピングを表す場合、合成されたレイアウトはP-quビットからR-quビットの位置へのマッピングを表す。
パラメーター
- other (Layout) – 既存の
LayoutこのLayoutを使っている。 - qubits (list[Qubit]) – が
other定義される対象Qubitのリスト。これは、クビットotherの位置と実際のクビットとの対応関係を確立するために用いられる。
戻り値
このレイアウトを other レイアウトと合成した新しいレイアウトオブジェクト。
戻りの型
copy
from_dict
from_dict(input_dict)
辞書からレイアウトを入力する。
辞書は、仮想量子ビット(タプル)と物理量子ビット(int)の間の両対称マッピングでなければならない。
パラメーター
input_dict (dict) –
例:
{(QuantumRegister(3, 'qr'), 0): 0,
(QuantumRegister(3, 'qr'), 1): 1,
(QuantumRegister(3, 'qr'), 2): 2}
Can be written more concisely as follows:
* virtual to physical::
{qr[0]: 0,
qr[1]: 1,
qr[2]: 2}
* physical to virtual::
{0: qr[0],
1: qr[1],
2: qr[2]}from_intlist
static from_intlist(int_list, *qregs)
整数のリストを、仮想量子ビット(リストのインデックス)と物理量子ビット(リストの値)をマッピングするLayoutに変換します。
パラメーター
- int_list (list) – 整数のリスト。
- ***量子レジスタ **QuantumRegisters ) - レイアウトを適用する量子レジスタ。
戻り値
対応する Layout オブジェクト。
戻りの型
レイズ
LayoutError - 無効な入力レイアウトです。
from_qubit_list
static from_qubit_list(qubit_list, *qregs)
仮想量子ビット、QubitまたはNoneを含むリストからLayoutに入力します。
パラメーター
- qubit_list (list) – e. g.: [qr [0]、なし、qr [2]、qr [3] ]
- ***量子レジスタ **QuantumRegisters ) - レイアウトを適用する量子レジスタ。
戻り値
対応するレイアウトオブジェクト
戻りの型
レイズ
LayoutError - 要素がQubitまたはNoneでない場合
generate_trivial_layout
static generate_trivial_layout(*regs)
regsのレジスタとqubitsでトリビアルな("一対一 "の)Layoutを作成する。
パラメーター
*regs ( レジスタ、量子ビット ) – レイアウトに含めるレジスタと量子ビット。
戻り値
すべてのレギュレーションを指定された順番で並べたレイアウト。
戻りの型
get_physical_bits
get_registers
get_registers()
レイアウト内のレジスタを返します [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] :returns: レイアウト内のレジスタのセット :rtype: Set
get_virtual_bits
inverse
inverse(source_qubits, target_qubits)
このレイアウトの逆数を求める。
これは、レイアウトが両対称写像である場合に可能であるが、入力量子ビットと出力量子ビットが異なる可能性がある(特に、このレイアウトは拡張アンシラス仮想量子ビットから物理量子ビットへの写像である可能性がある)。 したがって、このレイアウトがP-quビットからQ-quビットの位置へのマッピングを表す場合、逆のレイアウトはQ-quビットからP-quビットの位置へのマッピングを表す。
パラメーター
- source_qubits (list[Qubit]) – レイアウトのドメインを表すオブジェクト
Qubitのリスト。 - target_qubits (list[Qubit]) – レイアウトのイメージを表すオブジェクト
Qubitのリスト。
戻り値
このレイアウトの逆を表す新しいレイアウトオブジェクト。
order_based_on_type
reorder_bits
reorder_bits(bits)
ビットの順序付きリストが与えられたら、このレイアウトに従ってビットを並べ替える。
ビットのリストは、このレイアウトの仮想ビットと正確に一致しなければならない。
パラメーター
戻り値
オーダービット。
戻りの型
リスト
swap
to_permutation
to_permutation(qubits)
このレイアウトに対応する順列を作成する。
これは、レイアウトが同じソースとターゲットの量子ビットを持つ両対称マッピングである場合に可能である(例えば、"final_layout "は物理回路の量子ビットの並べ替えに対応する)。 このレイアウトが量子ビットからそれらの新しい位置へのマッピングである場合、結果として得られる順列は、順列適用後にどの量子ビットが0、1、2などの位置を占めるかを記述する。
例えば、量子ビットのリストが [qr_0, qr_1, qr_2] であり、レイアウトが qr_0 を 2 に、 qr_1 を 0 に、 qr_2 を 1 にマッピングしているとする。 qubits の位置で言えば、これは 0 を 2 に、 1 を 0 に、 2 を 1 に対応させ、対応する順列は [1, 2, 0] となる。
パラメーター