采用 Quantikz 的量子算法电路

采用 Quantikz 的量子算法电路

我尝试使用乳胶绘制著名的“Deutsch算法”,但没有结果:在此处输入图片描述

对于这个用例,我尝试了所有用于量子电路的 latex 包。我能获得可接受结果的是 quantikz。

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

\usepackage{tikz}
\usetikzlibrary{quantikz}

\begin{document}
\begin{quantikz}
\lstick{$\ket{0}$} & \gate{H} &
    \gate[wires=2][1.7cm]{U}
        \gateinput[1]{$x$} 
        \gateoutput[wires=1]{$x$} & \gate{H}\\
            &\gateinput{$y$}
            \gateoutput{$y\oplus f(x)$}&\qw\\
\lstick{$\ket{1}$} & \gate{H} 
\end{quantikz}

\end{document}

导致:

在此处输入图片描述

主要问题是我找不到将第二个量子位插入 U 的 y 门的方法。有什么想法吗?

答案1

我不知道这个quantikz包。我对量子计算一无所知。不过,你的图片很容易用纯 Ti 画出来Z. 我相信你会有其他解决方案quantikz或其他相关包。同时我希望这个例子能有所帮助。

\documentclass[tikz,border=2mm]{standalone}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}[y=-1cm,scale=1.5]
\foreach\i in {0,1}
  \draw (5,\i) -- (0,\i) node[left] {$\lvert\i\rangle$};
\foreach\i/\j in {1/0,1/1,4/0}
  \draw (\i,\j) node[draw,fill=white] {$H$};
\draw[fill=white] (1.75,-0.25) rectangle node {$U_f$} (3.25,1.25);
\foreach[count=\j from=0]\i in {0.5,1.5,3.5,4.5}
  \draw[<-] (\i,1.5) -- (\i,2) node[below] {$\lvert\psi_\j\rangle$};
\node[right] at (1.75,0) {$x$};
\node[left]  at (3.25,0) {$x$};
\node[right] at (1.75,1) {\strut$y$};
\node[left]  at (3.25,1) {\strut$y\oplus f(x)$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

为了记录,这是quantikz代码。

b

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{quantikz}

\begin{document}

\begin{quantikz}
    \lstick{$\ket{0}$}  &\gate{H}   &\gate[wires=2][1.7cm]{U_f}\gateinput[1]{$x$}\gateoutput[1]{$x$}&\gate{H}   &\qw\\
    \lstick{$\ket{1}$}  &\gate{H}   &\qw\gateinput{$y$}\gateoutput{$y\oplus f(x)$}                  &\qw        &\qw\\  
\end{quantikz}

\end{document}

并附加了标签。

C

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{quantikz}   
\begin{document}

\begin{quantikz}
    \lstick{$\ket{0}$}  &\gate{H}   &\gate[wires=2][1.7cm]{U_f}\gateinput[1]{$x$}   \gateoutput[1]{$x$} & \gate{H}  &\qw\\
    \lstick{$\ket{1}$}  &\gate{H}   &\qw\gateinput{$y$}\gateoutput{$y\oplus f(x)$}                  &\qw & \qw\\ 
\end{quantikz} \\[-4ex]
\hspace*{1.0cm}\begin{tikzpicture}[y=-1cm]   
    \draw[<-] (2.7,2.5) -- (2.7,3) node[below] {$\lvert\psi_0\rangle$};  
    \draw[<-] (3.8,2.5) -- (3.8,3) node[below] {$\lvert\psi_1\rangle$};     
    \draw[<-] (6.1,2.5) -- (6.1,3) node[below] {$\lvert\psi_2\rangle$};  
    \draw[<-] (7.1,2.5) -- (7.1,3) node[below] {$\lvert\psi_3\rangle$};                 
\end{tikzpicture}
\end{document}

相关内容