## 6 Results  
The COA framework including the FC were implemented in Python 3.8. For the matrix factorization of the EC, we adapted the C++ implementation of Reference [17] provided on Github ([[https://github.com/rdevooght/MF-with-prior-and-updates](https://github.com/rdevooght/MF-with-prior-and-updates)]([https://github.com/rdevooght/MF-with-prior-and-updates](https://github.com/rdevooght/MF-with-prior-and-updates)), accessed on 10 June 2021). The parameterization of the COA components have been determined through preliminary tests on an independent set of instances. For all test runs, the weighting for unknown suitability values \(\alpha\) of the matrix factorization has been set to one. Moreover, the number of features considered in the matrix factorization is set to ten for all test runs. The parameters \(\varsigma^{V}\) and \(\varsigma^{*}\) for controlling the number of scenarios generated according to each strategy in the FC have been set to 0.5 and 0.1, respectively. Finally, Gurobi 9.1 ([[https://www.gurobi.com/](https://www.gurobi.com/)]([https://www.gurobi.com/](https://www.gurobi.com/)), accessed on 10 June 2021) was used to solve the MILP models in the OC. In each COA iteration, a time limit of ten minutes has been set for solving the MILP. If the MILP was not solved to optimality within this time limit, the best found solution was used. All test runs have been executed on an Intel Xeon E5-2640 v4 2.40 GHz machine in single-threaded mode with a global time limit of four hours per run. Note, however, that all runs terminated within this time limit once all relevant locations had been discovered. Since, in contrast to COA, we have full knowledge of our test instances, we are also able to calculate optimal reference solutions for each instance. Hence, by \(f(x_{\text{opt}})\), we denote the objective value of a respective optimal solution \(x_{\text{opt}}\). To characterize the amount of user interaction performed by COA, we consider the total number of scenarios evaluated by a user \(u\in U\) in relation to the upper bound of required interactions \(I_{u}^{\text{UB}}\), cf. Section 4.3. Let \(I_{u}\) be the number of user interactions of user \(u\in U\) performed within COA to generate some solution. Then, \(I=100\%\cdot(\sum_{u\in U}I_{u}/I_{u}^{\text{UB}})/m\) refers to the relative average number of performed user interactions relative to \(I_{u}^{\text{UB}}\) over all users. Note that since scenarios are presented only to a fraction of users in every iteration, the average number of user interactions at each iteration of COA varies even for instances within the same benchmark group. Hence, in order to reasonably study results for each of our benchmark groups, we aggregate respective results to our instances at various _interaction levels_\(\psi\) by selecting for each instance the COA iteration at which \(I\) is largest but does not exceed \(\psi\). Note that, for some instances, smaller levels of \(\psi\) are already exceeded in the first iteration of COA. Hence, in the following, we only consider interaction levels for an instance group for which results to all corresponding instances exist. Note further that the user interaction levels can also be interpreted as the average information known about a user. This interpretation allows us to draw a direct comparison  
Figure 4: **Left**: The considered ten taxi zones of Manhattan with the highest number of pickups and drop-offs. **Right**: Exemplary distribution of SPR locations (black triangles) and potential service point locations (white points). to traditional approaches for distributing service points in which information about the demands of the users is determined in advance. Each result at a certain interaction level can also be interpreted as the result of such a traditional approach with a certain level of knowledge about the users. However, to the best of our knowledge, there exists no data about suitability values in other work.