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

[FEATURE] Approximating Hypervolume / Hypervolume Contributions by polar coordinates #582

Open
CoolRunning opened this issue Sep 17, 2024 · 0 comments

Comments

@CoolRunning
Copy link
Collaborator

Is your feature request related to a problem? Please describe.
The monte-carlo based hypervolume approximation in pagmo bf_fpras / bf_approx is kinda outdated by now. There exists alternatives that deploy some number-theoretic tricks and coordinate transformations that makes them particular robust for certain geometries (e.g. highly convex or concave point sets) in the sense that they select the "correct" least contributor with higher chance. Finding the least contributor is critical for many-objective optimization if the number of objectives goes high (let's say >8).

Describe the solution you'd like
It would be cool to see the algorithm from Deng and Zhang (see context) implemented in pagmo. The idea of this algorithm is to approximate the hypervolume by integrating the lengths of rays coming from from the reference point towards the front, using some sampling of polar coordinates/angles. The implementation might be moderately complex, but probably doable with some commitment.

Describe alternatives you've considered
To be fair, the approximation right now in pygmo is not bad and does its job. This is more a suggestion for a hypervolume related project, that can be put forward for interested individuals or groups. For this to be useful, many-objective optimization problems (>8 objectives) would need to be of practical concern. Otherwise, this is mostly of academic interest.

Additional context
Deng, J. and Zhang, Q. Approximating hypervolume and hypervolume contributions using polar coordinate. IEEE Transactions on Evolutionary Computation, 2019. [link]

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

No branches or pull requests

1 participant