# Decision-Maker's Preference-Driven Dynamic Multi-Objective Optimization
## 3 Experimental Setup
### Algorithm Setup
#### 3.1.3 Algorithms  
The following three approaches employ a penalty function (refer to Equation (3), Section 2) to penalize violating decisions which do not satisfy the DM's preferences. Each of these approaches were incorporated into the hybrid DE and are the three constraint managing approaches evaluated in this study:  
1. Proportionate Penalty: With this approach, the penalty is proportional to the violation, and violating decisions are penalized during function evaluation. Algorithm 5 presents this approach, referred to as PPA for the rest of the article. ```
1:procedureFuncEvaluate(F, x, t)
2:\(\triangleright\) F: multi-objective function to be evaluated
3:\(\triangleright\) x: decision vector
4:\(\triangleright\) p: as defined in Equation (2), page 3
5:\(\triangleright\) x: as defined in Equation (2), page 3
6:\(\triangleright\)\(\lambda\): a random number between 100 and 1000
7:\(\triangleright\)\(I_{1}\): as defined in Equation (2), page 3
8:\(\triangleright\) calculate objective value of x
9:\(\text{aculate violation of z}\)
10:if\(\text{aculate violation of z}\)then\(\triangleright\) x is a non-violating decision, no penalty applied
1 it becomes very unlikely that violating decisions will find their way into the archive, because they will be dominated by non-violating decisions. Violating decisions are computationally eliminated during the search process, and the optimization process is driven towards a region of the search space dominated by non-violating decisions. The Death Penalty Algorithm, referred to as DPA in the rest of the article, is presented in Algorithm 6. ```
1:procedureFuncEvaluate(F,x,t)
2:\(\triangleright\) F: multi-objective function to be evaluated
3:\(\triangleright\) x: decision vector
4:\(\triangleright\) p: as defined in Equation (2), page 3
5:\(\triangleright\) r: as defined in Equation (2), page 3
6:\(l_{1}\): as defined in Equation (2), page 3
7:\(\triangleright\) realmax: maximum real value on a machine
8:\(\triangleright\)\(\triangleright\) calculate objective value of x
9:\(\mathrm{d}\gets norm_{2}(\mathrm{z}\mathrm{\text{-}p})-\mathrm{r}\)\(\triangleright\) calculate violation of z
10:if\(\mathrm{d}\leq 0\)then
11:returnz\(\triangleright\) x is a non-violating decision, no penalty applied
12:\(\triangleright\) x is a preference violating decision, proceed to penalize it for violation
13: penalty \(\leftarrow\) realmax
14: penalty \(\triangleright\) calculate penalty
15: penalty \(\triangleright\) vectorize penalty
16:\(\mathrm{z}\leftarrow\) penalty \(\triangleright\) impose death/max penalty
17:returnz\(\triangleright\) return new penalized objective value of x
```
**Algorithm 6** Death Penalty

3. Restrict Search To Feasible Region: Feasibility is preserved by starting the search within the preferred bounding box and employing the death penalty to prevent preference violating decisions from entering the archive. This approach restricts the search to the feasible region, unlike [40], and it improves the exploring capability of this algorithm. Preferred decisions start the search during initialization of the population of decisions. A pool of preferred decisions is aggregated with the DM preference and the current decisions in the archive. Then, a loop is performed where nearly identical clones of the pool of preferred decisions are created using polynomial mutation [41]. These new clones constitute a new population from where the search will start. Some of the non-dominated decisions in the new population are added to the archive. Algorithm 7 presents the Restrict Search To Feasible Region Algorithm, referred to as RSTFRA in the rest of the article.