Release Note
New Features
- Add the `schmidt_decompose()` function, which computes the Schmidt decomposition of a quantum state.
- Add the `paddle_quantum.dataset` module, which provides the quantum version of common datasets, such as the MNIST dataset, the Iris dataset, etc.
- Add the `QuantumFisher` and the `ClassicalFisher` classes, which compute the quantum Fisher information and the classical Fisher information.
- Add the `expand()` method in the `UAnsatz` class, which dynamically expands the number of qubits in a quantum circuit.
- Add the `plot_density_matrix_graph()` function in `paddle_quantum.utils`, which visualizes a density matrix.
- Add the `plot_multi_qubits_state_in_bloch_sphere()` function in `paddle_quantum.utils`, which plots independent systems with multiple qubit states on the Bloch sphere.
- Add the `image_to_density_matrix()` function to encode an image as a quantum state.
Quantum Chemistry
* Add the `run_chem()` function in `paddle_quantum.qchem` which could use `"hardware efficient"` ansatz and `"hartree fock"` ansatz to calculate ground state energy for a given molecule. For details, please refer to our updated introduction to the quantum chemistry module.
* Add the `QModel` class which could be used to define a customized variational ansatz for quantum chemistry calculation. For details, please refer to our updated introduction to the quantum chemistry module.
New Tutorials
Introduction
- Add the tutorial *Quantum Chemistry in Paddle Quantum's qchem*, which explains how to use our upgraded quantum chemistry module to do ground state energy calculation.
- Add the tutorial *Frequently Used Functions in Paddle Quantum*, which lists some frequently used functions in Paddle Quantum.
QNN Research
- Add the tutorial *Quantum Fisher Information*, which briefly introduces the concepts of the classical and quantum Fisher information, along with their applications in quantum machine learning, and shows how to compute them with Paddle Quantum.
Quantum Simulation
- Add the tutorial *Distributed Variational Quantum Eigensolver Based on Schmidt Decomposition*, which demonstrates how to implement a distributed quantum algorithm using Paddle Quantum.
Improvements
- Improve the simulator performance in state_vector mode.
- Update the introduction tutorial, including some typo fixes.
- The `partial_trace_discontiguous()` function is now available.
- The `construct_h_matrix()` method in the `Hamiltonian` class now supports specifying the number of qubits.
- Enhance the performance of the Hamiltonian simulation experimentally, referring to the paper *Optimal quantum circuits for general two-qubit gates*.
- Upgrade some tutorials with the latest code features.
Bug Fixes
- Fix the bug in the `von_neumann_entropy()` function. Now it skips eigenvalue zero in the calculation process.
- Fix the bug in the `update_param()` method which is caused by the incompatible update of the PaddlePaddle.
- Fix the plot error in MAXCUT and DC-QAOA tutorials.
- Fix the bug in the `get_1d_heisenberg_hamiltonian()` function.
- Fix typos in the docs of `cy` and `cz` gates.
- Fix some typos in tutorials.
Dependencies
- `paddlepaddle`: updated from `>=2.1.2` to `>=2.2.0`.
- `openfermion`: newly added.
- `pyscf`: newly added for Linux and macOS platforms.