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

Improves infeasibility ray check of lineartest8 #127

Closed
wants to merge 1 commit into from
Closed

Conversation

blegat
Copy link
Member

@blegat blegat commented Sep 8, 2017

The dual of the constraint does not have to be -1, it can be scaled by any positive constant since it is a ray.

@joaquimg
Copy link
Member

Actually I cant approve :( Xpress does not return rays for variable bounds.
However I need the first part because the constraint ray should be just negative as you fixed

@mlubin
Copy link
Member

mlubin commented Sep 16, 2017

Xpress does not return rays for variable bounds.

Are you sure? That seems strange.

@joaquimg joaquimg mentioned this pull request Sep 16, 2017
@joaquimg
Copy link
Member

Yep, pretty sure. At least for Xpress up to 8.0 version (the last is 8.3).

They have a get[primal/dual]ray API that is a bit limited.

@blegat
Copy link
Member Author

blegat commented Sep 16, 2017

Can't you determine the value of the ray for the variable bounds using the model and the value of the ray for the constraints ?

@joaquimg
Copy link
Member

How?

@blegat
Copy link
Member Author

blegat commented Sep 16, 2017

In the test of this PR for example, the problem is

min x
s.t. 2x+y <= -1
x,y >= 0

so the dual is

max -z
s.t.
1 - 2z >= 0 dual of x >= 0
-z >= 0 dual of y >= 0
z <= 0 dual variable of constraint

when you look for a ray, it becomes

max -z
s.t.
-2z >= 0
-z >= 0
z <= 0

The value of the variable bounds are the slack of the first and second constraint of the dual hence the checks yd ≈ -cd and xd ≈ -2cd of this PR (z is cd).

@joaquimg
Copy link
Member

Oh, I see, you mean having the interface to compute these

@blegat
Copy link
Member Author

blegat commented Nov 1, 2017

@joaquimg Is Xpress ready to pass the test with the changes of this PR now ?

@joaquimg
Copy link
Member

joaquimg commented Nov 1, 2017

Nope. It does not returns an infeasibility certificate with the bounds. I also think Gurobi and CPLEX won’t do it.

@mlubin
Copy link
Member

mlubin commented Nov 4, 2017

Ok to close now given #159?

@blegat
Copy link
Member Author

blegat commented Nov 4, 2017

I still think this test should be finished.

@blegat
Copy link
Member Author

blegat commented Nov 4, 2017

@joaquimg I just checked, Gurobi passes linear12 test and linear8 test with the modification of this PR.

@joaquimg
Copy link
Member

joaquimg commented Nov 6, 2017

That is interesting, I am pretty sure I do not set Gurobi's "FarkasDual" for bounds. Are we just having some luck?

@blegat
Copy link
Member Author

blegat commented Nov 6, 2017

What do you return as dual of the variable bounds ?

@joaquimg
Copy link
Member

joaquimg commented Nov 6, 2017

I should be writing NaN. My Gurobi licence expired, I will update it tomorrow.

@blegat
Copy link
Member Author

blegat commented Dec 31, 2017

Replaced by JuliaOpt/MathOptInterfaceTests.jl#34

@blegat blegat closed this Dec 31, 2017
@blegat blegat deleted the bl/contlin8 branch January 15, 2018 08:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants