Evolution Strategy
An Evolution Strategy is a class
of evolutionary algorithm. This algorithm is suited for continuous values, usually
with an elitist selection and a specific mutation (crossover is used rarely).
In ES, the individual is made of the objective variables plus some other parameters
guiding the search. Thus, a ES facilitates a kind of self-adaption by
evolving the problem variables as well as the strategy parameters at the same
time. Hence, the parameterization of an ES is highly customizable.
1 t = 0
2 initialize P(t)
3 evaluate structures in P(t)
4 while not end do
5 t = t + 1
6 select C(t) from P(t-1)
7 recombine structures in C(t) forming C'(t)
8 mutate structures in C'(t) forming C''(t)
9 evaluate structures in C''(t)
10 replace P(t) from C''(t) and/or P(t-1)
The Evolution Strategy skeleton (ES) requires the classes:
- Problem
- Solution
The class Problem corresponds to the definition of a problem instance. The skeleton filler must provide a complete definition of this class.
And finally, the class Solution corresponds to the definition of a solution (feasible or not) of a problem instance. The skeleton filler must provide a complete definition of the class Solution.
In adition, the user must configure the following algorithm parameters (in file ES.cfg):
- number of independent runs.
- number of generations.
- size of population.
- size of offsprings in each generation.
- replace mode (if replaces parents for offsprings, or only offsprings may be new parents).
- Selection operators parameters (selection of parents).
- Intra operators parameters (crossover and mutation parameters).
- Inter operators (operators to apply between sub-populations) parameters: operator number, operator rate, number of individuals and selection of individual to send and replace.
- Parallel Configuracion: interval of generation to refresh global state, running mode (synchronized or asyncronized) and interval of generations to check solutions from other populations.
There are several basic steps to running a problem solve with ES skeleton:
1. Change to the problem directory
cd Mallba/rep/ES/problem
2. Compile skeleton.
make
3. Configure algorithm parameters (ES.cfg file)
4. Run problem:
4.1 Sequential Version:make SEQ
or
MainSeq ES.cfg_path instance_path res_file_path4.2 Parallel Version:
4.2.1 Configure Config.cfg file.
4.2.2 Configure pgfileLan (or pgfileWan) : machines where we run the program.
4.2.3 Runmake LAN
or
make WAN