# Memory-Enhanced Dynamic Multi-Objective Evolutionary Algorithm Based on \(L_{p}\) Decomposition
## 3 Memory-Enhanced Dynamic Multi-Objective Evolutionary Algorithm Based on \(L_{p}\) Decomposition
### Subproblem-Based Bunchy Memory (SBM) Method to Respond to Environmental Change  
A subproblem-based bunchy memory (SBM) method [30] is revised and applied in dMOEA/D-\(L_{p}\) for responding to environment change. The SBM method can be summarized as follows: whenever a change in the environment is detected, a series of representative solutions are first extracted from some subproblems to the memory pool. Then, it retrieves memory information and reuses the best solutions of previous environmental changes to respond to new changes. The memory pool has the same size as the population. Each string saved in the memory pool is considered as an organic whole, and the memory pool is made up of a series queue (string as the basic element of the queue). In keep with the three questions discussed in subsection, SBM includes three processes: extraction (sample), deposit, and retrieve. Figure 2 illustrates the working principle of SBM in detail. For question (1), the corresponding extraction process: SBM first selects _Bsize_ even representative subproblems \(\{i_{1},...,i_{Bsize}\}\) from the \(N\) subproblems, and then selects the optimal solutions of the corresponding individuals to be a string of individuals to be extracted. For question (2), the corresponding deposit process: Insert the string of extracted individuals into the queue of the memory pool first. If the queue is full, it will be replaced according to the \"first in, first out\" strategy. Then, the memory pool is re-evaluated and updated in the new environment  
Figure 2: The working principle of the subproblem-based bunchy memory (SBM) method. (i.e., calculating the values of the object functions and the constraint functions). Finally, update the best individual array of _Bsize_, \(bs[j](j=1,...,\)_Bsize_) is preserved as the best scalar objective function in the direction of \(\lambda^{ij}\) (\(i\) rows and \(j\) columns of weight vector distribution) weight vector. For question (3), the retrieval process: First, evaluate the individuals of \(p_{\tau}\) in the new environment. Then, let \(p^{\prime}{}_{\tau}=p_{\tau}\). Finally, the optimal array \(bs\) competes with \(p_{\tau}\), which means for any subproblem \(i_{j}\) of the _Bsize_ subproblem \(\{i_{1},...,i_{Bsize}\}\). If the scalar objective function of the individual \(bs[j]\) is less than the scalar objective function value of the individual \(p_{\tau}[i_{j}]\), set \(p^{\prime}{}_{\tau}[i_{j}]=bs[j]\), then the population is updated and the memory population \(p^{\prime}{}_{\tau}\) is obtained. A detailed description can be seen in Algorithm 1. ```
1 Input
2 population \(P_{\tau}\); memory pool \(M\);
3 Output
4 population \(P^{\prime}{}_{\tau}\);
5 Step 1 Extraction process:
6(1) A uniform selection of \(B_{size}\) representative sub-problems \(\{i_{1},...,i_{B_{size}}\}\);
7(2) The current optimal solutions of these subproblems are saved as a _bunch_ array. 8 Step 2 Deposit process:
9(1) Save the \(bunch\) to the end of the \(M\) queue; if the \(M\) is full, then the first string of the \(M\) queue is deleted;
10(2) Reevaluate the individual in \(M\);
11(3) Initialize the optimal individual array \(bs\): set \(bs\) as the first string of \(M\), i.e., \(bs=M(1)\);
12(4) Update \(bs\):for\(bunch=M(2)\) to the last string of \(M\)
13 for\(j=1,...,B_{size}\)if\(bunch[j].sof<bs[j].sof\)do
14\(bs[j]=bunch[j]\);
15 endif
16 end end end end
17 Step 3 Retrieval process:
18(1) Reevaluate the individual of \(P_{\tau}\);
19(2) \(P^{\prime}{}_{\tau}=P_{\tau}\);
20(3) \(bs\) competes with \(P_{\tau}\):for\(j=1,...,B_{size}\)if\(bs[j].sof<P_{\tau}[i_{j}].sof\)do
21 endif
22 end end \(P_{\tau}[i_{j}]=bs[j]\);
23
24 Step 4 Output \(P^{\prime}{}_{\tau}\)
```  
**Algorithm 1**SBM method  
The sample process of SBM is easy to extract a series of more evenly distributed individuals and maintain a better diversity in the objective space. For example, when \(N=100\) and \(Bsize=5\), the sample process first selects 5 from 100 subproblems \(\{i\,|i=1,25,50,75,100\}\).