44# obtain one at http://mozilla.org/MPL/2.0/.
55
66using JuMP
7+ import DataFrames
78import Gurobi
89import HiGHS
10+ import MathOptInterface
911import MultiObjectiveAlgorithms as MOA
12+ import Statistics
1013
1114function 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
6669results_filename = " results.log"
6770results = 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
7881end
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