量子回路
ゲートを時間順に並べた計算の記述。 横線が量子ビット、箱がゲート、時間は左から右へ流れる。
特徴#
| 性質 | 内容 |
|---|---|
| 線の数が変わらない | 量子ビットは増減しない(可逆性) |
| ループが無い | ユニタリの列。条件分岐は測定が要る |
| 測定は最後(が基本) | 途中測定もできるが状態を壊す |
深さと幅#
- 幅 … 量子ビット数
- 深さ … 直列に並ぶゲートの段数
コヒーレンス時間が有限なので、 深さに上限がある。 これが NISQ 期のアルゴリズム設計を規定する最大の制約。
トランスパイル#
書いた回路をそのまま実行できるとは限らない。
- ゲート分解 — 実機が持つゲートセットへ変換
- 量子ビット割り当て — 論理ビットを物理ビットへ対応させる
- SWAP 挿入 — 隣接していないビット間の 2 量子ビットゲートのため
- 最適化 — ゲート数と深さを減らす
3 が特に効く。実機の接続は限られており、 遠いビット間の CNOT には SWAP の連鎖が要る。 SWAP 1 個 = CNOT 3 個なので、 接続を考慮しない回路は実機で急激に劣化する。
古典との違い#
古典回路は途中の値を読める(デバッグできる)が、 量子回路は読んだ時点で壊れる。 デバッグの手段が限られることが、 量子ソフトウェア開発の難しさの一因になっている。
参考文献#
- Michael A. Nielsen, Isaac L. Chuang. Quantum Computation and Quantum Information, 10th Anniversary Edition. Cambridge University Press, 2010. https://doi.org/10.1017/CBO9780511976667
- John Preskill. Quantum Computing in the NISQ era and beyond. Quantum 2, 2018. https://doi.org/10.22331/q-2018-08-06-79