## 2 Materials and Methods
### Controller Node Failure-Recovery
#### 2.7.5 Optimality of Control Task Assignment  
Although this kind of sequential single task allocation is optimal with regard to the chosen assignment objectives and a single task at a single time instance it might lead to a suboptimal distribution over time if all already distributed tasks are also taken into account. An example is given in Figure 11, where after the first failure event of the controller on satellite S2, the controller node of satellite S3 wins the bid and takes over the control of the actuator on satellite S2. The next failure event of the controller on satellite S4 then forces the controller of satellite S1 to take over, because it's the only one with free capacity. This leads to a suboptimal distribution in terms of the inter-node closed-loop proximity of all nodes, which would be four hops in total (#hop(S1\(<\)>S4) + #hop(S2\(<\)>S3) = 3 + 1) as compared to two hops in an optimal distribution where satellites are controlled by their next neighbour (#hop(S1\(<\)>S2) + #hop(S2\(<\)>S3) = 1 + 1).  
Figure 10: (**a**) The communication sequence between auctioneer and bidders for the auction announcement and bid reception phase. (**b**) The communication sequence between auctioneer and bidders for the winner announcement and task handover phase.  
There exist several approaches in the literature that cope with the problem of optimality in auctions [50; 55]. In a Multi-Bid approach [56] bids for each already distributed task including the new task are collected from all bidders at the auctioneer which optimizes over this bid set, e.g., via Mixed-Integer-Programming. Another common approach is to pool multiple dependent tasks together, both unassigned and already assigned ones and auction subsets of them as one package. Considering that at any time we only need distribute a single new task in a timely manner collecting and optimizing over a possibly growing number of tasks at the actuator node is not efficient. In addition the network load would increase a lot which is not desirable in low-power low-latency space applications. The other option to have the bidders bid on task pools or subsets of tasks ultimately leads to a combinatorial task distribution once optimality should be assured, which scales exponentially with the number of tasks and bidders [51]. Therefore to keep the computational burden at the actuator node low and to profit from the polynomial scaling of sequential single task auctions we propose an extension to the standard single task auction process. In addition to the bid for the current task, a bidder also transmits a second bid under the assumption of one of its previously assigned tasks being released and the cost penalty for releasing its already assigned task. If the difference between the cost including release and the second best bid is larger than the penalty associated with the task release the auctioneer selects the corresponding bidder. The bidder then retires from the execution of its tasks selected for release, thereby triggering their redistribution. To be able to submit the penalty of task release, the information transmitted during task assignment is extended by the cost of the second best bidder. This re-assignment approach solves the suboptimal assignment shown in Figure 11 however edge cases still exist for which the extended auction algorithm produces suboptimal solutions. This is however regarded as acceptable considering the network load and computational benefits of the approach.  
The extended closed-loop networked control architecture is summarized in Figure 12 which extends the original networked control architecture from Figure 6 with the auction and failure detection related tasks on actuator and controller side.  
Figure 11: Suboptimal control task distribution with sequential-single-step allocation. The red dotted arrows represent the re-allocated control relationship. The last distribution could be optimized by having each of the satellites take care of the control task of its failed direct neighbour.