Skip to content

Welcome to the QuanEstimation

QuanEstimation is a Python-Julia-based open-source toolkit for quantum parameter estimation, which consist in the calculation of the quantum metrological tools and quantum resources, and the optimizations with respect to the probe states, the controls or the measurements, as well as comprehensive optimizations in quantum metrology. Futhermore, QuanEstimation can generate not only optimal quantum parameter estimation schemes, but also adaptive measurement schemes.The package structure of QuanEstimation can be seen in the following figure:

Image title

The package structure of QuanEstimation. The blue boxes and the light blue boxes reprsent the folders and the python files. The orange boxes and the gray boxes represent the classes and the functions. In the figure, the functions which are circled by dotted lines represent the wrapped Julia methods that are calculated in Julia.

The package contains several well-used metrological tools, such as quantum (classical) Cramér-Rao bounds, Hevolo Cramér-Rao bound and Bayesian versions of quantum (classical) Cramér-Rao bounds, quantum Ziv-Zakai bound, and Bayesian estimation. The users can use these bounds as the objective functions to optimize the probe state, control, measurement and simultaneous optimizations among them. The optimization methods include the gradient-based algorithms such as the gradient ascent pulse engineering (GRAPE), GRAPE algorithm based on the automatic differentiation (auto-GRAPE), automatic differentiation (AD) and the gradient-free algorithms such as particle swarm optimization (PSO), differential evolution (DE), and reverse iterative (RI) algorithm.

The interface of QuanEstimation is written in Python, but the most calculation processes are executed in Julia for the computational efficiency. Therefore, QuanEstimation also has a full Julia version apart from the Python-Julia version.