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:
Client class
API method
REST API (HDF5/JSON)
API reference
When
Qubois set in thesolverproperty (default):Binary variable
Ising variable
Integer variable
Real variable
Objective function
2nd
-
-
-
Equality constraint
-
-
-
-
Inequality constraint
-
-
-
-
When
Qplibis set in thesolverproperty:Binary variable
Ising variable
Integer variable
Real variable
Objective function
2nd
-
-
2nd
Equality constraint
1st
-
-
1st
Inequality constraint
1st
-
-
1st
When
Pubois set in thesolverproperty: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|strboolCompress the request data before sending. The default value is
True; setting toFalsewill reduce the compression time of the request data, but may increase the communication time.ObjectiveFormat|strChoose the format of the objective function that the client sends. The default is
Auto, which sends the smaller of a dense matrix and a list of the terms. GiveDenseorSparseto decide the format yourself.Method
Return type
Details
boolQuery 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 })