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

Rewrite SCIP wrapper with Clang.jl to support a MIP solver through MOI #76

Merged
merged 82 commits into from
Jan 6, 2019

Conversation

rschwarz
Copy link
Collaborator

@rschwarz rschwarz commented Dec 18, 2018

fixes #28, but does not support callbacks or nonlinear expressions 😞

 - based on example of ArrowGlib.jl
 - incomplete (only wrap scip_general.h)
 - these declarations used to be in scip.h
 - types are still missing
 - those that appear in the first block in scip.h
 - but not type_var.h, which yields an error
   (undefined `union SCIP_DomChg`)
 - requires updated Clang.jl with #214 fixed.
 - inspired by Gurobi.jl
 - seems to work when `/usr/lib/libscip.so` exists.
 - otherwise, if system-wide installation exists, can not point it to another
   installation which is useful for testing (debug mode build)
 - otherwise, constraints can not be created!
@rschwarz
Copy link
Collaborator Author

I would be ready to merge this to master and the continue to work on features in separate PRs.

@rschwarz rschwarz self-assigned this Dec 28, 2018
Copy link
Collaborator

@mlubin mlubin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice! I made a bunch of comments but most of the hard work is already done.

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
REQUIRE Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
src/wrapper/README.md Show resolved Hide resolved
src/MOI_wrapper.jl Outdated Show resolved Hide resolved
src/MOI_wrapper.jl Show resolved Hide resolved
src/MOI_wrapper.jl Outdated Show resolved Hide resolved
test/REQUIRE Outdated Show resolved Hide resolved
test/managed_scip.jl Outdated Show resolved Hide resolved
@mlubin
Copy link
Collaborator

mlubin commented Jan 6, 2019

(Unable to reply inline)

Other solvers map this to OPTIMAL. I.e., terminating with a gap is optimal within the user-provided termination criteria.

Hm, strange. But what if the solver "accidentally" proves optimality (zero gap)? These cases could not be distinguished, then, using the status?

Correct. If you set a convergence tolerance on the solver and the solver happens to do better than you asked, you still get OPTIMAL. You can always check the gap manually later.

Copy link
Collaborator

@mlubin mlubin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The points remaining are minor and I think properly accounted for with issues if needed, so LGTM to merge after addressing my last comments.

src/MOI_wrapper.jl Outdated Show resolved Hide resolved
src/MOI_wrapper.jl Show resolved Hide resolved
@rschwarz rschwarz merged commit f06c0f5 into master Jan 6, 2019
@rschwarz rschwarz deleted the rs/clang branch January 6, 2019 20:46
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.

Remove CSIP dependency
4 participants