Handling Linear Constraints in Quantum and Hybrid Optimization Methods
I have a long linear constraint in my optimization problem, expressed as a0x0+a1x1+⋯=c.
I am considering two approaches:
- A purely quantum method.
- A hybrid method.
If I use Binary Quadratic Models (BQM), I must adopt a quadratic penalty (… )^ to enforce the constraint. This leads to a large, fully connected graph, which hinders embedding and increases chain length. Consequently, this may result in poor performance.
- Is there any other advanced method for handling linear constraints in BQM?
Alternatively, if I use the Constrained Quadratic Model (CQM) with the LeapHybridSampler method, how does CQM handle linear constraints?
- Are the constraints handled during embedding, or does it use classical methods to enforce them?
On the other hand, if I customize my hybrid workflow using dwave-hybrid
, is it possible to achieve better results compared to LeapHybridSampler?
Are there detailed documents or resources available for learning more about dwave-hybrid
?
Thanks a lot!
Comments
Hello,
To answer your questions:
Hopefully this was helpful. Please let us know if you have any questions.
Indeed, the LeapHybridCQMSampler demonstrates good performance for most cases. However, I have the following additional questions about it:
1. Does reweighting the coefficients in the constraint equation affect the performance of the results?
For example:
( c_1x_1 + c_2x_2 + c_3x_3 = k
==>
a(c_1x_1 + c_2x_2 + c_3x_3) = a(k)
2. Are there any guidelines for formulating problems to make them easier to solve using LeapHybridCQMSampler?
For instance, if I have a constraint like:
( c_1x_1 + c_2x_2 + c_3x_3 = k ,
I could reformulate the constraint by shifting terms, as follows:
(c_1x_1 + c_2x_2 + c_3x_3) - a(x_1 + x_2 + x_3) = k - a .
What value of a would lead to a better formulation for LeaphybridCQMSampler?
3. For large problems, the LeapHybridCQMSampler takes significant time to run. If the results are not satisfactory, is it possible to reload the problem or continue the calculation using `hybrid.state` or another method?
4. I want to track how the energy changes over iterations, QPU time, or real time. How can I obtain energy changes as a time-dependent variable?
Please sign in to leave a comment.