Background: I would like to experiment with evolutionary algorithms to generate the "optimal" poem, according to a fitness function to be determined later. However, I cannot think of a good way of implementing 'crossing over' for the 'surviving' poems in each generation. Therefore, I gained some interest in the Cuckoo Search algorithm, due to it not requiring any "crossing over" and being very simple to implement. "Cuckoo Search" is a fairly new algorithm that was invented in 2009, and is just one of many algorithms inspired by naturalistic metaphors.
However, the computer science paper "Metaheuristics: The Metaphor Exposed" (by Kenneth Sörensen) and the Metaheuristics page on Scholarpedia (by Fred Glover and Kenneth Sörensen) seem to cast doubt on whether Cuckoo Search is actually new or innovative. From the Scholarpedia page:
A large (and increasing) number of publications focuses on the development of (supposedly) new metaheuristic frameworks based on metaphors. ... Sörensen (2013) states that research in this direction is fundamentally flawed. Most importantly, the author contends that the novelty of the underlying metaphor does not automatically render the resulting framework "novel". On the contrary, there is increasing evidence that very few of the metaphor-based methods are new in any interesting sense. Weyland (2013) demonstrates convincingly, that Harmony Search (Geem, 2001) is nothing more than a special case of Evolution Strategies (Beyer, 2002) in which each of the concepts of Evolution Strategies has been relabeled from an evolution-inspired term to a term inspired by musicians playing together. ... Recently several journals, including the flagship Journal of Heuristics, have revised their editorial policies to prevent methods whose only novelty is the metaphor they are based upon from being published.
Problem - If Harmony Search could be seen as a special case of Evolution Strategies, then it is possible that that many other algorithms (including Cuckoo Search itself) may also have been previously discovered in the past. But as the Scholarpedia page admits, "very few of the metaphor-based methods are new"...and "very few" means "more than 0". So I'm stuck knowing whether Cuckoo Search is indeed brand new or if it had existed before.
Here's my attempt at writing pseudocode for Cuckoo Search, removing all metaphors from the discussion to make it easier to compare it with other approaches. Hopefully I wrote the pseudocode correctly.
- User set the following parameters: the population of candidate solutions to generate (n), a percentage (p_a), and the number of iterations.
- The initial population of candidate solutions (n) are generated.
- Several candidate solutions are randomly selected for evaluation (this selection would be done using Lévy flight).
- For each candidate solution selected for evaluation:
- Generate a new candidate solution (called NewSolution)
- Compare the fitness of NewSolution with the current candidate solution
- If the NewSolution's fitness is greater than the fitness of the current candidate solution, replace the current candidate solution with NewSolution
- Else, throw away NewSolution
- All candidate solutions are ranked, according to their fitness.
- The worst (p_a)% of candidate solutions are discarded. The best candidate solution is saved in the variable "current_best".
- New candidate solutions are generated to replace the candidate solutions that were discarded in step 6.
- Repeat steps 3 to 7 until the number of iterations is reached.
- Return "current_best".
Clarification, as requested by Raphael - I would consider the Cuckoo Search to be "novel" if its pseudocode has not appeared in the computer science literature before its publication in 2009.