## 2 Materials and Methods
### Global Optimization Algorithms
#### 2.1.3 Iterative Global Exploration and Local Optimization (IGLOO)  
Similar to the HYBRID algorithm, IGLOO relies on the exploration strategy of the robotics-inspired RRT algorithm. However, the exploration and local minimization steps are nested in a different way. The pseudo-code of IGLOO is presented in Algorithm 4. The first part of the algorithm (lines 2-5) samples \(n\) conformations that will be used as the initial roots of the exploration trees. These trees are constructed by the function TRRT-Exploration (line 7), which implements a multi-tree variant of the RRT algorithm that considers an energy threshold as a constraint for the exploration. This algorithm will be described in Section 2.2. Then, local energy minimization is performed from each of the conformations corresponding to the nodes of these trees (lines 8-10). The resulting set of local minima is filtered to eliminate conformations that are too similar, and to reduce the number of local minima taken into account for the following steps (line 11). Note that although the TRRT-Exploration generates conformations with a good dispersion in \(\mathcal{C}\), the subsequent local minimization usually produces clusters of conformations. The UpdateParameters function (line 12) adapts the energy threshold, the exploration stepsize, and the maximum number of roots for the next iteration of the algorithm. The three main steps of IGLOO--global exploration, local minimization, and filtering--are iterated until one of the conditions in the function StoppingCriteria is satisfied. To illustrate the behavior of IGLOO, Figure 11 provided in the appendix section presents results obtained along several iterations of the algorithm to find low-energy conformations of a simple system that has frequently been used in theoretical works: the alanine dipeptide.  
```
input :Conformational space variables \(\mathcal{C}\)  Algorithm parameters and energy function \(P\) output :Set of local minima \(\mathcal{T}\)
1\(\mathcal{T}\leftarrow\mathcal{Q}\);\(n\gets 0\) whilenotMaxNumberRoots\((n,P)\)do
2\(q\leftarrow\)SampleRoot\((\mathcal{C},P,\mathcal{T})\)
3\(\mathcal{T}\leftarrow\)AddMinimum\((\mathcal{T},q)\)
4 whilenotStoppingCriteria\((P,\mathcal{T})\)do
5\(q_{\text{rand}}\leftarrow\)SampleRandomConformation\((\mathcal{C})\)
6\(q_{\text{near}}\leftarrow\)GetNearestNeighbor\((\mathcal{T},q_{\text{rand}})\)
7\(\mathcal{T}^{\prime}\leftarrow\)Monotonic-Basin-Hopping\((\mathcal{C},P,q_{\text{near}})\)
8\(\mathcal{T}\leftarrow\)AddAllMinima\((\mathcal{T},\mathcal{T}^{\prime})\)
9\(n\gets n+1\)
10
11 return\(\mathcal{T}\)
```  
**Algorithm 3**Hybrid-BH-RRT  
```
input :Conformational space variables \(\mathcal{C}\)  Algorithm parameters and energy function \(P\) output :Set of local minima \(\mathcal{T}\)
1\(\mathcal{T}\leftarrow\mathcal{Q}\);\(n\gets 0\) whilenotMaxNumberRoots\((n,P)\)do
2\(q\leftarrow\)SampleRoot\((\mathcal{C},P,\mathcal{T})\)
3\(\mathcal{T}\leftarrow\)AddMinimum\((\mathcal{T},q)\)
4\(n\gets n+1\)
5 whilenotStoppingCriteria\((P,\mathcal{T})\)do
6\(\mathcal{T}^{\prime}\leftarrow\)TRRT-Exploration\((\mathcal{C},P,\mathcal{T})\)
7 foreach\(q\in\mathcal{T}^{\prime}\)do
8\(q_{\text{new}}\leftarrow\)LocalMinimization\((\mathcal{C},P,q)\)
9\(\mathcal{T}\leftarrow\)AddMinimum\((\mathcal{T},q_{\text{new}})\)
10\(\mathcal{T}\leftarrow\)FilterConformations\((\mathcal{C},P,\mathcal{T})\)
11\(P\leftarrow\)UpdateParameters\((\mathcal{T},P)\) return\(\mathcal{T}\)
```  
**Algorithm 4**IGLOO