Harmony Search Algorithm

Search for harmony

The harmony search algorithm was inspired by the improvisation of jazz musicians. Specifically, the process by which musicians (who may never have played together before) rapidly refine their individual improvisation through variation resulting in aesthetic harmony.

Each musician corresponds to an attribute in a candidate solution in the domain, and the pitch and range of each instrument correspond to the limits and constraints of the decision variable. Harmony among musicians is considered a complete candidate solution at any given time, and the aesthetic appreciation of harmony by the audience represents the specific cost function of the problem. Musicians seek harmony over time through small variations and improvisations, which results in an improvement over the cost function.

The objective of the search for harmony is to use the good candidate solutions already discovered to influence the creation of new candidate solutions towards the location of the optima. This is achieved by stochastically creating candidate solutions in stages, where each component is either drawn at random from a high-quality solution memory, adjusted from the high-quality solution memory, or randomly assigned within the limits of the problem.

The memory of candidate solutions is initially random, and a greedy acceptance criterion is used to admit new candidate solutions only if they have an improved objective value, replacing an existing member.

The adjustment of a pitch selected in the harmony search memory is generally linear, for example for the continuous optimization of functions:
x = x + range * e
where range is a user parameter (height bandwidth) to control the size of the changes, and e is a uniformly random number in [-1; 1].

The harmony search algorithm was designed as a generalized optimization method for a optimization continuous, discrete and constrained and has been applied to many types of optimization problems.

Harmony memory with a rate (HMCR) in [0; 1] controls the use of harmony memory information or the generation of a random pitch. As such it controls the convergence rate of the algorithm and is usually configured in [0.7; 0.95]. The pitch adjustment rate (PAR) in [0; 1] controls the tuning frequency of selected pitches in harmony memory, usually set in [0,1; 0.5]. High values may cause the search to converge prematurely. The rate of pitch adjustment and the method of adjustment (amount of adjustment or fret width) are usually fixed, having a linear effect over time.

When creating a new harmony, aggregations of pitches can be taken through the musicians into the harmony's memory. Updating harmony memory is generally a greedy process, although other considerations such as diversity may be used when the most similar harmony is replaced.

EN
FR
FR
EN
ES
Exit mobile version