3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Qiskitで回路をトランスパイルすると、急にSWAPが増えたり、CNOTの向きが変えられたりします。その中心にいるのが カップリングマップ(coupling map) です。

本記事では「カップリングマップがそもそも何なのか」を整理しつつ、線形以外の形と、よく詰まる「有向」って何が困るの?までまとめます。

カップリングマップの正体:2量子ビットゲートの“接続図”

Qiskitの CouplingMap は、固定カップリングを表す有向グラフとして定義されています。
ノードは物理量子ビット(整数)、有向エッジは許可されたCNOTで、始点→終点が control→targetに対応します。

つまり一言でいうと、

「このデバイスで“直接”2量子ビットゲートできるペア(しかも向き付き)の地図」

がカップリングマップです。

線形だけじゃない:カップリングマップは“グラフ”です

「量子ビットが一直線に並んでいる図」を思い浮かべがちですが、本質は任意形状のグラフです。

代表的な形のイメージをいくつか載せます。

線形(linear)

Q0 — Q1 — Q2 — Q3

リング(ring / circular)

Q0 — Q1 — Q2 — Q3
|              |
+--------------+

スターっぽい分岐(star-ish)

      Q1
       |
Q2 —  Q0  — Q3
       |
      Q4

はしご(ladder)/ 2次元っぽい接続

Q0 — Q1 — Q2
|    |    |
Q3 — Q4 — Q5

形が変わると「どこが混むか(SWAPが出やすいか)」や「良い初期配置(layout)」の考え方も変わります。

なぜ必要?

論理回路と物理デバイスのギャップを埋めるためです。
量子回路(抽象回路)は、理想的には任意の2量子ビット間にCNOTを書けます。
でも実機(物理デバイス)では、2量子ビットゲートができるペアが限られます。これがカップリングマップです。

IBMのガイドでは、抽象回路の量子ビットを virtual qubits、カップリングマップ上の量子ビットを physical qubits と呼び、transpilerが両者の対応付け(マッピング)を作る、と説明されています。

SWAPが増える理由

カップリングマップに載っていないペアで2量子ビットゲートをしたい場合、回路はそのままでは実行できません。このとき transpiler は、SWAPを挿入して量子情報を移動させ、最終的に「接続できる隣接ペア」でゲートできる形に変換します。

超ざっくり言うと、

  • カップリングマップ=道路
  • SWAP=引っ越し(隣に移動してから用事を済ませる)

みたいなイメージです。道路がない場所にワープできないので、引っ越して隣に行くしかありません。

「有向」って実害なに?向き違いのCNOTはどうなる?

ここが一番ハマりポイントです。

まず定義:矢印は control→target です

CouplingMap の有向エッジは、始点がcontrol、終点がtargetに対応します。
たとえば

  • 0 → 1 がある:CNOT(0,1) は(その向きで)直接OK
  • 1 → 0 がない:CNOT(1,0) は(その向きでは)直接はNG

ということが起こります。

でも大丈夫

IBMのガイドでは、カップリングが方向性を持つ場合がある一方で、transpilerは単一量子ゲートを追加してゲート方向を反転できると説明されています。

つまり「向き違いのCNOT」は、

  • そのままでは不可 →
  • transpilerが追加の1量子ゲートを入れて辻褄を合わせる

という動きになります。

実害

方向を直すために追加ゲートが入るので、

  • 回路深さが増える
  • ノイズに弱くなる(特に現行デバイスでは影響が出やすい)

という形で効いてきます。

さらに、IBMのガイドでは例として ECRゲートは方向性があることが明記され、特定方向(例:qubit 1→0)のゲート特性(durationやerror)を参照する例が載っています。
方向が違うだけで誤差率や時間が変わり得る、という意味で「有向」は実害になりやすいです。

「線形以外」を入れると理解が進む:リング配置の例

線形だと「遠い→SWAP増える」が直感的ですが、リングや格子だと話が変わります。

IBMのガイドには、回路側が entanglement="circular"(リングっぽい接続)を持つとき、適切なlayoutを選ぶと SWAPが入らない(または減る)例が載っています。
具体的には、単にcoupling_mapだけ渡すとSWAPが挿入されるが、適切な最適化設定(layout/routing込み)だとSWAPが消える、という流れが説明されています。

この例は、「カップリングマップは制約」だけでなく、

“回路の接続パターン” と “デバイスの接続パターン” を合わせると強い

という感覚を作るのにちょうど良いです。

まとめ

  • カップリングマップは、物理量子ビット間の2量子ビットゲート可能な接続を表す地図です。Qiskitでは 有向グラフで、エッジの向きは control→target に対応します。
  • 接続制約に合わない回路は、transpilerが SWAPを挿入して実行可能にします。
  • 「有向」の実害は、向き違いCNOTが出ると 追加の1量子ゲートで方向調整が入って回路が重くなる点です。
  • 線形以外(リング等)も普通にあり、回路の接続パターンとlayoutが噛み合うと SWAPが減る/消えることがあります。

参考資料

https://quantum.cloud.ibm.com/docs/en/api/qiskit/qiskit.transpiler.CouplingMap
https://quantum.cloud.ibm.com/docs/en/guides/represent-quantum-computers

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?