mirror of
https://github.com/ANL-CEEESA/MIPLearn.jl.git
synced 2025-12-06 08:28:52 -06:00
Cuts: Store variable names
This commit is contained in:
@@ -80,6 +80,11 @@ function collect(
|
|||||||
ncuts = length([cr for cr in constraints if select(cr)])
|
ncuts = length([cr for cr in constraints if select(cr)])
|
||||||
cuts_lhs = spzeros(ncuts, nvars)
|
cuts_lhs = spzeros(ncuts, nvars)
|
||||||
cuts_rhs = Float64[]
|
cuts_rhs = Float64[]
|
||||||
|
cuts_var_names = String[]
|
||||||
|
|
||||||
|
for i in 0:(nvars-1)
|
||||||
|
push!(cuts_var_names, name(VariableRef(model, MOI.VariableIndex(i))))
|
||||||
|
end
|
||||||
|
|
||||||
offset = 1
|
offset = 1
|
||||||
for conRef in constraints
|
for conRef in constraints
|
||||||
@@ -98,6 +103,7 @@ function collect(
|
|||||||
h5 = Hdf5Sample(h5_filename)
|
h5 = Hdf5Sample(h5_filename)
|
||||||
h5.put_sparse("cuts_cpx_lhs", cuts_lhs)
|
h5.put_sparse("cuts_cpx_lhs", cuts_lhs)
|
||||||
h5.put_array("cuts_cpx_rhs", cuts_rhs)
|
h5.put_array("cuts_cpx_rhs", cuts_rhs)
|
||||||
|
h5.put_array("cuts_cpx_var_names", to_str_array(cuts_var_names))
|
||||||
h5.file.close()
|
h5.file.close()
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ function PyObject(m::SparseMatrixCSC)
|
|||||||
).tocoo()
|
).tocoo()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
include("Cuts/BlackBox/cplex.jl")
|
include("Cuts/BlackBox/cplex.jl")
|
||||||
|
|
||||||
|
export Hdf5Sample
|
||||||
|
|
||||||
end # module
|
end # module
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
# Released under the modified BSD license. See COPYING.md for more details.
|
# Released under the modified BSD license. See COPYING.md for more details.
|
||||||
|
|
||||||
using HDF5
|
using HDF5
|
||||||
|
using MIPLearn
|
||||||
|
|
||||||
function test_cuts_blackbox_cplex()
|
function test_cuts_blackbox_cplex()
|
||||||
# Prepare filenames
|
# Prepare filenames
|
||||||
@@ -13,10 +14,10 @@ function test_cuts_blackbox_cplex()
|
|||||||
MIPLearn.collect(mps_filename, CplexBlackBoxCuts())
|
MIPLearn.collect(mps_filename, CplexBlackBoxCuts())
|
||||||
|
|
||||||
# Read HDF5 file
|
# Read HDF5 file
|
||||||
h5open(h5_filename, "r+") do h5
|
h5 = Hdf5Sample(h5_filename)
|
||||||
rhs = h5["cuts_cpx_rhs"]
|
lhs = h5.get_sparse("cuts_cpx_lhs")
|
||||||
lhs = h5["cuts_cpx_lhs"]
|
rhs = h5.get_array("cuts_cpx_rhs")
|
||||||
ncuts = length(rhs)
|
h5.file.close()
|
||||||
@test size(lhs) == (ncuts, 104)
|
@test lhs.shape == (22, 100)
|
||||||
end
|
@test length(rhs) == 22
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
[deps]
|
[deps]
|
||||||
HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
|
HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
|
||||||
|
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
|
||||||
MIPLearn = "2b1277c3-b477-4c49-a15e-7ba350325c68"
|
MIPLearn = "2b1277c3-b477-4c49-a15e-7ba350325c68"
|
||||||
Revise = "295af30f-e4ad-537b-8983-00126c2a3abe"
|
Revise = "295af30f-e4ad-537b-8983-00126c2a3abe"
|
||||||
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
||||||
|
|||||||
Reference in New Issue
Block a user