CouplingMap
class qiskit.transpiler.CouplingMap(couplinglist=None, description=None)
ベース: 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_physical_qubit
add_physical_qubit(physical_qubit)
物理量子ビットをノードとしてカップリンググラフに追加する。
physical_qubit (int):物理量子ビットを表す整数。
レイズ
CouplingError - 重複する量子ビットを追加しようとする場合
compute_distance_matrix
compute_distance_matrix()
ノードのペアについて完全な距離行列を計算する。
距離マップ self._dist_matrix は、all_pairs_shortest_path_lengthを用いてグラフから計算される。 これは通常 distance_matrix 属性または distance() メソッドで処理されますが、これらのメソッド以外で距離行列にアクセスする場合や、あらかじめ距離行列を生成しておきたい場合に呼び出すことができます。
connected_components
connected_components()
をサブグラフに分割する。 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)
physical_qubit1 と physical_qubit2 の間の無向距離を返す。
パラメーター
戻り値
無向距離
戻りの型
レイズ
CouplingError - の中に量子ビットが存在しない場合は CouplingMap
draw
draw(method='neato')
カップリング・マップを描く。
この関数は graphviz_draw()rustworkx 関数を呼び出します。 CouplingMap オブジェクトを描画します。
この関数は、ユーザーが制御可能な文字列(クビットオブジェクトなど)を含むファイルに対して、システムのGraphvizツールを呼び出します。 この関数は、信頼できる入力に対してのみ呼び出すことを推奨します。
パラメーター
method (str) – 使用するレイアウト方法。 サポートされているメソッドの一覧については graphviz_draw() 、ドキュメントを参照してください
戻り値
カップリング・マップを描く。
戻りの型
PIL.Image
from_full
from_grid
classmethod from_grid(num_rows, num_columns, bidirectional=True)
num_rows x num_columnsのグリッド上に接続された量子ビットの結合マップを返す。
戻りの型
from_heavy_hex
classmethod from_heavy_hex(distance, bidirectional=True)
重六角形グラフ結合マップを返す。
ヘビー・ヘキサゴン・グラフについては
https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022
パラメーター
- distance (int) – 生成されたヘビーヘックスグラフのコード距離。 距離の値は、任意の奇数の正の整数である。 、 は量子ビット数、 は
distanceパラメータである。 - bidirectional (bool) – 出力カップリンググラフのエッジが双方向かどうか。 デフォルトでは
True
戻り値
重い六角カップリングのグラフ
戻りの型
from_heavy_square
classmethod from_heavy_square(distance, bidirectional=True)
重い正方形グラフ結合マップを返す。
ヘビー・スクエア・グラフについては
https://journals.aps.org/prx/abstract/10.1103/PhysRevX.10.011022
パラメーター
- distance (int) – 生成された重い正方形グラフのコード距離。 距離の値は、任意の奇数の正の整数である。 、 は量子ビット数、 は
distanceパラメータである。 - bidirectional (bool) – 出力カップリンググラフのエッジが双方向かどうか。 デフォルトでは
True
戻り値
重い正方形のカップリンググラフ
戻りの型
from_hexagonal_lattice
classmethod from_hexagonal_lattice(rows, cols, bidirectional=True)
六角格子グラフ結合写像を返す。
パラメーター
- rows (int) – グラフを生成する行数。
- cols (int) – グラフを生成する列数。
- bidirectional (bool) – 出力カップリンググラフのエッジが双方向かどうか。 デフォルトでは
True
戻り値
六角形の格子結合グラフ
戻りの型
from_line
from_ring
get_edges
is_connected
largest_connected_component
make_symmetric
neighbors
reduce
reduce(mapping, check_if_connected=True)
マッピングで選択された量子ビットの部分グラフに対応する縮小結合マップを返します。
パラメーター
- mapping (list) – 縮小量子ビットのデバイス量子ビットへのマッピング。
- check_if_connected (bool) – Trueの場合、縮小された結合マップが接続されているかどうかをチェックする。
戻り値
選択された量子ビットの縮小coupling_map。
戻りの型
レイズ
CouplingError - 縮小されたカップリング・マップが接続されていなければならない。
shortest_undirected_path
shortest_undirected_path(physical_qubit1, physical_qubit2)
physical_qubit1 と physical_qubit2 の間の最短無向パスを返す。
パラメーター
戻り値
最短無向パス
戻りの型
リスト
レイズ
CouplingError - physical_qubit1, physical_qubit2 の間にパスがない場合。