Start implementing JumpSolver

This commit is contained in:
2023-03-21 10:45:27 -05:00
parent 64101c495c
commit 5bc909d62f
15 changed files with 624 additions and 79 deletions

28
src/problems/setcover.jl Normal file
View File

@@ -0,0 +1,28 @@
global SetCoverData = PyNULL()
global SetCoverGenerator = PyNULL()
using JuMP
using HiGHS
function __init_problems_setcover__()
copy!(SetCoverData, pyimport("miplearn.problems.setcover").SetCoverData)
copy!(SetCoverGenerator, pyimport("miplearn.problems.setcover").SetCoverGenerator)
end
function build_setcover_model(data; optimizer = HiGHS.Optimizer)
model = Model(optimizer)
set_silent(model)
n_elements, n_sets = size(data.incidence_matrix)
E = 0:n_elements-1
S = 0:n_sets-1
@variable(model, x[S], Bin)
@objective(model, Min, sum(data.costs .* x))
@constraint(
model,
eqs[e in E],
sum(data.incidence_matrix[e+1, s+1] * x[s] for s in S) >= 1
)
return JumpModel(model)
end
export SetCoverData, SetCoverGenerator, build_setcover_model