class_docstr: DeVilliers-Glasser 2 objective function.
  
  This class defines the DeVilliers-Glasser 2 [1]_ function global optimization
  problem. This is a multimodal minimization problem defined as follows:
  
  .. math::
  
     f_{\text{DeVilliersGlasser01}}(x) = \sum_{i=1}^{24} \left[ x_1x_2^{t_i}
     \tanh \left [x_3t_i + \sin(x_4t_i) \right] \cos(t_ie^{x_5}) -
     y_i \right ]^2
  
  
  Where, in this exercise, :math:`t_i = 0.1(i - 1)` and
  :math:`y_i = 53.81(1.27^{t_i}) \tanh (3.012t_i + \sin(2.13t_i))
  \cos(e^{0.507}t_i)`.
  
  with :math:`x_i \in [1, 60]` for :math:`i = 1, ..., 5`.
  
  *Global optimum*: :math:`f(x) = 0` for
  :math:`x = [53.81, 1.27, 3.012, 2.13, 0.507]`.
  
  .. [1] Jamil, M. & Yang, X.-S. A Literature Survey of Benchmark Functions
  For Global Optimization Problems Int. Journal of Mathematical Modelling
  and Numerical Optimisation, 2013, 4, 150-194.
code: def __init__(self, dimensions=5):
      Benchmark.__init__(self, dimensions)
  
      self._bounds = list(zip([1.0] * self.N, [60.0] * self.N))
  
      self.global_optimum = [[53.81, 1.27, 3.012, 2.13, 0.507]]
      self.fglob = 0.0
  
imports: import numpy
  from numpy import abs, cos, exp, arange, pi, sin, sqrt, sum, zeros, tanh
  from numpy.testing import assert_almost_equal
  from .go_benchmark import Benchmark
label_desc: Use image node_id 1 to create a new DeVilliersGlasser02 object from inherited base classes: Benchmark with example: obj = DeVilliersGlasser02(dimensions)