qiskit-camp-asia-19
qiskit-camp-asia-19 copied to clipboard
New classical optimizer for VQE of Aqua
Abstract
Variational quantum eigensolver (VQE) is a hybrid quantum algorithm to find the ground state of an input Hamiltonian. There are several classical optimizer available in Qiskit Aqua such as SPSA and Cobyla. See the full list.
Let's implement more optimizers for VQE of Aqua. There are a couples of options as follows.
- You come up with new optimization algorithms and implement them
- You look for papers about optimization of VQE and implement them, e.g., Sequential minimal optimization for quantum-classical hybrid algorithms
- You look for open source libraries of optimization and integrate them into Aqua, e.g., Optuna and RBFOpt.
Description
Members
- @githubhandle
- @githubhandle - Slack:
@slackhandle
email:[email protected]
- Qiskit Coach: @t-imamichi
Deliverable
- Aqua PR https://github.com/Qiskit/qiskit-aqua
GitHub repo
What about using Annealing? Like we have Dual Annealing in Classical Approach (Python), is it possible to add Quantum Annealing in Qiskit. For example, In random unitary decomposition, it would be good to have Quantum Annealing for optimization.
I'd like to join this project!, Ken M. Nakanishi, Physics & Computer Science
I (Yuya Nakagawa, Physics) am also interested in the project, especially for the paper "Sequential minimal optimization for quantum-classical hybrid algorithms"
Great idea! (Youyuan Zhang, Quantum Chemistry, Physics)
Hi, I am Chii-Chang Chen, Professor in Department of Optics and Photonics, National Central University in Taiwan. I am interested to your algorithm optimization of VQE.
The table is in the middle line.
tutorials https://nbviewer.jupyter.org/github/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/1_start_here.ipynb chemistry tutorials https://nbviewer.jupyter.org/github/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/aqua/chemistry/index.ipynb
aqua optimizers https://github.com/Qiskit/qiskit-aqua/tree/master/qiskit/aqua/components/optimizers
https://github.com/Qiskit/qiskit-community-tutorials/blob/master/chemistry/LiH_with_qubit_tapering_and_uccsd.ipynb
https://qiskit.org/documentation/apidoc/aqua/algorithms/algorithms.html#qiskit.aqua.algorithms.VQE
https://nbviewer.jupyter.org/github/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/aqua/chemistry/programmatic_approach.ipynb [8]
https://nbviewer.jupyter.org/github/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/aqua/optimization/max_cut_and_tsp.ipynb [10]
@t-imamichi callback function works! :)
FYI: dinner is ready
noise model https://github.com/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/aer/3_building_noise_models.ipynb QuantumInstance accepts noise model as a parameter https://qiskit.org/documentation/api/qiskit.aqua.QuantumInstance.html#qiskit.aqua.QuantumInstance
from qiskit.providers.aer.noise import NoiseModel
from qiskit.providers.aer.noise.errors import ReadoutError, depolarizing_error
noise_model = NoiseModel()
noise_model.add_all_qubit_readout_error(ReadoutError([[0.99, 0.01], [0.1, 0.9]]))
noise_model.add_all_qubit_quantum_error(depolarizing_error(0.01, 1), 'u1')
noise_model.add_all_qubit_quantum_error(depolarizing_error(0.01, 1), 'u2')
noise_model.add_all_qubit_quantum_error(depolarizing_error(0.01, 1), 'u3')
noise_model.add_all_qubit_quantum_error(depolarizing_error(0.1, 2), 'cx')
QuantumInstance(noise_model=noise_model, ...)
Our code is here! https://github.com/Qiskit/qiskit-aqua/pull/729