Metadata-Version: 2.4
Name: tno.quantum.optimization.qubo
Version: 1.0.0
Summary: QUBO optimization
Author-email: TNO Quantum Code Lab <tnoquantum@tno.nl>
Maintainer-email: TNO Quantum Code Lab <tnoquantum@tno.nl>
License: Apache License, Version 2.0
Project-URL: Homepage, https://github.com/TNO-Quantum/
Project-URL: Documentation, https://tno-quantum.github.io/documentation/
Project-URL: Source, https://github.com/TNO-Quantum/optimization.qubo
Keywords: QUBO,Quantum,TNO,Optimization
Platform: any
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: tno.quantum.optimization.qubo.components~=1.0
Requires-Dist: tno.quantum.optimization.qubo.solvers~=1.0
Requires-Dist: tno.quantum.optimization.qubo.preprocessors~=1.0
Requires-Dist: tno.quantum.optimization.qubo.postprocessors~=1.0
Provides-Extra: dwave
Requires-Dist: tno.quantum.optimization.qubo.solvers[dwave]~=1.0; extra == "dwave"
Provides-Extra: qubovert
Requires-Dist: tno.quantum.optimization.qubo.solvers[qubovert]~=1.0; extra == "qubovert"
Provides-Extra: qaoa
Requires-Dist: tno.quantum.optimization.qubo.solvers[qaoa]~=1.0; extra == "qaoa"
Provides-Extra: all
Requires-Dist: tno.quantum.optimization.qubo[dwave,qaoa,qubovert]; extra == "all"
Provides-Extra: tests
Requires-Dist: pytest>=8.1.1; extra == "tests"
Requires-Dist: pytest-cov>=4.1.0; extra == "tests"
Requires-Dist: tomlkit; extra == "tests"
Requires-Dist: tno.quantum.optimization.qubo.components[tests]; extra == "tests"
Requires-Dist: tno.quantum.optimization.qubo.solvers[tests]; extra == "tests"
Requires-Dist: tno.quantum.optimization.qubo.preprocessors[tests]; extra == "tests"
Requires-Dist: tno.quantum.optimization.qubo.postprocessors[tests]; extra == "tests"
Dynamic: license-file

# TNO Quantum: Optimization - QUBO

TNO Quantum provides generic software components aimed at facilitating the development
of quantum applications.

This package provides a comprehensive suite of tools for creating QUBO objects, defining QUBO solvers, and using them to solve QUBO problems. It also includes features for pre- and post-processing, as well as the ability to create pipelines that integrate all these components seamlessly

## Documentation

Documentation of the `tno.quantum.optimization.qubo` package can be found [here](https://tno-quantum.github.io/documentation/).


## Install

Easily install the `tno.quantum.optimization.qubo` package using pip:

```console
$ pip install tno.quantum.optimization.qubo
```

By default, the package is installed without external solver dependencies. You can specify which QUBO solvers you would like to install. Available options are [dwave, qubovert, qaoa]. Alternatively, you can install all solvers simultaneously using the [all] option:

```console
$ pip install tno.quantum.optimization.qubo[all]
```

## Usage

The following example shows how to construct a `QUBO` object.

```python
from tno.quantum.optimization.qubo import QUBO

qubo = QUBO([
    [ 1, -2,  3],
    [-4,  5, -6],
    [ 7, -8,  9]
])
```

```python
from tno.quantum.optimization.qubo import SolverConfig
solver = SolverConfig(name='bf_solver').get_instance()

# Solve the QUBO
result = solver.solve(qubo)
result.best_bitvector # BitVector(000)
```

## (End)use limitations
The content of this software may solely be used for applications that comply with international export control laws.
