Skip to main content
IBM Quantum Platform

CouplingMap

class qiskit.transpiler.CouplingMap(couplinglist=None, description=None)

GitHub

ベース: object

固定結合を指定する有向グラフ。

ノードは物理量子ビット(整数)に対応し、有向エッジは許可されたCNOTゲートに対応し、ソースとデスティネーションはそれぞれコントロール量子ビットとターゲット量子ビットに対応する。

カップリンググラフを作成する。 デフォルトでは、生成されたカップリングはノードを持たない。

パラメーター

  • couplinglist (list or None) – 例えば [[0,1], [0,2], [1,2] ]のようなカップリングを含む隣接リストとして指定される。 ノードは0から始まる連続したインデックスが必要です。 見逃されたノードは、カップリング・マップの孤立ノードとして追加される。
  • description (str) – カップリングマップを表す文字列。

属性

description

graph

distance_matrix

カップリングマップの距離行列を返す。

量子ビット間に利用可能なパスがない場合、距離行列のこの位置の値は math.inf となる。

is_symmetric

グラフが対称かどうかをテストする。

対称であれば真を、そうでなければ偽を返す

physical_qubits

physical_qubits のソートされたリストを返す


方法

add_edge

add_edge(src, dst)

GitHub

結合グラフに有向辺を追加する。

src (int): 送信元物理量子ビット dst (int): 送信先物理量子ビット

add_physical_qubit

add_physical_qubit(physical_qubit)

GitHub

物理量子ビットをノードとしてカップリンググラフに追加する。

physical_qubit (int):物理量子ビットを表す整数。

レイズ

CouplingError - 重複する量子ビットを追加しようとする場合

compute_distance_matrix

compute_distance_matrix()

GitHub

ノードのペアについて完全な距離行列を計算する。

距離マップ self._dist_matrix は、all_pairs_shortest_path_lengthを用いてグラフから計算される。 これは通常 distance_matrix 属性または distance() メソッドで処理されますが、これらのメソッド以外で距離行列にアクセスする場合や、あらかじめ距離行列を生成しておきたい場合に呼び出すことができます。

connected_components

connected_components()

GitHub

をサブグラフに分割する。 CouplingMap を部分グラフ CouplingMap に分割する。

の連結成分とは CouplingMap の連結成分は、どの部分グラフにも属さない部分グラフである。 例えば、次のようなカップリング・マップがあったとする:

0 --> 1   4 --> 5 ---> 6 --> 7
|     |
|     |
V     V
2 --> 3

であるならば、そのグラフの連結成分は部分グラフである:

0 --> 1
|     |
|     |
V     V
2 --> 3

そして

4 --> 5 ---> 6 --> 7

連結された CouplingMap 接続されたオブジェクトには、単一の接続された構成要素しかない。 CouplingMap.

このメソッドは、このグラフ内の各連結成分に対して1つずつ CouplingMap、オブジェクト CouplingMap のリストを返します。 の graph 属性に含まれる各ノードのデータペイロードには、元のグラフにおける量子ビット番号が含まれます。 これにより、コンポーネント部分グラフ内の量子ビットインデックスを、結合されたグラフ内の元の量子ビットに CouplingMapマッピングできるようになります。 例:

from qiskit.transpiler import CouplingMap

cmap = CouplingMap([[0, 1], [1, 2], [2, 0], [3, 4], [4, 5], [5, 3]])
component_cmaps = cmap.connected_components()
print(component_cmaps[1].graph[0])

は、 3 と表示されます。2番目のコンポーネントのインデックス 0 は、元のcmapのqubit 3です。

戻り値

** CouplingMap オブジェクトのリスト。**

コンポーネント。 このリストの順番は決定論的であるが、実装に固有であり、APIの一部として信頼すべきではない。

戻りの型

リスト

distance

distance(physical_qubit1, physical_qubit2)

GitHub

physical_qubit1 と physical_qubit2 の間の無向距離を返す。

パラメーター

  • physical_qubit1 (int) – 物理的量子ビット
  • physical_qubit2 (int) – もうひとつの物理量子ビット

戻り値

無向距離

戻りの型

int

レイズ

CouplingError - の中に量子ビットが存在しない場合は CouplingMap

draw

draw(method='neato')

GitHub

カップリング・マップを描く。

この関数は graphviz_draw()rustworkx 関数を呼び出します。 CouplingMap オブジェクトを描画します。

警告

この関数は、ユーザーが制御可能な文字列(クビットオブジェクトなど)を含むファイルに対して、システムのGraphvizツールを呼び出します。 この関数は、信頼できる入力に対してのみ呼び出すことを推奨します。

