Skip to main content
IBM Quantum Platform

レイアウト

class qiskit.transpiler.Layout(input_dict=None)

GitHub

ベース: object

レイアウトを表す双方向ディクテーション。

両対称辞書からレイアウトを構築し、仮想量子ビットを物理量子ビットにマッピングする


方法

add

add(virtual_bit, physical_bit=None)

GitHub

bitとphysical_bitの間にマップ要素を追加する。 physical_bit が定義されていない場合、ビットは新しい物理ビットにマップされる。

パラメーター

  • virtual_bit (tuple) – ビット。 例えば、( QuantumRegister(3, 'qr'), 2)。
  • physical_bit (int) – フィジカルビットだ。 例えば、3.

add_register

add_register(reg)

GitHub

regの各ビットをマップするphysical_qubitsを最後に追加。

パラメーター

reg (Register) – ビットレジスタ。 例えば、 QuantumRegister(3, 'qr')。

combine_into_edge_map

combine_into_edge_map(another_layout)

GitHub

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) – もう一つのレイアウトを組み合わせる。

戻り値

エッジマップ」。

戻りの型

dict

レイズ

LayoutError - other_layoutはselfより大きくできるが、小さくはできない。 それ以外はレイズ。

compose

compose(other, qubits)

GitHub

このレイアウトを別のレイアウトと合成する。

このレイアウトがP-quビットからQ-quビットの位置へのマッピングを表し、もう一方のレイアウトがQ-quビットからR-quビットの位置へのマッピングを表す場合、合成されたレイアウトはP-quビットからR-quビットの位置へのマッピングを表す。

パラメーター

  • other (Layout) – 既存の Layout この Layout を使っている。
  • qubits (list[Qubit]) – が other 定義される対象 Qubit のリスト。これは、クビット other の位置と実際のクビットとの対応関係を確立するために用いられる。

戻り値

このレイアウトを other レイアウトと合成した新しいレイアウトオブジェクト。

戻りの型

レイアウト

copy

copy()

GitHub

Layout インスタンスのコピーを返します。

from_dict

from_dict(input_dict)

GitHub

辞書からレイアウトを入力する。

辞書は、仮想量子ビット(タプル)と物理量子ビット(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)

GitHub

整数のリストを、仮想量子ビット(リストのインデックス)と物理量子ビット(リストの値)をマッピングするLayoutに変換します。

パラメーター

  • int_list (list) – 整数のリスト。
  • ***量子レジスタ **QuantumRegisters ) - レイアウトを適用する量子レジスタ。

戻り値

対応する Layout オブジェクト。

戻りの型

レイアウト

レイズ

LayoutError - 無効な入力レイアウトです。

from_qubit_list

static from_qubit_list(qubit_list, *qregs)

GitHub

仮想量子ビット、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)

GitHub

regsのレジスタとqubitsでトリビアルな("一対一 "の)Layoutを作成する。

パラメーター

*regs ( レジスタ、量子ビット ) – レイアウトに含めるレジスタと量子ビット。

戻り値

すべてのレギュレーションを指定された順番で並べたレイアウト。

戻りの型

レイアウト

get_physical_bits

get_physical_bits()

GitHub

キーが物理(qu)ビット、値が仮想(qu)ビットの辞書を返します。

get_registers

get_registers()

GitHub

レイアウト内のレジスタを返します [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] :returns: レイアウト内のレジスタのセット :rtype: Set

get_virtual_bits

get_virtual_bits()

GitHub

キーが仮想(qu)ビット、値が物理(qu)ビットの辞書を返します。

inverse

inverse(source_qubits, target_qubits)

GitHub

このレイアウトの逆数を求める。

これは、レイアウトが両対称写像である場合に可能であるが、入力量子ビットと出力量子ビットが異なる可能性がある(特に、このレイアウトは拡張アンシラス仮想量子ビットから物理量子ビットへの写像である可能性がある)。 したがって、このレイアウトがP-quビットからQ-quビットの位置へのマッピングを表す場合、逆のレイアウトはQ-quビットからP-quビットの位置へのマッピングを表す。

パラメーター

  • source_qubits (list[Qubit]) – レイアウトのドメインを表すオブジェクト Qubit のリスト。
  • target_qubits (list[Qubit]) – レイアウトのイメージを表すオブジェクト Qubit のリスト。

戻り値

このレイアウトの逆を表す新しいレイアウトオブジェクト。

order_based_on_type

static order_based_on_type(value1, value2)

GitHub

は、タイプに応じて物理/仮想を判断する。 リターン(バーチャル、フィジカル)

reorder_bits

reorder_bits(bits)

GitHub

ビットの順序付きリストが与えられたら、このレイアウトに従ってビットを並べ替える。

ビットのリストは、このレイアウトの仮想ビットと正確に一致しなければならない。

パラメーター

bits (list[Bit]) – ビットを並べ替える。

戻り値

オーダービット。

戻りの型

リスト

swap

swap(left, right)

GitHub

左右の地図を入れ替える。

パラメーター

  • left (tuple orint) – 右と交換するアイテム。
  • right (tuple orint) – 左と交換するアイテム。

レイズ

LayoutError - 左右が同じタイプでない場合。

to_permutation

to_permutation(qubits)

GitHub

このレイアウトに対応する順列を作成する。

これは、レイアウトが同じソースとターゲットの量子ビットを持つ両対称マッピングである場合に可能である(例えば、"final_layout "は物理回路の量子ビットの並べ替えに対応する)。 このレイアウトが量子ビットからそれらの新しい位置へのマッピングである場合、結果として得られる順列は、順列適用後にどの量子ビットが0、1、2などの位置を占めるかを記述する。

例えば、量子ビットのリストが [qr_0, qr_1, qr_2] であり、レイアウトが qr_02 に、 qr_10 に、 qr_21 にマッピングしているとする。 qubits の位置で言えば、これは 02 に、 10 に、 21 に対応させ、対応する順列は [1, 2, 0] となる。

パラメーター

qubits (list[Qubit])

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