Preface

This manual describes how to use Digital Annealer service and operation management procedures.

Intended Audience

This manual is intended for users who develop programs and applications to solve combinatorial optimization problems on Digital Annealer and who execute those programs and applications.
To fully benefit from this manual, the following knowledge is required:

  • Basic knowledge related to combinatorial optimization problems

  • Basic knowledge related to algorithms for combinatorial optimization problems such as quantum annealing and simulated annealing

  • Basic knowledge of Web APIs

Conventions

This manual uses abbreviations and symbols.

Product/Technology Name Abbreviations
Product/Technology Name Abbreviation

Google Chrome™ browser

Google Chrome

About Symbols
Symbol Meaning

" "

If the reference destination is another manual, the manual name is enclosed in " "

In addition, the following markings are used.
CAUTION
NOTE
Glossary

Explanation of terms used in this manual.

Term Description

Digital Annealer

A hardware that can solve combinatorial optimization problems quickly by using digital circuits to express the behavior of quantum.

FujitsuDA2MixedModeSolver

A solver that can be used to find optimal solution of QUBO with Digital Annealer.

FujitsuDA2PTSolver

A solver that can be used to find optimal solution of QUBO with Digital Annealer using the parallel tempering function.

FujitsuDA2Solver

A solver that can be used to find optimal solution of QUBO with Digital Annealer.

Higher Order Binary Optimization (HOBO)

An expression of combinatorial optimization problems with high-order monomials or high-order polynomials.

Quadratic Unconstrained Binary Optimization (QUBO)

An expression of combinatorial optimization problems with quadratic polynomials.

Web API

An interface used between applications and between systems for calling over a network using the HTTP protocol.

Export Control Regulations

Exportation/release of this document may require necessary procedures in accordance with the regulations of your resident country and/or US export control laws.

High Risk Activity

The Customer acknowledges and agrees that the Service is designed, developed and manufactured as contemplated for general use, including without limitation, general office use, personal use, household use, and ordinary industrial use, but is not designed, developed and manufactured as contemplated for use accompanying fatal risks or dangers that, unless extremely high safety is secured, could lead directly to death, personal injury, severe physical damage or other loss (hereinafter "High Safety Required Use"), including without limitation, nuclear reaction control in nuclear facility, aircraft flight control, air traffic control, mass transport control, medical life support system, missile launch control in weapon system.
The Customer, shall not use the Service without securing the sufficient safety required for the High Safety Required Use. In addition, Fujitsu (or other affiliate’s name) shall not be liable against the Customer and/or any third party for any claims or damages arising in connection with the High Safety Required Use of the Service.

Trademarks
  • Google is a trademark or registered trademark of Google Inc.

  • Other company names and product names are trade names, registered trademarks, or trademarks of their respective companies.

  • Trademark symbols are not always added to names such as company names, system names, and product names.

1. Overview

This chapter describes an overview of Digital Annealer.


1.1. What Is Digital Annealer?

Digital Annealer is a digital circuit designed with inspiration from a computation method that uses quantum phenomena. Using annealing methods enables it to solve large-scale combinatorial optimization problems rapidly. Unlike conventional computers, programming is not required, and computation is enabled only by setting parameters. In addition, adoption of a fully connected architecture enabling any element to freely exchange signals has enabled calculation of computationally intensive and complicated problems that have been difficult to solve with classical computers or quantum annealing machines.

Digital Annealer has Quadratic Unconstrained Binary Optimization (QUBO) as its input data and searches for combinations to minimize the following evaluation function (energy).

  \(\displaystyle{E(x) = \sum_{i} \sum_{j>i} J_{ij}x_{i}x_{j} + \sum_{i}h_{i}x_{i} + c}\)

The condition of the combination is represented by a binary variable \(x \; (x \in \{0, 1\})\).

1.1.1. Digital Annealer Service

Digital Annealer service is a cloud service used to rapidly solve combinatorial optimization problems using software developed by 1QBit for quantum computers and the hardware equipped with the optimization circuit Digital Annealer.

Service1
Figure 1. Web API Service

2. Starting the Use of Services

This chapter describes how to start the use of Digital Annealer service.


2.1. Account Registration

To use the Digital Annealer service, access the Digital Annealer account creation page at the following URL in the Digital Annealer portal and register an account.

  • To access the Digital Annealer portal, use Google Chrome.
    It is recommended that the screen resolution is 1366 \(\times\) 768 pixels or higher.

3. Using Services

This chapter describes how to use Digital Annealer service and other points to be noted.


3.1. Provided APIs

The APIs provided in the Web API service are as follows:

3.1.1. QUBO APIs

ContractType API Type Description

Standard
Trial
Academic

qubo/hobo2qubo

Synchronous (sync)

