-
Notifications
You must be signed in to change notification settings - Fork 6
Enhancing the Jaya R Package for Efficient Optimization
The Jaya R package implements the Jaya optimization algorithm, a gradient-free, population-based method suitable for solving both single-objective and multi-objective optimization problems. Jaya stands out for its simplicity and effectiveness, as it requires no hyperparameter tuning. Although the current version (1.0.3) offers robust foundational features, opportunities remain to enhance its computational efficiency, expand usability, and improve its integration with the broader R ecosystem.
This GSoC project proposes to significantly upgrade the Jaya package by optimizing existing algorithms, enhancing parallel computation capabilities, improving compatibility with widely-used R packages, and strengthening overall usability and maintainability.
The Jaya algorithm, introduced by Rao (2016), has demonstrated effectiveness in diverse optimization contexts. The Jaya R package, created by Neeraj Bokde, implements the core features detailed in Rao's work, including adaptive population adjustment and Pareto-based multi-objective optimization.
The package has seen positive adoption in academia and industry, but additional improvements in performance, modularity, and usability are necessary to support advanced research applications and integration into broader optimization workflows.
The following enhancements will be implemented in the Jaya package:
- Optimize performance-critical loops and operations using vectorized functions from
data.table
or base R. - Refactor key internal functions to significantly reduce computational overhead.
- Extend parallel computing capabilities using the
future
andfurrr
packages to support cross-platform, scalable parallelization. - Improve efficiency for large-scale optimization problems.
- Provide seamless integration with optimization and data analysis packages such as
tidyverse
,data.table
, and visualization tools such asggplot2
for intuitive interpretation of optimization results. - Enhance interoperability with packages such as
mlr3
andcaret
for improved usage in hyperparameter tuning tasks.
- Implement comprehensive unit testing using
testthat
and monitor test coverage usingcovr
. - Establish continuous integration workflows via GitHub Actions to maintain software quality and reliability.
- Introduce intuitive function aliases and a streamlined interface for easier adoption by new users.
- Enhance input validation and error handling with clear, actionable messages.
- Enrich documentation with detailed examples and workflows, clearly documented using
roxygen2
. - Develop vignettes and interactive tutorials demonstrating real-world optimization scenarios.
These enhancements will significantly improve the computational performance, usability, and user adoption of the Jaya package. The updated version will facilitate integration into modern optimization and machine learning workflows, thus benefiting researchers, industry practitioners, and educators. Comprehensive documentation and robust unit testing will ensure the long-term sustainability and ease of community contributions.
Evaluating Mentor:
Neeraj Dhanraj Bokde, Senior Researcher at Technology Innovation Institute, Abu Dhabi, and creator of the Jaya package. Neeraj holds a Ph.D. in Data Science, with extensive experience in R package development, optimization algorithms, and GSoC mentorship. [email protected], https://www.neerajbokde.in/
Varun Tiwari, Senior Researcher at the DEWA R&D Center, Dubai. Varun has substantial experience in optimization, data-driven modeling, and algorithmic development. [email protected]
Students should complete at least one test before contacting mentors:
- Easy: Install and demonstrate usage of the current Jaya package for optimizing a simple optimization problem. Provide documentation in RMarkdown.
- Medium: Propose a specific feature or algorithm improvement for inclusion in the package, clearly justifying its value.
- Hard: Implement a basic prototype of proposed new functionality, including associated tests and a minimal vignette. Ensure the package builds successfully with no Error/Warning/Note via win-builder.
Students should submit their test results below:
Contributor Name | GitHub Profile | Test Results |
---|---|---|
Vaibhav Manihar | Github | Test Results |
Priyanshu Tiwari | Github | Easy & Medium Tasks, Hard Task (Package Implementation) |
Afraaz Ali | GITHUB | EASY TEST |