# 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)