誰でも使える量子コンピュータを目指して

私たちは量子コンピュータの普及において、ソフトウェア環境整備が最重要であると認識し、支援環境の開発に取り組み始めています。
その先駆けとして、量子アニーリングマシン向けの開発支援環境とGPUアニーリングマシンについて現在の開発状況を公開しています。

開発支援環境について

複雑で専門性の高いプロセスの負荷低減を行うことで、アプリケーション開発の効率化

GPUアニーリングマシンについて

本格的な量子コンピュータを導入する前に、安価に量子プログラミングを体験することが可能

開発支援環境

シンプルでシームレスな量子プログラミング体験を。

量子プログラミングをより直感的に

現在開発が進められている量子アニーリングマシンは機種によってハードウェアの仕様や制約条件が異なります。
現在はこれらを理解した上でマシンを使用する必要があり、そのためには下記プロセスに従ってプログラミングを行います。

1. 組合せ最適化問題を定義
2. アニーリングマシンそれぞれの機種が入力可能な形式に変換
3. ハードウェア仕様に基づいてデータを入力する

本開発支援環境の提供するミドルウェアは、複雑で専門性の高いプロセスの負荷低減を行うことでユーザは課題の検討や定式化に集中することが可能となり、アプリケーション開発の効率化を行います。

通常のアニーリングマシンのプログラミング

...
課題検討

最適化の対象となる課題を検討

...
数式として定式化

最適化対象の目的関数と変数を定義

...
論理モデルへ変換

目的関数をマシンの動作モデルで再定義

...
物理モデルへ変換

マシン仕様や制約を考慮した物理モデルに再変換

...
マシンにデータを入力

マシンのSDKやAPI仕様に合わせて物理モデルをデータ化

ミドルウェアを用いたアニーリングマシンのプログラミング

...
課題検討

最適化の対象となる課題を検討

...
数式として定式化

目的関数を定義しミドルウェアを用いてプログラムコード化

...
論理モデル・物理モデルの変換とマシン実行を自動化

ミドルウェアの提供するAPIが自動で各マシンの入力可能な形式へ多段変換
さらに実行結果の逆変換を行い、ユーザにとって結果の解釈が容易な形で返却

3つの自動化で開発効率をUP!

組合せ最適化問題を定義して数式や入力モデルをデータ化するプロセスは複雑ですが、ミドルウェアを用いるとこれらの作業を自動化できます。
開発支援環境は様々な数式や入力形式に対応し、数式を直感的にプログラムコード上で入力するためのインターフェースを提供しています。
これにより実装コストや変換時のミスを削減することが可能です。

通常のコード
H = [
   [(0, 1), 2],
   [(0, 2), 2],
   [(0, 3), 2],
   [(0, 4), 2],
   [(1, 2), 2],
   [(1, 3), 2],
   …
]
ミドルウェアで書くコード
H=(Sum(5) - 1)**2

Simple!

アニーリングマシンの仕様には差異があるため、ハードウェアに入力可能な形式に変換する実装が必要です。
ミドルウェアは定式化された入力モデルを、ハードウェア制約への対応(論理物理変換)した入力可能形式へ自動変換します。
これはグラフ埋め込みと呼ばれる実装と入力モデルに対する制約条件の抽象化をサポートすることで実現されます。



ミドルウェアを用いるとコードを1行書き換えるだけでマシンの切り替えが可能です。
ハードウェアへの入力を開発支援環境が代理するため、ユーザは仕様を意識せずにマシンを実行できます。
マシンごとに再度定式化と再実装を行う必要がないため、短期間で自身の課題にあったマシンを選定することが可能です。

ミドルウェアで書くコード
solver = FujitsuDAPTSolver()

Simple!

Fujitsu
Digital Annealer

Toshiba
Simulated Bifurcation Machine
D-Wave Systems
D-Wave 2000Q

対応マシン


D-Wave 2000Q

デジタルアニーラ
東芝シミュレーテッド
分岐マシン
CMOS
アニーリングマシン
GPUアニーリングマシン

量子コンピューティングを手軽にシミュレーション

本格的な量子コンピューティングを導入する前に、GPUをベースにしたアニーリングマシンを用いることで手軽に量子プログラミングの体験やアプリケーション開発を行うことができます。
ミドルウェアと組み合わせることで、GPUアニーリングマシンを用いて開発した後に、量子アニーリングマシンをはじめとする実機へのシームレスな移行が可能となります。

機能・スペック

動作環境

NVIDIA Quadro GV100/Tesla V100
並列数: 1台 (マルチGPUによる高速化予定)

最適化モデル

Quadratic Unconstrained Binary Optimization
最大8192ビット (10万ビット規模へ拡張予定)
全結合方式

アルゴリズム

並列化シミュレーテッドアニーリング

カスタマイズ例

スケジューリング問題専用ソルバー
配送計画問題専用ソルバー
人員配置問題専用ソルバー
各種 NVIDIA CUDAプラットフォームへの移植

GPUアニーリングマシンは汎用アクセラレータ上のソフトウェアで実装されています。
そのため、最適化モデルをQUBOから変更した専用最適化ソルバーの開発や、CUDAプラットフォームを用いた組み込みシステムへの移植など、お客様の課題に合わせた柔軟なカスタマイズが可能です。

巡回セールスマン問題のベンチマーク例

Fixstars GPUアニーリングマシンとミドルウェアを使用して、巡回セールスマン問題の計算時間をベンチマークしました。
アニーリングマシンへの定式化についてはこちらをご参照ください。

TSP LIB eil51

51都市 2601ビット
アニーリング時間1.1秒で最適解に到達
既知の最適解: 426
GPUアニーリングによる最良解: 426

TSP LIB pr76

76都市 5776ビット
アニーリング時間9秒で102%程度の近似解に到達
既知の最適解: 108159
GPUアニーリングによる解: 109592

アップデート情報を受け取る

フィックスターズでは開発支援環境のアップデートも含め、他にも支援環境の開発を進めて参ります。
デモやケーススタディなどのアップデート情報をお送り致します。
ご興味のある方はご登録ください。

プライバシーポリシー