From d69c4bbfa73e98bd77b3479c7e4ce0e6fbb24392 Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Thu, 1 Feb 2024 12:01:55 -0600 Subject: [PATCH] Make cuts component compatible with JuMP --- Project.toml | 27 ++++----- src/MIPLearn.jl | 2 + src/components.jl | 22 +++++--- src/problems/setcover.jl | 5 +- src/problems/stab.jl | 60 ++++++++++++++++++++ src/solvers/jump.jl | 82 ++++++++++++++++++++++++++-- test/Project.toml | 1 + test/fixtures/bell5.h5 | Bin 89524 -> 95805 bytes test/fixtures/stab-n50-00000.h5 | Bin 0 -> 478661 bytes test/fixtures/stab-n50-00000.pkl.gz | Bin 0 -> 2870 bytes test/src/MIPLearnT.jl | 11 ++-- test/src/components/test_cuts.jl | 45 +++++++++++++++ test/src/fixtures.jl | 2 +- test/src/problems/test_setcover.jl | 2 +- test/src/problems/test_stab.jl | 27 +++++++++ test/src/test_usage.jl | 4 +- 16 files changed, 252 insertions(+), 38 deletions(-) create mode 100644 src/problems/stab.jl create mode 100644 test/fixtures/stab-n50-00000.h5 create mode 100644 test/fixtures/stab-n50-00000.pkl.gz create mode 100644 test/src/components/test_cuts.jl create mode 100644 test/src/problems/test_stab.jl diff --git a/Project.toml b/Project.toml index 9eae059..c439f7a 100644 --- a/Project.toml +++ b/Project.toml @@ -9,6 +9,7 @@ DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" HDF5 = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" +JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" KLU = "ef3ab10e-7fda-4108-b977-705223b18434" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -23,17 +24,17 @@ Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" TimerOutputs = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" [compat] +Conda = "1" +DataStructures = "0.18" +HDF5 = "0.16" +HiGHS = "1" +JLD2 = "0.4" +JuMP = "1" +KLU = "0.4" +MathOptInterface = "1" +OrderedCollections = "1" +PyCall = "1" +Requires = "1" +Statistics = "1" +TimerOutputs = "0.5" julia = "1" -Conda="1" -DataStructures="0.18" -HDF5="0.16" -HiGHS="1" -JLD2="0.4" -JuMP="1" -KLU="0.4" -MathOptInterface="1" -OrderedCollections="1" -PyCall="1" -Requires="1" -Statistics="1" -TimerOutputs="0.5" \ No newline at end of file diff --git a/src/MIPLearn.jl b/src/MIPLearn.jl index 110ad27..ed670ac 100644 --- a/src/MIPLearn.jl +++ b/src/MIPLearn.jl @@ -12,6 +12,7 @@ include("components.jl") include("extractors.jl") include("io.jl") include("problems/setcover.jl") +include("problems/stab.jl") include("solvers/jump.jl") include("solvers/learning.jl") @@ -21,6 +22,7 @@ function __init__() __init_extractors__() __init_io__() __init_problems_setcover__() + __init_problems_stab__() __init_solvers_jump__() __init_solvers_learning__() end diff --git a/src/components.jl b/src/components.jl index 73172bf..9dc2442 100644 --- a/src/components.jl +++ b/src/components.jl @@ -2,19 +2,21 @@ # Copyright (C) 2020-2023, UChicago Argonne, LLC. All rights reserved. # Released under the modified BSD license. See COPYING.md for more details. -global MinProbabilityClassifier = PyNULL() -global SingleClassFix = PyNULL() -global PrimalComponentAction = PyNULL() -global SetWarmStart = PyNULL() -global FixVariables = PyNULL() global EnforceProximity = PyNULL() global ExpertPrimalComponent = PyNULL() +global FixVariables = PyNULL() global IndependentVarsPrimalComponent = PyNULL() global JointVarsPrimalComponent = PyNULL() -global SolutionConstructor = PyNULL() +global MemorizingCutsComponent = PyNULL() +global MemorizingLazyComponent = PyNULL() global MemorizingPrimalComponent = PyNULL() -global SelectTopSolutions = PyNULL() global MergeTopSolutions = PyNULL() +global MinProbabilityClassifier = PyNULL() +global PrimalComponentAction = PyNULL() +global SelectTopSolutions = PyNULL() +global SetWarmStart = PyNULL() +global SingleClassFix = PyNULL() +global SolutionConstructor = PyNULL() function __init_components__() copy!( @@ -51,6 +53,8 @@ function __init_components__() ) copy!(SelectTopSolutions, pyimport("miplearn.components.primal.mem").SelectTopSolutions) copy!(MergeTopSolutions, pyimport("miplearn.components.primal.mem").MergeTopSolutions) + copy!(MemorizingCutsComponent, pyimport("miplearn.components.cuts.mem").MemorizingCutsComponent) + copy!(MemorizingLazyComponent, pyimport("miplearn.components.lazy.mem").MemorizingLazyComponent) end export MinProbabilityClassifier, @@ -65,4 +69,6 @@ export MinProbabilityClassifier, SolutionConstructor, MemorizingPrimalComponent, SelectTopSolutions, - MergeTopSolutions + MergeTopSolutions, + MemorizingCutsComponent, + MemorizingLazyComponent diff --git a/src/problems/setcover.jl b/src/problems/setcover.jl index fb44b63..9d03b6a 100644 --- a/src/problems/setcover.jl +++ b/src/problems/setcover.jl @@ -13,12 +13,11 @@ function __init_problems_setcover__() copy!(SetCoverGenerator, pyimport("miplearn.problems.setcover").SetCoverGenerator) end -function build_setcover_model(data::Any; optimizer = HiGHS.Optimizer) +function build_setcover_model_jump(data::Any; optimizer = HiGHS.Optimizer) if data isa String data = read_pkl_gz(data) end model = Model(optimizer) - set_silent(model) n_elements, n_sets = size(data.incidence_matrix) E = 0:n_elements-1 S = 0:n_sets-1 @@ -32,4 +31,4 @@ function build_setcover_model(data::Any; optimizer = HiGHS.Optimizer) return JumpModel(model) end -export SetCoverData, SetCoverGenerator, build_setcover_model +export SetCoverData, SetCoverGenerator, build_setcover_model_jump diff --git a/src/problems/stab.jl b/src/problems/stab.jl new file mode 100644 index 0000000..831b227 --- /dev/null +++ b/src/problems/stab.jl @@ -0,0 +1,60 @@ +# MIPLearn: Extensible Framework for Learning-Enhanced Mixed-Integer Optimization +# Copyright (C) 2020-2024, UChicago Argonne, LLC. All rights reserved. +# Released under the modified BSD license. See COPYING.md for more details. + +using JuMP +using HiGHS + +global MaxWeightStableSetData = PyNULL() +global MaxWeightStableSetGenerator = PyNULL() + +function __init_problems_stab__() + copy!(MaxWeightStableSetData, pyimport("miplearn.problems.stab").MaxWeightStableSetData) + copy!(MaxWeightStableSetGenerator, pyimport("miplearn.problems.stab").MaxWeightStableSetGenerator) +end + +function build_stab_model_jump(data::Any; optimizer=HiGHS.Optimizer) + nx = pyimport("networkx") + + if data isa String + data = read_pkl_gz(data) + end + model = Model(optimizer) + + # Variables and objective function + nodes = data.graph.nodes + x = @variable(model, x[nodes], Bin) + @objective(model, Min, sum(-data.weights[i+1] * x[i] for i in nodes)) + + # Edge inequalities + for (i1, i2) in data.graph.edges + @constraint(model, x[i1] + x[i2] <= 1, base_name = "eq_edge[$i1,$i2]") + end + + function cuts_separate(cb_data) + x_val = callback_value.(Ref(cb_data), x) + violations = [] + for clique in nx.find_cliques(data.graph) + if sum(x_val[i] for i in clique) > 1.0001 + push!(violations, sort(clique)) + end + end + return violations + end + + function cuts_enforce(violations) + @info "Adding $(length(violations)) clique cuts..." + for clique in violations + constr = @build_constraint(sum(x[i] for i in clique) <= 1) + submit(model, constr) + end + end + + return JumpModel( + model, + cuts_separate=cuts_separate, + cuts_enforce=cuts_enforce, + ) +end + +export MaxWeightStableSetData, MaxWeightStableSetGenerator, build_stab_model_jump diff --git a/src/solvers/jump.jl b/src/solvers/jump.jl index 726c449..b7bb2b2 100644 --- a/src/solvers/jump.jl +++ b/src/solvers/jump.jl @@ -4,9 +4,19 @@ using JuMP using HiGHS +using JSON global JumpModel = PyNULL() +Base.@kwdef mutable struct _JumpModelExtData + aot_cuts = nothing + cb_data = nothing + cuts = [] + where::Symbol = :WHERE_DEFAULT + cuts_enforce::Union{Function,Nothing} = nothing + cuts_separate::Union{Function,Nothing} = nothing +end + # ----------------------------------------------------------------------------- function _add_constrs( @@ -35,6 +45,15 @@ function _add_constrs( end end +function submit(model::JuMP.Model, constr) + ext = model.ext[:miplearn] + if ext.where == :WHERE_CUTS + MOI.submit(model, MOI.UserCut(ext.cb_data), constr) + else + error("not implemented") + end +end + function _extract_after_load(model::JuMP.Model, h5) if JuMP.objective_sense(model) == MOI.MIN_SENSE h5.put_scalar("static_sense", "min") @@ -109,6 +128,9 @@ function _extract_after_load_constrs(model::JuMP.Model, h5) end end end + if isempty(names) + error("no model constraints found; note that MIPLearn ignores unnamed constraints") + end lhs = sparse(lhs_rows, lhs_cols, lhs_values, length(rhs), JuMP.num_variables(model)) h5.put_sparse("static_constr_lhs", lhs) h5.put_array("static_constr_rhs", rhs) @@ -249,17 +271,50 @@ function _extract_after_mip(model::JuMP.Model, h5) rhs = h5.get_array("static_constr_rhs") slacks = abs.(lhs * x - rhs) h5.put_array("mip_constr_slacks", slacks) + + # Cuts + ext = model.ext[:miplearn] + h5.put_scalar("mip_cuts", JSON.json(ext.cuts)) end function _fix_variables(model::JuMP.Model, var_names, var_values, stats) vars = [variable_by_name(model, v) for v in var_names] for (i, var) in enumerate(vars) - fix(var, var_values[i], force = true) + fix(var, var_values[i], force=true) end end function _optimize(model::JuMP.Model) + # Set up cut callbacks + ext = model.ext[:miplearn] + ext.cuts = [] + function cut_callback(cb_data) + ext.cb_data = cb_data + ext.where = :WHERE_CUTS + if ext.aot_cuts !== nothing + @info "Enforcing $(length(ext.aot_cuts)) cuts ahead-of-time..." + violations = ext.aot_cuts + ext.aot_cuts = nothing + else + violations = ext.cuts_separate(cb_data) + for v in violations + push!(ext.cuts, v) + end + end + if !isempty(violations) + ext.cuts_enforce(violations) + end + end + if ext.cuts_separate !== nothing + set_attribute(model, MOI.UserCutCallback(), cut_callback) + end + + # Optimize + ext.where = :WHERE_DEFAULT optimize!(model) + + # Cleanup + ext.cb_data = nothing flush(stdout) Libc.flush_cstdio() end @@ -291,10 +346,21 @@ end # ----------------------------------------------------------------------------- function __init_solvers_jump__() - @pydef mutable struct Class + AbstractModel = pyimport("miplearn.solvers.abstract").AbstractModel + @pydef mutable struct Class <: AbstractModel - function __init__(self, inner) + function __init__( + self, + inner; + cuts_enforce::Union{Function,Nothing}=nothing, + cuts_separate::Union{Function,Nothing}=nothing, + ) + AbstractModel.__init__(self) self.inner = inner + self.inner.ext[:miplearn] = _JumpModelExtData( + cuts_enforce=cuts_enforce, + cuts_separate=cuts_separate, + ) end add_constrs( @@ -303,7 +369,7 @@ function __init_solvers_jump__() constrs_lhs, constrs_sense, constrs_rhs, - stats = nothing, + stats=nothing, ) = _add_constrs( self.inner, from_str_array(var_names), @@ -319,17 +385,21 @@ function __init_solvers_jump__() extract_after_mip(self, h5) = _extract_after_mip(self.inner, h5) - fix_variables(self, var_names, var_values, stats = nothing) = + fix_variables(self, var_names, var_values, stats=nothing) = _fix_variables(self.inner, from_str_array(var_names), var_values, stats) optimize(self) = _optimize(self.inner) relax(self) = Class(_relax(self.inner)) - set_warm_starts(self, var_names, var_values, stats = nothing) = + set_warm_starts(self, var_names, var_values, stats=nothing) = _set_warm_starts(self.inner, from_str_array(var_names), var_values, stats) write(self, filename) = _write(self.inner, filename) + + function set_cuts(self, cuts) + self.inner.ext[:miplearn].aot_cuts = cuts + end end copy!(JumpModel, Class) end diff --git a/test/Project.toml b/test/Project.toml index dce63f3..0854405 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -15,6 +15,7 @@ Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" MIPLearn = "2b1277c3-b477-4c49-a15e-7ba350325c68" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" +SCIP = "82193955-e24f-5292-bf16-6f2c5261a85f" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [compat] diff --git a/test/fixtures/bell5.h5 b/test/fixtures/bell5.h5 index 73bc778f4007263c2ff54c24e0451b146975f006..afff1ab29a3dfcea40cfeb412477c6ea0b12d688 100644 GIT binary patch delta 414 zcmdn8n|1FS)(J9dwq=YAAYcF{85rg!sQ>c!a0y~k_`iF1s^DX>L=ZjEsg`B24)6NO z^SKN+eo<{*$~P3H!3|R z@9$Nd{G;8H`7u!N1Lta%8_Wzo+ZW0(USOUaU(GssM^6#+gB-@mwMu;~DMvXc0@bH6 zJC{HV*x)GhaP#TD`MVe;CV!mTI{lFiqx9s6sZ*v;v}K$#xntUc?b1Gsb{x#f2{`1Z z1Lb8mw@zQkxZNzAv4v&2M-Zclaz)&0gQp*6Xq6uKwSKr_xu0qK^_}5+-$in^#R>XM z-s832pmO^}JI2|J)6+Z|m!epRFmU?6V8+PpGJcE+EYriH8B?Z*2QjJ=Z}fIxg`Kj4_p5)wY&bMpSyG-hruh=AmhN?V{n6#sOnfgoxLRPtDF{_V;8 zdle`DXt!jx_GX;?fpayB3)d3K?F(fXFECGzuV$URqo;^DJcMy_tx_M0k5REZP<H)k>GGHti;VN~SU{wRkrniBx4pH1-q diff --git a/test/fixtures/stab-n50-00000.h5 b/test/fixtures/stab-n50-00000.h5 new file mode 100644 index 0000000000000000000000000000000000000000..f8ae28a6fdb40dfcf6aca54053e8f4543b6d85fe GIT binary patch literal 478661 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�%ja8Xb}U?0(EkA_VK}fDER!TG%ArWM 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 K|KI=7fBpwhTCUUp literal 0 HcmV?d00001 diff --git a/test/fixtures/stab-n50-00000.pkl.gz b/test/fixtures/stab-n50-00000.pkl.gz new file mode 100644 index 0000000000000000000000000000000000000000..19bddd85d87b5244c344dc690cc5305b9a4c3839 GIT binary patch literal 2870 zcmV-63(52!iwFq1*Slo`|8sOe+ zZE2fy(*k-G6*RITP^KV=l(bC=FI}XGP^2s=GXl~N1g@Yg7gtftT1jAfgZ*5uFgx zh|Y)@L@Xi>5s&DCNI-N&bVDQ}k`T#=?uZ_U6htZ_4bc;kj>te{B6=aR5ZQPV&aNgtoh{AJV`MRN z6t>s(O4IV&xfRTzM1vE0_r}ikj?JCvUCB1kkZZ6~G0q~!&{I+nuZ`a3_^bOXd*z_> z+f|D*OfT6mtqcRFc^aiUV}z_0>YA=x=N$uX?p&St*j0uC#}_ysDbc zs8=*kPxsWkNq@67s<>2|VUKX#V2^a&p_F0`JKfdfNRJ>B%<=C?o?qp(=|ypRL)uL( z)})|UH=mG9e|5bVy@x>cj%v?cSJ}f|tI@-Ldk5E3O38R8jk}>w)a+7;tk#Lu=Aqge zRJ+q2<$A~7(e+I`Zu99jx)JQ;7`*q&Leh<)@Vy*L^P#jBDo5>|L`Y~zh*}+e$mUhf zGAv=Cag{rBkTWsJ?e=KVO%@6^$CNW{ORiyl#w}3}$FR5qv`rv=7o?%OK!Rax#)6hJ zTwd)8$Fgt*sCU5ZyD++^A@Cjq!ju&vOQslcu1w~8HqqdIxoPCDpR8AZO(XU2J6Tm%M3YSB+ozZ5 z9aA?hr6yt+2>LA7)n}MYk^GZriBgmE*Eehk(eW~Emf$w4l}+7bzi`uhRb5n zB8jvkY0Na462!GKncwzxXnlza4R1>U!6XWff-egpb}u|R1+fU0zk+>SEmN|8k<6zc z`z)Uz0tYaeGIsRkL|^M6^>6g`BK-P4mU%GK2kbcq%R8)OQh}fc`7cKaPcp;t=w=S9X%rlVmXwZY071 zj^rtt@)NZ?NbNL{D3kfqs=nt1rUM*6N|#7cu1_F5n$ws`{RZkUk*S-wjlxf}=`X1N zGxei%;jAEn=8Ia1W^f*3;l*ssV&kGuHXDU_D zkYzMv7oB*BPCQ2^zNQnu(TPrKX~lV@u<7#povBtRhbvTru9ssR_-)&DGuG(8Xg7_W zHB$B(Hn^GUySX37Df^AOxkM73??t^!mGfe<+F~(7reIfS;n{xIw9t@=AgqNEF?9YS zGVI~1zD1Nzi1IBR_?-?!)A=!EC|3@MN}0_52PCbOoCFhI!&&+avawvqu^dAsZSl~L z>pAc{IELqm^fn>>;Cad7aW3XG&Zj$r=*|=(Rq05@#^aq!l*=%aTYwSA^(&?c0|+&a zP*sHT5^4(#+Do?m+?0bve1VAnqd}cHvTP#uCfi_{3eI+r^GG%s8?y;?x5BK~u`xYK z*qej{NjRQpSCQ#vGTlj-7YXwYNBAji`;%xf^s7HdSVp6qGPV1UgM5Cp+>G<`Fy{3+ z&dhHRznH!_xxCA1!NXL2i8>+db_geNIR&cKo{9#UtYV(-M3H$m1(dxW-QNc3Ly$fJ z>E9uJ3HzQv=@x3f%=P?^(xG9h#aOzZL-$MA=~(hi<<8C|)+}Ppl_^&&RO=#E$yC@z z=9OQ_xl94s7LeTzvPUqNbPmKuu!#g)!Cl$Pf!sxh4w3d1&gCefzvuBzCas0Er5w)% zG;t`|$B}&+pDc0!|JZ-6pcoo$F`cW*@8(8^xE>sD@Cvm3LI7nMgGaphAjRdyQhao6&gad|$cbK!KZD`C?Jn@tgNqV^tip19<5dL zMXDESzNoq?zNA&NhqP#eLo2kE+639Uy-48E-|&U*vm6w8k0$0M??N#Q*>R literal 0 HcmV?d00001 diff --git a/test/src/MIPLearnT.jl b/test/src/MIPLearnT.jl index b14b883..e3524bb 100644 --- a/test/src/MIPLearnT.jl +++ b/test/src/MIPLearnT.jl @@ -16,10 +16,12 @@ FIXTURES = "$BASEDIR/../fixtures" include("fixtures.jl") include("BB/test_bb.jl") +include("components/test_cuts.jl") include("Cuts/BlackBox/test_cplex.jl") include("problems/test_setcover.jl") -include("test_io.jl") +include("problems/test_stab.jl") include("solvers/test_jump.jl") +include("test_io.jl") include("test_usage.jl") function runtests() @@ -27,17 +29,18 @@ function runtests() @testset "BB" begin test_bb() end - # test_cuts_blackbox_cplex() test_io() test_problems_setcover() + test_problems_stab() test_solvers_jump() test_usage() + test_cuts() end end function format() - JuliaFormatter.format(BASEDIR, verbose = true) - JuliaFormatter.format("$BASEDIR/../../src", verbose = true) + JuliaFormatter.format(BASEDIR, verbose=true) + JuliaFormatter.format("$BASEDIR/../../src", verbose=true) return end diff --git a/test/src/components/test_cuts.jl b/test/src/components/test_cuts.jl new file mode 100644 index 0000000..1562648 --- /dev/null +++ b/test/src/components/test_cuts.jl @@ -0,0 +1,45 @@ +# MIPLearn: Extensible Framework for Learning-Enhanced Mixed-Integer Optimization +# Copyright (C) 2020-2024, UChicago Argonne, LLC. All rights reserved. +# Released under the modified BSD license. See COPYING.md for more details. + +using SCIP + +function gen_stab() + np = pyimport("numpy") + uniform = pyimport("scipy.stats").uniform + randint = pyimport("scipy.stats").randint + np.random.seed(42) + gen = MaxWeightStableSetGenerator( + w=uniform(10.0, scale=1.0), + n=randint(low=50, high=51), + p=uniform(loc=0.5, scale=0.0), + fix_graph=true, + ) + data = gen.generate(1) + data_filenames = write_pkl_gz(data, "$BASEDIR/../fixtures", prefix="stab-n50-") + collector = BasicCollector(write_mps=false) + collector.collect( + data_filenames, + data -> build_stab_model_jump(data, optimizer=SCIP.Optimizer), + progress=true, + verbose=true, + ) +end + +function test_cuts() + data_filenames = ["$BASEDIR/../fixtures/stab-n50-0000$i.pkl.gz" for i in 0:0] + clf = pyimport("sklearn.neighbors").KNeighborsClassifier(n_neighbors=1) + extractor = H5FieldsExtractor( + instance_fields=["static_var_obj_coeffs"], + ) + comp = MemorizingCutsComponent(clf=clf, extractor=extractor) + solver = LearningSolver(components=[comp]) + solver.fit(data_filenames) + @show comp.n_features_ + @show comp.n_targets_ + stats = solver.optimize( + data_filenames[1], + data -> build_stab_model_jump(data, optimizer=SCIP.Optimizer), + ) + @test stats["Cuts: AOT"] > 0 +end diff --git a/test/src/fixtures.jl b/test/src/fixtures.jl index 56f4dec..b7cc084 100644 --- a/test/src/fixtures.jl +++ b/test/src/fixtures.jl @@ -14,5 +14,5 @@ function fixture_setcover_data() end function fixture_setcover_model() - return build_setcover_model(fixture_setcover_data()) + return build_setcover_model_jump(fixture_setcover_data()) end diff --git a/test/src/problems/test_setcover.jl b/test/src/problems/test_setcover.jl index 5f85418..9b92f19 100644 --- a/test/src/problems/test_setcover.jl +++ b/test/src/problems/test_setcover.jl @@ -51,7 +51,7 @@ function test_problems_setcover_model() ) h5 = H5File(tempname(), "w") - model = build_setcover_model(data) + model = build_setcover_model_jump(data) model.extract_after_load(h5) model.optimize() model.extract_after_mip(h5) diff --git a/test/src/problems/test_stab.jl b/test/src/problems/test_stab.jl new file mode 100644 index 0000000..60f27b3 --- /dev/null +++ b/test/src/problems/test_stab.jl @@ -0,0 +1,27 @@ +# MIPLearn: Extensible Framework for Learning-Enhanced Mixed-Integer Optimization +# Copyright (C) 2020-2024, UChicago Argonne, LLC. All rights reserved. +# Released under the modified BSD license. See COPYING.md for more details. + +using PyCall +using SCIP + +function test_problems_stab() + test_problems_stab_1() + test_problems_stab_2() +end + +function test_problems_stab_1() + nx = pyimport("networkx") + data = MaxWeightStableSetData( + graph=nx.gnp_random_graph(25, 0.5, seed=42), + weights=repeat([1.0], 25), + ) + h5 = H5File(tempname(), "w") + model = build_stab_model_jump(data, optimizer=SCIP.Optimizer) + model.extract_after_load(h5) + model.optimize() + model.extract_after_mip(h5) + @test h5.get_scalar("mip_obj_value") == -6 + @test h5.get_scalar("mip_cuts")[1:20] == "[[0,8,11,13],[0,8,13" + h5.close() +end diff --git a/test/src/test_usage.jl b/test/src/test_usage.jl index f02ff65..9a8cb7b 100644 --- a/test/src/test_usage.jl +++ b/test/src/test_usage.jl @@ -29,13 +29,13 @@ function test_usage() @debug "Collecting training data..." bc = BasicCollector() - bc.collect(data_filenames, build_setcover_model) + bc.collect(data_filenames, build_setcover_model_jump) @debug "Training models..." solver.fit(data_filenames) @debug "Solving model..." - solver.optimize(data_filenames[1], build_setcover_model) + solver.optimize(data_filenames[1], build_setcover_model_jump) @debug "Checking solution..." h5 = H5File(h5_filenames[1])