Proceedings of the 22nd Annual ACM-SIAM Symposium on Discrete Algorithms, 279–308, 2011.
Let G be a plane graph with non-negative edge weights, and let k terminal pairs be specified on h face boundaries. We present an algorithm to find k non-crossing walks in G of minimum total length that connect all terminal pairs, if any such walks exist, in 2O(h²) n log k time. The computed walks may overlap but may not cross each other or themselves. Our algorithm generalizes a result of Takahashi, Suzuki, and Nikizeki [Algorithmica 1996] for the special case h≤2. We also describe an algorithm for the corresponding geometric problem, where the terminal points lie on the boundary of h polygonal obstacles of total complexity n, in 2O(h²) n time, generalizing an algorithm of Papadopoulou [IJCGA 1999] for the special case h≤2. In both settings, shortest non-crossing walks can have complexity exponential in h. We also describe algorithms to determine in O(n) time whether the terminal pairs can be connected by any non-crossing walks.