My proposal for A Framework for Multiobjective optimizers was selected under Google Summer of Code 2021. I'll work with the mlpack organization under the mentorship of Marcus Edel (@zoq), Sayan Goswami (@say4n), James Balamuta (@coatless).
Honoring the rites of mlpack, I will post my progress, results, visualizations over the course of my contribution.
The ensmallen library comes under the umbrella of mlpack
repository. It's a header-only library written in C++ for numerical optimization.mlpack
relies heavily on this library for optimizers, callbacks and utilities.
The ensmallen
library boasts an extensive set of optimizers that has focused exclusively on single-objective problem sets in the past. Attempts were made in the past, by Sayan Goswami and Rahul Prabhu on introducing Multi objective optimizers(MOO) to this library. These were met with varying degrees of success. It became clear that the library needed to adapt to tackle this unique challenge.
Building upon this foundation, the proposal aims to add cutting edge MOO optimizers, expand the test framework, add type traits, rework callbacks, write documentations to make the library flexible for Multi-objective use cases. The end product would integrate these features seamlessly into the codebase, to work in coherence with the existing interface.
- Improvise Non Dominated Sorting Algorithm - II (NSGA-II).
- Added Indicators to assess MOO Optimizer performance.
- Expand CheckArbitraryFunctionTypeAPI to work for MOO.
- ZDT Test Suite.
- Added utility to generate stocks data.
- Add Portfolio Optimization notebook.
- Expand callbacks for MOO Case.
- Implement MOEA/D-DE.
- Introduce Policy Methods for MOEA/D-DE.
- Add Das-Dennis weight initialization method.
- Add Dirichlet Weight Initialization.
- Release version 2.17.0: "25 Din Mein Paisa Double".
- Refine Portfolio Notebook..
- Battle of the Optimizers.
- Added util to print gif.
- Rocket injector design optimization.
I would like to thank these people without whom, this project wouldn't have been possible. Shaikh Mohammad Fauz (@FieryBlade-313) for the gif and Sagar Sehgal (@Sagar) for the guidance.
I'm really grateful to my mentors who graciously spent their time clearing my doubts and arranging meetups. Their in-depth knowledge of the relevant field and expertise in coding catapulted the progress of this project. I'd like to apply as a member of this organisation so that I can give back to this community.