Converts Higher Order Binary Optimization (HOBO) to Quadratic Unconstrained Binary Optimization (QUBO)

qubo/solve

Finds optimal solution of QUBO

Premium-2
Standard-2
Trial-2
Academic-2

qubo/hobo2qubo

Synchronous (sync)

Converts Higher Order Binary Optimization (HOBO) to Quadratic Unconstrained Binary Optimization (QUBO)

qubo/solve

Finds optimal solution of QUBO

async/qubo/solve

Asynchronous (async)

Registers a job to find optimal solution of QUBO

async/jobs

Retrieves a list of jobs

async/jobs/result

Retrieves or deletes the result of a job

async/jobs/cancel

Cancels a job

  • If you made the contract for Standard, Trial, or Academic, the scale of the problems that can be solved is as follows.
      Synchronous (sync): 1 Kbit or less

  • If you made the contract for Standard, Trial, or Academic, the asynchronous (async) type APIs cannot be used.

  • If you made the contract for Standard-2, Trial-2, or Academic-2, the scale of the problems that can be solved depends on the type of API.
      Synchronous (sync): 2 Kbit or less
      Asynchronous (async): 8 Kbit or less

  • If you made the contract for Standard-2, Trial-2, or Academic-2 and you want to use an asynchronous (async) type API, you must make the contract for asynchronous services.

  • If you made the monthly fixed contract for Standard-2, Trial-2, Academic-2, Standard, Trial, or Academic, upper limits are set for the amount of usage time.
    Upper limits are set for both synchronous and asynchronous services, and you cannot exceed the limits.

  • You can issue up to 2 requests using qubo/solve from the same account at the same time.

  • You can issue up to 16 requests using async/qubo/solve from the same account. Note that this limitation also applies to the quantity of async/qubo/solve processing results. So, please delete unnecessary processing results.

  • For details about the QUBO API, refer to "Digital Annealer API Reference (QUBO API)."
    1QBit also provides other APIs in addition to the ones listed above.
    For details about the type and specification of APIs, refer to the following.
      http://portal.1qbit.com/documentation
    Specify /v1/…​ in the URI for a request using a solver other than FujitsuDA2PTSolver, FujitsuDA2Solver or FujitsuDA2MixedModeSolver.

3.1.2. Optimization Solutions APIs

Contract Type API Description

Warehouse Pickup Optimization API

picking/mapfile

Uploads (POST) or downloads (GET) a map file (a list of the shelves and aisles in the warehouse)

picking/showroute

Finds the shortest pickup route with its total distance

The Optimization Solutions APIs can only be used in Japan region.

  • The number of shelves that can be specified for picking/showroute is within the following range.
      \(\sum x^2 \leq 1024\)
      \(x\): The number of shelves with the same priority. Except the selves that have no other shelves with the same priority.
    Example 1: In the case of that 1 shelf is level of priority 0, 30 shelves are level of priority 1, 5 shelves are
      level of priority 2, and 2 shelves are level of priority 3
      \(30^2 + 5^2 + 2^2 = 900 + 25 + 4 = 929\)
      (Level of priority 0 is only 1 shelf, therefore this value is omitted)
      ⇒ The number (929) is less than 1,024, therefore the route can be optimized.
    Example 2: In the case of that 30 shelves are level of priority 1, 10 shelves are level of priority 2, 1 shelf is
      level of priority 3, and 5 shelves are level of priority 4
      \(30^2 + 10^2 + 5^2 = 900 + 100 + 25 = 1025\)
      (Level of priority 3 is only 1 shelf, therefore this value is omitted)
      ⇒ The number (1,025) is more than 1,024, therefore the route cannot be optimized.
    Even though the above conditions are met, if the number of shelves (nodes) specified in the request body is more than 200, the processing time becomes long and a timeout error (HTTP 504 Gateway Time-out) may occur.

  • Only one map file can be registered to Digital Annealer server with picking/mapfile. The most recently uploaded file is registered to Digital Annealer server. A previously registered map file will be overwritten, therefore please back up the map files if necessary.

4. How to Use the QUBO APIs

This chapter describes the procedure to solve combinatorial optimization problems using mathematical models.


4.1. Calculation Precision of Digital Annealer

Digital Annealer encodes the coefficient of a binary quadratic polynomial as an integer.
Calculation precision of Digital Annealer is as follows. To find the optimal solution, it is necessary to specify coefficients in a QUBO expression within the range of calculation precision of Digital Annealer.

Scale of the Problem Quadratic Term Linear Term

Up to 4 Kbit

64bit signed integer (*1)

76bit signed integer

From over 4 Kbit to 8 Kbit

16bit signed integer

76bit signed integer

  *1: The available range is \(-2^{63} + 1\) to \(2^{63} - 1\)

