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

Some problmens with ColCutGenConquer #448

Closed
wdscoelho opened this issue Feb 23, 2021 · 3 comments
Closed

Some problmens with ColCutGenConquer #448

wdscoelho opened this issue Feb 23, 2021 · 3 comments
Assignees
Labels
bug Something isn't working ux

Comments

@wdscoelho
Copy link

wdscoelho commented Feb 23, 2021

Hello,

I'm trying to solve my model with Coluna, but I'm experiencing some problems.

First, how to use Coluna.Algorithm.ColCutGenConquer ? If I use the following code:

coluna = optimizer_with_attributes(Coluna.Optimizer, "params" => Coluna.Params(solver = Coluna.Algorithm.ColCutGenConquer(),"default_optimizer" => CPLEX.Optimizer)

on the example from https://atoptima.github.io/Coluna.jl/latest/user/start/ I get the following error:

Coluna
Version 0.3.5 | 2021-02-12 | https://github.com/atoptima/Coluna.jl
┌ Warning: No initial primal bound and no cost for global artificial variables.
│ Cost of global artificial variables set to 100000.0
└ @ Coluna /home/wesley/.julia/packages/Coluna/OEmAD/src/optimize.jl:20
┌ Warning: No initial primal bound and no cost for local artificial variables.
│ Cost of local artificial variables set to 10000.0
└ @ Coluna /home/wesley/.julia/packages/Coluna/OEmAD/src/optimize.jl:33
MethodError: no method matching initialize_storages!(::Coluna.Algorithm.ReformData, ::Coluna.Algorithm.ColCutGenConquer)
Closest candidates are:
initialize_storages!(::Coluna.Algorithm.AbstractData, !Matched::Coluna.Algorithm.AbstractOptimizationAlgorithm) at /home/wesley/.julia/packages/Coluna/OEmAD/src/Algorithm/interface.jl:151

Stacktrace:
[1] optimize!(::Coluna.MathProg.Reformulation, ::Env, ::Coluna.ColunaBase.Bound{Coluna.MathProg.Primal,Coluna.MathProg.MinSense}, ::Coluna.ColunaBase.Bound{Coluna.MathProg.Dual,Coluna.MathProg.MinSense}) at /home/wesley/.julia/packages/Coluna/OEmAD/src/optimize.jl:88
[2] macro expansion at /home/wesley/.julia/packages/Coluna/OEmAD/src/optimize.jl:62 [inlined]
[3] macro expansion at /home/wesley/.julia/packages/TimerOutputs/dVnaw/src/TimerOutput.jl:190 [inlined]
[4] optimize!(::Coluna.MathProg.Problem, ::Coluna.Annotations, ::Coluna.Params) at /home/wesley/.julia/packages/Coluna/OEmAD/src/optimize.jl:61
[5] optimize!(::Coluna.Optimizer) at /home/wesley/.julia/packages/Coluna/OEmAD/src/MOIwrapper.jl:98
[6] optimize!(::MathOptInterface.Bridges.LazyBridgeOptimizer{Coluna.Optimizer}) at /home/wesley/.julia/packages/MathOptInterface/bygN7/src/Bridges/bridge_optimizer.jl:239
[7] optimize!(::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer,MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}) at /home/wesley/.julia/packages/MathOptInterface/bygN7/src/Utilities/cachingoptimizer.jl:189
[8] #optimize!#97(::Bool, ::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(optimize!), ::Model, ::Nothing) at /home/wesley/.julia/packages/JuMP/CZ8vV/src/optimizer_interface.jl:131
[9] #optimize! at ./none:0 [inlined] (repeats 2 times)
[10] optimize!(::Model) at /home/wesley/.julia/packages/BlockDecomposition/OYIcC/src/BlockDecomposition.jl:51
[11] #optimize!#97(::Bool, ::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(optimize!), ::Model, ::Nothing) at /home/wesley/.julia/packages/JuMP/CZ8vV/src/optimizer_interface.jl:121
[12] optimize! at /home/wesley/.julia/packages/JuMP/CZ8vV/src/optimizer_interface.jl:107 [inlined] (repeats 2 times)
[13] top-level scope at In[49]:37

I get the same error with GLPK.Optimizer and/or applying on my models.

Could you please help me with this issue?

I'm using:
Julia 1.2.0
JuMP 0.21.1
Coluna 0.3.5
GLPK 0.13.0
CPLEX 0.7.3
ILO CPLEX 12.10

Thank you in advance.
Wesley

@wdscoelho wdscoelho added the bug Something isn't working label Feb 23, 2021
@guimarqu
Copy link
Contributor

Hi,

I suggest you to use only TreeSearchAlgorithm as top solver. The conquer method is ColCutGenConquer and the latter will call ColumnGeneration. You can fix the maxnumnodes to 1 to solve only the root node.

I leave the issue open because we need to decide if it should work or if we should have an error message.

Thanks for the report.

@guimarqu guimarqu added the ux label Feb 23, 2021
@wdscoelho
Copy link
Author

OK.
Thank you!

@guimarqu guimarqu added this to the v0.4 milestone Feb 26, 2021
@rrsadykov
Copy link
Collaborator

rrsadykov commented May 4, 2021

The top solver should be an AbstractOptimizationAlgorithm (ColCutGenConquer is not). I think we can easily verify that in the code and give an error if needed.

If you only want to run column generation, ColumnGeneration can be used as the top solver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working ux
Projects
None yet
Development

No branches or pull requests

3 participants