Welcome to sqaod documentation!

Sqaod is a collection of sovlers for simulated quantum annealing, providing a high-performance and stable implementation. This package is intended for researchers and engineers to explore various problems on quantum computing with conventional workstations and servers. Sqaod is also available for deployment in commercial use-cases.

Features

  1. Callable from python

    Sqaod supports python 2.7, python 3.3 and above.

  2. QUBO Graphs

    Sqaod is capable to deal with two types of graphs of dense graph and bipartite graph. These graphs have simple mathematical representations, and solved without any modifications.

    • Dense graph is the most generic form of QUBO, and utilized for problems such as TSP.
    • Bipartite graph is for problems that have input and output nodes in graph. An example is RBM.
  3. Algorithm

    Two solver algorithms, simulated quantum annealing with path-integral monte-carlo and brute-force search are implemented.

    • simulated quantum annealing with path-integral monte-carlo is to get approximated solutions for problems with larger number of bits. One can solve problems with thousands of bits for dense graph and bipartite graph with simulated quantum annealers.
    • Brute-force search is for getting strict solutions for problems with smaller number of bits. With brute-force solvers, strict solutions for problems with 30 bits or larger can be obtained within tens of seconds when high-end GPUs are utilized.
  4. Reproducibility

    One can reproduce results if the same parameters are used. This is the main difference between numerical simulatio and real quantum hardware.

  5. Parallelized and accelerated

    Sqaod solvers have CUDA(NVIDIA-GPU)-based and CPU(multicore)-based backends for acceleration.

    • Multi-core CPUs with OpenMP are utilized for CPU-based solvers.
    • NVIDIA GPUs by using CUDA are utilized for GPU-based solvers.
  6. Problem size and graph complexity

    • Since sqaod is a pure software implementation, solvers are able to deal with problems with a large number of bits as long as memory capacity allows. It also allows flexible graph while real quantum hardware has restrictions on qubit connections. Sqaod is also accelerated by modern high-performance devices such as CPUs and GPUs, thus, able to solve problems with large-sized complex graphs.

Examples

Documents for solvers includes simplified psudo code to run solvers. If you want to run examples, please visit example at github.

File name graph algorithm
dense_graph_annealer.py dense graph simulated quantum annealing
bipartite_graph_annealer.py bipartite graph simulated quantum annealing
dense_graph_bf_searcher.py dense graph brute-force searcher
bipartite_graph_bf_searcher.py bipartite graph brute-force searcher

Indices and tables