I’m refactoring my code to go from custom multi objective optimization to using MultiObjectiveAlgorithms.jl with Lexicographic
. When I run my optimization it never stops, with this repeated log message:
So it looks like it repeats the exact same optimization over and over. I found that this does not always happen. Here is a vector of objectives for which it does happen:
10-element Vector{AffExpr}:
level_demand_error[Basin #7,1,lower,first] + level_demand_error[Basin #7,1,upper,first]
level_demand_error[Basin #7,1,lower,second] + level_demand_error[Basin #7,1,upper,second]
user_demand_error[UserDemand #10,2,first]
user_demand_error[UserDemand #10,2,second]
user_demand_error[UserDemand #9,3,first]
user_demand_error[UserDemand #9,3,second]
user_demand_error[UserDemand #6,4,first]
user_demand_error[UserDemand #6,4,second]
-low_storage_factor[Basin #3] - low_storage_factor[Basin #7]
0.0005 flow[(FlowBoundary #1, Basin #7)] + 0.0005 flow[(FlowBoundary #2, Basin #3)] + 0.00025 flow[(Basin #3, TabulatedRatingCurve #4)] + 0.001 flow[(UserDemand #6, Basin #3)] + 0.00025 flow[(Basin #7, TabulatedRatingCurve #8)] + 0.00025 flow[(Basin #7, UserDemand #6)] + 0.00025 flow[(Basin #7, UserDemand #9)] + 0.00025 flow[(Basin #7, UserDemand #10)] + 0.001 flow[(UserDemand #9, Basin #3)] + 0.001 flow[(UserDemand #10, Basin #3)]
And here is a vector of objectives for which it does not happen (also with different variables and constraints):
2-element Vector{AffExpr}:
-low_storage_factor[Basin #1]
0.00025 flow[(Basin #1, LinearResistance #2)]
I also don’t understand why it says without presolve, I explicitly set it to ‘on’.