## 2 Materials and Methods
### Implementation Details  
This section provides more detailed explanations of the main functions implemented in the algorithms described above:  
SampleRoot: This function randomly samples a conformation \(q\) from the domain defined for the conformational space variables \(\mathcal{C}\). This conformation is locally minimized using the LocalMinimization function described below. If the set \(\mathcal{T}\) already contains other local minima, the distance between the new sample and the previous ones is computed, and the new sample is rejected if the minimum value of these distances is below a given threshold defined in the set of parameters \(P\). In that case, the process is repeated until the new sample is sufficiently far from all the others. This strategy is inspired from the Poisson disk sampling process [40], and aims to guarantee a good dispersion of the points used to initialize the exploration. LargeAmplitudePerturbation: As is generally done in Monte Carlo-type methods, this \"random move\" is not applied to all the variables simultaneously, but to a subset of them at each iteration. In the implementation used in this work, the LargeAmplitudePerturbation is applied to a single variable at a time (we tested random moves applied to several variables simultaneously but the results did not improve for the test systems presented below). More precisely, these large-amplitude moves are applied only to a subset of the conformational space variables considered to be the most important ones, whereas the LocalMinimization function, explained below, operates on all the variables. Section 2.3 will explain the _main_ and _secondary_ variables for the type of molecules considered in this work. The bounds for the amplitude of the perturbation (i.e., the minimum and maximum step size) are defined in the set of parameters \(P\). A random value between these bounds is sampled at each iteration. LocalMinimization: The local minimization is based on a simple Monte Carlo method at very low temperature. Although this type of stochastic algorithm is in general less computationally efficient than deterministic gradient-based approaches, it is also less sensitive to local traps. Moreover, it does not require the computation of the derivatives of the objective function, which can be difficult and expensive in some cases. The algorithm iteratively applies small random perturbations to the current conformation, which are accepted or rejected based on the Metropolis test (as for the BH algorithm). As the temperature parameter used in this test is very low, the probability of accepting a locally perturbed conformation that increases energy is also very low, but not zero, allowing minimization to escape from small energy basins. Our implementation considers two types of variables, _main_ and _secondary_, as defined in Section 2.3. At each iteration, one of the two groups is alternatively selected. Then, a number of variables inside the group is randomly selected. The probability to perturb one or several variables is adapted with the number of iterations. During the first iterations, the probability of selecting one or several variables is of 50% in each case. Once a threshold percentage of rejected Metropolis tests is reached within a given number of consecutive iterations, only one variable is selected. The amplitude of the random perturbation applied to the selected variable(s) is adjusted between a maximum and a minimum value defined in the set of parameters \(P\). Using a similar buffer strategy, this amplitude decreases each time that 50% of the Metropolis tests is rejected. To prevent the amplitude from decreasing too quickly, the buffer is reset after each amplitude reduction. The algorithm iterates until a stopping condition is satisfied. Similarly to the StoppingCriteria function explained below, the considered criteria are a maximum number of iterations, a limited computing time, or estimated convergence, based on a maximum number of consecutive rejections of Metropolis test.