# Chemotherapy Regimen Optimization Using a Two-Archive Multi-Objective Squirrel Search Algorithm
## 3 Proposed Model and Method
### Two-Archive Multi-Objective Suirrel Search Algorithm
#### 3.2.2 Improved Two-Archive Algorithm (Two_Arch2)  
The Two-Archive Algorithm (TAA) is a multi-objective optimization algorithm proposed by [PERSON] and [PERSON] [32]. Unlike the common mechanism in multi-objective optimization, where a single external archive stores non-dominated solutions, TAA adopts a dual-archive preservation approach, assigning non-dominated solutions to either the Convergence Archive (CA) or the Diversity Archive (DA). This aims to simultaneously maintain the convergence and diversity of the obtained Pareto solution set, ensuring that the final solution set closely approximates the ideal Pareto front with a broad coverage range without introducing additional computational complexity to the algorithm. The TAA process is illustrated in Figure 3.  
The Improved Two-Archive Algorithm (Two_Arch2) is a refinement proposed by [PERSON] et al. [33] to address the limitations of the TAA algorithm. [PERSON] et al. noted that, when the sum of the sizes of the two archives exceeds a predefined limit, only solutions from the Diversity Archive (DA) are pruned. If the size of the Convergence Archive (CA) reaches this limit, all solutions from the DA are removed. Additionally, the maintenance mechanism of the CA does not guarantee its diversity. As a result, the diversity of the final output Pareto solution set is greatly diminished. Two_Arch2 improves the updating mechanisms of both the CA and DA and independently limits the size of the two archives. During CA updating, all offspring solutions obtained are added to the CA, and then, based on an indicator-based fitness function proposed in [34], surplus solutions are removed. The fitness function, based on the quality indicator \(I_{\varepsilon+}\), constructs the minimum distance \(I_{\epsilon^{+}}\) required for a solution \(X_{i}\) to dominate another solution \(X_{j}\), expressed as follows:  
\[I_{\epsilon^{+}}\big{(}X_{i},X_{j}\big{)}=min_{\epsilon}\big{(}f_{m}(X_{i})- \epsilon\leq f_{m}\big{(}X_{j}\big{)},1\leq m\leq M\big{)} \tag{30}\]  
where \(f_{m}(X_{i})\) denotes the \(m\)th objective function and \(M\) is the total number of objective functions. Fitness function \(F(X_{i})\) is defined as in Equation (31):  
\[F(X_{i})=\sum\limits_{X_{j}\in P\backslash\{X_{i}\}}-e^{-\frac{I_{\epsilon^{+} }(X_{i}X_{j})}{00}} \tag{31}\]  
where \(P\backslash\{X_{i}\}\) represents the set of all solutions in set \(P\), except for \(X_{i}\), and the fitness function \(F(X_{i})\) of solution \(X_{i}\) is calculated by summing \(I_{\epsilon^{+}}\) over all other solutions in the set. If the size of the CA exceeds the upper limit, the solution with the minimum fitness value is deleted during iteration, and the fitness function is recalculated based on the remaining solutions in the archive, repeating this deletion step until the size of the CA equals its upper limit. The update of the DA is still based on dominance. Non-dominated solutions in the offspring population are directly added to the DA. If the size of the archive exceeds the upper limit, each solution in the DA is examined individually to determine whether it can be retained. Firstly, solutions with the maximum and minimum objective values on each objective function are retained, and the remaining solutions are then individually assessed for similarity during iteration. Similarity is measured by the distance between solutions in the objective space, with Two_Arch2 using the fractional distance (\(L_{p}\)-_norm_, p < 1). For two different solutions \(X_{i}\) and \(X_{j}\), their fractional distance is expressed as follows:  
\[L_{p}\text{-}norm\big{(}X_{i},X_{j}\big{)}=\left(\sum\limits_{m=1}^{M}\big{|} f_{m}(X_{i})-f_{m}\big{(}X_{j}\big{)}\big{|}^{p}\right)^{\frac{1}{p}} \tag{32}\]  
where \(f_{m}(X_{i})\) denotes the \(m\)th objective function and \(M\) is the total number of objective functions, usually set \(p=1/M\).