Amplify SDK Features

The Amplify SDK aims to formulate combinatorial optimization problems in a simple and intuitive way and solve them using a variety of machines and solvers. The SDK provides the following features.

🔰 Intuitive and easy to use

The Amplify SDK focuses on quadratic programming, a class of combinatorial optimization problems. It provides a simple and intuitive way to build and solve mathematical optimization models. Those models use multivariate polynomials with real, integer, binary (0-1 variables), and Ising (\(\pm 1\) variables) variables.

The optimization models that each machine and solver targets differ by machine. The supported model properties include variable types, polynomial degree, and problem type. For example, the Quantum Annealing Machine targets QUBO, an unconstrained quadratic programming problem with binary or Ising variables. MIP solvers like Gurobi handle real and integer variables.

One unique feature of the Amplify SDK is that it absorbs these machine and solver differences as much as possible. It performs model conversions such as variable conversions, degree reduction, constraint implementation, and embedding in hardware topology automatically. The user does not need to know the details of the conversion process or the machine and solver specifications. The SDK provides a wealth of functionality to treat the QUBO solver as a general-purpose mathematical optimization solver.

🚅 Fast processing speed

In quadratic programming (or higher order), the number of polynomial terms can grow as a power of the number of variables. Recent Ising machines expanded the scale of solvable problems to 100,000 variables. A problem of that size can require several gigabytes of data. Without speed and memory efficiency, the SDK cannot handle problems at that scale.

Compared to similar formulation software, the Amplify SDK processes problems very fast and with low memory use. See Formulation Benchmarks for benchmark results. The core functionalities of the SDK, such as polynomial formulations, model conversions, and building data to send to the machine, use highly tuned efficient algorithms implemented in C++. The SDK also provides array programming capabilities for polynomial arrays that are compatible with NumPy. These features enable high-speed mathematical processing.

🔱 Multiple solver support

Amplify supports the following machines and solvers. Support for more machines will grow in the future. Requests for additional support and collaboration with solver developers are welcome. Please contact us.

🧑‍💻️ For broad users

The Amplify SDK targets a wide range of users, from application developers to academic researchers studying formulations and hardware. Using the Amplify SDK as middleware to solve combinatorial optimization problems allows quick implementation.

The high-level model conversion functions (variable conversion, degree reduction, constraint implementation, and so on) follow the latest research. The documentation describes all processing details and algorithms. The SDK also lets users modify the algorithms and parameters of the conversion process, check the results and processing time of model conversions, and debug through a low-level interface. Users who formulate combinatorial optimization problems or perform academic research on machines can use these capabilities to develop new formulation algorithms or investigate solver performance.

🐲 Ever-evolving Fixstars Amplify

The first version of the Amplify SDK arrived in July 2020. The SDK let users access quantum annealing machines such as D-Wave and cloud services for the Ising machine inspired by them, and build mathematical models based on QUBO.

As development continued, the SDK expanded the machines it supports and gained new functionality through machine updates. These changes required support for more flexible formulations that go beyond the QUBO framework. Adding support for Gurobi, a well-known mathematical optimization solver, and the need to handle integer and real variables even in QUBO required the SDK to support more general mathematical programming models.

The new version of the Amplify SDK released in 2024 (v1 series) reviews and redesigns all specifications. It allows the construction of more general mathematical programming models. The SDK still supports QUBO formulation as before. With variable types and constraints beyond the QUBO framework, the SDK automatically optimizes model conversion and parameter tuning to maximize performance according to the machine and solver. This makes the SDK suitable for a broader range of users and problems.