## 4 The Cooperative Optimization Algorithm
### Methodology  
In this subsection, a high level overview of COA is given before detailing the individual components in successive subsections. Figure 1 shows the basic methodology: In each iteration, the algorithm first generates location scenarios for a subset of users to evaluate. Based on the users' ratings of the scenarios, a surrogate objective function is continuously updated over the iterations. The GSPDP instance with the current surrogate objective function is then solved, yielding a solution. In the next iteration, this solution is a basis for deriving further meaningful location scenarios to be presented to users again. The surrogate objective function, thus, learns to represent the users' needs, more specifically the suitability values \(w_{r,\rho}\), better and better, and the solutions obtained from the optimization will become more precise over time. Figure 2 exemplifies how the evaluation of a location scenario may look from the perspective of a user. From a technical point-of-view, the COA framework consists of a _Feedback Component (FC)_, an _Evaluation Component (EC)_, an _Optimization Component (OC)_, and a _Solution Management Component (SMC)_. First, the FC is called, starting an initialization phase by asking each user \(u\in U\) to specify the user's use cases \(C_{u}\) and associated SPRs \(R_{u,c}\), as well as corresponding demands \(D_{u,c},c\in C_{u}\). Afterwards, the FC is responsible for collecting information from the user, i.e., users can interact with the framework at this stage of the algorithm. User information is collected by generating individual location scenarios for each user which are presented to the user in order to obtain his/her feedback. A user \(u\in U\) then has to provide suitability  
Figure 1: Basic methodology of the COA framework. Figure 2: Exemplary evaluation of a location scenario by a user in the COA framework: A potential solution in form of a map with highlighted locations is presented, and the user can than provide suitability values for the highlighted locations in the form of ratings. values \(w_{r,p}\) for locations \(v\in S\) of solution scenarios \(S\) presented to him with respect to a use case requirement \(r\in R_{u}\). The feedback obtained from the users is processed in the EC. The EC maintains and continuously updates a _surrogate suitability function_\(\tilde{w}_{\Theta}(r,v)\) approximating the suitability values \(w_{r,p}\) of service point locations \(v\in V\) w.r.t. SPR \(r\in R\) without interacting with the respective user. This function is realized by a machine learning model with parameters (weights) \(\Theta\). Based on this surrogate function, the EC also provides the surrogate objective function  
\[\tilde{f}_{\Theta}(X)=q\cdot\sum_{u\in U}\sum_{c\in C_{u}}D_{u,c}\cdot\min_{r \in R_{u,c}}\left(\max_{v\in X}\tilde{w}_{\Theta}(r,v)\right)-\sum_{v\in X}z_{ v}^{\text{var}}, \tag{11}\]  
with which a candidate solution \(X\) can be approximately evaluated. This fast approximate evaluation is particularly important for intermediate candidate solutions generated during the optimization process which are not evaluated by the users. The respective learning mechanism of the surrogate objective function is also part of the EC. A call of the OC is supposed to determine an optimal or close-to-optimal solution to the problem with respect to the EC's current surrogate objective function \(\tilde{f}_{\Theta}\). Note that the surrogate objective function never changes during a call of the OC, only in each major iteration of the framework after having obtained new user feedback. With the exception of the first call, the optimization procedure of the OC is warm-started with the current best solution \(\tilde{X}^{*}\) as initial solution to possibly speed up the optimization process.