TOSHIBA

SQBM+ v2.0.3

SQBM+ is a TOSHIBA-developed quantum-inspired optimization solution with a simulated bifurcation machine at its core.

Tip

Available as a paid option on AWS Marketplace or Fixstars Amplify.

Tip

The available solvers and variable types vary depending on the version of the SQBM+ server. You can check the version from version property of this client.

Solver specification:
  • When Qubo is set in the solver property (default):

    Binary variable

    Ising variable

    Integer variable

    Real variable

    Objective function

    2nd

    -

    -

    -

    Equality constraint

    -

    -

    -

    -

    Inequality constraint

    -

    -

    -

    -

  • When Qplib is set in the solver property:

    Binary variable

    Ising variable

    Integer variable

    Real variable

    Objective function

    2nd

    -

    -

    2nd

    Equality constraint

    1st

    -

    -

    1st

    Inequality constraint

    1st

    -

    -

    1st

  • When Pubo is set in the solver property:

    Binary variable

    Ising variable

    Integer variable

    Real variable

    Objective function

    4th

    -

    -

    4th

    Equality constraint

    -

    -

    -

    -

    Inequality constraint

    -

    -

    -

    -

Client class:

In addition to the common interface, the client class has the following attributes and a method.

Attribute

Data type

Details

solver

Solver | str

Specify the solver to use from Qubo (default) and Qplib.

compression

bool

Compress the request data before sending. The default value is True; setting to False will reduce the compression time of the request data, but may increase the communication time.

Method

Return type

Details

health_check()

bool

Query the health check API to verify that the solver is working properly.

Configuration example:
from amplify import ToshibaSQBM2Client
from datetime import timedelta

client = ToshibaSQBM2Client()

# Set API token
# (Not required if using AWS version)
client.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# Set URL (required if using AWS version)
# client.url = "http://xxx.xxx.xxx.xxx:8000/"

# Specify a solver
# (Qubo, Qplib, or Pubo)
client.solver = "Qplib"

# Set execution time to 1 second
client.parameters.timeout = timedelta(milliseconds=1000)
Execution example:
from amplify import Model, VariableGenerator, solve

# Create decision variables and the objective function
g = VariableGenerator()
q = g.array("Binary", 2)
f = q[0] * q[1] + q[0] - q[1] + 1

# Create a model
model = Model(f)

# Run the solver
result = solve(model, client)

Perform health check API:

>>> client.health_check()
True

Obtain the solver version:

>>> client.version
'2.0.3'

Obtain runtime parameter information:

>>> result.client_result.param
ToshibaSQBM2Client.Parameters({
"steps": 1,
"dt": 1.0,
"C": 0.1502210944890976,
"algo": 204
})