IBM Q(コンポーザー)に「スワップゲートの平方根」を実装するにはどうすればよいですか?


9

ステップの1つが2つのキュービット間の「スワップゲートの平方根」である量子アルゴリズムをシミュレートしたいと思います。

IBM composerを使用してこのステップを実装するにはどうすればよいですか?


おそらく、単純なスワップゲートを「ブリック」として使用して、スワップゲートの平方根を作成すると便利な場合があります。この方法でIBM Qをシミュレートできます:cx q [1]、q [0]; hq [0]; hq [1]; cx q [1]、q [0]; hq [0]; hq [1]; cx q [1]、q [0];
横たわるダンサー

1
@JanVdA平方根は一意ではありません。実際、2 ^ 4 = 16の可能なルートがあるはずです。どちらの意味ですか?
Norbert Schuch

誰もが私のためにしてくれます。特定のものに対する好みはありません。
JanVdA

回答:


9

これは、SQRT(SWAP)構造で、一方向のCNOTのみが必要です。アダマール、Sゲート(Z12)、Sダガーゲート(Z12)、Tゲート(Z14)およびTダガーゲート(Z14):

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

それを直接composerにエンコードできるはずです。


どのようにしてこれを第一原理から得るのでしょうか?
user1271772 2018年

@ user1271772「第一原則」はどれですか?
Norbert Schuch

私が実装する方法がわからないおよびZを- 1 / 2 IBMコンポーザーを使用しました。Z1/2Z1/2
JanVdA

@ user1271772 CNOT-NOTC-CNOT SWAP回路から始め、中央のCNOTをC-sqrt(not)に置き換えて、全体をsqrt(SWAP)にし、C-srt(not)をS + CNOTゲートに分解しました。 、いくつかのゲートを移動してCNOTの1つをキャンセルし、次にアダマールを使用してCNOTの方向を逆にして間違った方向を指し示しました。
Craig Gidney

@JanVdA であるS、及びZ - 1 / 2であり、S (作曲青ゲートを見て)。Z1/2SZ1/2S
Craig Gidney

2

実行したいのは、スパンされる部分空間の回転です01 | 10 てそれを回転させる|01|10。このために、最初にCNOTを実行して、このサブスペースを{|にマップすることができます01| 11}。今、あなたはを行う必要がありますX{|01,|11}最初のキュービットの X回転。2番目のキュービットが1であることを条件とします。CNOTを使用した制御されたUゲートの実装は標準的な構造であり、さまざまな場所で見つけることができます。たとえば、https://arxiv.org/abs/quant-ph/9503016を参照してください。この手順を行う方法、あなたが第一量子ビットの「グローバル」の位相を修正する必要がある場合がありますによって(第二がある与えられた|1)。最後に、CNOTを元に戻す必要があります。XU|1


それは私には明らかではありません1)あなたがする方法作曲インチ 2)composerでCNOTを元に戻す方法3)制御されたUゲートについて言及しましたが、アルゴリズムのどこで使用する必要があるかは明確ではありません。アルゴリズムの段階的な説明は、これをIBMコンポーザーに実装するのに役立つと思います。X
JanVdA

@JanVdA量子回路とその操作に慣れるために、自分でいくつかの作業を行う必要があると思います。それ以外の場合、sqrt-SWAPの回路がわかったらどうしますか?
Norbert Schuch

参考までに:上記のsqrt-SWAPの説明を使用して、IBM composer でquantumcomputing.stackexchange.com/questions/2209/…に対して提案されたソリューションをテストしました。
JanVdA

@JanVdAどっち?受け入れられたもの?それは制御されたSWAPについてのみ話します。(そのため:journals.aps.org/pra/abstract/10.1103/PhysRevA.53.2855
Norbert Schuch

:申し訳ありませんが私は質問のために受け入れられた解決策に言及してい mathoverflow.net/questions/301733/...
JanVdA

-1

すべての2キュービットゲートには「ポーリノミアル分解」があります。つまり、パウリ行列の多項式として記述できます。

必要なゲートについて:

SWAP=[1000012(1+i)12(1i)0012(1i)12(1+i)00001]=1i4(X1X2+Y1Y2+Z1Z2)+3+i2I,

ここで、i 番目のキュビットに適用されるXゲートです。XiXith


はい、答えてくれてありがとう-これをIBM Composerに変換する方法を理解するために少し勉強する必要があります。
JanVdA

@JanVdAどうしたの?X、Y、Zゲートを回路にドラッグアンドドロップできませんか?ゲートに定数を乗算する方法について、別の質問をすることもできます。
user1271772

X1X2X1X2+Y1Y2I

X1X2XX

ZZ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.