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|
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aef3b5a4c1f3e6ea615eb41c259a0f926a5c4ba8a3302236f384658ecbb25774
|
|
| MD5 |
4cb0bc9e41bc5171e07dde6061dffbd7
|
|
| BLAKE2b-256 |
3b1428c4f7026630979d9ca5a3a63e3699740019b6e52c2292f39a132b8dfb3a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7042f501797678c025217bb5b492186d6ef53292dbd96ce1a4b68f566e97a4f9
|
|
| MD5 |
781a18edf89257d4d21ddd1701f37a6e
|
|
| BLAKE2b-256 |
f2ff961d4751c5d92061314cc21b66e463b96b00acdf8a9fe453c9bdc65a8381
|