4.1.1. Scaling and Rounding

This is a feature that automatically converts a QUBO that has one or more terms whose coefficient is out of the calculation precision range of Digital Annealer or not an integer into a QUBO that has only terms whose coefficient is integers in the calculation precision range of Digital Annealer.
If one of the following solvers is used, this function is enabled for annealing.

  • FujitsuDA2PTSolver

  • FujitsuDA2Solver (with "false" specified for the expert_mode parameter)

  • FujitsuDA2MixedModeSolver

For the range of coefficients in a QUBO expression that can be specified for qubo/solve, refer to "Digital Annealer API Reference (QUBO API)."

4.2. API Usage

For details about the specification and usage of the provided APIs, refer to "Digital Annealer API Reference (QUBO API)."

4.3. Notes

This section describes the points to be noted to use the QUBO APIs.

  • When a request is issued, even though the wrong parameter name (key) is specified (including spelling errors), the specified parameter is ignored and the process may continue. For this reason, an unexpected processing result may be obtained. Be careful to specify parameters.

  • A running job cannot be stopped after a request is issued.
    Even though a request is issued by mistake or a process takes a long time, please wait until the process ends.
    However, if you have made the contract for Premium-2 or asynchronous services, then you can cancel the job before it is executed (by using async/jobs/cancel).

  • When a new qubo/solve request is issued during the annealing process performed by Digital Annealer, it waits for the completion of any running annealing processes.
    The new request process starts after the completion of the running annealing processes.

  • The time required for annealing (anneal_time) is determined by the values specified for the number_iterations parameter, number_replicas parameter (for FujitsuDA2PTSolver), and number_runs parameter (for FujitsuDA2Solver or FujitsuDA2MixedModeSolver).

    Example: In the case of number_iterations = 10000000 and number_runs = 100
       Using FujitsuDA2Solver or FujitsuDA2MixedModeSolver: Approximately 5 seconds

    If a value is multiplied by 10, 100, …​, anneal_time is also multiplied by 10, 100, …​ in direct proportion, therefore be careful to specify these values.

  • If the scale of the problem (the number of bits) is large, the scaling process, recalculation of energy, and other calculations that use CPU may take some time. The amount of time depends on the setting values that you specified for the solver and parameter.

  • The following parameters have lower and upper limit values.

    Solver

    Parameter

    Lower Limit

    Upper Limit

    Synchronous

    Asynchronous

    FujitsuDA2PTSolver

    number_replicas

    26

    128

    128

    number_iterations

    1

    2000000000

    2000000000

    number_replicas \(\times\)number_iterations

    100000

    25600000000

    256000000000

    FujitsuDA2Solver/
    FujitsuDA2MixedModeSolver

    number_runs

    16

    128

    128

    number_iterations

    1

    2000000000

    2000000000

    number_runs \(\times\)number_iterations

    100000

    25600000000

    256000000000

  • The annealing temperature schedule for the FujitsuDA2Solver or FujitsuDA2MixedModeSolver is defined by the following parameters: temperature_decay, temperature_interval, temperature_mode, and temperature_start.
    For example, with "number_iterations = 100000" and "temperature_interval = 100" as shown below, the temperature is changed to the temperature calculated in the mode specified with the temperature_mode parameter every 100 searches.
    If the number of searches per anneal (number_iterations) is 100,000, the temperature is changed 1,000 times (the result of \(100000 \div 100\)).

    caution1
  • In a cycle of annealing with FujitsuDA2Solver or FujitsuDA2MixedModeSolver, searches are performed the number of times specified with the number_iterations parameter at each temperature specified with the annealing temperature schedule as mentioned above, and the annealing is repeated the number of times specified with the number_runs parameter.
    For both parameters, specifying a larger value takes a longer time.

  • The offset_increase_rate parameter is used to accelerate searches. If a state transition does not occur due to being trapped by a local solution, this parameter enables the process to increase the energy using the rate specified in offset_increase_rate for each search to improve the probability of a state transition. The energy that is accumulated according to offset_increase_rate is reset if a state transition occurs. To disable the offset_increase_rate parameter, specify 0 (zero).

    caution2
  • With the FujitsuDA2Solver or FujitsuDA2MixedModeSolver, to specify at least one of the following parameters, be sure to specify all of the following five parameters and the number_iterations parameter:

    • offset_increase_rate

    • temperature_decay

    • temperature_interval

    • temperature_mode

    • temperature_start

  • With the FujitsuDA2Solver or FujitsuDA2MixedModeSolver, the temperature_decay, temperature_interval, and temperature_start parameters are related to the temperature schedule, and optimal solutions can be obtained only if appropriate values are specified, especially for those parameters.
    There are countless combinations of parameter values, requiring a tuning operation to search for an appropriate value to obtain an optimal solution.
    With the FujitsuDA2PTSolver (using the parallel tempering function), specifying the following parameters is not required, which considerably reduces the time required for tuning.

    • noise_model

    • temperature_decay

    • temperature_interval

    • temperature_mode

    • temperature_start

  • Solvers provided by 1QBit are also available.
    For details about the type and specification of 1QBit solvers, refer to the following.
      http://portal.1qbit.com/documentation
    Specify /v1/…​ in the URI for requests using a solver other than FujitsuDA2PTSolver, FujitsuDA2Solver or FujitsuDA2MixedModeSolver.

