Package: mf2
MF2: Multi-Fidelity-FunctionsPackage InfoStatusSupportIntroductionThemf2package provides consistent, efficient and tested Python
implementations of a variety of multi-fidelity benchmark functions. The goal is
to simplify life for numerical optimization researchers by saving time otherwise
spent reimplementing and debugging the same common functions, and enabling
direct comparisons with other work using the same definitions, improving
reproducibility in general.A multi-fidelity function usually reprensents an objective which should be
optimized. The term 'multi-fidelity' refers to the fact that multiple versions
of the objective function exist, which differ in the accuracy to describe the
real objective. A typical real-world example would be the aerodynamic
efficiency of an airfoil, e.g., its drag value for a given lift value. The
different fidelity levels are given by the accuracy of the evaluation method
used to estimate the efficiency. Lower-fidelity versions of the objective
function refer to less accurate, but simpler approximations of the objective,
such as computational fluid dynamic simulations on rather coarse meshes,
whereas higher fidelity levels refer to more accurate but also much more
demanding evaluations such as prototype tests in wind tunnels. The hope of
multi-fildelity optimization approaches is that many of the not-so-accurate but
simple low-fidelity evaluations can be used to achieve improved results on the
realistic high-fidelity version of the objective where only very few
evaluations can be performed.The only dependency of the mf2 package is thenumpypackage.Documentation is available atmf2.readthedocs.ioInstallationThe recommended way to installmf2is with Python'spip:python3 -m pip install --user mf2or alternatively usingconda:conda install -c conda-forge mf2For the latest version, you can install directly from source:python3 -m pip install --user https://github.com/sjvrijn/mf2/archive/master.zipTo work in your own version locally, it is best to clone the repository first,
and additionally install the dev-requirements:git clone https://github.com/sjvrijn/mf2.git
cd mf2
python3 -m pip install --user -e .[dev]Example Usageimportmf2importnumpyasnp# set numpy random seed for reproducibilitynp.random.seed(42)# generate 5 random samples in 2D as matrixX=np.random.random((5,2))# print high fidelity function valuesprint(mf2.branin.high(X))# Out: array([36.78994906 34.3332972  50.48149005 43.0569396  35.5268224 ])# print low fidelity function valuesprint(mf2.branin.low(X))# Out: array([-5.8762639  -6.66852889  3.84944507 -1.56314141 -6.23242223])For more usage examples, please refer to the full documentation onreadthedocs.ContributingContributions to this project such as bug reports or benchmark function
suggestions are more than welcome! Pleaserefer toCONTRIBUTING.mdfor more
details.ContactTheGitterchannel is the preferred way to get in touch for any other
questions, comments or discussions about this package.CitationWas this package useful to you? Great! If this leads to a publication, we'd
appreciate it if you would cite ourJOSS paper:@article{vanRijn2020,
  doi = {10.21105/joss.02049},
  url = {https://doi.org/10.21105/joss.02049},
  year = {2020},
  publisher = {The Open Journal},
  volume = {5},
  number = {52},
  pages = {2049},
  author = {Sander van Rijn and Sebastian Schmitt},
  title = {MF2: A Collection of Multi-Fidelity Benchmark Functions in Python},
  journal = {Journal of Open Source Software}
}