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¶

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 Support / Computer Algebra¶

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 corresponding to mathematical symbols such as sum and product $$\left(\sum_{i \in V},\,\sum_{ \left(i, j \right)\in E},\,\prod_{i}\right)$$.

• Logical operators and computer algebra for logical expressions and conversion of binary variables to polynomials.

• Functions corresponding to mathematical symbols that perform multiple logical operations.

### Management of Constraint Conditions¶

Amplify SDK abstracts and manages the constraint conditions imposed on input variables.

• Generalized penalty functions

• Equality constraints on sum of multiple variables

• Interface for managing and checking constraint conditions

### Hardware Abstraction¶

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¶

Amplify SDK assists in mapping input variables to output values.

• Centralized management of input variables

• Fixing the 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 Ising Machines¶

The following Ising machines are supported.

• Fixstars GPU annealer

• D-Wave 2000Q / Advantage / Leap Hybrid Solver

• Fujitsu Digital Annealer / DA2

• Toshiba Simulated Bifurcation Machine

• Hitachi CMOS annealing machine

## Operating Environment¶

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)

## Development Language¶

• C++17 (Core Function)

• Python 3 (Interface)