*4.2. SC-M\* Description*

SC-M\* is a general solver to the MAPP problem in Equation (11) by adjusting M\* to the soft-collision constraints on common resources. The pseudocode for SC-M\* is presented in Algorithm 2, where critical commands relative to the soft-collision constraint are underscored. In this algorithm, Lines 1–7 initialize each vertex *v* in the vertex set *V* with infinite cost from the source *vs* (the cost of *vs* itself is zero), set dissatisfying experience to zero and make collision set *Ck* empty. The initial open list contains *vs* only (Line 8). In each iteration, SC-M\* expands the first-ranked vertex *vk* in the open list ordered by the total cost *vk*.*cost* + *heuristic*[*vk*] (Lines 10 and 11). The algorithm terminates and returns the result if the expanded *vk* is the destination *vd* (Lines 12–14) or jumps to the next iteration if immediate collision occurs at *vk*, i.e., *ψ* (*vk*) = ∅ (Lines 15–17). Line 18 constructs the *limit neighbors Vnbh <sup>k</sup>* of *vk* using Equation (4). For each vertex *vl* in *<sup>V</sup>nbh <sup>k</sup>* (Line 19), it adds *vl* to the descendant set *Vk* of *vk* (Line 20), updates the dissatisfying experience of *vl* using Algorithm 1 (Line 21), and merges the immediate collision at *vl* to its soft-collision set *Cl* (Line 22). On top of the new collision set of *vl*, SC-M\* backpropagates to update all the affected ancestor vertexes from *vl* (see Equation (3)) and adds them back to the open list for re-expanding (Line 23). After this collision set updating operation, if *vl* is free from collision and has improved cost, the algorithm accepts the new cost by save the trace-back information and adding *vl* to the open list for expansion (Lines 24–28). This process repeats until the open list is empty (Line 9) when no solution exists or the optimal solution is found (Lines 12–14).
