# ACKLEY FUNCTION

**Mathematical Definition**

**Input Domain**

The function is usually evaluated at xi ∈ [-32.768, 32.768], for all i = 1, …, d, although it may also be restricted to a smaller domain. Here, d=2.

**Global Minima**

The global minimum of the function is at f(x* ) = 0, at x* = (0,,,,,,,,,,0)

**Description and Features**

The Ackley function is widely used for testing optimization algorithms. In its two-dimensional form, as shown in the plot above, it is characterized by a nearly flat outer region, and a large hole at the centre. The function poses a risk for optimization algorithms, particularly hill climbing algorithms, to be trapped in one of its many local minima. a = 20, b = 0.2 and c = 2π.

**Python Implementation**

*%** Please forward any comments or bug reports **in** chat*
*Copyright **2021.** **INDUSMIC** **PRIVATE** **LIMITED**.**THERE** **IS** **NO** **WARRANTY**,** **EXPRESS** **OR** **IMPLIED**.** **WE** **DO** **NOT** **ASSUME** **ANY** **LIABILITY** **FOR** **THE** **USE** **OF** **THIS** **PROGRAM**.** If software is modified to produce derivative works**,** such modified software should be clearly marked**.** Additionally**,** user can redistribute it and**/**or modify it under the terms **of** the **GNU** General Public License**.** This program is distributed **in** the hope that it will be useful**,** but **WITHOUT** **ANY** **WARRANTY**.** See the **GNU** General Public License **for** more details**.*
*%** **for** any support connect **with** us on help**.**indusmic@gmail**.**com*
**%**** ****Author****:**** Sakshi Chadda**
**from**** **numpy **import**** **arange
**from**** **numpy **import**** **exp
**from**** **numpy **import**** **sqrt
**from**** **numpy **import**** **cos
**from**** **numpy **import**** **e
**from**** **numpy **import**** **pi
**from**** **numpy **import**** **meshgrid
**import**** **matplotlib.pyplot **as**** **plt
**def **objective(x, y):
**return**** **-20.0 * exp(-0.2 * sqrt(0.5 * (x**2 + y**2)))-exp(0.5 * (cos(2 *
pi * x)+cos(2 * pi * y))) + e + 20
r_min, r_max = -32.768, 32.768
xaxis = arange(r_min, r_max, 2.0)
yaxis = arange(r_min, r_max, 2.0)
x, y = meshgrid(xaxis, yaxis)
results = objective(x, y)
figure = plt.figure()
axis = figure.gca( projection=**'3d'**)
axis.plot_surface(x, y, results, cmap=**'jet'**, shade= **"false"**)
plt.show()
plt.contour(x,y,results)
plt.show()
plt.scatter(x, y, results)
plt.show()

**References:**

[1] Jamil, Momin, and Xin-She Yang. "A literature survey of benchmark functions for global optimization problems." *International Journal of Mathematical Modelling and Numerical Optimization* 4.2 (2013): 150-194.