| Algorithm 1: CASA—Conflict-Aware Spatial-Spectral Allocation |
| Input: Graph G = (V,E), flow copies R, active schedule S, link estimates p_hat, interference estimates I, slot set T, channel-offset set C Output: Conflict-free schedule S and candidate remapping set A 1: Build link-conflict graph Gc = (E, Ec) using chi_node, chi_pri, chi_phy [Equations (15)–(18)] 2: Sort flow copies by lexicographic key: (criticality descending, deadline slack ascending, reliability deficit descending) 3: for each flow copy r in sorted order do 4: for each required hop e in r do 5: F <- empty set 6: for each candidate cell (t,c) satisfying hop precedence do 7: if halfDuplex(e,t,S) and noConflict(e,t,c,S,Gc) and reliabilityFeasible(e,c) then 8: Compute Score(e,t,c) [Equation (20)] 9: Add (t,c,Score) to F 10: end if 11: end for 12: if F is empty then 13: invoke bounded repair: relocate lowest-priority movable allocation 14: recompute F; if still empty, return INFEASIBLE 15: end if 16: Select argmax_(t,c,Score) in F; assign e to (t,c); update S 17: end for 18: end for 19: A <- channel-remapping candidates for active links with low p_hat and feasible local alternatives 20: return S, A |