common.title
Cloud support

Nobisuke

Dekisugi

RAG


autoQAOA
RAG for dev
Fortune telling app
Annealing
DEEPSCORE
Translation

Overview
Service overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

ちょっと珍しい、OQCのイギリス製量子コンピュータを使ってみました

Yuichiro Minato

2022/10/14 11:04

本日は珍しいイギリス製の量子コンピュータを使ってみます。量子コンピュータというとアメリカという感じがしますが、最近は全世界で使えるマシンが増えています。

OQC

https://oxfordquantumcircuits.com/

超伝導タイプとなっています。なんか適当な問題を設定して動かしてみようと思います。

from braket.circuits import Circuit from braket.devices import LocalSimulator import matplotlib.pyplot as plt %matplotlib inline

まずは量子回路をシミュレートしてみます。

bell = Circuit().h(0).cnot(0,1) print(bell)
T  : |0|1|

          

q0 : -H-C-

        | 

q1 : ---X-



T  : |0|1|
#デバイス指定でシミュレータ指定 device = LocalSimulator() #10回計算してみます result = device.run(bell, shots=10).result() #計算結果の表示 counts = result.measurement_counts print(counts) #そのまま描画 plt.bar(counts.keys(), counts.values());
Counter({'11': 6, '00': 4})
<Figure size 432x288 with 1 Axes>output

つぎにLucyを準備します。念のためゲートセットも確認します。

from braket.aws import AwsDevice device = AwsDevice("arn:aws:braket:eu-west-2::device/qpu/oqc/Lucy") print(device.properties.action['braket.ir.jaqcd.program'].supportedOperations)
['ccnot', 'cnot', 'cphaseshift', 'cswap', 'cy', 'cz', 'h', 'i', 'phaseshift', 'rx', 'ry', 'rz', 's', 'si', 'swap', 't', 'ti', 'v', 'vi', 'x', 'y', 'z', 'ecr', 'start_verbatim_box', 'end_verbatim_box']

そして早速投げてみましょう。100回計算してみます。

task = device.run(bell, shots=100) #計算結果の表示 counts = task.result().measurement_counts print(counts) #そのまま描画 plt.bar(counts.keys(), counts.values());
Counter({'00': 54, '11': 36, '10': 6, '01': 4})
<Figure size 432x288 with 1 Axes>output

すごいですね。すぐに戻ってきました。せっかくなので8量子ビット使ってみたいと思います。GHZで8量子ビットやってみます。

circuit = Circuit().h(0).cnot(0,1).cnot(1,2).cnot(2,3).cnot(3,4).cnot(4,5).cnot(5,6).cnot(6,7) task = device.run(circuit, shots=100) #計算結果の表示 counts = task.result().measurement_counts print(counts) #そのまま描画 plt.bar(counts.keys(), counts.values());
Counter({'00010011': 3, '01101100': 3, '00011100': 2, '00100111': 2, '00101100': 2, '00110000': 2, '00110110': 2, '00111010': 2, '01001011': 2, '01010100': 2, '01011000': 2, '01011010': 2, '01101010': 2, '01111000': 2, '10000100': 2, '10000101': 2, '11000011': 2, '11010000': 2, '11010110': 2, '11010111': 2, '11011100': 2, '11110110': 2, '11110111': 2, '11111010': 2, '00001100': 1, '00010100': 1, '00010101': 1, '00011010': 1, '00011110': 1, '00011111': 1, '00110011': 1, '00110100': 1, '00111110': 1, '01000000': 1, '01000011': 1, '01000100': 1, '01010000': 1, '01011011': 1, '01100010': 1, '01100110': 1, '01101001': 1, '01111011': 1, '01111101': 1, '01111110': 1, '10000110': 1, '10001110': 1, '10001111': 1, '10010001': 1, '10010110': 1, '10011001': 1, '10011011': 1, '10011101': 1, '10011111': 1, '10100101': 1, '10101100': 1, '10110000': 1, '10110001': 1, '10110010': 1, '10111010': 1, '10111101': 1, '11000010': 1, '11000100': 1, '11000110': 1, '11000111': 1, '11001010': 1, '11001111': 1, '11010101': 1, '11011001': 1, '11011010': 1, '11011101': 1, '11101111': 1, '11111000': 1, '11111001': 1, '11111011': 1})
<Figure size 432x288 with 1 Axes>output

さすがに全部のGHZはきつかったですが、全体的には普通に使えましたし、思ってたよりも結構しっかりしてましたね。

© 2024, blueqat Inc. All rights reserved