パラメーター

method (str) – 使用するレイアウト方法。 サポートされているメソッドの一覧については graphviz_draw() 、ドキュメントを参照してください

戻り値

カップリング・マップを描く。

戻りの型

PIL.Image

from_full

classmethod from_full(num_qubits, bidirectional=True)

GitHub

n量子ビット上の完全連結写像を返す。

戻りの型

CouplingMap

from_grid

classmethod from_grid(num_rows, num_columns, bidirectional=True)

GitHub

num_rows x num_columnsのグリッド上に接続された量子ビットの結合マップを返す。

戻りの型

CouplingMap

from_heavy_hex

classmethod from_heavy_hex(distance, bidirectional=True)

GitHub

重六角形グラフ結合マップを返す。

ヘビー・ヘキサゴン・グラフについては

https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022

パラメーター

  • distance (int) – 生成されたヘビーヘックスグラフのコード距離。 距離の値は、任意の奇数の正の整数である。 n=5d22d12n = \frac{5d^2 - 2d - 1}{2}nn は量子ビット数、 dddistance パラメータである。
  • bidirectional (bool) – 出力カップリンググラフのエッジが双方向かどうか。 デフォルトでは True

戻り値

重い六角カップリングのグラフ

戻りの型

CouplingMap

from_heavy_square

classmethod from_heavy_square(distance, bidirectional=True)

GitHub

重い正方形グラフ結合マップを返す。

ヘビー・スクエア・グラフについては

https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022

パラメーター

  • distance (int) – 生成された重い正方形グラフのコード距離。 距離の値は、任意の奇数の正の整数である。 n=3d22dn = 3d^2 - 2dnn は量子ビット数、 dddistance パラメータである。
  • bidirectional (bool) – 出力カップリンググラフのエッジが双方向かどうか。 デフォルトでは True

戻り値

重い正方形のカップリンググラフ

戻りの型

CouplingMap

from_hexagonal_lattice

classmethod from_hexagonal_lattice(rows, cols, bidirectional=True)

GitHub

六角格子グラフ結合写像を返す。

パラメーター

  • rows (int) – グラフを生成する行数。
  • cols (int) – グラフを生成する列数。
  • bidirectional (bool) – 出力カップリンググラフのエッジが双方向かどうか。 デフォルトでは True

戻り値

六角形の格子結合グラフ

戻りの型

CouplingMap

from_line

classmethod from_line(num_qubits, bidirectional=True)

GitHub

n個の量子ビットを線で結んだ結合写像を返す。

戻りの型

CouplingMap

from_ring

classmethod from_ring(num_qubits, bidirectional=True)

GitHub

n個の量子ビットを、リング上の各隣接量子ビットに接続した結合写像を返す。

戻りの型

CouplingMap

get_edges

get_edges()

GitHub

カップリンググラフのエッジのリストを取得します。

戻り値

各エッジは物理的な量子ビットのペアである。

戻りの型

タプル (int,int )

is_connected

is_connected()

GitHub

グラフがつながっているかどうかをテストする。

接続されていれば真を、そうでなければ偽を返す

largest_connected_component

largest_connected_component()

GitHub

最大の連結成分に含まれる量子ビットの集合を返す。

make_symmetric

make_symmetric()

GitHub

単方向のエッジを双方向に変換する。

neighbors

neighbors(physical_qubit)

GitHub

物理量子ビットの最近傍を返す。

つまり、エッジの方向に1ホップ進むと隣人に到達できる必要がある。

reduce

reduce(mapping, check_if_connected=True)

GitHub

マッピングで選択された量子ビットの部分グラフに対応する縮小結合マップを返します。

パラメーター

  • mapping (list) – 縮小量子ビットのデバイス量子ビットへのマッピング。
  • check_if_connected (bool) – Trueの場合、縮小された結合マップが接続されているかどうかをチェックする。

戻り値

選択された量子ビットの縮小coupling_map。

戻りの型

CouplingMap

レイズ

CouplingError - 縮小されたカップリング・マップが接続されていなければならない。

shortest_undirected_path

shortest_undirected_path(physical_qubit1, physical_qubit2)

GitHub

physical_qubit1 と physical_qubit2 の間の最短無向パスを返す。

パラメーター

  • physical_qubit1 (int) – 物理的量子ビット
  • physical_qubit2 (int) – もうひとつの物理量子ビット

戻り値

最短無向パス

戻りの型

リスト

レイズ

CouplingError - physical_qubit1, physical_qubit2 の間にパスがない場合。

size

size()

GitHub

このグラフに含まれる物理的な量子ビットの数を返す。

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