Skip to main content

A Quadratic Unconstrained Binary Optimization (QUBO) solver library using quantum and classical approaches.

Project description

Qubo Solver

Solving combinatorial optimization (CO) problems using quantum computing is one of those promising applications for the near term. The Quadratic Unconstrained Binary Optimization (QUBO) (also known as unconstrained binary quadratic programming) model enables to formulate many CO problems that can be tackled using quantum hardware. QUBO offers a wide range of applications from finance and economics to machine learning. The Qubo Solver is a Python library designed for solving Quadratic Unconstracined Binary Optimization (QUBO) problems on a neutral atom quantum processor.

The core of the library is focused on the development of several algorithms for solving QUBOs: classical (tabu-search, simulated annealing, ...), quantum (Variational Quantum Algorithms, Quantum Adiabatic Algorithm, ...) or hybrid quantum-classical.

Users setting their first steps into quantum computing will learn how to implement the core algorithm in a few simple steps and run it using the Pasqal Neutral Atom QPU. More experienced users will find this library to provide the right environment to explore new ideas - both in terms of methodologies and data domain - while always interacting with a simple and intuitive QPU interface.

Development tools

Installation

Install as a dependency

Using hatch, uv or any pyproject-compatible Python manager

Edit file pyproject.toml to add the line

  "qubo-solver"

Using pip or pipx

To install the pipy package using pip or pipx

  1. Create a venv if that's not done yet
$ python -m venv venv
  1. Enter the venv
$ . venv/bin/activate
  1. Install the package
$ pip install qubo-solver
# or
$ pipx install qubo-solver

Alternatively, you can also:

  • install with pip in development mode by simply running pip install -e .. Notice that in this way you will install all the dependencies, including extras.
  • install it with conda by simply using pip inside the Conda environment.

Install on Windows

Note the package is not compatible with Windows systems. We recommend using the Windows Subsystem for Linux (WSL).

QuickStart

With a quantum solver

from qubosolver import QUBOInstance
from qubosolver.config import SolverConfig
from qubosolver.solver import QuboSolver
from qoolqit._solvers.data import BackendConfig
from qoolqit._solvers.types import BackendType

# define QUBO
Q = torch.tensor([[1.0, 0.0], [0.0, 1.0]])
instance = QUBOInstance(coefficients=Q)

# Create a SolverConfig object to use a quantum backend
config = SolverConfig(use_quantum=True, backend_config = BackendConfig(backend=BackendType.QUTIP))

# Instantiate the quantum solver.
solver = QuboSolver(instance, config)

# Solve the QUBO problem.
solution = solver.solve()

With a classical solver

from qubosolver import QUBOInstance
from qubosolver.config import ClassicalConfig, SolverConfig
from qubosolver.solver import QuboSolverClassical, QuboSolverQuantum

# define QUBO
Q = torch.tensor([[1.0, 0.0], [0.0, 1.0]])
instance = QUBOInstance(coefficients=Q)

# Create a SolverConfig object with classical solver options.
classical_config = ClassicalConfig(
    classical_solver_type="cplex",
    cplex_maxtime=10.0,
    cplex_log_path="test_solver.log",
)
config = SolverConfig(use_quantum=False, classical=classical_config)

# Instantiate the classical solver via the pipeline's classical solver dispatcher.
classical_solver = QuboSolver(instance, config)

# Solve the QUBO problem.
solution = classical_solver.solve()

Documentation

Getting in touch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qubo_solver-0.0.2.tar.gz (48.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qubo_solver-0.0.2-py3-none-any.whl (53.2 kB view details)

Uploaded Python 3

File details

Details for the file qubo_solver-0.0.2.tar.gz.

File metadata

  • Download URL: qubo_solver-0.0.2.tar.gz
  • Upload date:
  • Size: 48.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for qubo_solver-0.0.2.tar.gz
Algorithm Hash digest
SHA256 cce0d26c33f644660c8d8c29a7abd24439ae54f70843f41943a2cab1c67bd9e8
MD5 3c87ef4b545e69df8b89f6de78800a1b
BLAKE2b-256 4253b77b7df86d6656fde4c2c4890a38d4c969c84a1759f6fc9c6be354f9e0c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for qubo_solver-0.0.2.tar.gz:

Publisher: publish.yml on pasqal-io/qubo-solver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qubo_solver-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: qubo_solver-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 53.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for qubo_solver-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9077382d08cd218423f340abe1f4cef5666cfa64f1bd94defecf40cb4196cd26
MD5 de4cc6f479d551eb797999055aa72e3b
BLAKE2b-256 1e089ad9fa4cd7b4538ae6b19bf1a95fc7e6b60f611f49321084ef0e6eed95cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for qubo_solver-0.0.2-py3-none-any.whl:

Publisher: publish.yml on pasqal-io/qubo-solver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page