  The hardness of fitness functions is an important research topic in the field
of evolutionary computation. In theory, the study can help understanding the
ability of evolutionary algorithms. In practice, the study may provide a
guideline to the design of benchmarks. The aim of this paper is to answer the
following research questions: Given a fitness function class, which functions
are the easiest with respect to an evolutionary algorithm? Which are the
hardest? How are these functions constructed? The paper provides theoretical
answers to these questions. The easiest and hardest fitness functions are
constructed for an elitist (1+1) evolutionary algorithm to maximise a class of
fitness functions with the same optima. It is demonstrated that the unimodal
functions are the easiest and deceptive functions are the hardest in terms of
the time-fitness landscape. The paper also reveals that the easiest fitness
function to one algorithm may become the hardest to another algorithm, and vice
versa.
