Skip to content

Commit 636b319

Browse files
authored
Allow Chalmet to return solutions on error (#143)
1 parent f793c76 commit 636b319

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/algorithms/Chalmet.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function minimize_multiobjective!(algorithm::Chalmet, model::Optimizer)
5757
optimize_inner!(model)
5858
status = MOI.get(model.inner, MOI.TerminationStatus())
5959
if !_is_scalar_status_optimal(status)
60-
return status, nothing
60+
return status, solutions
6161
end
6262
_, y1[2] = _compute_point(model, variables, f2)
6363
MOI.set(model.inner, MOI.ObjectiveFunction{typeof(f1)}(), f1)
@@ -69,7 +69,7 @@ function minimize_multiobjective!(algorithm::Chalmet, model::Optimizer)
6969
optimize_inner!(model)
7070
status = MOI.get(model.inner, MOI.TerminationStatus())
7171
if !_is_scalar_status_optimal(status)
72-
return status, nothing
72+
return status, solutions
7373
end
7474
x1, y1[1] = _compute_point(model, variables, f1)
7575
MOI.delete(model.inner, y1_constraint)
@@ -78,7 +78,7 @@ function minimize_multiobjective!(algorithm::Chalmet, model::Optimizer)
7878
optimize_inner!(model)
7979
status = MOI.get(model.inner, MOI.TerminationStatus())
8080
if !_is_scalar_status_optimal(status)
81-
return status, nothing
81+
return status, solutions
8282
end
8383
_, y2[1] = _compute_point(model, variables, f1)
8484
if y2[1] solutions[1].y[1]
@@ -93,7 +93,7 @@ function minimize_multiobjective!(algorithm::Chalmet, model::Optimizer)
9393
optimize_inner!(model)
9494
status = MOI.get(model.inner, MOI.TerminationStatus())
9595
if !_is_scalar_status_optimal(status)
96-
return status, nothing
96+
return status, solutions
9797
end
9898
x2, y2[2] = _compute_point(model, variables, f2)
9999
MOI.delete(model.inner, y2_constraint)

test/algorithms/Chalmet.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ function test_solve_failures()
280280
end
281281
MOI.optimize!(model)
282282
@test MOI.get(model, MOI.TerminationStatus()) == MOI.NUMERICAL_ERROR
283+
@test MOI.get(model, MOI.ResultCount()) == (fail_after <= 1 ? 0 : 1)
283284
end
284285
return
285286
end

0 commit comments

Comments
 (0)