Harmony Search Algorithm: Basic Concepts and Engineering Applications

Harmony Search Algorithm: Basic Concepts and Engineering Applications

Alireza Askarzadeh (Kerman Graduate University of Advanced Technology, Iran) and Esmat Rashedi (Kerman Graduate University of Advanced Technology, Iran)
DOI: 10.4018/978-1-5225-5643-5.ch001


Harmony search (HS) is a meta-heuristic search algorithm which tries to mimic the improvisation process of musicians in finding a pleasing harmony. In recent years, due to some advantages, HS has received a significant attention. HS is easy to implement, converges quickly to the optimal solution and finds a good enough solution in a reasonable amount of computational time. The merits of HS algorithm have led to its application to optimization problems of different engineering areas. In this chapter, the concepts and performance of HS algorithm are shown and some engineering applications are reviewed. It is observed that HS has shown promising performance in solving difficult optimization problems and different versions of this algorithm have been developed. In the next years, it is expected that HS is applied to more real optimization problems.
Chapter Preview


Most often, engineering optimization problems have non-linear and non-convex objective functions with intense equality and inequality constraints along with various types of decision variables. As a result, solving such optimization problems using traditional methods faces with increasing difficulties. Meta-heuristic optimization algorithms can be efficient alternatives to conquer the difficulty of complex optimization problems. Originally invented in (Geem et al. 2001), HS is a meta-heuristic optimizer inspired by the music improvisation process. In music improvisation process, a predefined number of musicians attempt to tune the pitch of their instruments to achieve a pleasing harmony (best state). In nature, a harmony is defined by a special relation between several sound waves that have different frequencies. The quality of the improvised harmony is determined by aesthetic estimation. In order to improve the aesthetic estimation and find the best harmony, the musicians make practice after practice.

There are similarities between musicians improvisation and optimization processes. In an optimization problem, the ultimate aim is to find the global optimum of the objective function under consideration by tuning a predefined number of decision variables. Indeed, in an optimization problem the decision variables make a solution vector. Then, the values of the decision variables are put into the objective function and the quality of the solution vector is calculated. The solution vector is updated during the iterations until the global optimum is obtained.

Comparison of musical and optimization processes reveals the following similarities:

  • In musical process, the quality of a harmony is determined by aesthetic estimation. In an optimization process, the quality of a solution vector is determined by the objective function value.

  • In musical process, the ultimate goal is to obtain the best (fantastic) harmony. In an optimization process, the ultimate goal is to obtain the global optimum.

  • In musical process, musicians change the pitch of their instruments. An optimization algorithm changes the values of the decision variables.

  • In musical process, any attempt to play a harmony is called practice. In an optimization, each attempt to update a solution vector is called iteration.

In general, when a musician wants to tune the pitch of his/her instrument (for example fiddle, saxophone, etc) and sound a note, he/she utilizes one of the three possible ways. Theses rules are the main body of HS algorithm.

  • 1.

    He/she can sound a note from the possible range randomly.

  • 2.

    He/she can sound a note from his/her memory.

  • 3.

    He/she can sound a note near-by one note from his/her memory.

In the following next sections, HS implementation for optimization, HS variants and HS applications have been explained in detail.


Hs Implementation For Optimization

In HS algorithm, a feasible solution is called harmony and each decision variable of the solution is corresponding to a note. HS includes a harmony memory (HM) in which a predetermined number of harmonies (N) have been stored. Suppose the goal is to minimize/maximize a fitness function (f) subject to d decision variables. This optimization problem is defined as follows:

(1) where f is the fitness function, xi (i = 1,2,…,d) is decision variable i and d denotes the problem dimension.

In order to implement HS algorithm for optimization, the following steps should be used:

Complete Chapter List

Search this Book: