qat.plugins
Plugins are objects to manipulate quantum jobs (circuits, observables) prior to execution and post-process the results.
Currently, the following plugins are offered to the users in Qaptiva™.
Circuit rewriting plugins
Split observable job into smaller diagonal observable jobs |
|
Transform job to batch by generating circuits corresponding to each term in the observable |
|
Inlining circuit inside a stack |
|
Merge quantum gates together to reduce the number of gates |
|
Replace some gates by a pattern in a circuit |
|
Automated optimization of large quantum circuits with continuous parameters |
|
Compress sequences of consecutive single qubit gates into a fixed universal pattern |
|
Plugin solving the SWAP insertion problem |
|
Turning observable sampling into qubit sampling |
|
High-level plugin applying rewriting rules following a meta-heuristic |
|
Unused qubits remover |
Circuit synthesis plugins
Plugin wrapping various remapping methods |
|
Lazy circuit synthesis based on nnization algorithm |
|
Generic compiler for NISQ quantum circuits |
Variational optimization plugins
Perform variational optimization without observable |
|
Minimizer based on the Particle Swarm Optimization (PSO) algorithm |
|
Hybrid quantum classical optimization based on the Scipy |
|
Minimizer based on Simultaneous Perturbation Stochastic Approximation (SPSA) algorithm |
Plugin for fermionic systems
Plugin building iteratively efficient ansatze |
|
Natural gradient descent optimizer |
|
Plugin running several optimizations and keeping the best one |
|
Iteratively transform into Natural Orbitals basis |
|
Plugin performing a transformation on the Observable |
|
Plugin performing Zero-Noise Extrapolation |
Plugins for projective quantum eigensolver
These plugins allow performing projective quantum eigensolving (PQE, Stair et al. ) on Qaptiva. PQE is an alternative to variational quantum eigensolving (VQE) that, instead of minimizing a variational energy, attempts to find the zeros of the “residues” of the parametric wavefunction. By so doing, one hopes to get a faster and more noise-robust convergence to the ground state of the problem.
PQE is implemented through two plugins: the first plugin iteratively generates the ansatz, while the second performs the quasi-Newton optimization of the parameters:
PQE plugin for quasi-Newton optimization |
|
PQE plugin for ansatz preparation |
Plugin utilities
Abstract class of all plugins |
|
Display a quantum circuit in a terminal |
|
Specialized abstract plugin allowing iterations inside a Qaptiva stack |
|
Specialized abstract junction performing variational optimization |
|
Plugin emulating hardware constraints |
|
Connect to a plugin running in a remote server |
|
Plugin than can be uploaded with Qaptiva Access |