qiskit-community / qiskit-camp-asia-19

31 stars 7 forks source link

New classical optimizer for VQE of Aqua #14

Open t-imamichi opened 4 years ago

t-imamichi commented 4 years ago

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.

Description

Members

Deliverable

GitHub repo

Rahps97 commented 4 years ago

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.

ken-nakanishi commented 4 years ago

I'd like to join this project!, Ken M. Nakanishi, Physics & Computer Science

Yuya-O-Nakagawa commented 4 years ago

I (Yuya Nakagawa, Physics) am also interested in the project, especially for the paper "Sequential minimal optimization for quantum-classical hybrid algorithms"

YouyuanS commented 4 years ago

Great idea! (Youyuan Zhang, Quantum Chemistry, Physics)

trichdop commented 4 years ago

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.

t-imamichi commented 4 years ago

The table is in the middle line.

t-imamichi commented 4 years ago

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

t-imamichi commented 4 years ago

aqua optimizers https://github.com/Qiskit/qiskit-aqua/tree/master/qiskit/aqua/components/optimizers

t-imamichi commented 4 years ago

https://github.com/Qiskit/qiskit-community-tutorials/blob/master/chemistry/LiH_with_qubit_tapering_and_uccsd.ipynb

t-imamichi commented 4 years ago

https://qiskit.org/documentation/apidoc/aqua/algorithms/algorithms.html#qiskit.aqua.algorithms.VQE

t-imamichi commented 4 years ago

https://nbviewer.jupyter.org/github/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/aqua/chemistry/programmatic_approach.ipynb [8]

t-imamichi commented 4 years ago

https://nbviewer.jupyter.org/github/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/advanced/aqua/optimization/max_cut_and_tsp.ipynb [10]

Yuya-O-Nakagawa commented 4 years ago

@t-imamichi callback function works! :)

t-imamichi commented 4 years ago

FYI: dinner is ready

t-imamichi commented 4 years ago

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

t-imamichi commented 4 years ago
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, ...)
ken-nakanishi commented 4 years ago

Our code is here! https://github.com/Qiskit/qiskit-aqua/pull/729

YouyuanS commented 4 years ago

Issue#14.pdf