Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter weakly nondominated solution from SolutionPoint #20

Closed
remi-garcia opened this issue Feb 7, 2023 · 7 comments · Fixed by #21
Closed

Filter weakly nondominated solution from SolutionPoint #20

remi-garcia opened this issue Feb 7, 2023 · 7 comments · Fixed by #21

Comments

@remi-garcia
Copy link
Contributor

remi-garcia commented Feb 7, 2023

According my understanding of the code, the results returned by the lines 47-57 (file epsilonconstraint) are in general weaky nondominated, which is not valid for an epsilon-constraint method (a filter has to be applied or the generation handles this case and delete the unexpected points).

Having a function that filters weakly nondominated solutions from the SolutionPoint set would be useful in general.

The EpsilonConstraint algorithm uses the Hierarchical one, leading to solving the model twice at each step.
Edit: I am wrong, the optimization is later.
https://github.com/odow/MultiObjectiveAlgorithms.jl/blob/8654901629d98715c2ff8c4fcbf9f2ff714708e7/src/algorithms/EpsilonConstraint.jl#L74-L79

In some cases, it would be preferable to (1) only have the first optimization at each step, with the drawback of including weakly nondominated solutions in the SolutionPoint set, and (2) to filter these weakly nondominated solutions at the end.
This is also the case for Kirlik and Sayin #11

Suggestion: Adding an option to use Hierarchical or to filter laterAdding a function to filter weakly non dominated solutions

@kofgokhan
Copy link
Contributor

@remi-garcia Hi! I thought in Kirlik & Sayın the two-stage formulation is to make sure you do not get weakly efficient solutions. I believe holztman's weighted tchebychev model can also be used. I am using that in another MODO. Hopefully will also add that later to MultiObjectiveAlgorithms.jl. But, I have to look at EpsilonConstraint and Hierarchical implementation details.

@remi-garcia
Copy link
Contributor Author

I meant "weakly efficient". Hence indeed the two-stage formulation is to avoid weakly efficient solutions. However it might be faster, at least in some cases, to remove the second stage and to filter later.

@odow
Copy link
Member

odow commented Feb 7, 2023

I guess I still don't understand the problem with the implementation in epsilon constraint. Is it incorrect? Or is the comment because we're doing an additional two solves? Fixing that seems like a very low priority, especially considering we're about to do a heap of solves with different epsilons...

I added
https://github.com/odow/MultiObjectiveAlgorithms.jl/blob/8654901629d98715c2ff8c4fcbf9f2ff714708e7/src/MultiObjectiveAlgorithms.jl#L22-L31

but it just filters out duplicates at the moment. I should improve things...

@odow
Copy link
Member

odow commented Feb 7, 2023

Is it incorrect?

Ah. I guess you can also get a weakly non-dominated point by shifting the epsilon along and getting a different first objective value but the identical second objective value.

@odow
Copy link
Member

odow commented Feb 7, 2023

Is this what you're after? #21

@remi-garcia
Copy link
Contributor Author

I clearly misunderstood the implementation, sorry.

Having a function to filter weakly non-dominated function remains useful for Kirlik and Sayin but not for the epsilon constraint.

@remi-garcia
Copy link
Contributor Author

Yes, #21 closes this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

3 participants