qiskit-community / qiskit-nature

Qiskit Nature is an open-source, quantum computing, framework for solving quantum mechanical natural science problems.
https://qiskit-community.github.io/qiskit-nature/
Apache License 2.0
290 stars 197 forks source link

Compact encoding algorithm for vibrational UCC #164

Open marcomajland opened 3 years ago

marcomajland commented 3 years ago

What is the expected behavior?

Dear Qiskit

In the current implementation of the vibrational UCC ansatz to compute bosonic energy spectra in quantum chemistry (Ollitrault, et. al, https://arxiv.org/abs/2003.12578), a direct encoding protocol is utilized. Recently, I have developed two novel encoding strategies which enable a more compact encoding approach. These strategies allow for polynomial qubit memory increase along with reduction of quantum circuit depths relative to the direct encoding approach. With NISQ era devices, such reductions yield higher accuracy and automatically allow for the study of larger molecular systems. I have attached a PDF version of the paper in this link.

I have discussed an implementation of the algorithm into Qiskit with Pauline Ollitrault and Ivano Tavernelli. If it would be of your interest, I would like to propose such an implementation. The current software developed in relation to the paper is inspired by the standards of Qiskit code. Thus, an implementation into Qiskit is expected to require only a few adjustments to the code.

I look forward to hear from you.

Best regards Marco Majland

paulineollitrault commented 3 years ago

Hi Marco, thanks for opening this issue! Here is how you should proceed:

  1. write the code as a new mapper on the model of the direct_mapper: https://github.com/Qiskit/qiskit-nature/blob/main/qiskit_nature/mappers/second_quantization/direct_mapper.py
  2. write the corresponding test
  3. open a Pull Request. The code will then be reviewed by us.
  4. write a release note
marcomajland commented 3 years ago

Thanks a lot. I have re-written the code to conform to the standards of the direct mapper. I am a bit unsure of how I should generate the reference Hamiltonian for the test. Are the references for the other second quantization mappers generated by hand?

mrossinek commented 2 years ago

Hi @marcomajland. Sorry for never getting back to you on this. I would suggest, that you generate the qubit operator using your implementation and then verify its correctness by hand. I.e. you pick a small enough problem size which allows you to verify everything manually using the paper as a reference. I am looking forward to a PR from you :+1:

mrossinek commented 1 year ago

Hi @marcomajland! It has been a while and Qiskit Nature just underwent yet another large refactoring (hopefully the last one as big as this for a long time).

Are you still interested in contributing your developments to Qiskit Nature? I would be happy to guide you through how to get a PR ready :+1: