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
Auglag #50
Conversation
Maximum number of function calls in TRON is sometimes attained because of repeated use of the same model. TRON stopping criterion on maxfuncall should be relative to previous number of function calls in model. |
Not sure I understand. When AugLag creates a TRON instance, can't it set the max number of function evals? |
p = x - g | ||
med = np.maximum(np.minimum(p, self.model.Uvar), self.model.Lvar) | ||
q = x - med | ||
return q |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is now available as a function in tools.utils
.
Yes it can, but the issue is that TRON checks the number of function calls directly from the model. for instance: let say maxfuncall = 100 nlp.auglag INFO iter f ‖P∇L‖ ‖c‖ ρ inner stat ω η |
Well yes, the model accumulates the total number of objective calls. Instead of setting the max number to a huge value, I think AugLag should set it to, say, 100 the first time, 200 the second time, etc., or something similar. Another possibility is for TRON to record the number of objective evals stored in the model before starting the solve, and stop when there's been 100 other objective evaluations (or 1000, or ...) |
Where does this stand? |
Rebased. |
Changes Unknown when pulling cdcc6b7 on auglag into * on develop*. |
I made a few local changes that fix some bugs. Among the equality-constrained problems in COPS, we're solving two sizes of |
Changes Unknown when pulling 5235c74 on auglag into * on develop*. |
Removed an unnecessary import in the SlackNLP class definition.
- corrected size error in SlackNLP for range constraints - fixed variable names in Auglag
- if the trust region solver made no progress, (because it thinks the problem is already solved,) exit immediately
If the optimization fails, but the point is feasible, return "feas" as the status. This is useful on problems such as HS013, where the optimal solution doesn't satisfy a constraint qualification.
Documentation fix in trustregion.py
|
Changes Unknown when pulling a137dcc on auglag into * on develop*. |
If the final step is not a descent direction, (checked by Armijo line search class,) reject the step and contract the trust region. This will get around the few cases when projection causes a problem with the final step.
Changes Unknown when pulling 9ed55ee on auglag into * on develop*. |
- add a projection to prevent x_trial from going out of bounds - treat successful N-Y backtracking as a regular iteration - move convergence checks based on function values so that they are only checked on accepted steps
number of iterations. Updated some documentation as well.
and TRON Hessian operator.
quasi-Newton version of augmented Lagrangian model.
Changes Unknown when pulling 4987703 on auglag into ** on develop**. |
It looks like this pull request is ready to close. There may be more bugs to fix, but Auglag works pretty well with all of the work to this point. I recommend merging into the develop branch. |
Thanks all! |
auglag is back....
there is a bug with stopping criteria between TRON and auglag.
Needs more investigation.