Skip to main content

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() and ObjectiveFunction.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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mdaf_benchmarks-0.1.0.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mdaf_benchmarks-0.1.0-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

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

Hashes for mdaf_benchmarks-0.1.0.tar.gz
Algorithm Hash digest
SHA256 64812176228f717391a6211799a3873bf1b8a364c39b763445ddbb03bffb0968
MD5 7aeb7acb7b9cab187286e200b65816bb
BLAKE2b-256 23fc76707316169e7490eba3a7edfbb38c9b5ec4dca28fb33548ecef3ca52fb1

See more details on using hashes here.

File details

Details for the file mdaf_benchmarks-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mdaf_benchmarks-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d458674c32e6c6457ac8fb876d3d63f4c93921fa1fbbe3358549731dc373514e
MD5 b84ebbe023a9a3fbef87e0bf93d70d99
BLAKE2b-256 20e6ded0e497a0e6ae6bf54ce8c2aa619bafa6e375c2c370cfd63bfc40d1467a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page