6.4 An Adaptive and Dynamic Multi-Objective Genetic Algorithm for QoS-aware Service
6.4.3 Genetic Operators and Multi-Objective Design Considerations
This section details the specification of the genetic operators in AD-MOGA, as well as the multi- objective design considerations. The genetic operators in AD-MOGA are defined as follows: Selection. The selection mechanism implemented in AD-MOGA is a classical roulette-wheel selec-
tion, in which the selection probability of an individual is proportional to its fitness. Therefore, the fitter an individual, the higher are its chances to be selected as a parent and produce off- springs via the crossover operator. The roulette-wheel selection depends on the fitness function
and thus, for a population P = {A1, ..., Ar} where Ai∈ G and G is a genotypic search space,
it can be defined as in [96]: Sf : Gr→ Gswhere s individuals out of r individuals are selected,
r, s ∈ N, s ≤ r, and Sf(P ) = {B
1, ..., Bs}, Bj ∈ P . That is, a fraction of the individuals
(usually two) is selected out of all the individuals for reproduction. One method is to copy individuals according to their fitness to a temporary pool. For example, an individual with a fitness value of 5 is copied 5 times, an individual with a fitness value of 20 is copied 20 times, etc. Then, when randomly selecting an individual out of this pool, the chance to select one with fitness value 20 is 4 times higher than to select one with fitness value 5. The sample individuals are independent, i.e., it is a sampling with replacement. It is possible to select two identical individuals. In this case, the crossover operator cannot introduce a change, but the mutation operator can.
Crossover. AD-MOGA implements a 1-point crossover, although the operator can easily be altered (for instance into a 2-point crossover, which is also commonly used) and the implications can be assessed. The crossover point can be random, i.e., at any position of the chromosome, also at a helper gene position. In [96] the cross-over or recombination operator is defined for
r ≥ 2 parents and s ≥ 1 offspring as Cξ : Gr → Gs where G is a genotypic search space
6.4. AD-MOGA 117 out by Weicker in [96], in GAs the emphasis is put on recombination as the main operation to evolve individuals through generations, which is also what happens in Nature. Therefore, recombination is usually applied with a rather high probability of about 0.6 to 0.7. Parameter values tested for AD-MOGA are discussed in Chapter 7.
Mutation. While mutation is often referred to as a “bit-flip” operation, it has to be re-defined for service/deployment selection problems and can be referred to as “deployment flip” operation.
The general operator is defined as [96]: Mξ : G → G where G is a genotypic search space and
ξ ∈ Ξ is a random number within the range of the chromosome length. Applied to the service selection problem, the operator can be defined as:
Mξ : Di(Sξ) → Dj(Sξ), i 6= j (6.4)
where Sξ is the service at position ξ in the workflow. This means that a mutation of a
deployment is defined within its service class, i.e., a deployment can only be replaced by another deployment belonging to the same service. As pointed out in [96], mutation acts a background operator in GAs (while cross-over is the deciding one) and typically has a probability around 0.01. Again, parameter values tested for AD-MOGA are discussed in Chapter 7.
As discussed in Section 6.1.2 and summarized in Table 6.1, specific choices have to be made to adapt GAs for multi-objective optimization problems and ensure diversity across generations. In AD-MOGA the following techniques are implemented:
Fitness. The individuals are evaluated based on the two objective functions, leading to two fitness values, and non-dominated solutions are identified and copied to the Pareto pool E(t). Diversity. The diversity of the population is ensured by the random weights assigned at each gener-
ation (in certain ranges, cf. 6.4.2). Techniques such as fitness sharing and density calculations tend to be computationally expensive, which makes them problematic in large problem set- ups in which the optimization has to be done online, on request. The diversity preserving capability of AD-MOGA is evaluated in Chapter 7.
Elitism. Elitism is implemented inside the population. A Pareto pool E(t) is initially created and updated at each generation. It contains all non-dominated or Pareto solutions of the population at generation t. Note that the individuals that are kept in the Pareto pool are also part of the search population P (t). When a new population is created at generation t + 1, Nelite individuals from the Pareto pool E(t) are combined with Npop− Neliteindividuals from
P (t), after crossover and mutation. While Npopis a static parameter throughout generations,
Nelite has to be updated at each generation, because the number of Pareto solutions cannot
be known in advance. Nelite has to be chosen such that 0 < Nelite < Npop. Good (relative)
ranges for Nelite are discussed in Chapter 7. The update of the Pareto pool at generation
t + 1 is done as follows: all Pareto solutions of P (t + 1) are determined and compared to the individuals in E(t). E(t + 1) is then populated with all non-dominated solutions from the set E(t) ∪ P areto(t + 1) where P areto(t + 1) are the non-dominated solutions from P (t + 1). Constraint Handling. In the considered problem, constraints are not defined by default, but
OP (t). If constraints are defined, the related aggregated QoS value is calculated for every individual, and infeasible solutions are discarded, i.e., their fitness is set to 0.
Putting all these operators and techniques in context, the general outline of AD-MOGA is pro- vided in Algorithm 5.
Algorithm 5: AD-MOGA: General Outline
1 P (t): population at generation t; 2 E(t): Pareto pool at generation t;
3 Elite(t): pool of elite individuals at generation t;
4 Npop: total number of individuals in the population at any generation; 5 Npareto(t): number of individuals in the Pareto Pool at generation t; 6 Nelite(t): number of elite individuals to keep at generation t; 7 Cξ: Crossover operator;
8 Mξ: Mutation operator; 9 t = 0;
10 initialize population P (0) of size Npop;
11 evaluate P (0) regarding fk, k = 1, ...q (for q objective functions); 12 determine non-dominated solutions in P (0);
13 copy non-dominated solutions to Pareto Pool E(0) and determine Npareto(t); 14 repeat
15 set Nelite(t) such that 0 < Nelite(t) < Npareto(t); 16 copy Nelite(t) individuals from E(t) to Elite(t); 17 calculate random weights according to Equation 6.2;
18 calculate weighted fitness for all individuals in P (t) according to Equation 6.3; 19 select Npop− Nelite parents based on roulette wheel selection;
20 copy the selected Npop− Nelite parents to the mating pool M (t); 21 perform crossover: M0(t) = Cξ(M (t)) with probability pcrossover; 22 perform mutation: M00(t) = Mξ(M0(t)) with probability pmutation; 23 update population: P (t + 1) = M00(t) ∪ Nelite(E(t)) ;
24 t = t + 1;
25 evaluate P (t) regarding fk, k = 1, ...q (for q objective functions); 26 determine non-dominated solutions in P (t);
27 update E(t) and Npareto(t); 28 until termination condition true;