mirror of
https://github.com/ANL-CEEESA/MIPLearn.jl.git
synced 2025-12-06 16:38:51 -06:00
FisSal2011: Implement faster get/set basis for Gurobi
This commit is contained in:
@@ -332,6 +332,7 @@ function collect_gmi_FisSal2011(
|
||||
pool_cut_hashes = Set{UInt64}()
|
||||
pool_size_mb = 0
|
||||
tableau_density::Float32 = 0.05
|
||||
basis_cache = nothing
|
||||
λ, Δ = 0, 0
|
||||
μ = 10
|
||||
end
|
||||
@@ -417,8 +418,10 @@ function collect_gmi_FisSal2011(
|
||||
end
|
||||
|
||||
@timeit "Optimize LP (lagrangian)" begin
|
||||
basis_cache === nothing || set_basis(model_s, basis_cache)
|
||||
set_silent(model_s)
|
||||
optimize!(model_s)
|
||||
basis_cache = get_basis(model_s)
|
||||
status = termination_status(model_s)
|
||||
if status != MOI.OPTIMAL
|
||||
error("Non-optimal termination status: $status")
|
||||
@@ -473,8 +476,10 @@ function collect_gmi_FisSal2011(
|
||||
end
|
||||
|
||||
if mod(round - 1, interval_read_tableau) == 0
|
||||
@timeit "Select tableau rows" begin
|
||||
@timeit "Get basis" begin
|
||||
basis = get_basis(model_s)
|
||||
end
|
||||
@timeit "Select tableau rows" begin
|
||||
selected_rows =
|
||||
select_gmi_rows(data_s, basis, sol_frac, max_rows = max_cuts_per_round)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user