最近開始寫畢業論文了,怎樣得到矢量的,能在LaTeX裏顯示的量子電路圖困擾了我很久。之前我在這篇文章裏介紹了在projectQ裏面運行電路,同時生成電路LaTeX代碼的方法。這樣做生成的代碼有些複雜,運行時間長;且如果後期想根據自己的需要微調的話,比較麻煩。
這篇文章介紹一下我發現的另一個package,叫做Qcircuit,相對來說好用了許多。這個package很好上手,它的教程也寫得很詳細,所以具體的語法我就不再贅述了,可以在這裏找到:鏈接。
下面給出我用這個工具畫的n-qubit的量子傅里葉變換電路,最終效果如下:
需要在\begin{document}之前加上這個package:
\usepackage[options]{qcircuit}
作圖的代碼是:
\begin{figure}[h!]
\centerline{
\Qcircuit @C=0.8em @R=0.75em {
\lstick{\ket{j_{1}}} & \gate{H} & \gate{R_{2}} & \gate{R_{3}} & \qw & \cdots& & \gate{R_n} & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \qw & \rstick{\ket{y_1}} \qw \\
\lstick{\ket{j_{2}}} & \qw & \ctrl{-1} & \qw & \qw & \qw& \qw & \qw & \gate{H} & \gate{R_2} & \qw & \cdots & & \gate{R_{n-1}} & \qw & \qw & \qw & \qw & \qw & \qw & \rstick{\ket{y_2}} \qw \\
\lstick{\ket{j_{3}}} & \qw & \qw & \ctrl{-2} & \qw & \qw & \qw & \qw & \qw & \ctrl{-1} & \qw& \qw & \qw & \qw & \gate{H} & \qw & \cdots & & \gate{R_{n-2}} & \qw & \rstick{\ket{y_3}} \qw \\
\lstick{\vdots } & & & & & \ddots & & & & & & \ddots & & & & & \ddots & & & & \rstick{\vdots } \\
\lstick{\ket{j_{n}}} & \qw & \qw & \qw & \qw & \qw & \qw & \ctrl{-4} & \qw & \qw & \qw & \qw & \qw & \ctrl{-3} & \qw & \qw & \qw & \qw & \ctrl{-2} & \gate{H} & \rstick{\ket{y_{n}}} \qw
}
}
\caption{Quantum circuit for QFT algorithm}
\label{QFT_circuit}
\end{figure}
這段代碼看着麻煩,其實非常好理解,比自己手動畫圖簡單了不少。