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

Adding AGEMOEA and IGD #399

Merged
merged 31 commits into from
Jul 30, 2024
Merged

Adding AGEMOEA and IGD #399

merged 31 commits into from
Jul 30, 2024

Conversation

IWNMWE
Copy link
Contributor

@IWNMWE IWNMWE commented Jun 1, 2024

This PR implements the IGD score and AGEMOE optimizer.

Colab Notebook link(IGD test) : https://colab.research.google.com/drive/1fHLPFbOZCmK4Dfwqsw5Ey08lqwRDp9QK?usp=sharing

include/ensmallen_bits/age_moea/agemoea.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea_impl.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea_impl.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea_impl.hpp Outdated Show resolved Hide resolved
include/ensmallen_bits/age_moea/agemoea_impl.hpp Outdated Show resolved Hide resolved
@IWNMWE
Copy link
Contributor Author

IWNMWE commented Jun 5, 2024

Hey I plan on changing a bit more of the declarations for the current functions and plan to resolve the review changes and push the changed declarations together

@zoq
Copy link
Member

zoq commented Jun 5, 2024

Sounds good to me, thanks for the update.

@IWNMWE
Copy link
Contributor Author

IWNMWE commented Jun 16, 2024

Hey I have validated its logic with some of the existing problems in mlpack (ZDT suite) and will now proceed to do it with Maf and will put up the PR for the maf problems withing this week. If possible can you review #397 @zoq . Please feel free to also go through the code changes in this PR for any other issues.

@zoq
Copy link
Member

zoq commented Jun 20, 2024

Approved #397 and it should be merged in the next 24 hours.

@zoq
Copy link
Member

zoq commented Jul 1, 2024

Let me know if this is ready for review.

@IWNMWE
Copy link
Contributor Author

IWNMWE commented Jul 3, 2024

@zoq Can you please go through this PR and suggest any possible changes.

@IWNMWE IWNMWE requested a review from rcurtin July 24, 2024 19:02
doc/optimizers.md Outdated Show resolved Hide resolved
//! Check if a candidate Pareto dominates another candidate.
template<typename MatType>
inline bool AGEMOEA::Dominates(
std::vector<arma::Col<typename MatType::elem_type> >& calculatedObjectives,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just use ColType as a template parameter directly in this function and other functions? It seems very awkward to do it like this because MatType is not actually used in these functions (at least I did not see any usage at a quick glance).

Copy link
Contributor Author

@IWNMWE IWNMWE Jul 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also felt the same but decided to keep it there since a similar pattern was followed nsga2 so I kept agmoea similar to it aiming for uniform implementation as agemoea is very similar instructure to nsga2.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a bit of a strange pattern, personally I think it would be a good idea to change it (it's clearer, and the way it currently is doesn't seem to provide any benefit). Could be worth changing in NSGA2 too.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think its better if both are done together so I can pick it up after NSGA3 has been Implemented (Using the ColType ?) and then I can work on these two

Copy link
Member

@zoq zoq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As an fyi, I have some local style changes, going to open a PR, once this is merged.

@rcurtin
Copy link
Member

rcurtin commented Jul 26, 2024

Sounds good. The only comments that matter to me before approval are:

Sorry to hold things up a bit on this PR.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second approval provided automatically after 24 hours. 👍

@IWNMWE
Copy link
Contributor Author

IWNMWE commented Jul 27, 2024

@rcurtin I have made the requested changes. The documentation for Indicators I have added to function_types.md and also fixed the NSGA2 documentation. I have made the requested style fixes as well.As mentioned before I plan on doing the ColType changes for NSGA2 and AGEMOEA after I finish NSGA3 implementation (using ColType) due time constraint.

doc/function_types.md Outdated Show resolved Hide resolved
@IWNMWE IWNMWE requested a review from rcurtin July 27, 2024 15:59
Copy link
Member

@rcurtin rcurtin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing everything @IWNMWE! Sorry that there is so much trickiness and pickiness over documentation; it's what users see, so ensuring that everything is consistent everywhere is important. I left a few more suggestions, but they are only suggestions---don't feel obligated to take them. Nothing else from my side, thanks again for the hard work on this. 🚀

doc/function_types.md Outdated Show resolved Hide resolved
doc/function_types.md Outdated Show resolved Hide resolved
doc/function_types.md Outdated Show resolved Hide resolved
doc/function_types.md Outdated Show resolved Hide resolved
doc/optimizers.md Outdated Show resolved Hide resolved
doc/optimizers.md Show resolved Hide resolved
@IWNMWE
Copy link
Contributor Author

IWNMWE commented Jul 30, 2024

I have made all the required changes except the ColType which I can do the end of august for NSGA2 and AGEMOEA. Other than that I think this PR is good to be merged. Please let me know if there are other changes I have to make @zoq

@zoq zoq merged commit 65e0d03 into mlpack:master Jul 30, 2024
2 checks passed
Copy link
Member

@zoq zoq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together, I will open another PR to fix some style issues.

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

Successfully merging this pull request may close these issues.

3 participants