Skip to content

Commit fc38d4d

Browse files
committed
Update
1 parent 5e6e974 commit fc38d4d

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/MultiObjectiveAlgorithms.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ function filter_nondominated(
5151
solutions::Vector{SolutionPoint};
5252
atol::Float64 = 1e-6,
5353
)
54-
_sort!(solutions, sense)
5554
nondominated_solutions = SolutionPoint[]
5655
for candidate in solutions
5756
if any(test -> dominates(sense, test, candidate; atol), solutions)
@@ -62,6 +61,7 @@ function filter_nondominated(
6261
push!(nondominated_solutions, candidate)
6362
end
6463
end
64+
_sort!(nondominated_solutions, sense)
6565
return nondominated_solutions
6666
end
6767

test/test_utilities.jl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ function test_filter_nondominated()
2525
x = Dict{MOI.VariableIndex,Float64}()
2626
solutions = [MOA.SolutionPoint(x, [0, 1]), MOA.SolutionPoint(x, [1, 0])]
2727
@test MOA.filter_nondominated(MOI.MIN_SENSE, solutions) == solutions
28-
@test MOA.filter_nondominated(MOI.MAX_SENSE, solutions) == solutions
28+
@test MOA.filter_nondominated(MOI.MAX_SENSE, solutions) ==
29+
reverse(solutions)
2930
return
3031
end
3132

@@ -34,7 +35,7 @@ function test_filter_nondominated_sort_in_order()
3435
solutions = [MOA.SolutionPoint(x, [0, 1]), MOA.SolutionPoint(x, [1, 0])]
3536
r_solutions = reverse(solutions)
3637
@test MOA.filter_nondominated(MOI.MIN_SENSE, r_solutions) == solutions
37-
@test MOA.filter_nondominated(MOI.MAX_SENSE, r_solutions) == solutions
38+
@test MOA.filter_nondominated(MOI.MAX_SENSE, r_solutions) == r_solutions
3839
return
3940
end
4041

@@ -55,7 +56,7 @@ function test_filter_nondominated_weakly_dominated()
5556
MOA.SolutionPoint(x, [1, 0]),
5657
]
5758
@test MOA.filter_nondominated(MOI.MIN_SENSE, solutions) == solutions[[1, 3]]
58-
@test MOA.filter_nondominated(MOI.MAX_SENSE, solutions) == solutions[[2, 3]]
59+
@test MOA.filter_nondominated(MOI.MAX_SENSE, solutions) == solutions[[3, 2]]
5960
solutions = [
6061
MOA.SolutionPoint(x, [0, 1]),
6162
MOA.SolutionPoint(x, [0.5, 1]),
@@ -67,7 +68,7 @@ function test_filter_nondominated_weakly_dominated()
6768
@test MOA.filter_nondominated(MOI.MIN_SENSE, solutions) ==
6869
solutions[[1, 4, 6]]
6970
@test MOA.filter_nondominated(MOI.MAX_SENSE, solutions) ==
70-
solutions[[3, 5, 6]]
71+
solutions[[6, 5, 3]]
7172
return
7273
end
7374

@@ -82,7 +83,7 @@ function test_filter_nondominated_knapsack()
8283
]
8384
result = solutions[[1, 3, 4]]
8485
@test MOA.filter_nondominated(MOI.MIN_SENSE, solutions) == result
85-
@test MOA.filter_nondominated(MOI.MAX_SENSE, solutions) == result
86+
@test MOA.filter_nondominated(MOI.MAX_SENSE, solutions) == reverse(result)
8687
return
8788
end
8889

@@ -115,7 +116,7 @@ function test_filter_epsilon()
115116
solutions =
116117
[MOA.SolutionPoint(x, [1, 1 + 9e-5]), MOA.SolutionPoint(x, [2, 1])]
117118
new_solutions = MOA.filter_nondominated(MOI.MAX_SENSE, copy(solutions))
118-
@test new_solutions == solutions
119+
@test new_solutions == reverse(solutions)
119120
solutions =
120121
[MOA.SolutionPoint(x, [-1, -1 - 1e-6]), MOA.SolutionPoint(x, [-2, -1])]
121122
new_solutions = MOA.filter_nondominated(MOI.MIN_SENSE, copy(solutions))

0 commit comments

Comments
 (0)