Skip to content

Commit f61b82c

Browse files
committed
Update
1 parent b137d74 commit f61b82c

3 files changed

Lines changed: 105 additions & 3 deletions

File tree

papers/Dowson_et_al_2026/Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[deps]
2+
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
23
Gurobi = "2e9cd046-0924-5485-92f1-d5272153d98b"
34
HiGHS = "87dc4568-4c63-4d18-b0c0-bb2238e4078b"
45
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
6+
MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
57
MultiObjectiveAlgorithms = "0327d340-17cd-11ea-3e99-2fd5d98cecda"
6-
Polyhedra = "67491407-f73d-577b-9b50-8179a7c68029"

papers/Dowson_et_al_2026/main.jl

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@
44
# obtain one at http://mozilla.org/MPL/2.0/.
55

66
using JuMP
7+
import DataFrames
78
import Gurobi
89
import HiGHS
10+
import MathOptInterface
911
import MultiObjectiveAlgorithms as MOA
12+
import Statistics
1013

1114
function solve_tamby_mokp(;
1215
p::Int,
@@ -15,7 +18,7 @@ function solve_tamby_mokp(;
1518
optimizer::Any,
1619
algorithm::MOA.AbstractAlgorithm,
1720
silent::Bool = false,
18-
time_limit::Float64 = 600.0,
21+
time_limit::Float64 = 1200.0,
1922
)
2023
filename = joinpath(@__DIR__, "MOKP", "MOKP_p-$(p)_n-$(n)_$(instance).dat")
2124
lines = readlines(filename)
@@ -65,7 +68,7 @@ TESTSETS = Dict(
6568

6669
results_filename = "results.log"
6770
results = Any[]
68-
for ((p, n), (algorithms, solvers)) in TESTSETS, instance in 1:1 #10
71+
for ((p, n), (algorithms, solvers)) in TESTSETS, instance in 1:10
6972
for alg in algorithms, solver in solvers
7073
algorithm, optimizer = ALGORITHMS[alg], OPTIMIZERS[solver]
7174
println("Running: p-$(p)_n-$(n)_$(instance) :: $alg :: $solver")
@@ -76,3 +79,21 @@ for ((p, n), (algorithms, solvers)) in TESTSETS, instance in 1:1 #10
7679
end
7780
end
7881
end
82+
83+
l = eval.(Meta.parse.(readlines(results_filename)))
84+
df = DataFrames.DataFrame(l)
85+
df.percent_time = round.(Int, 100 .* df.solve_time_inner ./ df.solve_time)
86+
ret = DataFrames.combine(
87+
DataFrames.groupby(df, [:p, :n, :alg, :solver]),
88+
:result_count => Statistics.mean => :result_count,
89+
:solve_time => Statistics.mean => :solve_time,
90+
:subproblem_count => Statistics.mean => :subproblem_count,
91+
:percent_time => Statistics.mean => :percent_time,
92+
)
93+
ret.solve_time .= max.(1, round.(Int, ret.solve_time))
94+
sort!(ret, [:p, :n, :alg, :solver])
95+
open("final_results.out", "w") do io
96+
print(io, ret)
97+
end
98+
display(ret)
99+

0 commit comments

Comments
 (0)