4.2 Solving MCDM Problems
4.2.2 Multi-Objective Evolutionary Algorithms
4.2.2.4 Dominance Depth Algorithms
Dominance depth is a technique for determining fitness that divides the population into a series of non dominated fronts.
CHAPTER 4. SOLVING PROBLEMS WITH MULTIPLE OBJECTIVES 70 solutions. The solutions that are part of the Pareto front, i.e, the non-dominated solutions, have a dominance depth of 1. In the diagram these solutions are high- lighted red. To determine which solutions have a dominance depth of 2 we eliminate the solutions that have a dominance depth of 1 from the population. We then re- calculate which solutions form the Pareto front and define the solutions that form the new Pareto front as having a dominance depth of 3. In the diagram these have been highlighted green. We repeat this process until no solutions remain. In the diagram the blue solutions have a dominance depth of 3, the black solutions have a dominance depth of 4 and the grey solution has a dominance depth of 5.
0 5 10 15 20 0 5 10 15 20 25 30 35 40 Qualit y Cost
Figure 4.6: Example of Dominance Depth.
The process we have just described for calculating the dominance depth of so- lutions is at best a na¨ıve and inefficient method. In Algorithm 4.2 we describe an algorithm for determining the dominance depth of solutions within a set of solutions, S. The algorithm generates a set of fronts, {F1, . . . , Ff}, where Fc is the cth front
and a set of ranks, {r1, . . . , rN}, where ri is the dominance depth of ~si.
Dominance depth is the technique used by Non-Dominated Sorting Genetic Al- gorithm (NSGA) [136] and NSGA-II [29] to determine the fitness of solutions within
Algorithm 4.2 Calculate Dominance Depth • ∀~si ∈ S
– Initialise Xi = ∅. Xi will contain all the solutions that are dominated by
~si.
– Initialise ni = 0. ni will be the number of solutions that dominate ~si.
– ∀~sj ∈ S ∗ if ~si ~sj · Xi = Xi ∪ {~sj} ∗ else if ~sj ~si · ni = ni+ 1 – if ni = 0 ∗ ri = 1. Rank of ~si is 1.
∗ F1 = F1∪ {~si}. Add ~si to the first front.
• F2 = ∅. Initialise second front.
• c = 1. Initialise front counter. • while Fc6= ∅
– Q = ∅
– ∀~si ∈ Fc. For each solution in the current front.
∗ ∀~sj ∈ Xi. For each solution dominated by ~si.
· nj = nj− 1. Reduce the number of solutions ~sj is dominated by.
· if nj = 0 then rj = c + 1 and Q = Q ∪ {~sj}. If ~sj is no longer
dominated add it to the current front. – c = c + 1
CHAPTER 4. SOLVING PROBLEMS WITH MULTIPLE OBJECTIVES 72 a population. NSGA-II also uses a parameter called the crowding distance to de- termine the fitness of solutions that have same dominance depth. The crowding distance is a measure of how close a solution is to its neighbouring solutions. Popu- lations of solutions with a large average crowding distance lead to increased diversity in the population of solutions. The crowding distance of the ith solution in the cth front is Fc(di). The crowding distance of a solution is a measure of its distance to its
neighbours. The crowding distance of the tails of a front are set to infinity so they are always selected. The calculation of the crowding distance is given in Algorithm 4.3.
Algorithm 4.3 Calculate Crowding Distance • ∀Fc∈ F
– ∀~si ∈ F . For each solution in the current front.
∗ Fc(di) = 0. Set crowding distance to 0.
– e = 1. Initialise objective counter.
– while e ≤ o. For each objective function.
∗ sort(Fc, e). Sort the individuals in the front based on the value of
the objective function.
∗ Fc(d1) = ∞. Assign infinite distance to boundary.
∗ Fc(df) = ∞. Assign infinite distance to boundary.
∗ ∀i ∈ {2, . . . , f − 1} · Fc(di) = Fc(di) +
s(i+1)e− s(i−1)e
Fmax
e − Femax
, where s(i)e is the value of the
eth objective function of the ith solution in F .
The fitness of solutions in the population maintained by NSGA-II is calculated using the crowded comparison operator, ≺n, which sorts solutions by their domi-
nance depth and then by their crowding distance. ~si ≺n~sj if ri < rj or ri = rj and
Fc(di) < Fc(dj). That is to say, ~si has a lower dominance depth than ~sj or they
belong to the same front and the crowding distance of ~si is lower than the crowding
distance of ~sj.
this may be randomly generated or generated in a method that is suitable for the problem at hand. The algorithm then selects solutions for mutation and crossover using a standard binary tournament selection with the crowded comparison opera- tor, ≺n. The selected solutions are then mutated and crossed over using supplied
mutation and crossover operators. The solutions are added to the current popula- tion which is then sorted again using the crowded comparison operator. The next population is then filled with the fittest solutions until it is full, this ensures that all the current and previous best solutions are retained which ensures convergence to the optimal Pareto front. The process is then repeated until a maximum number of generations is met.
In our experiments that we detail in subsequent chapters of this thesis we use NSGA-II as the main framework of our research. We provide start populations, mutation operators and crossover operators to an implementation of this algorithm.