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)

Reference

Yoshiki Matsuda, “Research and Development of Common Software Platform for Ising Machines,” 2020 IEICE General Conference