common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


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>

image

つぎに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>

image

すごいですね。すぐに戻ってきました。せっかくなので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>

image

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

© 2025, blueqat Inc. All rights reserved