Skip to main content

Implements Double-Bracket Quantum Imaginary Time Evolution (DB-QITE) in Qiskit

Project description

Double-Bracket Quantum Imaginary Time Evolution (DB-QITE)

Implementation of DB-QITE (by Gluza et al) and Ground state by DBI (by Gluza)

This repository implements two recently emerged algorithms for Hamiltonian ground state preparation:

  • DB-sorter: Based on DBI algorithm sorts the eigenvalues and eigenvectors and chooses the smallest one
  • DB-QITE: Mimics imaginary time evolution by approximating Hamiltonian commutation with |0><0|

Brockett Flow DBI Flow

Installation

pip install db-qite

Usage

To create a QuantumCircuit

DB-sorter

from db_qite import DB_Sorter

dbq = DB_Sorter(
    hamiltonian = H,         # hamiltonian: `SparsePauliOp`
    time_step = s,           # time step. list or a single value
    trotterization = True,   # whether to approx H, default True
)

circuit = dbq.create_circuit(
    num_steps,               # #iterations
)

DB-QITE

from db_qite import DB_QITE

dbq = DB_QITE(
    hamiltonian = H,         # hamiltonian: `SparsePauliOp`
    initial_state = None,    # initial_state array-like, default None
    time_step = s,           # time step. list or a single value
    trotterization = True,   # whether to approx H, default True
)

circuit = dbq.create_circuit(
    num_steps,               # #iterations
    random_u0,               # boolean. U0 is random or not
)

Run for a range of iterations with plots

DB-sorter

from db_qite import db_sorter_range

runner, results = db_sorter_range(
    hamiltonian=H,
    time_step=.5,       # or a list
    num_steps_range=range(1, 3),
    backend=None, #  or "simulator" or a Qiskit Backend
    estimate_energy=True, # wether to estimate energy or just prepare the state
    shots=1024
)

DB-QITE

from db_qite import db_qite_range

runner, results = db_qite_range(
    hamiltonian=H,
    initial_state=None, # or initial state
    time_step=.5,       # or a list
    random_u0=True,     # or False
    num_steps_range=range(1, 6),
    backend="simulator", #  or None to detect a qiskit backend
    estimate_energy=True, # wether to estimate energy or just prepare the state
    shots=1024
)

Note: if you provide None, or a qiskit backend name or object, it will run on IBM quantum machines. You have to set IBM_QUANTUM_TOKEN environment variable for it

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

db_qite-0.0.7.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

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

db_qite-0.0.7-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file db_qite-0.0.7.tar.gz.

File metadata

  • Download URL: db_qite-0.0.7.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for db_qite-0.0.7.tar.gz
Algorithm Hash digest
SHA256 aef3b5a4c1f3e6ea615eb41c259a0f926a5c4ba8a3302236f384658ecbb25774
MD5 4cb0bc9e41bc5171e07dde6061dffbd7
BLAKE2b-256 3b1428c4f7026630979d9ca5a3a63e3699740019b6e52c2292f39a132b8dfb3a

See more details on using hashes here.

File details

Details for the file db_qite-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: db_qite-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for db_qite-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7042f501797678c025217bb5b492186d6ef53292dbd96ce1a4b68f566e97a4f9
MD5 781a18edf89257d4d21ddd1701f37a6e
BLAKE2b-256 f2ff961d4751c5d92061314cc21b66e463b96b00acdf8a9fe453c9bdc65a8381

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