当前的量子计算工具

当前的量子计算工具

这里已经有几个问题询问用于生成适合合并到 TeX 文档中的量子力学和量子计算图的包和工具,但所有这些都相当旧,并且通常指向更旧的工具和包。

生成最新、最容易使用的工具有哪些

  • 量子电路图,以及
  • Bloch Sheres 和其他量子表示?

除了现有问题的狭隘焦点(TeX 包或 TikZ 等)之外,我还对可以生成适合合并到 TeX 出版物中的输出(例如 PDF)的任何东西更感兴趣。

答案1

虽然这个问题很老了,但我会回答它,因为它是你搜索“bloch sphere latex”的第一个结果之一。

有包'布洛克球体',您可以使用 进行安装sudo tlmgr install blochsphere。存储库(和文档)可以在在 Github 上

以下是一个例子:

enter image description here

代码如下

\documentclass{standalone}

\usepackage{blochsphere}

\begin{document}

\begin{blochsphere}[radius=1.5 cm,tilt=15,rotation=-20]
    \drawBallGrid[style={opacity=0.1}]{30}{30}

    \drawGreatCircle[style={dashed}]{-60}{0}{0}
    \drawGreatCircle[style={dashed}]{60}{0}{0}

    \drawRotationLeft[scale=1.3,style={red}]{-60}{0}{0}{15}
    \drawRotationRight[scale=1.3,style={red}]{60}{0}{0}{15}

    \node at (-0.8,1.9) {\textcolor{red}{\tiny $J_{12}(t)$}};
    \node at (1.1,1.8) {\textcolor{red}{\tiny $J_{23}(t)$}};

    \labelLatLon{up}{90}{0};
    \labelLatLon{down}{-90}{90};
    \node[above] at (up) {{\tiny $\left|1\right>$ }};
    \node[below] at (down) {{\tiny $\left|0\right>$}};

    \labelLatLon[labelmark=false]{d}{15}{90};
    \node at (d) {\color{gray}\fontsize{0.15cm}{1em}\selectfont $60^\circ$};

    \labelLatLon[labelmark=false]{d2}{5}{78};
    \node at (d2) {\color{gray}\fontsize{0.15cm}{1em}\selectfont $60^\circ$};
\end{blochsphere}
\end{document}

主要补充:如何轻松绘画量子电路以特克斯

我找不到一个好的包(从技术上讲,你可以使用qasm2circ,但我不太喜欢它,而且电路,我还没有测试过),但我认为在“pics”的帮助下,用普通的 Tex 来完成它是相当容易的。

例子:

A simple and somewhat nonsensical example circuit

% !TeX encoding = UTF-8
% !TeX spellcheck = de_DE

\documentclass[11pt,border=2mm]{standalone}

\usepackage{tikz}
\usepackage{nicefrac}
\usetikzlibrary{positioning}

\begin{document}
    \begin{tikzpicture}[
    scale=1,
    pics/measure/.style 2 args={code={\draw[fill=white] (0,-#2/2) rectangle (#1,#2/2);\draw (1,-0.25) arc (0:180:0.4);\draw[->] (0.5,-0.25) -- (1,0.25);}},
    pics/dot/.style={code={\fill[black] (0,0) circle (0.1);}},
    pics/odot/.style={code={\fill[draw=black, fill=white] (0,0) circle (0.1); \draw (-0.1,0) -- (+0.1,0) (0,-0.1) -- (0,+0.1);}},
    pics/qubit/.style 2 args={code={\draw[black, thick, fill=#1] (-0.3,0) node[anchor=center] {#2} circle (0.3);}},
    ]
    %change these values:
    \pgfmathsetmacro{\linedist}{-0.7}
    \pgfmathsetmacro{\ep}{5}
    \pgfmathsetmacro{\ms}{0.5cm}



    \draw[] (0,0) pic[anchor=east] {qubit={blue!50}{X}}
    -- ++(0.5, 0) node[anchor=center, fill=white, draw=black, minimum size=\ms]{H}
    -- (4, 0) node[anchor=center, fill=white, draw=black, minimum size=\ms]{H}
    -- (\ep-0.6, 0) pic[anchor=center,scale=0.51] {measure={1.2}{1}};

    \draw[] (0,\linedist) pic[anchor=east] {qubit={red!80!black!70}{A}}
    -- ++(0.5, 0) node[anchor=center, fill=white, draw=black, minimum size=\ms]{H}
    -- (4, 1*\linedist) node[anchor=center, fill=white, draw=black, minimum size=\ms]{H}
    -- (\ep,\linedist) {};

    \draw[] (0,2*\linedist) pic[anchor=east] {qubit={red!80!black!70}{B}}
    -- ++(0.5, 0) node[anchor=center, fill=white, draw=black, minimum size=\ms]{H}
    -- ++(2.5, 0) node[anchor=center, fill=white, draw=black, minimum size=\ms]{$R_\mathrm{\varphi}^{\nicefrac{\pi}{2}}$}
    -- (4, 2*\linedist) node[anchor=center, fill=white, draw=black, minimum size=\ms]{H}
    -- (\ep,2*\linedist) {};

    \draw (1.5,0) pic[] {dot} -- ++ (0,2*\linedist){} pic[] {dot};
    \draw (2.0,0) pic[] {dot} -- ++ (0,1*\linedist){} pic[] {odot};
    \end{tikzpicture}
\end{document}

答案2

对于量子电路图,请参阅此文章:有什么好的软件包可以排版量子电路吗?

对于 Bloch 球体,Tikz 应该是一个不错的选择。如果您必须多次重复相同的草图,定义 Tikz 宏可能是一个不错的选择。

相关内容