About the Amplify SDK
The Amplify SDK, developed by Fixters Corporation, is a middleware library for Ising machines. Here, Ising machines are machines specialized in solving optimization problems described by quadratic polynomials of binary variables. Currently, there are many Ising machines implemented on FPGAs, ASICs, GPUs, etc., including the quantum annealing machine by D-Wave Systems. As an intermediate layer between hardware and applications that use the Ising machines, the Amplify SDK provides a variety of functions that make the Ising machines more useful and help efficient development of application software.
Amplify is a project name, and it is intended that this library will “amplify” the Annealing Machine Platform, helping to expand the availability of the Ising machines and accelerate application development by enhanced usability.
Core Functions
Supporting Variety of Formats
The Amplify SDK supports the following inputs. It will automatically convert the input format depending on the annealing machine to be used.
QUBO Model (0/1 binary variable)
Ising Model (+/-1 Ising variable)
QUBO Matrix
Ising Matrix
Higher Order Polynomial (Binary Variable)
Higher Order Polynomial (Ising Variable)
Logic Formula
Formulation Manipulation
The Amplify SDK provides auxiliary functions for expressing the formulation of optimization problems in program code.
Operators for polynomials in binary Ising variables and fast mathematical processing specialized in each algebraic law.
Functions to calculate summation or product of polynomials \(\left(\sum_{i \in V},\,\sum_{ \left(i, j \right)\in E},\,\prod_{i}\right)\).
Logical operators and manipulations for logical expressions and conversion to polynomials on binary variables.
Functions to calculate logical conjunction or disjunction of multiple logical expressions.
Management of Constraint Conditions
The Amplify SDK abstracts and manages the constraints imposed on input variables.
Equality constraints on sum of multiple variables
Interface for managing and checking constraint conditions
Generalized penalty functions
Hardware Abstraction
The Amplify SDK provides an interface to the abstracted Ising machine.
Client interface standardized across all supported Ising machines
Parameterization properties specialized for each Ising machine
Automatic optimal graph embedding for sparsely coupled Ising machines
Automatic parameter tuning (for some Ising machines)
Input and Output Processing
The Amplify SDK assists in mapping input variables to output values.
Centralized management of input variables
Fixing values of the input variables
Automatic mapping between input variables and output values
Automatic check for the satisfaction of constraint conditions and filter for output solutions
Supported Machines and Solvers
The following Ising machines are supported.
Fixstars GPU annealer
Advantage / Leap Hybrid Solver
Fujitsu Digital Annealer / DA2
Toshiba Simulated Bifurcation Machine
Hitachi CMOS annealing machine
Hiroshima University/NTT DATA ABS QUBO Solver
The following mathematical optimization solver is supported.
Gurobi Optimizer
Operating Environment
- Python
3.8
3.9
3.10
3.11
3.12
- OS
Ubuntu 20.04 / 22.04
Red Hat Enterprise Linux relatives 8 / 9
Windows 10 / 11 (WSL1/2)
macOS Catalina / Big Sur (Intel)
Development Language
C++17 (Core Function)
Python 3 (Interface)