使用 QCircuit 繪製排列門

使用 QCircuit 繪製排列門

我正在尋找一種方法來繪製排列門依照下圖所示的方式使用QCircuit(例如在紅色框內):

具有排列閘門的量子電路

(如何)使用Qcircle可以實現這一點嗎?

編輯:由於我被要求提供我迄今為止所取得的成就的 MWE,這是我的原始碼:

\documentclass{article}
\usepackage{qcircuit}
 \begin{document}
 \mbox{
     \Qcircuit @C=0.5cm @R=.2cm {
         \lstick{x_1} & \multigate{1}{\ } & \rstick{x_1} \qw \\
         \lstick{x_2} & \ghost{\ }        & \rstick{x_2} \qw 
     }
 }
 \end{document}

這會產生下圖左半部所示的內容,但我完全不知道如何產生右側以紅色顯示的對角線:

在此輸入影像描述

答案1

我相信答案是否定的,這是不可能的。該\multigate命令只不過是在適當數量的行上繪製一個矩形。我認為你想要的對角線Qcircuit完全超出了範圍 - 儘管我不知道xyQcircuit使用)足夠好可以肯定地說。

然而,這種排列操作與不同模式之間的交換門序列相同。以這種方式編寫電路具有相同的效果,可以說更有意義(在實驗中,量子位通常固定在適當的位置,因此這種交換操作是對最初空間分離的量子位之間的多量子位門的更真實的描述)。

更重要的是,Qcircuit允許進行此類操作,這將是解決您的問題的最佳方法(無需移動到不同的套件)。對於您突出顯示的操作,以下圖像/代碼是替代描述,即排列 7 -> 6、6-> 5、5 -> 4 和 4 -> 7。

Qswap 排列電路範例

製作與

\documentclass{article}

\usepackage{qcircuit}

\begin{document}

\Qcircuit @C=.7em @R=1em @!R {
\lstick{x_1} & \qw & \qw & \qw & \qw & \qw & \rstick{y_1} \\
\lstick{x_2} & \qw & \qw & \qw & \qw & \qw & \rstick{y_2} \\
\lstick{x_3} & \qw & \qw & \qw & \qw & \qw & \rstick{y_3} \\
\lstick{x_4} & \qw & \qswap & \qswap & \qswap & \qw & \rstick{y_4} \\
\lstick{x_5} & \qw & \qw \qwx & \qw \qwx & \qswap \qwx & \qw & \rstick{y_5} \\
\lstick{x_6} & \qw & \qw \qwx & \qswap \qwx & \qw  & \qw & \rstick{y_6} \\
\lstick{x_7} & \qw & \qswap \qwx & \qw & \qw & \qw & \rstick{y_7} 
}

\end{document}

答案2

您可以使用該命令獲得您想要的有角度的電線\link。我經常用它們來表示交換。獲得您所要求的內容的最簡單方法是使用連結命令並使用該\gategroup命令在感興趣的區域周圍創建一個框。這是一個例子:

在此輸入影像描述

這是用以下程式碼排版的:

\documentclass{standalone}
\input{Qcircuit}% using  qcircuit version 2
\begin{document}
\hspace{1em}
\begin{tabular}{c}
\vspace{-.6em}\\
     \Qcircuit @C=0.5cm @R=.5cm {
         \lstick{x_1} & \qw & \link{1}{-1} & \rstick{x_1} \qw \\
         \lstick{x_2} & \qw & \link{-1}{-1} & \rstick{x_2} \qw
         \gategroup{1}{2}{2}{3}{.8em}{-}
     }
\vspace{1.2em}\hspace{1.2em}
\\
\end{tabular}
\end{document}

然而,電線並不恰好在盒子的邊緣彎曲。如果你想要的話,你可以使用\link\multigate和來破解它\ghost,但你必須將預設列間距設為零,並通過\pusha強制電線長度\rule。這是一個例子:

在此輸入影像描述

這是用以下程式碼排版的:

\documentclass{standalone}
\input{Qcircuit}% using  qcircuit version 2
\begin{document}
\hspace{1em}
\begin{tabular}{c}
\vspace{-.6em}\\
     \Qcircuit @C=0cm @R=.2cm {
         \lstick{x_1} & \qw & \qw & \multigate{1}{\ \ \ } & \qw \link{1}{-2} & \qw & \rstick{x_1} \qw \\
         \lstick{x_2} & \qw & \qw & \ghost{\ \ \ } & \qw \link{-1}{-2} & \qw & \rstick{x_2} \qw \\
         & \push{\rule{1.2em}{0em}} & & & & \push{\rule{1.2em}{0em}}
     }
\vspace{.2em}\hspace{1.2em}
\\
\end{tabular}
\end{document}

或者,您可以將第一個範例中的方塊(中的倒數第二個欄位\gategroup)上的鬆弛長度設為0em 並將方塊延伸到前一行和後一行,但這需要調整行間距才能使其看起來正確(很可能\push是垂直規則)。

相關內容