Skip to content

Benchmarking functions

Gustavo Rosa edited this page Sep 25, 2018 · 35 revisions

LibOPT implements the following benchmarking functions:

  • 1st Ackley: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-35,35].
  • 2nd Ackley: minimum at f(x*) = -200 at x* = (0, 0) within domain [-32,32].
  • 3rd Ackley: minimum at f(x*) = -219.1418 at x* = (0, -0.4) within domain [-32,32].
  • Adjiman: minimum at f(x*) = -2.02181 at x* = (2, 0.10578) within domain [-1,2] for x_0 and [-1,1] for x_1.
  • 1st Alpine: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-10,10].
  • 2nd Alpine: minimum at f(x*) = 2.808^n at x* = (7.917, ..., 7.917) within domain [0,10].
  • Bartels Conn: minimum at f(x*) = 1 at x* = (0, 0) within domain [-500,500].
  • Beale: minimum at f(x*) = 0 at x* = (3, 0.5) within domain [-4.5,4.5].
  • 2-D Biggs Exponential: minimum at f(x*) = 0 at x* = (1, 10) within domain [0,20].
  • 3-D Biggs Exponential: minimum at f(x*) = 0 at x* = (1, 10, 5) within domain [0,20].
  • 4-D Biggs Exponential: minimum at f(x*) = 0 at x* = (1, 10, 1, 5) within domain [0,20].
  • 5-D Biggs Exponential: minimum at f(x*) = 0 at x* = (1, 10, 1, 5, 4) within domain [0,20].
  • 6-D Biggs Exponential: minimum at f(x*) = 0 at x* = (1, 10, 1, 5, 4, 3) within domain [0,20].
  • Bird: minimum at f(x*) = -106.764537 at x* = (4,70104, 3.15294) or (-1.58214, -3.13024) within domain [-2PI,2PI].
  • 1st Bohachevsky: minimum at f(x*) = 0 at x* = (0, 0) within domain [-100,100].
  • 2nd Bohachevsky: minimum at f(x*) = 0 at x* = (0, 0) within domain [-100,100].
  • 3rd Bohachevsky: minimum at f(x*) = 0 at x* = (0, 0) within domain [-100,100].
  • Booth: minimum at f(x*) = 0 at x* = (1, 3) within domain [-10,10].
  • Box-Betts Quadratic Sum: minimum at f(x*) = 0 at x* = (1, 10, 1) within domain [0.9,1.2] for x_0, [9,11.2] for x_1 and [0.9,1.2] for x_2.
  • Brent: minimum at f(x*) = 0 at x* = (10, 10) within domain [-10,10].
  • Brown: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-1,4].
  • 2nd Bukin: minimum at f(x*) = 0 at x* = (-10, 0) within domain [-15,-5] for x_0 and [-3,3] for x_1.
  • 4th Bukin: minimum at f(x*) = 0 at x* = (-10, 0) within domain [-15,-5] for x_0 and [-3,3] for x_1.
  • 6th Bukin: minimum at f(x*) = 0 at x* = (-10, 1) within domain [-15,-5] for x_0 and [-3,3] for x_1.
  • Three-Hump Camel: minimum at f(x*) = 0 at x* = (0, 0) within domain [-5,5].
  • Six-Hump Camel: minimum at f(x*) = -1.0316 at x* = (-0.0898, 0.7126) or (0.0898, -0.7126) within domain [-5,5].
  • Chen Bird: minimum at f(x*) = -2000 at x* = (-7/18, -13/18) within domain [-500,500].
  • Chen V: minimum at f(x*) = -2000 at x* = (-0.38889, 0.72222) within domain [-500,500].
  • Chichinadze: minimum at f(x*) = -43.3159 at x* = (5.90133, 0.5) within domain [-30,30].
  • Chung Reynolds: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-100,100].
  • Colville: minimum at f(x*) = 0 at x* = (1, 1, 1, 1) within domain [-10,10].
  • Cosine's Mixture: minimum at f(x*) = 0.2 at x* = (0, 0), f(x*) = 0.4 at x* = (0, 0, 0, 0) and so on, within domain [-1,1].
  • Cross-in-Tray: minimum at f(x*) = -2.06261 at x* = (1.3494, -1.3494), (1.3494, 1.3494), (-1.3494, 1.3494) or (-1.3494, -1.3494) within domain [-10,10].
  • Csendes: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-1,1].
  • Cube: minimum at f(x*) = 0 at x* = (-1, 1) within domain [-10,10].
  • Damavandi: minimum at f(x*) = 0 at x* = (2, 2) within domain [0,14].
  • Deckkers-Aarts: minimum at f(x*) = -24777 at x* = (0, 15) or (0, -15) within domain [-20,20].
  • Dixon-Price: minimum at f(x*) = 0 at x_i = 2^{-/frac{2^i-2}{2^i}} within domain [-10,10].
  • Easom: minimum at f(x*) = 1 at x* = (PI, PI) within domain [-100,100].
  • El-Attar-Vidyasagar-Dutta: minimum at f(x*) = 0.470427 at x* = (2.842503, 1.920175) within domain [-500,500].
  • Egg Crate: minimum at f(x*) = 0 at x* = (0, 0) within domain [-5,5].
  • Egg Holder: minimum at f(x*) = 959.64 at x* = (512, 404.2319) within domain [-512,512].
  • Exponential: minimum at f(x*) = 1 at x* = (0, ..., 0) within domain [-1,1].
  • 2-D Exponential: minimum at f(x*) = 0 at x* = (0, 10) within domain [0,20].
  • Freudenstein Roth: minimum at f(x*) = 0 at x* = (5, 4) within domain [-10,10].
  • Giunta: minimum at f(x*) = 0.060447 at x* = (0.45834282, 0.45834282) within domain [-1,1].
  • Goldstein-Price: minimum at f(x*) = 3 at x* = (0, -1) within domain [-2,2].
  • Griewank: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-100,100].
  • Gulf Research Problem: minimum at f(x*) = 0 at x* = (50, 25, 1.5) within domain [0.1,100] for x_0, [0,25.6] for x_1 and [0,5] for x_2.
  • Helical Valley: minimum at f(x*) = 0 at x* = (1, 0, 0) within domain [-10,10].
  • Himmelblau: minimum at f(x*) = 0 at x* = (3, 2) within domain [-5,5].
  • Hosaki: minimum at f(x*) = -2.3458 at x* = (4, 2) within domain [0,5] for x_0 and [0,6] for x_1.
  • Jennrick-Sampson: minimum at f(x*) = 124.3612 at x* = (0.257825, 0.257825) within domain [-1,1].
  • Keane: minimum at f(x*) = -0.673668 at x* = (0, 1.39325) or (1.39325, 0) within domain [0,10].
  • Leon: minimum at f(x*) = 0 at x* = (1, 1) within domain [-1.2,1.2].
  • Levy: minimum at f(x*) = 0 at x* = (1, ..., 1) within domain [-10,10].
  • 13th Levy: minimum at f(x*) = 0 at x* = (1, 1) within domain [-10,10].
  • Matyas: minimum at f(x*) = 0 at x* = (0, 0) within domain [-10,10].
  • McCormick: minimum at f(x*) = -1.9133 at x* = (-0.547, -1.547) within domain [-1.5,4] for x_0 and [-3,3] for x_1.
  • Miele Cantrell: minimum at f(x*) = 0 at x* = (0, 1, 1, 1) within domain [-1,1].
  • Parsopoulos: minimum at f(x*) = 0 at x* = (k*PI/2, lambda*PI) with k = +-1, +-3, ... and lambda = 0, +-1, +-2, ... within domain [-5,5].
  • Pen Holder: minimum at f(x*) = -0.96354 at x* = (+-9.646168, +-9.646168) within domain [-11,11].
  • Pathological: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-100,100].
  • Paviani: minimum at f(x*) = -45.778 at x* = (9.350266, ..., 9.350266) within domain [2.0001,10].
  • Periodic: minimum at f(x*) = 0.9 at x* = (0, 0) within domain [-10,10].
  • Powell Sum: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-1,1].
  • 1st Price: minimum at f(x*) = 0 at x* = (-5, -5), (-5, 5), (5, -5) or (5, 5) within domain [-500,500].
  • 2nd Price: minimum at f(x*) = 0.9 at x* = (0, 0) within domain [-10,10].
  • 3rd Price: minimum at f(x*) = 0 at x* = (-5, -5), (-5, 5), (5, -5) or (5, 5) within domain [-500,500].
  • 4th Price: minimum at f(x*) = 0 at x* = (0, 0), (2, 4) or (1.464, -2.506) within domain [-500,500].
  • Qing: minimum at f(x*) = 0 at x* = (+-sqrt(i), ..., +-sqrt(i)) within domain [-500,500].
  • Quadratic: minimum at f(x*) = -3873.7243 at x* = (0.19388, 0.48513) within domain [-10,10].
  • Quartic: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-1.28,1.28].
  • Quintic: minimum at f(x*) = 0 at x* = (-1 or 2, ..., -1 or 2) within domain [-10,10].
  • Rastrigin: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-5.12,5.12].
  • Rosenbrock: minimum at f(x*) = 0 at x* = (1, ..., 1) within domain [-30,30].
  • Rotated Ellipsoid 1: minimum at f(x*) = 0 at x* = (0, 0) within domain [-500,500].
  • Rotated Ellipsoid 2: minimum at f(x*) = 0 at x* = (0, 0) within domain [=500,500].
  • Rump: minimum at f(x*) = 0 at x* = (0, 0) within domain [-500,500].
  • Salomon: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-100,100].
  • 1st Schaffer: minimum at f(x*) = 0 at x* = (0, 0) within domain [-100,100].
  • 2nd Schaffer: minimum at f(x*) = 0 at x* = (0, 0) within domain [-100,100].
  • 3rd Schaffer: minimum at f(x*) = 0.001230 at x* = (0, +-1.253002) or (+-1.253002, 0) within domain [-100,100].
  • 4th Schaffer: minimum at f(x*) = 0.292438 at x* = (0, +-1.253028) or (+-1.253028, 0) within domain [-100,100].
  • Schmidt Vetters: minimum at f(x*) = 3 at x* = (0.78547, 0.78547, 0.78547) within domain [0,10].
  • Schumer Steiglitz: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-100,100].
  • Schwefel: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-100,100].
  • Sphere: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [0,10].
  • Streched V Sine Wave: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [0,10].
  • Sum of Different Powers: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-1,1].
  • Sum Squares: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-10,10].
  • Styblinski-Tang: minimum at f(x*) = -78.332 at x* = (-2.903534, ..., -2.903534) within domain [-5,5].
  • 1st Holder Table: minimum at f(x*) = -26.920336 at x* = (+-9.646168, +-9.646168) within domain [-10,10].
  • 2nd Holder Table: minimum at f(x*) = -19.20850 at x* = (+-8.055023472141116, +-9.664590028909654) within domain [-10,10].
  • Carrom Table: minimum at f(x*) = -24.1568155 at x* = (+-9.646157266348881, +-9.646134286497169) within domain [-10,10].
  • Testtube Holder: minimum at f(x*) = -10.872300 at x* = (+-PI/2, 0) within domain [-10,10].
  • Trecanni: minimum at f(x*) = 0 at x* = (0, 0) or (-2, 0) within domain [-5,5].
  • Trefethen: minimum at f(x*) = -3.30686865 at x* = (-0.024403, 0.210612) within domain [-10,10].
  • Trigonometric 1: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [0,PI].
  • Trigonometric 2: minimum at f(x*) = 1 at x* = (0.9, ..., 0.9) within domain [-500,500].
  • Venter Sobiezcczanski-Sobieski: minimum at f(x*) = -400 at x* = (0, 0) within domain [-50,50].
  • Watson: minimum at f(x*) = 0.002288 at x* = (-0.0158, 1.012, -0.2329, 1.260, -1.513, 0.9928) with a_i = i/29 within domain |x_i| <= 10.
  • Wayburn Seader 1: minimum at f(x*) = 0 at x* = (1, 2) or (1.597, 0.806) within domain [-500,500].
  • Wayburn Seader 2: minimum at f(x*) = 0 at x* = (0.2, 1) or (0.425, 1) within domain [-500,500].
  • Wayburn Seader 3: minimum at f(x*) = 21.35 at x* = (5.611, 6.187) within domain [-500,500].
  • Wavy: minimum at f(x*) = 0 at x* = (0, 0) with k = 10 within domain [-PI,PI].
  • Xin-She Yang 1: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-5,5].
  • Xin-She Yang 2: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-2PI,2PI].
  • Xin-She Yang 3: minimum at f(x*) = -1 at x* = (0, ..., 0) with m = 5 and beta = 15 within domain [-20,20].
  • Xin-She Yang 4: minimum at f(x*) = -1 at x* = (0, ..., 0) within domain [-10,10].
  • Zakharov: minimum at f(x*) = 0 at x* = (0, ..., 0) within domain [-5,10].
  • Zettl: minimum at f(x*) = -0.003791 at x* = (-0.0299, 0) within domain [-5,10].
  • Zirilli: minimum at f(x*) = -0.3523 at x* = (-1.0465, 0) within domain [-10,10].
Notice the functions are implemented in src/function.c and examples can be found in examples/. We have used the following paper as a reference for implementing the functions. Be aware that we have fixed all the little mistakes that could been found:

[1] Momin 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).