Detect unbounded and infeasible problems#332
Detect unbounded and infeasible problems#332BenjaminPINEAU wants to merge 5 commits intoJuliaSmoothOptimizers:masterfrom
Conversation
| diverging_obj_tol::T = -eps(T)^(-1), | ||
| cviol_tol::T = eps(T)^(-1), | ||
| diverging_max_iter::Int = 5, | ||
| cviol_max_iter::Int = 5, |
There was a problem hiding this comment.
The main question is to find out if the criteria you implemented result in a lot of "false positives", i.e., problems that are falsely detected as (locally) infeasible.
| mu *= factor_penalty_up | ||
| if cviol > cviol_tol | ||
| cviol_iter += 1 | ||
| end |
There was a problem hiding this comment.
I think cviol_iter should be reset to zero if cviol ≤ cviol_tol. We want the tolerance to be exceeded for a number of consecutive iterations, right?
There was a problem hiding this comment.
Actually, my mistake, this has been implemented in R2 and R2N but not in AL.
| end | ||
| if (fx + hx < diverging_obj_tol) || (norm(solver.x) > diverging_iterates_tol) | ||
| mu *= factor_penalty_up | ||
| diverging_iter = diverging_iter + 1 |
Co-authored-by: Dominique <dominique.orban@gmail.com>
Co-authored-by: Dominique <dominique.orban@gmail.com>
Co-authored-by: Dominique <dominique.orban@gmail.com>
Co-authored-by: Dominique <dominique.orban@gmail.com>
|
@dpo I was also wondering if we could add the criterion problem = "elec"
nlp = MathOptNLPModel(OptimizationProblems.PureJuMP.eval(Meta.parse(problem))(), name = problem)
quadratic_model = QuadraticModel(nlp, nlp.meta.x0, name = nlp.meta.name)we can detect that the problem is unbounded much more quickly (considering the number of iteration of the subsolver): |
Allows AL, R2N and R2 to detect unbounded problems (see #331).
Considering the following unbounded problem:
The AL algorithm now return
A problem (or subproblem) is stated as$$f+h$$ or $$\lVert x \rVert$$ is higher than a tolerance for a given number of iterations.
unboundedifThis pull request also allowed
ALto detect infeasible problem. Considering the following infeasible problemThe
ALalgorithm now returnThe algorithm stops when
cviolis hight and the regularization parameter increases for a given number of iterations.@dpo