@yuichirominato 2018.11.16更新 159views

Quantum teleportation with Blueqat

Blueqat Gate

Introduction

I introduced quantum teleportation by continuous valuable programming before.

Continuous Valuable Quantum Teleportation Programming (Japanese lang)
http://blog.mdrft.com/post/208

I would like to implement quantum teleportation using Blueqat SDK on universal gate machine.

Quantum teleportation

Although it is named teleportation, it does not mean particles move instantaneously to different places in space. When observing the state of one of the two particles of quantum entanglement, the other state is confirmed instantaneously.

Quantum teleportation occurs between two particles in the quantum entanglement relationship of EPR pairs.

Quoted:https://en.wikipedia.org/wiki/Quantum_teleportation

As introduced above, quantum states can be photographed by generating quantum entanglement, measuring it, manipulating it, and manipulating the final qubits of the transfer destination with the measurement result.

Look at the circuit

First prepare the state of q0. Next, q1 and q2 make quantum entanglement. You can achieve quantum entanglement state called EPR pair by applying H gate to q1 and CNOT on q1 and q2. And it is called bell measurement, make measurements by generating tangle at q0, q1 and applying H gate to q 0. In this case, we will substitute CX / CZ circuit instead of measurement. Originally we will do the measurement instead of CX / CZ and apply X gate, Z gate.


q0 -?-----*-H-----*-------
q1 ---H-*-X---*---|-------
q2 -----X-----X-H-X-H-----

Blueqat code is,


from blueqat import Circuit
import math

#quantum teleportation circuit
Circuit().h[1].cx[1,2].cx[0,1].h[0].cx[1,2].h[2].cx[0,2].h[2]

Let’s prepare |0> and try the circuit


for i in range(20): 
    c = Circuit().h[1].cx[1,2].cx[0,1].h[0].cx[1,2].h[2].cx[0,2].h[2].m[:] 
    c.run() 
    print(c.last_result()) 

(0, 0, 0)
(0, 1, 0)
(0, 1, 0)
(1, 1, 0)
(0, 1, 0)
(0, 0, 0)
(0, 0, 0)
(0, 1, 0)
(0, 0, 0)
(1, 1, 0)
(0, 1, 0)
(0, 1, 0)
(1, 0, 0)
(1, 1, 0)
(1, 0, 0)
(1, 0, 0)
(0, 1, 0)
(1, 1, 0)
(1, 0, 0)
(1, 1, 0)

We succeded to transfer the state of first qubit to the third qubit.

And next we try |1>


for i in range(20): 
    c = Circuit().x[0].h[1].cx[1,2].cx[0,1].h[0].cx[1,2].h[2].cx[0,2].h[2].m[:] 
    c.run() 
    print(c.last_result()) 

(1, 1, 1)
(0, 0, 1)
(0, 1, 1)
(1, 0, 1)
(1, 0, 1)
(1, 1, 1)
(1, 1, 1)
(0, 1, 1)
(1, 0, 1)
(0, 1, 1)
(1, 1, 1)
(1, 0, 1)
(1, 1, 1)
(1, 1, 1)
(1, 0, 1)
(0, 1, 1)
(0, 1, 1)
(1, 1, 1)
(0, 1, 1)
(1, 0, 1)

And finally try on superposition of 0 and 1.


for i in range(20): 
    c = Circuit().h[0].h[1].cx[1,2].cx[0,1].h[0].cx[1,2].h[2].cx[0,2].h[2].m[:] 
    c.run() 
    print(c.last_result())
                                                                                                          
(1, 1, 0)
(0, 1, 0)
(0, 0, 1)
(0, 1, 1)
(1, 1, 1)
(0, 1, 1)
(1, 1, 0)
(1, 1, 0)
(1, 0, 0)
(0, 0, 0)
(1, 0, 1)
(0, 1, 0)
(1, 0, 1)
(1, 0, 0)
(0, 0, 1)
(1, 1, 0)
(0, 1, 0)
(1, 1, 0)
(0, 0, 1)
(0, 0, 1)

The overlayed state has shifted so that 0 and 1 come to q2 in about half probability.

Recommend

SERVICE

汎用量子コンピュータ向けアプリケーション開発SDK

詳しく見る Githubで入手する(無料)

汎用量子コンピュータ向け高速シミュレータ

詳しく見る

量子コンピュータ向けクラウドサービス(準備中)

詳しく見る

イジングマシン向けアプリケーション開発SDK

詳しく見る Githubで入手する(無料)

COMMUNITY

量子コンピュータのことを学びたい、仕事としたいなどの情報交換の場を設け、コミュニティの形成を進めています。オフラインの勉強会と、オンラインのチャットコミュニティの2種類あります。オフラインのConnpassは1400名、オンラインのSlackは880名を超える参加があります。どちらも無料ですのでお気軽にご参加ください。

CONNPASS SLACK

CONTACT

弊社あての連絡はinfo@mdrft.comより用件を明記の上、メールで連絡を頂けますと幸いです。

Back To Top

Recent Posts