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

EAGO configuration routine for COPT subsolver #129

Open
stumarcus314 opened this issue May 31, 2024 · 1 comment
Open

EAGO configuration routine for COPT subsolver #129

stumarcus314 opened this issue May 31, 2024 · 1 comment

Comments

@stumarcus314
Copy link

I get the message below when I try to set COPT as a subsolver for EAGO. The message states that a configuration routine needs to be added to EAGO in order to interface with COPT. COPT is an excellent LP & MILP solver (almost on par with Gurobi) and has a generous license, at least for now.
https://github.com/COPT-Public/COPT-Release
https://www.shanshu.ai/copt
https://github.com/COPT-Public/COPT.jl


using IntervalArithmetic; setrounding(Interval, :accurate)
using EAGO, COPT
eago_factory = () -> EAGO.Optimizer(SubSolvers(; r = COPT.Optimizer()))
model = Model(eago_factory)


$ julia create_model.jl
Number of pulses: 256.
Cardinal Optimizer v7.1.3. Build date Apr 29 2024
Copyright Cardinal Operations 2024. All Rights Reserved
Constructing deprecated model.

JuMP model construction time: 4.072189102 [s].
EAGO lacks a specialized configuration routine for the subsolver (COPT)
you selected. As a result, EAGO cannot set the subsolver tolerances based on the
absolute_tolerance, relative_tolerance, and absolute_constraint_feas_tolerance
parameters passed to the EAGO optimizer. Consequently, need to ensure that the tolerances
set in the provided subsolver are appropriate (for instance if the absolute_tolerance = 1E-3
then the absolute tolerance for a subsolver should be < 1E-4 and any feasibility tolerances
should be as conservative as the absolute_constraint_feas_tolerance). If you see this message
please submit an issue at https://github.com/PSORLab/EAGO.jl/issues/new/choose requesting
that a configuration routine be added for this subsolver.

@stumarcus314 stumarcus314 changed the title EAGO support for COPT EAGO configuration routine for COPT subsolver May 31, 2024
@RXGottlieb
Copy link
Member

This message is essentially stating that EAGO doesn't automatically set tolerances for COPT based on EAGO's tolerances. EAGO will still work using COPT as a subsolver, you'll just need to be sure that the subsolver tolerances are appropriate for the tolerances you're using at the EAGO level. We may look into adding specific support for COPT in the future to hide this message, or you can submit a pull request with a file like EAGO.jl/src/subsolvers/copt.jl that sets the desired parameters relative to EAGO. If you decide to submit a pull request, you can look at the other files in the subsolvers folder for formatting examples.

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

No branches or pull requests

2 participants