# A Multi-Objective Harmony Search Algorithm for Sustainable Design of Floating Settlements +
## 3 Generative Model and MOHS Algorithm
Then, each dimension \(s_{new,j}\) will be modified by a pitch adjustment rule with a probability \(PAR\) if it is updated by the memory consideration. The pitch adjustment rule is given as follows:  
\[s_{new,j}=s_{new,j}+U\left(-1,1\right)\times BW \tag{29}\]  
where \(U\left(0,1\right)\) is a uniform random number between 0 and 1 and \(BW\) is the distance bandwidth. Figure 8: Grasshopper and algorithm interaction. Once a new harmony vector \(s_{new}\) is obtained, it is compared to the worst harmony vector in the HM. The selection is based on the survival of the fittest between \(s_{new}\) and the worst harmony vector \(s_{w}\) in the HM. In other words, if \(s_{new}\) is better than \(s_{w}\), it will replace the worst harmony vector to become a new member of the HM. In the traditional HS, population size is taken as small and at each iteration only one harmony is generated. However, in this paper, we generate HM number of harmonies as shown in Algorithm 1. The above HS is designed for single-objective unconstrained/constrained real-parameter optimization problems. In order to extend it to a multi-objective constrained optimization problem as in this paper, we mainly use the non-dominated sorting approach and constrained-domination rule of NSGA-II algorithm of [PERSON] [12]. An excellent review of multi-objective genetic algorithms (GAs) is provided in [16]. In order to ease the understanding of the MOHS algorithm, we briefly summarize the NSGA-II algorithm as follows:  
Most GAs employ Pareto-ranking approaches. In the Pareto-ranking approach, the concept of Pareto dominance is used to give a rank to each solution. The population is ranked by using a dominance rule and ranks are determined as \(f_{1},\ f_{2},...,f_{k}\). The first rank \(f_{1}\) corresponds to the Pareto front of the population. [PERSON] [17] proposed the first Pareto ranking technique with a population \(P\) with size \(N\) as follows:  
Step 1: \(\quad\) Set \(i=1\) and \(tempP\ =\ P\). Step 2: \(\quad\) Determine non-dominated solutions in \(tempP\) and assign them to rank \(f_{i}\). Step 3: \(\quad\) Set \(tempP\ =\ tempP-f_{i}\). If \(tempP=\varnothing\), then go to Step 4, else set \(i=i+1\) and go to Step 2. Step 4: \(\quad\) For every solution \(s\in P\) at generation \(g\), assign a rank \(r_{i}\left(s,g\right)=i\ if\ s\in f_{i}\). However, NSGA-II uses the fast non-dominated sorting algorithm to establish non-dominated fronts. Another distinct feature of the NSGA-II algorithm is the crowding distance approach to generate a uniform spread of solutions around the best-known Pareto front. The crowding distance is calculated in NSGA-II as follows:  
Step 1: \(\quad\) Rank the population and determine non-dominated fronts \(f_{1},\ f_{2},...,f_{k}\). Step 2: \(\quad\) For each front \(j=1,..k\), repeat. Step 2.1: \(\quad\) Sort the solutions in \(f_{j}\) for each fitness function \(x\) in the increasing order. Set \(l=\left|f_{j}\right|\) Suppose that \(s_{i,x}\) is the \(ith\) solution in the sorted list with respect to the objective function x. Make sure \(cD_{x}\left(s_{1,x}\right)=\infty\) and \(cD_{x}\left(s_{l,x}\right)=\infty\). Suppose that the fitness function is denoted as \(F_{x}\). Step 2.2: Calculate the crowded distance for \(i=2,..,l-1\) as follows: \[cD_{x}\left(s_{i,x}\right)=\frac{F_{x}\left(s_{i+1,x}\right)-F_{x}\left(s_{i-1,x }\right)}{F_{x}^{max}-F_{x}^{min}}\] Step 3: To find a crowding distance of a solution \(s\), add up the crowding distances with respective to each fitness function, i.e., \(cD\left(s\right)=\sum_{x}cD_{x}\left(s\right)\). In NSGA-II, this crowding distance measure is a tiebreaker for the crowded tournament selection operator. Two solutions, \(x\) and \(y\), are randomly selected. Then, if the solutions are in the same non-dominated front, the solution with a higher crowding distance is chosen. Otherwise, the solution with the lowest rank is favored. Since we deal with a constrained problem in this paper, we also employ the constrained-domination concept in NSGA-II [12].