A library for mathematical benchmark functions.
Project description
The Metaheuristics Design And Analysis Framework (MDAF) is an open-source collection of Python modules designed specifically for the metaheuristics research community. It provides off-the-shelf tools that promote and facilitate rigorous scientific research based on firmly established best practices.
The Benchmarks Module
The MDAF_benchmarks module is a specialized tool designed to streamline the process of defining and evaluating objective functions. It offers a low-code template that simplifies the setup and execution of complex objective functions, allowing researchers to concentrate more on refining their algorithms and less on the intricacies of coding.
Version
This library uses calendar versioning (CalVer) (MAJOR.YEAR.NUMBER) where :
MAJOR: This represents a major release.YEAR: The year of the release.NUMBER: The release number for the given year.
Calendar versioning was preferred over semantic versioning (SemVer) to facilitate interpretation in journal articles.
How to cite
APA Style:
Gagnon, I. (YEAR). Metaheuristics Design and Analysis Framework (MDAF), Version MAJOR.YEAR.NUMBER [Software]. Retrieved from https://github.com/iannickgagnon/MDAF_benchmarks.
MLA Style:
Gagnon, Iannick. Metaheuristics Design And Analysis Framework. Version MAJOR.YEAR.NUMBER. YEAR. Software. Accessed DAY-MONTH-YEAR. https://github.com/iannickgagnon/MDAF_benchmarks.
Chicago Style:
Gagnon, Iannick. YEAR. Metaheuristics Design And Analysis Framework (MDAF), Version MAJOR.YEAR.NUMBER. Software. https://github.com/iannickgagnon/MDAF_benchmarks.
Replace YEAR with the year of the version used, MAJOR.YEAR.NUMBER with the full version and DAY-MONTH-YEAR with the date you accessed the software online (i.e., the date at which you cloned the repo).
Features
- Automated accounting: The number times a function is evaluated is automatically incremented and stored (
ObjectiveFunction.nb_calls). - Automatic differentiation: Built-in numerical first- and second-order differentiation (
ObjectiveFunction.compute_first_derivative()andObjectiveFunction.compute_second_derivative()). - Parallel evaluation: Built-in support for parallel evaluation (
ObjectiveFunction.parallel_evaluate()). - Profiling: Built-in profiling of the objective function calls (
ObjectiveFunction.profile()). - Shifting: Apply shifts to evaluate robustness to positional bias (
ObjectiveFunction.apply_shift()). - Rotating: Apply rotations to evaluate robustness to linkage (
ObjectiveFunction.apply_rotation()). - Noisy evaluation: Apply noise to evaluate robustness to noisy environments (
ObjectiveFunction.apply_noise()). - Timing: Built-in timing for performance optimization and comparison (
ObjectiveFunction.time()). - Visualization: Dynamic visualization in 2D or 3D (
ObjectiveFunction.visualize()).
How to install
Install Python's package manager if you don't have it already:
Run the following command:
pip install MDAF_benchmarks
Use the following command to install this library:
How to clone
Install the open source git version control software if you don't have it already:
Clone this repository to your local machine using:
git clone https://github.com/iannickgagnon/MDAF_benchmarks.git
If you aren't familiar with git, you may wish to consult the following online e-book for free:
I have also greatly benefited from the following official cheat sheet from GitHub:
Documentation
Visit the MDAF_benchmarks wiki (click here) for the following :
- User guide
- Contribution guide
- API reference
Future work
- Multiple objectives: Derive a
MultiobjectiveFunctionclass fromObjectiveFunction. See Issue https://github.com/iannickgagnon/MDAF_benchmarks/issues/9. - Enhance timing: Enable timing for the
ObjectiveFunction.parallel_evaluate()method. See Issue https://github.com/iannickgagnon/MDAF_benchmarks/issues/11.
Contact
Please note that I am not looking for prospective students. I sincerely appreciate your messages, but I cannot respond to them because of other priorities.
While I cannot guarantee a timely response, I invite you to contact me if you have any comments : iannick.gagnon@etsmtl.ca. Also, feel free to add me on LinkedIn : https://www.linkedin.com/in/iannick-gagnon-3304311a6/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mdaf_benchmarks-0.1.0.tar.gz.
File metadata
- Download URL: mdaf_benchmarks-0.1.0.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64812176228f717391a6211799a3873bf1b8a364c39b763445ddbb03bffb0968
|
|
| MD5 |
7aeb7acb7b9cab187286e200b65816bb
|
|
| BLAKE2b-256 |
23fc76707316169e7490eba3a7edfbb38c9b5ec4dca28fb33548ecef3ca52fb1
|
File details
Details for the file mdaf_benchmarks-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mdaf_benchmarks-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d458674c32e6c6457ac8fb876d3d63f4c93921fa1fbbe3358549731dc373514e
|
|
| MD5 |
b84ebbe023a9a3fbef87e0bf93d70d99
|
|
| BLAKE2b-256 |
20e6ded0e497a0e6ae6bf54ce8c2aa619bafa6e375c2c370cfd63bfc40d1467a
|