Help us understand the problem. What is going on with this article?

Google ColaboratoryとBlueqatで始める量子コンピュータプログラミング06(swapゲート)

はじめに

毎回少しずつ量子ゲート方式のチュートリアルを行なっています。今回は二つの量子ビットの値を入れ替えるswapゲートを見てみます。

前回まで

前回までのおさらいはこちらです。

「Google ColaboratoryとBlueqatで始める量子コンピュータプログラミング05(トフォリゲート)」
https://qiita.com/YuichiroMinato/items/0a9265b98cad1ee12c6e

「Google ColaboratoryとBlueqatで始める量子コンピュータプログラミング04(量子もつれ)」
https://qiita.com/YuichiroMinato/items/01fd29b257ba2eeab686

「Google ColaboratoryとBlueqatで始める量子コンピュータプログラミング03(重ね合わせ)」
https://qiita.com/YuichiroMinato/items/58d43c55f7a46b9e9b23

「Google ColaboratoryとBlueqatで始める量子コンピュータプログラミング02(2量子ビット)」
https://qiita.com/YuichiroMinato/items/d012ba176d6da8cbecfb

「Google ColaboratoryとBlueqatで始める量子コンピュータプログラミング01(1量子ビット)」
https://qiita.com/YuichiroMinato/items/6908e00c98843cc64bf0

早速やってみます

youtubeでは動画を、google colabのリンクでは実際にプログラミングがされた状態が準備できます。

youtube動画は、
https://www.youtube.com/watch?v=FaaYTq2cnfw

今回のgoogle colabリンク
https://colab.research.google.com/github/Blueqat/Blueqat-tutorials/blob/master/tutorial-ja/006_basic_swap.ipynb

インストール

まずはインストールです。google colabでは毎回インストールが必要です。

!pip install blueqat

!マークをつけてインストールをします。完了したら次に進みます。

2つの量子ビットを入れ替えるswapゲート

swapゲートは2つの量子ビットの値を入れ替えます。よく使うテクニックなので覚えておきましょう。

from blueqat import Circuit

Circuit().x[0].m[:].run(shots=1)

こちらは、0番目の量子ビットを1にしてみます。

Counter({'1': 1})

これで準備が整いました。0番目と1番目の量子ビットを入れ替えてみます。結果は01になるはずです。

Circuit().x[0].cx[0,1].cx[1,0].cx[0,1].m[:].run(shots=1)

こうすると、

Counter({'01': 1})

swapゲートはCXゲートを交互に三回使うことで実現できます。CXゲートは真ん中だけ上下逆にします。上記の回路では0番目の量子ビットに1を設定した後にswapゲートを適用して交換して01と入れ替えに成功しています。swapゲートは度々出てくるテクニックなので覚えておいた方がいいでしょう。

4つでも5つでも順番に量子ビットを入れ替えながら大きな回路でもswapゲートをたくさん使うことで好きな量子ビットの値を入れ替えることができます。

以上です。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away