|
|
|
@ -8,24 +8,39 @@ using Gurobi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@testset "BenchmarkRunner" begin
|
|
|
|
|
# Configure benchmark suite
|
|
|
|
|
benchmark = BenchmarkRunner(
|
|
|
|
|
solvers=Dict(
|
|
|
|
|
"Baseline" => LearningSolver(Gurobi.Optimizer, components=[]),
|
|
|
|
|
"Proposed" => LearningSolver(Gurobi.Optimizer),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Solve instances in parallel
|
|
|
|
|
# Initialie instances and generate training data
|
|
|
|
|
instances = [
|
|
|
|
|
build_knapsack_file_instance(),
|
|
|
|
|
build_knapsack_file_instance(),
|
|
|
|
|
]
|
|
|
|
|
parallel_solve!(benchmark, instances)
|
|
|
|
|
parallel_solve!(
|
|
|
|
|
LearningSolver(Gurobi.Optimizer),
|
|
|
|
|
instances,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Fit and benchmark
|
|
|
|
|
benchmark = BenchmarkRunner(
|
|
|
|
|
solvers=Dict(
|
|
|
|
|
"baseline" => LearningSolver(
|
|
|
|
|
Gurobi.Optimizer,
|
|
|
|
|
components=[],
|
|
|
|
|
),
|
|
|
|
|
"ml-exact" => LearningSolver(
|
|
|
|
|
Gurobi.Optimizer,
|
|
|
|
|
),
|
|
|
|
|
"ml-heur" => LearningSolver(
|
|
|
|
|
Gurobi.Optimizer,
|
|
|
|
|
mode="heuristic",
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
fit!(benchmark, instances)
|
|
|
|
|
parallel_solve!(benchmark, instances, n_trials=1)
|
|
|
|
|
|
|
|
|
|
# Write CSV
|
|
|
|
|
csv_filename = tempname()
|
|
|
|
|
write_csv!(benchmark, csv_filename)
|
|
|
|
|
@test isfile(csv_filename)
|
|
|
|
|
csv = DataFrame(CSV.File(csv_filename))
|
|
|
|
|
@test size(csv)[1] == 6
|
|
|
|
|
end
|
|
|
|
|