Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add unbalanced penalization for inequality constraints #1339

Open
alejomonbar opened this issue Jun 21, 2023 · 3 comments
Open

Add unbalanced penalization for inequality constraints #1339

alejomonbar opened this issue Jun 21, 2023 · 3 comments
Labels
enhancement New feature or request

Comments

@alejomonbar
Copy link
Contributor

Application

Unbalanced penalization is an alternative way to represent inequality constraints without the need of using extra slack variables. We have shown that this method works well for the bin packing problem (BPP) [1] and the traveling salesman problem (TSP) [2] using D-Wave Advantage and D-Wave hybrid solvers. Additionally, it outperforms the results obtained when using slack variables. It would be nice if you implement this method as a new type of constraint. I propose to add the unbalanced penalization method to /binary/binary_quadratic_model.py to handle inequality constraints with this method in add_linear_inequality_constraint.

Proposed Solution
Implement a function unbalanced_penalization to be used in add_linear_inequality_constraint if the user want to use the unbalanced penalization method.

Additional Context
[1] Montanez-Barrera, A., Willsch, D., A., Maldonado-Romo, & Michielsen, K. (2022). Unbalanced penalization: A new approach to encode inequality constraints of combinatorial problems for quantum optimization algorithms. 23–25. http://arxiv.org/abs/2211.13914

[2] Montanez-Barrera, J. A., Heuvel, P. van den, Willsch, D., & Michielsen, K. (2023). Improving Performance in Combinatorial Optimization Problems with Inequality Constraints: An Evaluation of the Unbalanced Penalization Method on D-Wave Advantage. http://arxiv.org/abs/2305.18757

@alejomonbar alejomonbar added the enhancement New feature or request label Jun 21, 2023
@arcondello
Copy link
Member

I agree that having something like a penalization_method keyword argument to add_linear_inequality_constraint seems like a desirable feature.

@alejomonbar
Copy link
Contributor Author

@arcondello If you agree, I will try to implement it.

@arcondello
Copy link
Member

Please do! Feel free to ask questions here if you need any help

alejomonbar added a commit to alejomonbar/dimod that referenced this issue Jun 29, 2023
Following recent thread about the unbalanced penalization equation to encode inequality constraints. dwavesystems#1339
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants