# An ADMM Based Parallel Approach for Fund of Fund Construction
## 3 Algorithm for FOF Optimization Model
### Adaptive Step Size  
The ADMM algorithm is the first-order method with a linear convergence rate. For large-scale problems, achieving high accuracy requires more iterations. The adaptive step has shown a successful application in ADMM. Let \(k\) be the current iteration and \(k_{0}\) be an older iteration, such that \(k_{0}<k\). Let \(\Delta u^{k}=u^{k}-u^{k_{0}}\), \(\Delta H^{k}=x^{k}-x^{k_{0}}\). For \(\hat{\mathbb{a}}_{k},\hat{\beta}_{k}\in\mathbb{R}\), the optimal stepsize choice is then written as  
\[\tau_{k+1}=(\hat{\mathbb{a}}_{k}\hat{\beta}_{k})^{1/2},\quad\hat{\gamma}_{k+1 }=1+\frac{2\sqrt{\hat{\mathbb{a}}_{k}\hat{\beta}_{k}}}{\hat{\mathbb{a}}_{k}+ \hat{\beta}_{k}}. \tag{22}\]  
The spectral stepsize \(\hat{\mathbb{a}}_{k}\) is updated by  
\[\hat{\mathbb{a}}_{k}=\begin{cases}\hat{\mathbb{a}}_{k}^{\text{MG}}&\text{if } 2\hat{\mathbb{a}}_{k}^{\text{MG}}>\hat{\mathbb{a}}_{k}^{SD}\\ \hat{\mathbb{a}}_{k}^{SD}-\hat{\mathbb{a}}_{k}^{\text{MG}}/2&\text{otherwise}. \end{cases} \tag{23}\]  
where  
\[\hat{\mathbb{a}}_{k}^{SD}=\frac{\langle\Delta u^{k}\Delta u^{k}\rangle}{ \langle\Delta u^{k},\Delta H^{k}\rangle},\quad\hat{\mathbb{a}}_{k}^{\text{MG} }=\frac{\langle\Delta u^{k},\Delta H^{k}\rangle}{\langle\Delta H^{k},\Delta H ^{k}\rangle} \tag{24}\]  
The spectral stepsize \(\hat{\beta}_{k}\) is similarly estimated by \(\Delta G^{k}=z^{k}-z^{k_{0}}\) and \(\Delta u^{k}=u^{k}-u^{k_{0}}\)[25]. To guarantee convergence, \(\tau_{k},\gamma_{k}\) are bounded by  
\[\tau_{k+1}=\min\{\tau_{k+1},(1+C_{cg}/k^{2})\tau_{k}\}, \tag{25}\] \[\gamma_{k+1}=\min\{\gamma_{k+1},1+C_{cg}/k^{2}\}, \tag{26}\]  
where \(C_{cg}\) is a (large) constant. Algorithm 1 summarizes all the steps.  
```
1:\(k=0,k_{0}=0\)
2:repeat
3:\(x^{k+1}\leftarrow\text{solve the linear equation}\begin{bmatrix}\tilde{P}+\tau_{k}I&\tilde{A}^{T}\\ \tilde{A}&0\end{bmatrix}\begin{bmatrix}x^{k+1}\\ \
u\end{bmatrix}=\begin{bmatrix}\tau_{k}v^{k}-\tilde{q}\\ \tilde{b}\end{bmatrix}\)
4:parallel for\(i=1,\dots,m+n\)do
5:\(x^{k+1}_{i}\leftarrow\gamma_{k}x^{k+1}_{i}-(1-\gamma_{k})z^{k}_{i}\)
6:\(z^{k+1}_{i}\leftarrow\arg\min_{z^{k}_{i}}f_{i}(z_{i})+\frac{\tau_{k}}{2}||x^ {k+1}_{i}-v^{k}_{i}||^{2}\)
7: bound \(z^{k+1}_{i}\) by (28)
8:\(\lambda^{k+1}_{i}\leftarrow\lambda^{k}_{i}+\tau_{k}(x^{k+1}_{i}-z^{k+1}_{i})\)
9:end
10:if\(\text{mod}(k,T_{f})==1\)then
11:\((\tau_{k},\gamma_{k})\leftarrow\text{EstimateStep}(x^{k},x^{k_{0}},z^{k},z^{k_{0}},\lambda^{k},\lambda^{k_{0}})\)
12:\(k_{0}\gets k\)
13:endif
14:\(k\gets k+1\)
15:until termination criterion is satisfied
16:return result
```  
**Algorithm 1** ADMM SolverThe function EstimateStep is stated in Algorithm 2. The estimation updates the stepsize \(\tau_{k}\) and \(\tau_{k}\) with the frequency \(T_{f}\). The proposed method works by assuming a local linear model for the dual optimization problem and selects an optimal stepsize. To guarantee convergence, a safeguarding method is adopted to ensure that excessive steps are not chosen if these linearity assumptions fail to hold.  
```
1:parallel for\(i=1,\dots,m+n\)do
2:\(\Delta\lambda_{i}^{k}\leftarrow\lambda_{i}^{k}-\lambda_{i}^{k_{0}}\)
3:\(\Delta H_{i}^{k}\leftarrow x_{i}^{k}-x_{i}^{k_{0}}\)
4:\(\Delta G_{i}^{k}=z_{i}^{k}-z_{i}^{k_{0}}\)
5:end
6:Compute spectral stepsizes \(\hat{\alpha}_{k},\hat{\beta}_{k}\) using (23)
7:Update \(\tau_{k+1},\gamma_{k+1}\) using (22)
8:Bound \(\tau_{k+1},\gamma_{k+1}\) using (25)
9:return\(\tau_{k+1},\gamma_{k+1}\)
```  
**Algorithm 2** EstimateStep \((x^{k},x^{k_{0}},z^{k},z^{k_{0}},\lambda^{k},\lambda^{k_{0}})\)