LoginSignup
9
8

More than 3 years have passed since last update.

Amazon Braketで無料の量子コンピュータ・シミュレータを使う

Last updated at Posted at 2020-08-15

Amazon Braketには、無料の量子コンピュータ・シミュレータがある

Amazon Braketでは量子コンピュータを利用できますが、料金表のページに記載があるように有料です。

Amazon Braketには無料枠がないため、「量子コンピュータのことはよく分からないが、お試しで雰囲気を知りたい」という人には、ちょっとハードルが高いです。

Amazonがクラウド上で提供しているSV1というシミュレータは4.50ドル/時なので、本物の量子コンピュータと比べるとかなり安く実行できますが、「1円たりとも課金されたくない」「Amazonのアカウントを持っていないが試してみたい」という人はローカルのPC上で動作するシミュレータを使うのがよいと思います。

本記事では、ローカルのシミュレータ(以下、「LocalSimulator」と呼びます)を動かすまでの流れを紹介します。
(2020/08/16時点の情報にもとづいています)

インストール

Amazon Braketでは「amazon-braket-sdk」というPython製のライブラリを利用します。
Amazon Braketのノートブックインスタンスを利用すると最初からインストールされていますが、ローカルで動かす場合は自分でインストールします。
pip等を使い、インストールしましょう。

pip install amazon-braket-sdk

LocalSimulatorを実行

LocalSimulatorの使い方は、次のページの「Usage」に簡単な記載があります。

上記のページに記載されているコードを説明しやすいように少し書き換えたものが次のコードです。

from braket.circuits import Circuit
from braket.devices import LocalSimulator

# LocalSimulatorをインスタンス化
device = LocalSimulator()
# 量子回路を作成
circuit = Circuit().h(0).cnot(0, 1)
# 量子回路を実行(100回実行する)
result = device.run(circuit, shots=100).result()
counts = result.measurement_counts
# 量子回路の実行結果を表示
print(counts)

ここでは「量子回路とは何か?」について説明しませんが、自分の好きな量子回路を実行する場合は「量子回路を作成」の部分を目的の量子回路に変更すればOKです。

量子コンピュータの実行結果は確率的に変わるため、ここでは100回実行して結果を表示しています。
「shots」の部分を変更すれば、実行回数を変更できます。

このコードを実行すると、次のような形式の結果が返ってきます。

Counter({'11': 52, '00': 48})

これで、LocalSimulatorを実行できました。
確率的に動作する量子コンピュータをシミュレートしているため、実行結果にある「52」や「48」の部分は実行するたびに異なる値になります。

数字だけ見ても味気ないため、matplotlibで可視化すると次のようになります。

import matplotlib.pyplot as plt
plt.bar(counts.keys(), counts.values());
plt.xlabel('bitstrings');
plt.ylabel('counts');

histogram.png

まとめ

この記事では、LocalSimulatorを使い、量子コンピュータの動作をシミュレートする流れを紹介しました。
実際に量子コンピュータを利用する前にLocalSimulatorで慣れたり、動作確認してから、本物の量子コンピュータ(有料)を動かすと安くすむので、オススメです。

Qiitaのハッシュタグ「AmazonBraket」で、Amazon Braketに関する記事が少しずつ増えているので、それらの記事も勉強になるかと思います。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8