class_docstr: DeflectedCorrugatedSpring objective function.
  
  This class defines the Deflected Corrugated Spring [1]_ function global
  optimization problem. This is a multimodal minimization problem defined as
  follows:
  
  .. math::
  
     f_{\text{DeflectedCorrugatedSpring}}(x) = 0.1\sum_{i=1}^n \left[ (x_i -
     \alpha)^2 - \cos \left( K \sqrt {\sum_{i=1}^n (x_i - \alpha)^2}
     \right ) \right ]
  
  
  Where, in this exercise, :math:`K = 5` and :math:`\alpha = 5`.
  
  Here, :math:`n` represents the number of dimensions and :math:`x_i \in
  [0, 2\alpha]` for :math:`i = 1, ..., n`.
  
  *Global optimum*: :math:`f(x) = -1` for :math:`x_i = \alpha` for
  :math:`i = 1, ..., n`
  
  .. [1] Gavana, A. Global Optimization Benchmarks and AMPGO retrieved 2015
  
  TODO: website has a different equation to the gavana codebase. The function
  below is different to the equation above.  Also, the global minimum is
  wrong.
code: def __init__(self, dimensions=2):
      Benchmark.__init__(self, dimensions)
  
      alpha = 5.0
      self._bounds = list(zip([0] * self.N, [2 * alpha] * self.N))
  
      self.global_optimum = [[alpha for _ in range(self.N)]]
      self.fglob = -1.0
      self.change_dimensionality = True
  
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 DeflectedCorrugatedSpring object from inherited base classes: Benchmark with example: obj = DeflectedCorrugatedSpring(dimensions)