Network protection has drawn a certain interest in network optimization. One of the most effective and widely used methods to protect networks from failures is to establish backup paths for working paths. For example, we find k node-disjoint paths between a source and a sink with one working path and k-1 backup paths. However, the demand for full protection of a network is somewhat too restrictive and there may not exist k node-disjoint paths in the network due to the limitation of geographical environments. On the other hand, the occurrence probability of node failures is usually much less than that of link failures in real-world models. To save network resources, we turn to establish link-disjoint paths allowing a few shared nodes. We study the problem of finding k link-disjoint paths between a source and a sink under the constraint that the number of nodes shared by at least r paths is at most δ, minimizing the total link weight. First, we systematically study the computational complexity of the problem with respect to three parameters k, r, and δ. Then, we build an integer linear programming for the general model and design a polynomial-time algorithm for the case that k=r by using the techniques of augmenting paths and splitting nodes. Finally, we carry out experimentations on synthetic and real networks that show the effectiveness of our algorithms in practice.
Read full abstract