Skip to main content

Quantum annealing sampler using QuTiP sesolve

Project description

qutip-sampler

A dimod-compatible quantum annealing sampler backed by QuTiP sesolve.

It maps an Ising / QUBO problem onto a transverse-field Ising Hamiltonian, evolves the ground state via a linear annealing schedule, and draws bitstring samples from the final quantum state.

Installation

pip install qutip-sampler

Quick start

import dimod
from qutip_sampler import QuTipSampler

# SPIN (Ising) problem
bqm = dimod.BinaryQuadraticModel({'a': -1.0, 'b': -1.0}, {('a', 'b'): 0.5}, 0.0, 'SPIN')
result = QuTipSampler().sample(bqm, num_reads=100, seed=42)
print(result.first.sample)   # e.g. {'a': 1, 'b': 1}

# Ising directly
result = QuTipSampler().sample_ising({'a': -1.0}, {('a', 'b'): 0.5}, num_reads=50)

# QUBO
Q = {('x', 'x'): -1.0, ('y', 'y'): -1.0, ('x', 'y'): 0.5}
result = QuTipSampler().sample_qubo(Q, num_reads=50, seed=0)
print(result.first.sample)   # e.g. {'x': 1, 'y': 1}

Parameters

Parameter Default Description
anneal_time 10.0 Total annealing time T passed to sesolve
n_steps 200 Number of time steps in the annealing schedule
num_reads 100 Number of bitstring samples drawn from the final state
seed None RNG seed for reproducible sampling

anneal_time and n_steps can be set at construction time or overridden per call.

How it works

  1. Collect all variables from the problem and sort them.
  2. Build the Ising Hamiltonian H_ising = Σ hᵢ σᵢᶻ + Σ Jᵢⱼ σᵢᶻ σⱼᶻ.
  3. Build the transverse-field Hamiltonian H_T = −Σ σᵢˣ, whose ground state is |+⟩⊗ⁿ.
  4. Evolve H(t) = (1 − t/T) H_T + (t/T) H_ising from t=0 to t=T using QuTiP sesolve.
  5. Sample bitstrings from the probability distribution |ψ(T)|².

License

MIT

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

qutip_sampler-0.1.2.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

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

qutip_sampler-0.1.2-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file qutip_sampler-0.1.2.tar.gz.

File metadata

  • Download URL: qutip_sampler-0.1.2.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qutip_sampler-0.1.2.tar.gz
Algorithm Hash digest
SHA256 447767d1fcbf0a235ac440d2859af32138c514886f61be7f1f96f50b65190039
MD5 735148df51015452bd5bf5af6d055b44
BLAKE2b-256 e4087dfa4426e623afaf2e27d123623295f5bb6b3b2a1cc7620f4dc0daef7f35

See more details on using hashes here.

File details

Details for the file qutip_sampler-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: qutip_sampler-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for qutip_sampler-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 edd34328fde48fdacdb717317eb34a8491d7300ab719a5cb67f89ec3ee297966
MD5 bb50c5650b0c9e94ddf409528cced6f5
BLAKE2b-256 b97b05a5b9d31ebae3656fe138e669b5fe3c16cb0ac1d689ac6c4ce847a10877

See more details on using hashes here.

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