LoginSignup
10
9

More than 1 year has passed since last update.

金融のための量子アニーリングことはじめ1 | D-wave Leap導入編

Last updated at Posted at 2019-04-27

はじめに

某社でクオンツアナリストとして働いておりますhalと申します。
本記事は自分の勉強も兼ねて、金融実務者の方向けに典型的なポートフォリオ最適化を通じて、
"量子アニーリング"の紹介&デモンストレーションをしていきます。
pythonの導入されたPCがあればどなたでも無料で試せるので、興味がある方は実際に動かしてみてください。

D-Wave Leap

https://www.dwavesys.com/take-leap
カナダのD-Wave社が提供している量子アニーリングのサービスです。
2019/3/26にようやく北米以外でも解禁となり、日本からでも利用できるようになりました。
登録するだけで、無料で1分間量子コンピュータを利用できます。(GitHubアカウントを連携させれば毎月1分間利用できます)
有料プランも用意されていて1時間あたり$2000ほどで購入できるようです(高い...)
まぁ本体を購入すると$15Mくらいらしいので妥当ではあるのでしょうか

さて今回はこちらのサービスを利用していききます。
上記のアドレスから簡単にSign upできます。
動作のイメージなどはマイページのResourcesからチュートリアルが見れるので、そちらも参考にすると良いかと思います。

D-Wave Oceanの導入

Leapにはpythonから簡単に利用する為のD-Wave OceanというSDK(ソフトウェア開発キット)が配信されているので、今回はこれを利用していきます。

pip を使用すれば以下のコマンドでインストールできます。
(公式では仮想環境にインストールすることが推奨されていますが、わからなければスルーで大丈夫です)

pip install dwave-ocean-sdk

インストール後自分のアカウントを利用できるように設定をしていきます。
設定には自分のアカウントのAPIトークンとAPIエンドポイントが必要です。

APIトークン

マイページのDashboardから取得できます。(赤で囲ってある箇所です)

API_Token.png

APIエンドポイント

Dashboard の下部に表示されています。

API_end_point.png

設定の登録

ターミナルからdwave config createを実行し以下のように入力します。

Configuration file not found; the default location is: #############
Confirm configuration file path (editable):
Profile (create new): prod
API endpoint URL (editable): 取得したAPIエンドポイント
Authentication token (editable): 取得したAPIトークン
Client class (qpu or sw): qpu
Solver (can be left blank): {"qpu": true}
Proxy URL (can be left blank):
Configuration saved.

実行後dwave soloversでエラーが発生しなければ成功です!

試しに動かしてみる

leap_test.py
from dwave.system.samplers import DWaveSampler
from dwave.system.composites import EmbeddingComposite

sampler = EmbeddingComposite(DWaveSampler())
response = sampler.sample_ising({'a': -0.5, 'b': 1.0}, {('a', 'b'): -1})
print(response)

以下のような結果が帰ってきたら成功

a b energy num_oc. chain_.
-1 -1 -1.5 1 0.0

実際にポートフォリオ最適化を解いてみる

量子コンピュータことはじめ2に続く

リンク

金融のための量子アニーリングことはじめ1 | D-wave Leap導入編(本記事)
金融のための量子アニーリングことはじめ2 | ポートフォリオ最適化 1
金融のための量子アニーリングことはじめ3 | ポートフォリオ最適化 2

10
9
1

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
10
9