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

WIP: Make BQPD matrix-free #114

Closed
wants to merge 25 commits into from
Closed

WIP: Make BQPD matrix-free #114

wants to merge 25 commits into from

Conversation

cvanaret
Copy link
Owner

@cvanaret cvanaret commented Nov 27, 2024

BQPD only uses Hessian-vector products. Therefore, we can use a linear operator $v \rightarrow H.v$ instead of forming the explicit Hessian. Such an operator is available in ASL (AMPL Solver Library). It will also be very convenient for quasi-Newton methods.

Steps to complete:

  • transfer the gdotx function from Fortran to C++.
  • hide pointers to the OptimizationProblem and current Multipliers in the BQPD workspace (int* lws), then retrieve them in the gdotx function.
  • perform the Hessian-vector product within gdotx.
  • wrap the OptimizationProblem, the current Multipliers and the HessianModel in a new object (e.g. InequalityConstrainedProblem), and let the subproblem solver handle the function evaluations.

cc @worc4021

…Iterate). BQPD queries evaluations from LagrangeNewtonSubproblem. Renamed Subproblem into InequalityHandlingMethod.
… takes a subproblem and evaluates the functions locally
…Iterate). BQPD queries evaluations from LagrangeNewtonSubproblem. Renamed Subproblem into InequalityHandlingMethod.
… takes a subproblem and evaluates the functions locally
@cvanaret cvanaret mentioned this pull request Dec 2, 2024
4 tasks
@cvanaret cvanaret closed this Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants