この記事について
量子ゲートの記事を投稿する際に、説明のために下記の様な、量子回路をお絵描きしたい。
一方で、
- 専用のソフトや環境を構築することなくサクッと回路を描きたい
- 可能であれば、Webサービスでそういったのがあれば、、
そんなポエムの様な記事です。
また、他の量子コンピュータ関係の他の記事は、下記で紹介しています。
量子回路を書く
1)Quirk
まず頭に浮かんだのが、これです。
JavaScriptで実装されたシミュレータでドラッグ&ドロップで量子回路を描ける上に、簡単な計算であれば、このシミュレータ上で動きを確認することもできます。(本当に便利)
ただ、やはり、こういった凝った回路は描くことが出来ません。。
2) StrangeWorks(Qiskit)
次に浮かんだのが、こちらでQiskitの量子回路をStrangeWorksで表示する。
Qiskitそのままでも良いのですが、なんとなくStrangeWorksが頭に浮かんだので。。
一応、
- 回路は描くことはできるが、複雑なモノはやはり厳しい。
- Qiskitでプログラムを記述し、回路への配置は自動で行われるので、
- 良い点でいえば、細かいことを気にしなくて良い
- 悪い点でいえば、ゲートの位置が細かく調整できない
3)QCEngine
こちらの本で紹介されている、シミュレータです。
- Qiskit&StrangeWorksと同じようにコードを描くだけで回路が作図できます。
- 一方で、回路の表記が若干独特だったり、ブロッホ球が円表示だったり慣れが必要です。
回路はこんな感じに作図できます。
関数毎にブロックが出来上がるんで、コメントを付けたり補記するのには良さそうですね。
一旦のまとめ
# | ツール | 作図に 使うモノ |
メリット | デメリット |
---|---|---|---|---|
1 | Quirk | マウス | ・マウスでD&Dなので操作が簡単 ・回路の装飾もシンプル |
・部分的に囲む、コメント等が不可 |
2 | Qiskit & StrangeWorks | ソースコード | ・配置を気にしなくて良い | ・位置の微調整不可 ・囲む、コメント等が不可(同上) |
3 | QCEngine | ソースコード | ・配置を気にしなくて良い ・関数で処理が表現可能 |
・表示が独特 |
でたどり着いたのが
結局キレイに作図したいという点で、$LATEX$のライブラリであるQ-circuitにたどり着きました。。
でも、当初掲げた、お手軽に(環境準備不要)を実現するために、WebでTexが使える
にたどり着きました。。
- 複数名での共同編集等が必要であれば、有償アカウントが必要ですが、
- 1名でメモ書き程度であれば、無償版のアカウントでも対応できるかと思います。
使った感じ
Texの記法、Q-circuitの記法になれる必要がありますが、さすが論文執筆でも使われる組み合わせ
作図もキレイですし、囲む、コメントする等も意のままです。
Texのコードを参考までに載せておきます(あまりキレイじゃないです)
\documentclass[12pt,border={25pt 5pt 5pt 5pt}]{standalone}
\usepackage{qcircuit}
\usepackage{braket}
\begin{document}
\Qcircuit @C=1.3em @R=.8em {
& & & & & & \mbox{Syndrome Measurement} & & & &
\mbox{Recovery}\\
& \qw & \qw & \ctrl{3} & \qw & \qw & \qw &
\ctrl{5} & \qw & \qw &
\multigate{2}{\ \mathcal{R}\ } & \qw\\
& \qw & \qw & \qw & \ctrl{2} & \ctrl{3} & \qw & \qw & \qw & \qw & \ghost{\ \mathcal{R}\ } \qw &\qw\\
& \qw & \qw & \qw & \qw & \qw & \ctrl{2} & \qw &\ctrl{3} & \qw & \ghost{\ \mathcal{R}\ } \qw &\qw\\
& & \lstick{\ket{0}} & \targ \qw & \targ \qw & \qw & \qw & \qw & \qw & \measure{M_a} &\control \cw \cwx\\
& & \lstick{\ket{0}} & \qw & \qw & \targ \qw &\targ \qw & \qw & \qw & \measure{M_b} &\control \cw \cwx\\
& & \lstick{\ket{0}} & \qw & \qw & \qw & \qw &\targ \qw & \targ \qw & \measure{M_c}
\gategroup{2}{2}{7}{10}{.8em}{--} &
\control \cw \cwx
}
\end{document}
まとめ
サクッと、簡単に作図したいときはやはり、手書きw or Quirkでしょうか。
一方で、やっぱり図はきれいな方が良い!というこだわりを持ちたい時は、
の組み合わせが良さそうです。で、Tex環境とかが手元にあればやはり、普通にTexで描くのが良いのでしょうね。
それを言ってしまったら、この記事は何?とツッコミを受けそうですが、そんなまとめでございました。
何かあれば、コメント等。よろしければLGTMいただければ幸いです。