Default bounds for UCC ansatz circuits
See original GitHub issueWhat is the expected enhancement?
Bounds are required for many optimizers (all of the package scikit-quant as can be read on page 9 of their documentation and possibly some of the other optimizers).
Most of the ansatzes located in qiskit terra (EfficientSU2, ExcitationPreservation, …) have default bounds for the parameters (-pi to pi). See e.g. method parameter_bounds of EfficientSU2.
The ansatzes in qiskit nature (UCC, …) don’t have these default bounds implemented. Thus, those VQE calculations fail as pointed out in this bug report.
So, I propose to add the parameter_bounds
method also to the ansatzes is qiskit nature.
I’ll gladly help adding the code.
Issue Analytics
- State:
- Created a year ago
- Comments:5 (5 by maintainers)
Top Results From Across the Web
How to prepare Unitary Coupled Cluster ansatz for VQE in a ...
I have read the following paper by Dumitrescu et al. To make a Unitary Coupled Cluster (UCC) ansatz, one prepares with the following...
Read more >A Generic Compilation Strategy for the Unitary Coupled ...
We describe a compilation strategy for Variational Quantum Eigensolver (VQE) algorithms which use the Unitary Coupled Cluster (UCC) ansatz, ...
Read more >Bug using SNOBFIT in combination with UCCSD (VQE ...
I tracked down the error to be caused by missing parameter bounds. The function signature of the optimizer's minimize function (``) suggests ...
Read more >Generalized Unitary Coupled Cluster Wavefunctions ... - arXiv
We introduce a unitary coupled-cluster (UCC) ansatz termed k-UpCCGSD that is based on a family of sparse generalized doubles operators which ...
Read more >Comparison of Unitary Coupled Cluster Ansatz Methods for ...
(UCCGSD), singlet unitary coupled cluster singles and doubles (UCCSD) ... of the VQE paper wrote another paper to “extend the general theory ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I will raise this idea to the people for involved with the affected components of Qiskit Terra and get back to you 👍
The question now is whether
float("inf")
should be the default instead ofNone
(similarly to EfficientSU2 just hard-coded in UCC) or to dynamically set it toinf
if the optimizer requires it. This would be possible within vqe.py or rather in the functionvalidate_bounds
called byVQE
(located in validate_bounds.py). There the VQE can actually check whether the optimizer needs bounds and then could set them if required. This would have the advantage that these arbitrary bounds would be inserted only when needed (allowing for unbounded optimizers to work properly).As soon as this question is clarified, I’ll gladly add some code to implement it and open a PR (though in the latter case it would be in qiskit terra code).