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

REDUCTION_CERTIFICATE #725

Closed
blegat opened this issue May 2, 2019 · 6 comments · Fixed by #734
Closed

REDUCTION_CERTIFICATE #725

blegat opened this issue May 2, 2019 · 6 comments · Fixed by #734
Assignees
Milestone

Comments

@blegat
Copy link
Member

blegat commented May 2, 2019

We removed it as we thought it was dropped from Mosek (see #575 (comment)) but I often still get it (with Mosek v8), i.e. these lines are executed:
https://github.com/JuliaOpt/MosekTools.jl/blob/d274a8381b6548f5ef25ad249e28884a6a557fed/src/attributes.jl#L494
https://github.com/JuliaOpt/MosekTools.jl/blob/d274a8381b6548f5ef25ad249e28884a6a557fed/src/attributes.jl#L519
and I get an Undefined error since it was removed from MOI.

@ulfworsoe @erling-d-andersen Was this feature removed in Mosek v9 ?

@erling-d-andersen
Copy link

erling-d-andersen commented May 2, 2019

I am not sure who did

elseif solsta == MSK_SOL_STA_PRIM_ILLPOSED_CER
MOI.NO_SOLUTION
elseif solsta == MSK_SOL_STA_DUAL_ILLPOSED_CER
MOI.REDUCTION_CERTIFICATE

Why do say no solution in one case and certificate in the other. To me it makes zero sense.

Both solution statuses are of course still possible.

In v9 we removed all the statuses that something with NEAR in them.

@blegat
Copy link
Member Author

blegat commented May 2, 2019

Thank you for the quick reply!

Why do say no solution in one case and certificate in the other

For MSK_SOL_STA_PRIM_ILLPOSED_CER, the MOI.PrimalStatus is MOI.NO_SOLUTION and the MOI.DualStatus is MOI.REDUCTION_CERTIFICATE because the certificate is contained in the dual solution and there is no primal solution. This is similar to MSK_SOL_STA_PRIM_INFEAS_CER where there is no primal solution and the dual contains an infeasibility ray.

@erling-d-andersen
Copy link

erling-d-andersen commented May 2, 2019

Got the logic now i.e. separate primal and dual statuses. Good solution.

@erling-d-andersen
Copy link

Btw if you see ill posed then you most likely have nasty model. Not that I cannot exclude a bug, but I would be worried about seeing illposed.

@blegat
Copy link
Member Author

blegat commented May 3, 2019

Btw if you see ill posed then you most likely have nasty model.

Indeed, it is nasty by design. This is a model parametrized by some parameter γ. For γ < γ*, it is infeasible and for γ > γ*, it is feasible. I am doing bisection to find γ*.
https://github.com/blegat/SwitchOnSafety.jl/blob/a0b3e6de04e477a44e70bdb374d987620f8a736c/src/sos.jl#L217-L294
For some interval around γ*, the problem is ill conditioned and the solver fails to determine whether the problem is feasible or not.

@blegat blegat added this to the v0.9 milestone May 3, 2019
@blegat blegat added good first issue Status: help wanted This issue needs could use help from the community labels May 3, 2019
@erling-d-andersen
Copy link

It is a hard one.

@blegat blegat self-assigned this May 14, 2019
@blegat blegat removed the Status: help wanted This issue needs could use help from the community label May 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

2 participants