common.title

Overview
Service overview
Terms of service

Privacy policy

Contact

Sign in
Sign up
common.title

blueqat cloudで始める量子コンピュータプログラミング04(量子もつれ)

Yuichiro Minato

2021/01/31 13:52

#量子ゲート

はじめに

前回は1量子ビットと2量子ビットと重ね合わせを見ました。今回は量子もつれと呼ばれる特殊な回路を見てみます。

早速回路を作ってみます

回路は簡単です。アダマールゲートとCXゲートを使います。

from blueqat import Circuit Circuit().h[0].cx[0,1].m[:].run(shots=100)
Counter({'11': 42, '00': 58})

まずはツールを読み込んで、上記の回路を実行してみます。

Counter({'00': 47, '11': 53})

結果は、、、00と11が約半分ずつ出ました。こちらは重ね合わせの後にさらに2量子ビットを使うことでもつれを実現しています。

重ね合わせとの違い

ここで、もつれと重ね合わせの違いを確認しておきましょう。重ね合わせは2量子ビットあると、最大で00,01,10,11の4つの組み合わせがあります。ただ重ね合わせただけでは組み合わせが多すぎて計算結果をうまく選べません。ここでもつれを使います。上記のもつれでは2つの解だけが出ます。

これによって答えを絞り込むことができます。たくさん重ねてうまく絞り込むことで速度を生かしたアルゴリズムを作り出すことができます。

2量子ビットの重ね合わせ回路は、

Circuit().h[0,1].m[:].run(shots=100)
Counter({'00': 21, '11': 22, '01': 29, '10': 28})

こうなり、実行すると、

Counter({'00': 20, '01': 30, '10': 27, '11': 23})

このようになりました。重ね合わせを実行しただけでは4つの答えが出ました。もつれを使ってうまく絞り込みましょう。今後はより複雑な回路を見ていきたいと思います。今回は以上です。

© 2024, blueqat Inc. All rights reserved