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

Full Branch and Price instead of restricted master heuristic #313

Closed
guilhemdupuis opened this issue Apr 17, 2020 · 10 comments · Fixed by #350
Closed

Full Branch and Price instead of restricted master heuristic #313

guilhemdupuis opened this issue Apr 17, 2020 · 10 comments · Fixed by #350
Labels
documentation Need or contain documentation

Comments

@guilhemdupuis
Copy link
Contributor

Hello,

With the same code as for #312, the restricted master IP heuristic is not executed. Coluna launches instead a full branch and price procedure (which is too long for most of the instances).

The parameters for Coluna are the following (maybe the problem can be fixed in just changing this in my code):
"params" => Coluna.Params(solver = Algorithm.TreeSearchAlgorithm(
conqueralg = Algorithm.ColGenConquer(mastipheur =
Algorithm.SolveIpForm(time_limit = 30))))

I used the model provided with the demos on GitHub, on the instance gapC-5-100. Model and dataset can be found at
https://covid19.framadrop.org/r/6vFxjdD226#Hqayehtwz0hbT0vTiCDmkh9vyLyWC6f1ouBURYgRJBM=

Environment:
Julia => 1.3.1
"Coluna" => v"0.3.0"
"GLPK" => v"0.12.1"
"BlockDecomposition" => v"1.2.0"
"MathOptInterface" => v"0.9.13"
"JuMP" => v"0.21.2"
OS: MacOs

Best regards,

Guilhem

@guilhemdupuis guilhemdupuis added the bug Something isn't working label Apr 17, 2020
@guimarqu
Copy link
Contributor

It will work with the following configuration :

"params" => Coluna.Params(
  solver = Algorithm.TreeSearchAlgorithm(
     conqueralg = Algorithm.ColGenConquer(
        mastipheur = Algorithm.ColGenConquer(run_mastipheur = false)
     )
  )
)

@guimarqu guimarqu added documentation Need or contain documentation and removed bug Something isn't working labels Apr 18, 2020
@RodolpheGriset
Copy link

@guimarqu I'm getting the following error with your configuration :

LoadError: MethodError: Cannot convert an object of type Coluna.Algorithm.ColGenConquer to an object of type Coluna.Algorithm.SolveIpForm
Closest candidates are:
convert(::Type{T}, !Matched::JuMP.GenericAffExpr{T,VarType} where VarType)

@guimarqu
Copy link
Contributor

Sorry, it's

"params" => Coluna.Params(
  solver = Algorithm.TreeSearchAlgorithm(
     conqueralg = Algorithm.ColGenConquer(run_mastipheur = false)
  )
)

@guilhemdupuis
Copy link
Contributor Author

Hello Guillaume, thank you for the answer.

@RodolpheGriset
Copy link

I think we misunderstood, we want the master IP heuristique to run and it doesn't or if it does there is no log of it. Below the log i'm getting. Maybe the IP heuristique runs but doesn't found any integer solution ?

<it=587> <et=123.45> <mst= 0.01> <sp= 0.26> <cols= 1> <mlp= 1929.6667> <DB= 1929.6527> <PB=Inf>
[ LogLevel(1): Column Generation Algorithm has converged.
[ Info: Recording reformulation state.
[ Info: Recording master info.
[ Info: Recording sp 4 info.
[ Info: Recording sp 2 info.
[ Info: Recording sp 3 info.
[ Info: Recording sp 5 info.
[ Info: Recording sp 6 info.
[ Info: Updating tree.
Child nodes generated :


**** BaB tree node N° 2, parent N° 1, depth 1, 2 open nodes
**** Local DB = 1929.6527, global bounds : [ 1929.6527 , 1970.0000 ], time = 251.93 sec.
**** Branching constraint: x[1,6]>=1.0


[ Info: Setting up node 3 before apply
[ Info: Preparing reformulation according to node record
[ Info: Preparing reformulation master
[ Info: Resetting sp 4 state.
[ Info: Resetting sp 2 state.
[ Info: Resetting sp 3 state.
[ Info: Resetting sp 5 state.
[ Info: Resetting sp 6 state.

@guimarqu
Copy link
Contributor

It looks like the heuristic found a solution because your primal bound is Inf at the end of col gen, then 1970.0000 at the beginning of node 2. We should add a message that prints the objective value of the solution/ no solution/ infeasible at src/Algorithm/conquer.jl:142

@RodolpheGriset
Copy link

Ooo right sorry so it s just the message which doesn't print , Thanks

@guimarqu
Copy link
Contributor

Sorry guys, I misunderstood the subject. The parameters I gave you was for running the branch-and-price without the restricted master heuristic. I think the LP restricted master found an integer solution. PR #320 prints logs when restricted master heuristic runs & displays the result found.

@guilhemdupuis
Copy link
Contributor Author

Thanks for the improvement, it works well for me

@juyoungwang
Copy link

Is there any new way to enforce full BnP strategy? The code you stated above is no longer working, due to changes in packages throughout many years. With the code, I meant


"params" => Coluna.Params(
  solver = Algorithm.TreeSearchAlgorithm(
     conqueralg = Algorithm.ColGenConquer(
        mastipheur = Algorithm.ColGenConquer(run_mastipheur = false)
     )
  )
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Need or contain documentation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants