Skip to main content

The TitanQ SDK for python

Project description

The TitanQ SDK for Python

Python License

TitanQ is the InfinityQ Software Development Kit (SDK) for Python. The SDK facilitates and opens the way for faster implementation of the TitanQ solver without having to deal directly with the TitanQ API.

This TitanQ package is maintained and published by InfinityQ

API Key

In order to use the TitanQ service, a user needs an API key. The API key can be obtained by contacting InfinityQ support

Installation

The following steps assume that you have:

  • A valid and active API Key
  • A supported Python version installed

Setting up an environment

python -m venv .venv
.venv/bin/activate

Install TitanQ

pip install titanq

Using TitanQ

The TitanQ solver is designed to support very large problems and therefore very large files. To simplify the user experience, TitanQ will instead use cloud storage set up and managed by the end users.

Currently, the SDK only supports two types of storage

Storage options Vector variables limit
S3 Buckets ✅ Up to 100k vector variables
Managed storage ⚠️ Up to 10k vector variables

Both options are documented with examples at the TitanQ's Quickstart documentation

Problem construction

NOTE: The weights matrix must be symmetrical.

The QUBO problem is defined as finding the minimal energy configuration (the state $\mathbf{x}$ which results in the minimal $E(\mathbf{x})$). Each state $\mathbf{x}$ is a vector of $n$ binary elements $x_i$ which can take the values of 0 or 1 (binary values). This model formulation is given in the equation below

\ argmin_{\mathbf{x}} ,,,, E(\mathbf{x}) = \sum_{i=1}^n\sum_{i \leq j}^n Q_{i,j} x_i x_j ,,,,,,,, \mathbf{x}=(x_i)\in {0,1}^{n} \

The bias terms of a QUBO model are stored along the diagonal of the $\mathbf{Q}$ matrix. However, to simplify converting between Ising and QUBO models, we assume that the diagonals of the $\mathbf{Q}$ matrix are 0, and take in an additional bias vector instead. To avoid confusion, the modified $\mathbf{Q}$ matrix with 0s along its diagonal is referred to as the weights matrix, denoted by

\ \mathbf{W}=(W_{i,j})\in \mathbb{R}^{n \times n}, ~ where ~ \mathbf{Q} = \mathbf{W} + \mathbf{b}^{\intercal}\boldsymbol{I}, ~ and ~ \mathbf{b} = (b_i) \in \mathbb{R}^{n}

denotes the biases, which are used in the final model formulation described below

\ \begin{align} \notag \ argmin_{\mathbf{x}} , , , , E(\mathbf{x}) & = \sum_{i=1}^n \sum_{i < j}^n W_{i,j}x_i x_j + \sum_i^n b_i x_i \notag \ & = \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n W_{i,j}x_{i}x_{j} + \sum_{i=1}^{n} b_{i}x_{i} \notag \ & = \frac{1}{2}(\mathbf{x}^{\intercal}\mathbf{W}\mathbf{x}) + \mathbf{b}^{\intercal}\mathbf{x} \notag \end{align}

Additional parameters are available to tune the problem:

  • beta
  • coupling_mult
  • num_chains
  • num_engines

For more informations how to use theses parameters, please refer to the API documentation

Getting support or help

Further help can be obtained by contacting InfinityQ support

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

titanq-0.18.5.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

titanq-0.18.5-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file titanq-0.18.5.tar.gz.

File metadata

  • Download URL: titanq-0.18.5.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for titanq-0.18.5.tar.gz
Algorithm Hash digest
SHA256 64a897fc1f63fc7eed6951e63b6c064ea5e87f82d677f8568c95d2299e1e0f4f
MD5 79a938a2dfe3e2e067a2ef50127a59a8
BLAKE2b-256 f90999a5db4e56e5c5ad6c7ffd6063db1a71bbc376afb5be69fbc5fd89b3a0a0

See more details on using hashes here.

File details

Details for the file titanq-0.18.5-py3-none-any.whl.

File metadata

  • Download URL: titanq-0.18.5-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for titanq-0.18.5-py3-none-any.whl
Algorithm Hash digest
SHA256 91afd8e57e1a773529ac3f248fa2997d9127283ac7e8daf4202cd42f4639efc4
MD5 3595eaf34773d98ea203ee5a31171c0b
BLAKE2b-256 64eea4ae910cb465be6e78cbd50a3c630426996663d157ef479f94611fc4751f

See more details on using hashes here.

Supported by

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