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

QUBO and PUBO format output #143

Closed
wants to merge 9 commits into from
Closed

QUBO and PUBO format output #143

wants to merge 9 commits into from

Conversation

termoshtt
Copy link
Collaborator

@termoshtt termoshtt commented Nov 12, 2024

  • This PR adds methods to_qubo and to_pubo to create Quadratic Unconstrained Binary Optimization (QUBO) and Polynomial ... (PUBO) formats.
  • PUBO contains arbitrary order of polynomial, i.e. QUBO is also a valid PUBO. Since the maximum order may be linear or quadratic, we use PUBO instead of HUBO (higher-order ...).

@termoshtt termoshtt self-assigned this Nov 12, 2024
@termoshtt termoshtt added python Changes in Python SDK rust Changes in Rust SDK labels Nov 15, 2024
termoshtt added a commit that referenced this pull request Nov 15, 2024
…#144)

# Summary

- Add optional fields, `dual_variable` and `penalty_weight` in
`Constraint` message.
- This will be used in #143 to create unconstrained problem. #143 will
support two way to create QUBO and PUBO, penalty method and augmented
Lagrangian method

# Detail
For a problem 

$$
\begin{align*}
  \min & f(x) \\
  \text{s.t.} & g(x) = 0
\end{align*}
$$

- Penalty method try to minimize $f(x) + \rho |g(x)|^2$, where $\rho$ is
called penalty weight.
- Augmented Lagrangian method try to minimize $f(x) + \lambda g(x) +
\rho |g(x)|^2$, where $\lambda$ is current dual variable and $\rho$ is
also a penalty weight.

`dual_variable` field is intended to store $\lambda$, and
`penalty_weight` stores $\rho$ in this sense.
@termoshtt
Copy link
Collaborator Author

Recreated with ParametricInstance by #146

@termoshtt termoshtt closed this Nov 28, 2024
@termoshtt termoshtt deleted the qubo-output branch November 28, 2024 06:58
termoshtt added a commit that referenced this pull request Dec 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
python Changes in Python SDK rust Changes in Rust SDK
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant