File tree Expand file tree Collapse file tree 3 files changed +28
-5
lines changed
Expand file tree Collapse file tree 3 files changed +28
-5
lines changed Original file line number Diff line number Diff line change @@ -93,8 +93,10 @@ the solution process.
9393 * ` MOA.SolutionLimit() `
9494 * ` MOI.TimeLimitSec() `
9595
96- Query the number of scalar subproblems that were solved using
96+ There are also the following result attributes that can be queried after the
97+ solve:
9798
99+ * ` MOA.SolveTimeInner() `
98100 * ` MOA.SubproblemCount() `
99101
100102For example:
Original file line number Diff line number Diff line change @@ -224,7 +224,7 @@ mutable struct Optimizer <: MOI.AbstractOptimizer
224224 Float64[],
225225 _default (ComputeIdealPoint ()),
226226 0 ,
227- 0.0 ,
227+ NaN ,
228228 optimizer_factory,
229229 )
230230 end
@@ -239,6 +239,7 @@ function MOI.empty!(model::Optimizer)
239239 model. start_time = NaN
240240 empty! (model. ideal_point)
241241 model. subproblem_count = 0
242+ model. solve_time_inner = NaN
242243 return
243244end
244245
343344
344345# ## SolveTimeSec
345346
346- function MOI. get (model:: Optimizer , :: MOI.SolveTimeSec )
347- return model. solve_time
348- end
347+ MOI. get (model:: Optimizer , :: MOI.SolveTimeSec ) = model. solve_time
348+
349+ # ## SolveTimeSecInner
350+
351+ """
352+ SolveTimeSecInner <: AbstractModelAttribute -> Float64
353+
354+ A result attribute for querying the total solve time of subproblem solves by an
355+ algorithm.
356+ """
357+ struct SolveTimeSecInner <: MOI.AbstractModelAttribute end
358+
359+ MOI. is_set_by_optimize (:: SolveTimeSecInner ) = true
360+
361+ MOI. get (model:: Optimizer , :: SolveTimeSecInner ) = model. solve_time_inner
349362
350363# ## ObjectiveFunction
351364
Original file line number Diff line number Diff line change @@ -94,8 +94,16 @@ function test_solve_time()
9494 MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
9595 MOI. set (model, MOI. ObjectiveSense (), MOI. MAX_SENSE)
9696 @test isnan (MOI. get (model, MOI. SolveTimeSec ()))
97+ @test MOI. is_set_by_optimize (MOA. SolveTimeSecInner ())
98+ @test isnan (MOI. get (model, MOA. SolveTimeSecInner ()))
9799 MOI. optimize! (model)
98100 @test MOI. get (model, MOI. SolveTimeSec ()) >= 0
101+ @test MOI. get (model, MOA. SolveTimeSecInner ()) >= 0
102+ @test MOI. get (model, MOI. SolveTimeSec ()) == model. solve_time
103+ @test MOI. get (model, MOA. SolveTimeSecInner ()) == model. solve_time_inner
104+ MOI. empty! (model)
105+ @test isnan (MOI. get (model, MOI. SolveTimeSec ()))
106+ @test isnan (MOI. get (model, MOA. SolveTimeSecInner ()))
99107 return
100108end
101109
You can’t perform that action at this time.
0 commit comments