5. How to Use the Optimization Solutions APIs

This chapter describes the procedure used to solve combinatorial optimization problems specialized for business.

The Optimization Solutions APIs can only be used in Japan region.


5.1. Warehouse Pickup Optimization API

Warehouse Pickup Optimization API is a Web API service for finding "the shortest route (pickup route: closed circuit)" to retrieve (pick up) specified products from multiple shelves or other areas in a warehouse.

5.1.1. Procedure for Using the API

The following section describes the procedure for finding the pickup route with the shortest distance.

  1. Create a map file

  2. Upload and download a map file

  3. Optimize the pickup route

1. Create a map file

To use the Warehouse Pickup Optimization API, you must create a map file on a client that includes information about the position of shelves and aisles in the warehouse where the pickup is performed (the pickup area).

  • Things to prepare before creating a map file

    • Ground plan of the pickup area (scaled map)

    • Position of the shelves on which the products targeted for pickup are located

  • How to create a map file

    Step(1)

    In the ground plan (scaled map) of the pickup area, record shelves on which the products targeted for pickup are located, and aisles it is possible to pass through for performing a pickup. (refer to "Example of ground plan of pickup area" in "Figure 2: Map File Creation Examples")

    Step(2)

    Place a plot point (a unique identification name in each area) on each shelf and point passed through along the aisles recorded in Step(1), and find the coordinates (absolute coordinates) of each plot point.
    Plot points are also placed at the intersections of aisles, corners, and other places where the shelves and aisles connect.

    Step(3)

    Create a map file (.json) based on the coordinates found in Step(2).
    The sets of coordinates for each plot point in the area defined as nodes, and the routes between the plot points defined as nodes that it is possible to pass through for performing a pickup are defined as edges. (refer to "Map file creation example 1" in "Figure 2: Map File Creation Examples")
    If there are multiple areas, the nodes and edges are defined for each area, and the distances and routes between the areas are defined as cedges. (refer to "Map file creation example 2" in "Figure 2: Map File Creation Examples")
    The direction of traffic for the routes defined as edges and cedges (two-way traffic (false) or one-way traffic (true)) is defined with directed.
    For details about the data format of the map file, refer to "Digital Annealer API Reference (Warehouse Picup Optimization API)."

  • Do not use the same name or coordinate more than once for the plot points of shelves and aisles to define the "nodes" and "edges" within each area.

  • The values of the coordinates defined in the map file is not required to represent the actual distance. It is also possible to use the values of coordinates from a scaled ground plan.

Map file creation is also available for order through Digital Annealer technical service (paid service).

2. Upload and download a map file

Upload a map file created using picking/mapfile. Then download (display) the uploaded map file and check that the map file is registered correctly.
For details about the specification of the API, refer to "Digital Annealer API Reference (Warehouse Picup Optimization API)."

3. Optimize the pickup route

Use picking/showroute to to find the shortest pickup route.
For details about the specification of the API, refer to "Digital Annealer API Reference (Warehouse Picup Optimization API)."

  • If shelves (node) that does not exist in the map file are specified int the request, these shelves are excluded from being a target of optimization.

  • Specifying of the priority ("priority") cannot be omitted. If the prioritize is not required, specify 0 for the priority ("priority").

The total distance ("distance") is expressed in the unit defined for the coordinates of the plot points of the shelves and aisles recorded in the map file.
For example, if the unit of the coordinates is defined as 50 cm, the actual total distance in the response example shown above is \(1672 \times 0.5m = 836m\).

Response example:
{
   "distance": 1672.0,
   "route": [
       {"area": "A1F", "node": "DEPOT"},
       {"area": "A1F", "node": "F52"},
       {"area": "A1F", "node": "F32"},
       {"area": "A1F", "node": "R-4"},
       {"area": "A2F", "node": "R-1"},
       {"area": "A2F", "node": "B46"},
       {"area": "A2F", "node": "A10"},
       {"area": "A2F", "node": "B45"
   ]
}
Service2
Figure 2. Map File Creation Examples
Document History
Edition Date Modified location Description

First

January 2020

Whole document

Newly created