Qcircuit、量子回路、ゲーム

Qcircuit、量子回路、ゲーム

画面の左側の「図と表」というタイトルのすぐ下にある、判別しにくい 2 つの図を LaTeX で作成するにはどうすればよいでしょうか。ここ誰かQcircuit LaTeXのコードを教えてくれませんか?

写真は以下のとおりです。

ここに画像の説明を入力してください

そして

ここに画像の説明を入力してください

MWE は次のとおりです。

\documentclass{article} 
\input{Qcircuit} 
\begin{document} 
\Qcircuit @C=1em @R=1em { \lstick{\ket{x}} & \qw \ar@{.}[]+<3.5em,1em>; [d]+<3.5em,-1em> 
& \ctrl{1} &
 \qw & \rstick{\ket{x}} \qw \\ 
\lstick{\ket{y}} & \gate{H} & 
\gate{\pi} & \gate{H} & \rstick{\ket{y \oplus x}} \qw } 
\end{document}

答え1

Jan が直接私に連絡してきて、私は彼に代わってこの質問に答えましたが、同様の質問が必要な人がいる場合に備えて、ここで回答を投稿します。

これら 2 つの回路の LaTeX ソースと結果の PDF は以下に含まれています。

水平に積み重ねられたゲートのネスト:

\documentclass{standalone}

\usepackage{rotating}

\input{Qcircuit}

\newcommand{\puremultigate}[2]{*+<1em,.9em>{\hphantom{#2}} \POS [0,0]="i",[0,0].[#1,0]="e",!C *{#2},"e"+UR;"e"+UL **\dir{-};"e"+DL **\dir{-};"e"+DR **\dir{-};"e"+UR **\dir{-},"i"}

\begin{document}

\begin{tabular}{c}
\vspace{-.6em}\\
\Qcircuit @R=.2em @C=.5em @!R {
& & & & & & & & & & & & & \puremultigate{5}{\rotatebox{-90}{\small Measurement}} \\
& & \qw & \qw & \multigate{3}{U} & \qw & \qw & \multigate{3}{\fbox{$U_1$\rule[-1em]{0em}{2.7em}}\ \,\fbox{$U_2$\rule[-1em]{0em}{2.7em}}} & \qw & \qw & \multigate{3}{U^\dagger} & \qw & \qw & \ghost{\rotatebox{-90}{\small Measurement}} & \qw & \qw \\
& \lstick{\raisebox{-1.5em}{$\rho$}} & \qw & \qw & \ghost{U} & \qw & \qw & \ghost{\fbox{$U_1$\rule[-1em]{0em}{2.7em}}\ \,\fbox{$U_2$\rule[-1em]{0em}{2.7em}}} & \qw & \qw & \ghost{U^\dagger} & \qw & \qw & \ghost{\rotatebox{-90}{\small Measurement}} & \qw & \qw \\
& & & \raisebox{.3em}{\vdots} & \pureghost{U} & \push{\rule{3em}{0em}} & & \pureghost{\fbox{$U_1$\rule[-1em]{0em}{2.7em}}\ \,\fbox{$U_2$\rule[-1em]{0em}{2.7em}}} & \push{\rule{.5em}{0em}} & & \pureghost{U^\dagger} & \push{\rule{1.5em}{0em}} & & \pureghost{\rotatebox{-90}{\small Measurement}} & & \\
& & \qw & \qw & \ghost{U} & \qw & \qw & \ghost{\fbox{$U_1$\rule[-1em]{0em}{2.7em}}\ \,\fbox{$U_2$\rule[-1em]{0em}{2.7em}}} & \qw & \qw & \ghost{U^\dagger} & \qw & \qw & \ghost{\rotatebox{-90}{\small Measurement}} & \qw & \qw \\
\push{\rule{.6em}{0em}} & & & & & & & & & & & & & &
}
\vspace{1.2em}\\
\end{tabular}

\end{document}

水平にネストされた量子ゲート

垂直に積み重ねられたゲートのネスト:

\documentclass{standalone}

\usepackage{rotating}

\input{Qcircuit}

\newcommand{\puremultigate}[2]{*+<1em,.9em>{\hphantom{#2}} \POS [0,0]="i",[0,0].[#1,0]="e",!C *{#2},"e"+UR;"e"+UL **\dir{-};"e"+DL **\dir{-};"e"+DR **\dir{-};"e"+UR **\dir{-},"i"}

\begin{document}

\begin{tabular}{c}
\vspace{-.6em}\\
\Qcircuit @R=.2em @C=.5em @!R {
& & & & & & & & & & & & & \puremultigate{5}{\rotatebox{-90}{\small Measurement}} \\
& & \qw & \qw & \multigate{3}{U} & \qw & \qw & \multigate{3}{\parbox{2em}{\fbox{$U_1$}\vspace{.2em}\\\fbox{$U_2$}}} & \qw & \qw & \multigate{3}{U^\dagger} & \qw & \qw & \ghost{\rotatebox{-90}{\small Measurement}} & \qw & \qw \\
& \lstick{\raisebox{-1.5em}{$\rho$}} & \qw & \qw & \ghost{U} & \qw & \qw & \ghost{\parbox{2em}{\fbox{$U_1$}\vspace{.2em}\\\fbox{$U_2$}}} & \qw & \qw & \ghost{U^\dagger} & \qw & \qw & \ghost{\rotatebox{-90}{\small Measurement}} & \qw & \qw \\
& & & \raisebox{.3em}{\vdots} & \pureghost{U} & \push{\rule{3em}{0em}} & & \pureghost{\parbox{2em}{\fbox{$U_1$}\vspace{.2em}\\\fbox{$U_2$}}} & \push{\rule{.5em}{0em}} & & \pureghost{U^\dagger} & \push{\rule{1.5em}{0em}} & & \pureghost{\rotatebox{-90}{\small Measurement}} & & \\
& & \qw & \qw & \ghost{U} & \qw & \qw & \ghost{\parbox{2em}{\fbox{$U_1$}\vspace{.2em}\\\fbox{$U_2$}}} & \qw & \qw & \ghost{U^\dagger} & \qw & \qw & \ghost{\rotatebox{-90}{\small Measurement}} & \qw & \qw \\
\push{\rule{.6em}{0em}} & & & & & & & & & & & & & &
}
\vspace{1.2em}\\
\end{tabular}

\end{document}

垂直にネストされた量子ゲート

Qcircuit にはネストされたゲートのための特別な機能はありませんが、ネストされたゲートの効果を得るには、内部ゲートを表すボックスを標準の \multigate コマンドに挿入するだけです。

測定ゲートを正しく表示するには、導線を強制しない新しい \multigate コマンド \puremultigate を定義する必要がありました。これを行うには、Qcircuit.tex から \multigate の標準定義を取り出し、最後の \qw コマンドを削除しました。

関連情報