## 2 Materials and Methods
### Controller Node Failure-Recovery
#### 2.7.2 Proximity Criterion  
First, proximity of the controller candidate to the actuator node. The controller to sensor-node proximity is disregarded because we assume that the sensor-node and actuator node are part of the same spacecraft. Proximity is measured in number of network hops which describes how many individual physical links need to be traversed until data sent from one node reaches its destination node. Links directly connected to each other, e.g., via a wireless link, have a network hop distance of one. Measuring node distance in terms of hops is an efficient and convenient way to encode both physical distance and routing effort in one value. The implicit encoding of physical distance emerges because of the limited communication distance of the wireless transceiver hardware and the otherwise fully connected network topology of all nodes in range. That means nodes farther apart than the maximal transceiver distance have to communicate through other nodes acting as relays therefore increasing the hop count of exchanged data by the number of relays taken. This is of course a rough estimation and simplification of physical distance, but serves out purpose well in this case. The hop count value between the auctioneer node \(n1\) and bidder node \(n2\) in the network at time step \(k\) denoted as \(\#hop_{k}(n1,n2)\) can be easily retrieved by the bidder upon receiving the auction initiation message from the network layer of RODOS at the \(k\)-th time step. On the other hand, an estimation of the lower-bound of the expected hop count based on the node distance between node \(n1\) and node \(n2\) at time step \(k\) is given by:  
\[\#\hat{hop}_{k,min}(n1,n2)=\left\lfloor\frac{||\mathbf{x}_{k,n1}-\mathbf{x}_{k,n2}||_{2}}{d_{cmax}}\right\rfloor \tag{9}\]  
with \(||\mathbf{x}_{k,n1}-\mathbf{x}_{k,n2}||_{2}\) as Euclidean distance between the node \(n1\) and node \(n2\) position states and \(d_{cmax}\) as the maximum transceiver transmission distance. Optimizing for low hop counts reduces closed-loop latency and network loss probability. The former is mainly influenced by data processing on the relay nodes and the latter by the number of physical links, where most data losses happen. This optimization criterion therefore leads to better QoS (AO1) for the closed-loop in terms of delay and loss and less routing overhead and travel distance in the network, therefore keeping the network load low (AO2). To map the hop count \(\#hop_{k}(n1,n2)\) between node \(n1\) and node \(n2\) to a scalar cost \(Cd_{k}\) we utilize the following cumulative cost function:  
\[Cd_{k}(n1,n2):=\left\lfloor\alpha_{d}\left(\#hop_{k}(n1,n2)^{2}+\#hop_{k}(n1,n 2)\right)\right\rfloor+\beta_{d} \tag{10}\]  
With the scaling factor \(\alpha_{d}=0.5\), \(Cd_{k}(n1,n2)\) becomes \(Cd_{k}(n1,n2)=\beta_{d}+\sum_{i=1}^{shop_{k}}i\), which penalizes hop-counts in a non-linear fashion. The cost function is depicted in Figure 7. We opted for a non-linear penalization of hops, in order to account for the increasing network load induced by communication over a larger number of hops. The value \(\beta_{d}=2\) is a bias value that weighs the hop-distance criterion with regard to the other criteria used in the fused scalar sum discussed later.  
By utilizing the projected future position states \(\tilde{\mathbf{x}}_{n1/2;k;k+N}\) of each satellite associated with one of the nodes \(n1\), \(n2\) computed as part of the last MPC solution and sent int the task context, the instantaneous distance cost \(Cd_{k}(n1,n2)\) can be extended to a distance cost sequence of length \(m\):  
\[Cd_{k;k+m}(n1,n2) = [Cd_{k}(n1,n2),\hat{Cd}_{k+1}(n1,n2),...,\hat{Cd}_{k+m}(n1,n2)], \tag{11}\] \[\text{with }m\in[0,...,N]\]  
where \(\hat{Cd}_{k+i}\) is the future expected distance cost at time \(k+i\) which uses the expected hop count \(\#hop_{k+min}(n1,n2)\) instead of the measured one. If the controller/ bidder node\(n2\) is located on the same satellite as the actuator/ auctioneer node \(n1\), \(Cd_{k}\) reduces to \(Cd_{k}(n1,n2):=\beta_{d}\), \(\forall k\).