0001 optiGTest
0002 ===
0003
0004 [](https://github.com/luclaurent/optiGTest/blob/master/LICENSE.md)
0005 []() [](https://zenodo.org/badge/latestdoi/132956523)
0006
0007 optiGTest is a MATLAB's toolbox which regroups many test functions used for studying the performance of approximation techniques and optimization strategy. In particular, gradient sof the test functions are provided.
0008
0009 Features
0010 ---
0011
0012 optiGTest is able to
0013
0014 * Provide derivatives of the test functions
0015 * Dealing with any dimension chosen by the user
0016 * Provide global minimum (value and associated set of parameters)
0017
0018 First start
0019 ---
0020
0021 * unConstrained problems: `Example_unConstrained.m`
0022
0023 List of unconstrained functions
0024 ---
0025
0026 [(see the 3D plots of the 2-dimensional unconstrained functions)](https://bitbucket.org/luclaurent/optigtest/wiki/unConstrained)
0027
0028 | - | - | - |
0029 | ------------------------- | ---------------------- | ---------------------------- |
0030 | Ackley1 | DixonPrice | Quintic |
0031 | Ackley2 | Dolan | Rastrigin |
0032 | Ackley3 | DropWave | RHE |
0033 | Ackley4 | Easom | Ripple01 |
0034 | Adjiman | ElAttarVidyasogarDutta | Ripple25 |
0035 | Alpine1 | EggCrate | Rosenbrock |
0036 | Alpine2 | EggHolder | RosenbrockM |
0037 | AHE | Exponential | RosenbrockMS |
0038 | AMGM | EX1 | RotatedEllipse1 |
0039 | BartelsConn | Exp2 | RotatedEllipse2 |
0040 | Beale | Exp3 | Rump |
0041 | BiggsExp2 | Exp4 | Salomon |
0042 | BiggsExp3 | Exp5 | Sargan |
0043 | BiggsExp4 | Exp6 | Schaffer1 |
0044 | BiggsExp5 | FreudensteinRoth | Schaffer2 |
0045 | BiggsExp6 | Gear | Schaffer3 |
0046 | Bird | Giunta | Schaffer4 |
0047 | Bohachevsky1 | GoldsteinPrice | Schaffer6 |
0048 | Bohachevsky2 | Griewank | SchmidtVetters |
0049 | Bohachevsky3 | GulfResearch | Schwefel01 |
0050 | Booth | Hansen | Schwefel02 |
0051 | BoxBetts | Hartmann3 | Schwefel04 |
0052 | Brad | Hartmann6 | Schwefel06 |
0053 | Branin1 | HelicalValley | Schwefel20 |
0054 | Branin2 | Himmelblau | Schwefel21 |
0055 | Brent | Holzman | Schwefel22 |
0056 | Brown | Hosaki | Schwefel23 |
0057 | Bukin01 | Infiniti | Schwefel25 |
0058 | Bukin02 | JennrichSampson | Schwefel26 |
0059 | Bukin03 | Judge | Schwefel36 |
0060 | Bukin04 | Katsuura | Shekel05 |
0061 | Bukin05 | Keane | Shekel07 |
0062 | Bukin06 | Kowalik | Shekel10 |
0063 | Bukin07 | Langermann52 | Shubert1 |
0064 | Bukin08 | Langermann5 | Shubert3 |
0065 | Bukin09 | Leon | Shubert4 |
0066 | Bukin10 | Levy03 | SineEnveloppe |
0067 | Bukin11 | Levy05 | Sodp |
0068 | Bukin12 | Levy13 | Slope |
0069 | Bukin13 | Matyas | Sphere |
0070 | Bukin14 | McCormick | Step |
0071 | Bukin15 | Michalewicz | Step1 |
0072 | Bukin16 | MieleCantrell | Step2 |
0073 | Bukin17 | Mishra01 | Step3 |
0074 | Bukin18 | Mishra02 | StepInt |
0075 | Bukin19 | Mishra03 | Stochastic |
0076 | Bukin20 | Mishra04 | StretchedV |
0077 | CamelbackThreeHump | Mishra05 | StyblinskiTang |
0078 | CamelbackSixHump | Mishra06 | SumSquare |
0079 | CarromTable | Mishra07 | Treccani |
0080 | ChenV | Mishra08 | Trefethen |
0081 | ChenBird | Mishra09 | Trid |
0082 | Chichinadze | Mishra10 | Trigonometric1 |
0083 | ChungReynolds | Mishra11 | Trigonometric2 |
0084 | Cigar | Mystery | Tripod |
0085 | Cola | NeedleEye | TubeHolder |
0086 | Colville | NewFunction1 | Ursem1 |
0087 | Corana | NewFunction2 | Ursem3 |
0088 | CosineMixture | NewFunction3 | Ursem4 |
0089 | CrossInTray | Null | UrsemWaves |
0090 | CrossLegTable | OddSquare | VenterSobiezcczanskiSobieski |
0091 | CrownedCross | Parsopoulos | Vincent |
0092 | Csendes | Pathological | Watson |
0093 | Cst | Paviani | Wavy |
0094 | Cube | Peaks | WayburnSeader1 |
0095 | Custom01 | PeaksN | WayburnSeader2 |
0096 | Custom02 | Penalty1 | Weibull |
0097 | Custom03 | Penalty2 | Weierstrass |
0098 | Custom04 | PenHolder | Whitley |
0099 | Custom05 | Periodic | Wolfe |
0100 | Damavandi | Pinter | XinSheYang1 |
0101 | Deb1 | Plateau | XinSheYang2 |
0102 | Deb2 | Powell | XinSheYang3 |
0103 | Deb3 | PowerSum | XinSheYang4 |
0104 | Deb4 | Price1 | Xor |
0105 | Decanomial | Price2 | YaoLiu4 |
0106 | Deceptive | Price3 | YaoLiu9 |
0107 | DeckkersAarts | Price4 | Zacharov |
0108 | DeflectedCorrugatedSpring | Qing | Zettl |
0109 | DeVilliersGlasser1 | Quadratic | Zimmerman |
0110 | DeVilliersGlasser2 | Quartic | Zirilli |
0111
0112 List of constrained problems
0113 ---
0114
0115 [(see the 2D-3D plots of the 1- and 2-dimensional constrained problems)](https://bitbucket.org/luclaurent/optigtest/wiki/Constrained)
0116
0117 List of multiobjective problems (w/- and w/o constraints)
0118 ---
0119
0120 [(see the 2D-3D plots of the 1- and 2-dimensional multiobjective problems)](https://bitbucket.org/luclaurent/optigtest/wiki/Constrained)
0121
0122 Download
0123 ---
0124
0125 The toolbox can be downloaded [here](https://bitbucket.org/luclaurent/optigtest/downloads) or [here](https://github.com/luclaurent/optigtest/releases).
0126
0127 If you use `git`, you can clone the repository using the following command
0128
0129 git clone --recursive git@bitbucket.org:luclaurent/optigtest.git optiGTest
0130
0131 or
0132
0133 git clone --recursive git@github.com:luclaurent/optiGTest.git optiGTest
0134
0135 Dependency
0136 ---
0137
0138 **optiGTest** uses the **gradFD** class for checking gradients computation. Loading this class is optional but some functionalities will not be available which is not very important if you only want to use the main purpose of this toolbox (computing responses of objective and constraints functions and their gradients).
0139
0140 If you forget to use the `--recursive` option when you clone the repository, please use the command `submodule --init` in order to initialize the missing class **gradFD**.
0141
0142 [Documentation](https://goo.gl/xRMLYb)
0143 ---
0144
0145 The automatic building of the documentation is based on the [m2html](http://www.artefact.tk/software/matlab/m2html/) software.
0146
0147 The obtained documentation is available [here](https://goo.gl/xRMLYb).
0148
0149 References
0150 ---
0151
0152 This toolbox is inspired by many existing codes and papers
0153
0154 * [AMPGO](http://infinity77.net/global_optimization/index.html) (and [github repository](https://github.com/andyfaff/ampgo/))
0155 * E. P. Adorio and U. P. Diliman. [MVF - Multivariate Test Functions Library in C for Unconstrained Global Optimization.](https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwi2j_iz8sbTAhWG0hoKHfYLAncQFggnMAA&url=http
0156 * P. N. Suganthan, N. Hansen, J. J. Liang, K. Deb, Y. P. Chen, A. Auger and S. Tiwari. Problem definitions and evaluation criteria for the CEC 2005 special session on real-parameter optimization. KanGAL report, 2005.[Link](https://www.lri.fr/~hansen/Tech-Report-May-30-05.pdf)
0157 * V. Bicik, Continuous optimization algorithms, Master thesis, Czech Technical University in Prague, 2010 [Link](https://dip.felk.cvut.cz/browse/pdfcache/bicikvla_2010dipl.pdf)
0158 * M. Jamil and Xin-She Yang, A literature survey of benchmark functions for global optimization problems, *Int. Journal of Mathematical Modelling and Numerical Optimisation*, Vol. 4, No. 2, pp. 150--194 (2013) doi: [10.1504/IJMMNO.2013.055204](https://doi.org/10.1504/IJMMNO.2013.055204) arXiv: [1308.4008](https://arxiv.org/abs/1308.4008) [PDF](https://arxiv.org/pdf/1308.4008.pdf)
0159 * M. Molga, C. Smutnick. Test functions for optimization needs, *Comput. Inform. Sci.*, 1-43, 2005. [Link](http://new.zsd.iiar.pwr.wroc.pl/files/docs/functions.pdf)
0160 * M. M. Ali, C. Khompatraporn and Z. B. Zabinsky, *Journal of Global Optimisation* (2005) 31:635. doi: [10.1007/s10898-004-9972-2](https://doi.org/10.1007/s10898-004-9972-2) [PDF](http://folk.uib.no/ssu029/Pdf_file/Ali05.pdf)
0161 * [Virtual Library of Simulation Experiments](https://www.sfu.ca/~ssurjano/other.html)
0162 * Wikipedia. [Test functions for optimization](http://en.wikipedia.org/w/index.php?title=Test
0163
0164 License 
0165 ---
0166
0167 optiGTest - set of testing functions A toolbox to easy manipulate functions.
0168 Copyright (C) 2017 Luc LAURENT <luc.laurent@lecnam.net>
0169
0170 This program is free software: you can redistribute it and/or modify
0171 it under the terms of the GNU General Public License as published by
0172 the Free Software Foundation, either version 3 of the License, or
0173 (at your option) any later version.
0174
0175 This program is distributed in the hope that it will be useful,
0176 but WITHOUT ANY WARRANTY; without even the implied warranty of
0177 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0178 GNU General Public License for more details.
0179
0180 You should have received a copy of the GNU General Public License
0181 along with this program. If not, see <http://www.gnu.org/licenses/>.