# Bi-Objective Optimization for Joint Time-Invariant Allocation of Berths and Quay Cranes
## 3 Description and Formulation of BACASP
### The Dynamic Adaptive Mechanism
#### 4.3.1 Elite Guided Adaptive Tangent Flight  
In the original MOCS algorithm, each cuckoo produces a new solution from the old one through Equation (24):  
\[s_{i}(t+1)~{}=~{}s_{i}(t)+\alpha_{s}\oplus Levy(\partial) \tag{24}\]  
where \(s_{i}(t)\) is the solution at the \(t\) iteration. \(s_{i}(t+1)\) is the new solution at the \(t+1\) iteration, which is calculated on the basis of \(s_{i}(t)\) by step scaling factor \(\alpha_{s}\) and Levy flight formula \(Levy(\partial)\). The \(\oplus\) operation denotes term-by-term multiplication. Unlike the Levy flight, the tangent flight is derived from the tangent search algorithm, whose step calculation is based on the tangent function [42]. By using the tangent function, the algorithm is able to explore the search space more efficiently. After replacing the Levy flight with a tangent flight, the new solution is generated from the old one through Equation (25):  
\[s_{i}(t+1)~{}=~{}s_{i}(t)+\alpha_{s}\oplus\tan(\theta) \tag{25}\]  
where \(\alpha_{s}\) is the step factor and \(\theta\in[0,\pi/2.1]\), typically, \(\pi/2.1\); \(\theta\) close to \(\pi/2\) increases the tangent value, leading to a solution that deviates significantly from the current one, whereas \(\theta\) close to 0 results in a smaller tangent value, yielding a solution closer to the current one. Using the tangent flight function instead of the Levy flight function in the MOCS algorithm allows the MOCS algorithm to circumvent the lack of local exploitation while further improving the global exploration capability of the MOCS algorithm. The step factor in the original MOCS algorithm is \(\alpha_{s}~{}=~{}\alpha_{0}(s_{j}(t)-s_{i}(t))\), where \(\alpha_{0}~{}=~{}0.01\), and \(s_{j}(t)-s_{i}(t)\) is the difference between an arbitrary solution and the current solution. Since \(s_{j}(t)\) is stochastic, its search process is completely random and has no clear direction, leading to the possibility that the population may miss the global exploration. In addition, the fixed \(\alpha_{0}\) leads to a lack of an effective balance between global exploration and local exploitation, and also results in large random wandering in the late iteration step sizes, which is not conducive to the algorithm's local exploitation and leads to slow convergence. To address the problem of large randomness in the search direction and step size during the solution process of the MOCS algorithm, an elite-guided strategy is proposed to improve the optimization efficiency of MOCS in the solution updating process. The method firstly obtains the population's \(rank~{}=~{}\{rank_{1},\ldots,rank_{n}\}\) by fast non-dominated sortingand then calculates the crowding distance of individuals in \(rank_{1}\) to select the best-fit individual \(s_{best}(t-1)\) as the elite individual in the \(t\) iteration by roulette. In addition, to address the problem of slow convergence and the ease of falling into local optima at the late iteration stages, a dynamic adaptive step-size strategy is proposed, and the convergence of the algorithm is accelerated by introducing inertia weights \(w(t)\ =\ \sin(\pi t/2t_{\max})+1\). Parameter \(\overline{\alpha}\) decreases nonlinearly as the number of iterations increases, and information about the optimal solution and the optimal value in the population is fully considered. The step size of the improved tangent flight is shown in Equations (26) and (27):  
\[s_{i}(t+1)\ =\ w(t)s_{i}(t)+\overline{\alpha}(t)(s_{best}(t-1)-s_{i}(t)) \oplus\tan(\theta) \tag{26}\]  
\[\overline{\alpha}(t)\ =\ 0.01(\frac{1}{\sqrt{t}})^{|\frac{rf_{\max}(t)-rf_{i}(t)} {rf_{best}(t)-rf_{best}(t)+\Delta}|} \tag{27}\]  
where \(rf\) denotes the sum of the individual \(rank\) value and the inverse of the individual crowding distance; individuals with larger crowding distances in the Pareto frontier have smaller \(rf\) values. \(rf_{i}(t)\), \(rf_{best}(t)\), and \(rf_{worst}(t)\) denote the \(i\) individual, as well as the optimal and the worst \(rf\) values, respectively, in the \(t\) iteration of the population.