About Amplify¶
Amplify は株式会社フィックスターズの開発するイジングマシン向けミドルウェアライブラリです。 イジングマシンとは二値変数二次多項式で記述される最適化問題の求解に特化したマシンです。 現在、D-Wave Systems 社による量子アニーリングマシンを始めとして、デジタル回路や GPU 等で実装された様々なイジングマシンが発表されています。 このミドルウェアは、イジングマシンを用いるアプリケーションとハードウェアの中間層として、 マシンの利便性の向上とアプリケーションソフトウェアの高効率な開発が可能となる様々な機能を提供します。
プロジェクト名である Amplify は、本ミドルウェアが Annealing Machine Platform を Amplify することで、 イジングマシンの利用可能性の拡大と、利便性向上によるアプリケーション開発の加速を支援するという意図で名付けられました。
コア機能¶
入力可能形式の拡充¶
ミドルウェアへの入力が可能な最適化問題として、マシンの対応に依らず下記の入力形式・模型を扱うことが可能になります。
QUBO 模型 (0/1バイナリ変数)
イジング模型 (+/-1イジング変数)
QUBO 行列
イジング行列
高次多項式 (バイナリ変数)
高次多項式 (イジング変数)
論理式 (SAT)
定式化支援・数式処理¶
最適化問題の定式化をプログラムコード上で表現するための補助機能を提供します。
バイナリ・イジング変数多項式に対する演算子とそれぞれの代数法則に特化した高速数式処理
総和や総乗等の数学記号に対応する関数 (\(\sum_{i \in V}, \sum_{ \left(i, j \right) \in E}, \prod_{i}\) )
論理式に対する論理演算子と数式処理、及びバイナリ変数多項式への変換
複数の論理変数に対する論理積・論理和・排他的論理和を行う関数
ハードウェア抽象化¶
抽象化されたイジングマシンへのインターフェースを提供します。
全ての対応マシンで共通化されたクライアントインターフェース
マシンごとに特殊化されたパラメータ設定プロパティ
疎結合マシンに対する自動最適グラフ埋め込み
自動パラメータ調整 (一部マシン)
対応マシン¶
下記のイジングマシンに対応しています。
Fixstars GPU annealer
D-Wave 2000Q / Leap Hybrid Solver
Fujitsu Digital Annealer / DA2
Toshiba Simulated Bifurcation Machine
Hitachi CMOS annealing machine
動作環境¶
- Python
3.6
3.7
3.8
3.9
- OS
Ubuntu 16.04 / 18.04 / 20.04
CentOS 7 / 8
Windows 10 (WSL1/2)
macOS Catalina / Big Sur (Intel)
開発言語¶
C++17 (コア機能)
Python 3 (インターフェース)