-
Notifications
You must be signed in to change notification settings - Fork 42
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
Problem with Coluna.Algorithm.ColumnGeneration #449
Comments
Can you run your code with using Base.CoreLogging, Logging
global_logger(ConsoleLogger(stderr, LogLevel(-3))) and send me the output please ? |
I got hundreds of the following message:
and then
|
I made some changes in the log levels because it's a little bit messy. Can you update your Coluna version by doing The goal is to understand why Cplex doesn't provide a dual solution after optimizing the master LP. |
Here's my code: And here's the output
|
The "LP" is solved to optimality but there is no dual solution available. We already had this problem with CPLEX (#315) but I don't have CPLEX anymore to reproduce. Can you reproduce the bug with another solver e.g. GLPK, Gurobi ? |
Yes, same error with GLPK. |
Can you give me a way to reproduce the bug ? |
Here's my code https://github.com/wdscoelho/slicing_Coluna/ You have just to change the related parameters on function create_COLUNA(instance::Instance) in lines 1063-1071 in the my_functions.jl file. |
Hi, It's because you're calling the Regression because of #438. (Needs more tests). Thanks for the report. |
Hello Guillaume, Thank you for your answer. If I try to solve the instance found in my code https://github.com/wdscoelho/slicing_Coluna, Coluna is not able to increase the lower bound (objective function = minimize). Could you please let me know what you think it's the problem? Thank you in advance. |
Hi,
You should take a look at the branch and bound tree to see what happens.
You have to set the parameter `branchingtreefile` of TreeSearchAlgorithm.
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
Le mercredi, mars 3, 2021 1:38 PM, Wesley da Silva Coelho <[email protected]> a écrit :
… Hello Guillaume,
Thank you for your answer.
So, maybe that's why I'm experiencing a problem to prove the optimality of a solution when using Coluna.Algorithm.TreeSearchAlgorithm.
If I try to solve the instance found in my code [https://github.com/wdscoelho/slicing_Coluna](url), Coluna is not able to increase the lower bound (objective function = minimize).
As you can see in the attached file [Coluna_output.txt](https://github.com/atoptima/Coluna.jl/files/6075969/Coluna_output.txt), Coluna finds the optimal solution within few seconds (I know its value = 140.01) but doesn't improve the lower bound in any interaction after the root node.
Could you please let me know what you think it's the problem?
Thank you in advance.
Wesley
—
You are receiving this because you commented.
Reply to this email directly, [view it on GitHub](#449 (comment)), or [unsubscribe](https://github.com/notifications/unsubscribe-auth/ABNM5BYS2E6PBCYENUYWJ5TTBYUTHANCNFSM4YCEV3AQ).
|
Ah ok! Here's a log output: Coluna_log.txt It's very strange cause I let the solver running for hours (more than 15) and it doesn't prove the optimality. This instance takes less than 5 seconds the be solved by Cplex. |
Ok, I think you need valid inequalities and a better branching strategy. For the branching strategy, you have to define your own algorithm because the branching callback is not available ( #403) . |
Nothing has been improved by applying the modification to the dual-bound strategy. Could it be a matter of precision when calculating the reduced cost? |
I do not believe precision is an issue here. It is probably a matter of using valid inequalities and branching strategies. Solver such as Cplex, Gurobi, … automatically applies a lot of valid inequalities (such as MIR or cover cuts) and has a better strategy than branching only on the most fractional solution. Coluna is a framework not a solver. It provides algorithms to try very quickly column generation on your problem and then devices your own branch-cut-and-price algorithm to scale up and hopefully beats the commercial solver. I saw that your root gap is quite large, you just need to improve your formulation with valid inequalities now. |
I see, I have several Valid Inequalities that work very well compared to the basic model and without all cuts and pre-solving routines of Cplex, some of them have improved a lot my LP lower bound and the size of the BB tree. I know that Coluna it's not a solver, but it's very strange that, even with a tiny instance of my problem, the framework is not able to converge in less than 12h (I don't know if it solves the instance at all cause I stopped the test after this time limit). Well, thank you anyway for your answers. I'll see what I can do. Wesley |
Oh ok ! What is the dual bound at the root node of Coluna with and without your valid inequalities ? For the second run, you are very unlucky because you don't find the optimal solution like you did in the first run. This is because of the primal heuristic. I suggest you to define your model as : Coluna.jl/test/full_instances_tests.jl Line 56 in f5f5553
|
Thank you for your help, but the strong branching didn't help. and without it: Coluna_log.txt Either ways, the solver doesn't improve the lower bound after leaving the root node. |
The cut callback is not called, you shoud have a message "Robust cut separation callback adds..." |
I'm using only a specific valid inequality in these tests and adding it during the creation of my model. For now, I'm not using the callback. |
Hello,
I'm experiencing a problem with Coluna.Algorithm.ColumnGeneration on my model.
If I use the following constructor :
coluna = optimizer_with_attributes( Coluna.Optimizer, "params" => Coluna.Params( solver = Coluna.Algorithm.ColumnGeneration() ), "default_optimizer" => CPLEX.Optimizer )
on the example from https://atoptima.github.io/Coluna.jl/latest/user/start/, it works fine. But with my model, I get the following error:
I'm getting the same error with GLPK.
I'm using:
Julia 1.2.0
JuMP 0.21.1
Coluna 0.3.5
Cplex 0.7.3 and ILO CPLEX 12.10
GLPK 0.13
Could you please help with this issue?
Tell me with need my code. I can upload it somewhere because it is complicated enough to write it here.
Thank you in advance.
Wesley
The text was updated successfully, but these errors were encountered: