Skip to main content
Log in

Two Algorithms for the k-Widest Path Problem

  • Published:
Journal of Network and Systems Management Aims and scope Submit manuscript

Abstract

In communication networks where services require a certain amount of bandwidth for setting up a connection, an important problem (to be referred to as the k-widest path problem) is to enumerate paths in non-increasing order of the bandwidth availability of the paths. For this problem, a path follows a non-additive, concave cost property. Notably, this problem parallels the k-shortest path problem for which the path cost is additive. We present two exact algorithms for solving this problem, denoted by kWP-1 and kWP-2, inspired by the loopless version of MPS (Martins–Pascoal–Santos) algorithm and Yen’s algorithm for the k-shortest path algorithm, respectively. Our numerical study shows that kWP-2 is more effective than kWP-1 for the k-widest path problem, in contrast with the relatively better performance of MPS over Yen’s algorithm regarding the enumeration of k-shortest paths.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Data Availability

The networks used are from the SNDLib repository (http://sndlib.zib.de) as explained in Sect. 5 of the manuscript.

References

  1. Medhi, D.: QoS routing computation with path caching: a framework and network performance. IEEE Commun. Mag. 40(12), 106–113 (2002)

    Article  Google Scholar 

  2. Pollack, M.: The maximum capacity through a network. Oper. Res. 8(5), 733–736 (1960). https://doi.org/10.1287/opre.8.5.733

    Article  MathSciNet  Google Scholar 

  3. Hu, T.: The maximum capacity route problem. Oper. Res. 9(6), 898–900 (1961)

    Article  Google Scholar 

  4. Kruskal, J.B.: On the shortest spanning subtree of a graph and the traveling salesman problem. Proc. Am. Math. Soc. 7(1), 48–50 (1956)

    Article  MathSciNet  MATH  Google Scholar 

  5. Wang, Z., Crowcroft, J.: Quality-of-service routing for supporting multimedia applications. IEEE J. Select. Areas Commun. 14, 1228–1234 (1996)

    Article  Google Scholar 

  6. Taft-Plotkin, N., Bellur, B., Ogier, R.: Quality-of-service routing using maximally disjoint paths. In: Seventh international workshop on quality of service 1999 (IWQoS ’99), pp. 119–128 (1999). https://doi.org/10.1109/IWQOS.1999.766485

  7. Medhi, D., Ramasamy, K.: Network Routing: Algorithms, Protocols, and Architectures, Second Edition. Morgan Kaufmann Publishers (an imprint of Elsevier), The Netherlands (2017)

  8. Siachalou, S., Georgiadis, L.: Precomputation of constrained widest paths in communication networks. In: Editrou, N., Kontovasilis, K., Rouskas, G.N., Iliadis, I., Merakos, L. (eds.) Networking 2004, pp. 1192–1203. Springer, Berlin (2004)

    Google Scholar 

  9. Sobrinho, J.L., Ferreira, M.A.: Routing on multiple optimality criteria. In: Proceedings of the annual conference of the ACM special interest group on data communication on the applications, technologies, architectures, and protocols for computer communication (ACM SIGCOMM’2020), pp. 211–225 (2020)

  10. Yen, J.Y.: Finding the \(k\) shortest loopless paths in a network. Manage. Sci. 17(11), 712–716 (1971)

    Article  MathSciNet  MATH  Google Scholar 

  11. Clímaco, J., Craveirinha, J., Girão-Silv, R.: Multiple criteria decision analysis. In: Greco, S., Ehrgott, M., Figueira, J.R. (eds.) Multicriteria Analysis in Telecommunication Network Planning and Design: A Survey. International Series in Operations Research & Management Science, Springer, New York (2016). https://doi.org/10.1007/978-1-4939-3094-4_26

    Chapter  Google Scholar 

  12. Martins, E., Pascoal, M., Santos, J.: Deviation algorithms for ranking shortest paths. Int. J. Found. Comput. Sci. 10(3), 247–263 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  13. Martins, E., Pascoal, M., Santos, J.: An algorithm for ranking loopless paths. Technical Report 99/007, CISUC (1999)

  14. Orlowski, S., Wessäly, R., Pióro, M., Tomaszewski, A.: SNDlib 1.0-Survivable Network Design library. Networks 55(3), 276–286 (2010). https://doi.org/10.1002/net.20371

    Article  Google Scholar 

  15. Martins, E., Pascoal, M.: A new implementation of Yen’s ranking loopless paths algorithm. 4OR-Q. J. Belgian French Italian Oper. Res. Soc. 1(2), 121–134 (2003)

    MathSciNet  MATH  Google Scholar 

  16. Ogier, R., Bellur, B., Taft-Plotkin, N.: An efficient algorithm for computing shortest and widest maximally disjoint paths. Technical Report ITAD-1616-TR-170, SRI International (November 1998)

  17. Pascoal, M.: Implementations and empirical comparison for k shortest loopless path algorithms. In: The Ninth DIMACS Implementation Challenge: The Shortest Path Problem (2006)

Download references

Funding

T. Gomes, L. Martins and José M. F. Craveirinha were partially funded by FCT – Fundação para a Ciência e a Tecnologia, I.P. under the Project UIDB/00308/2020. D. Medhi was supported in part by NSF grant # CNS-0916505 while he was a faculty member at the University of Missouri–Kansas City, USA.

Author information

Authors and Affiliations

Authors

Contributions

TG developed the algorithms to which LM and DM contributed. TG implemented the algorithms, generated the results, and prepared Figs. 1-3. TG, JC and DM wrote the main manuscript text. All authors reviewed the manuscript.

Corresponding author

Correspondence to Deep Medhi.

Ethics declarations

Conflict of interest

There is no financial interest.

Ethical Approval

Not applicable.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

A Appendix: Overview of k-Shortest Path Algorithms

A Appendix: Overview of k-Shortest Path Algorithms

In this appendix, we present a brief overview of both Yan’s algorithm [10] and MPS Algorithm [12, 13] for k-shortest loopless paths for the benefit of the reader.

1.1 A.1 Yen’s Algorithm

Let the the \(\kappa\)-th shortest path be represented by \(p_\kappa = \langle s=v^\kappa _1, a^\kappa _1, v^\kappa _2,\) \(\cdots , v^\kappa _{\ell -1}, a^\kappa _{\ell -1}, v^\kappa _\ell =t \rangle .\) For each node \(v^\kappa _i \in p^d_\kappa\) the shortest loopless path p that deviates from \(v^\kappa _i\) is determined. Path \(p_\kappa\) is said to be the parent of p, and \(v^\kappa _i\) is the deviation node of p.

The usual implementation of Yen’s algorithm, given the current path \(p_\kappa\), considers all the nodes \(v^\kappa _i\) in \(p^d_\kappa\), as possible deviation nodes of new candidate paths. A candidate path p should be given by \(p=p_{s,v^\kappa _i}\diamond q\), where q is a loopless path from \(v^\kappa _i\) to t (i.e., q is the deviation path of p). To calculate q the nodes of the sub-path of \(p_\kappa\) from s to \(v^\kappa _i\), arc \(a^\kappa _i\) and all arcs with tail \(v_i^\kappa\) which were removed for the calculation of \(p_\kappa\), also need to be removed from the graph. Next, q is determined as the shortest path, from \(v^\kappa _i\) in the modified network. Then the network is restored.

Yen’s algorithm ranks the shortest loopless paths, in an iterative manner as follows. Initially, the set of candidate loopless paths X and the set of found loopless paths P are empty. The shortest path from s to t is calculated and stored in X. Then the algorithm iteratively removes from X the shortest path, adds it to P, and seeks to add new paths to X. Each identified shortest path (e.g., the \(\kappa\)-th) contributes with new candidates to X: the paths that deviate from the nodes in \(p^d_\kappa\). Then, in the next iteration, the shortest path in X, the \(\kappa +1\)-th path, is removed from X and added to P. The iterative process continues until the k-th path is obtained \(\left(\vert P \vert = k\right)\) or X is empty.

In [15] a new implementation of Yen’s algorithm was proposed. We adjusted that implementation to solve the k-widest path problem, as described in Sect. 4.2.

1.2 A.2 MPS Algorithm

In [12] a generalization of Yen’s algorithm is proposed: it is similar to Yen’s, but it allows ranking paths with loops. Moreover, it uses reduced costs for increased efficiency, as all paths in the tree of the shortest path from every node v to t have zero reduced costs [12]. Then, by using a data structure designated forward star form, where arcs are ordered by their tails, and arcs with the same tail are ordered by increasing reduced cost, MPS is proposed. Finally, an adaption of MPS to obtain loopless paths is described.

As in Yen’s algorithm, consider the set of candidate paths to be X, and the set of found loopless paths to be P (initially both are empty). In the \(\kappa '\)-th iteration, assume MPS selects and removes from X the \(\kappa\)-th (\(\kappa \le \kappa '\)) shortest loopless path, and adds it to P. Each node v of \(p_{\kappa }^d\) (the sub-path of \(p_{\kappa }\) from \(v^d_{\kappa }\) to t) is explored. The algorithm calculates (if it exists), the shortest path from v to t, such that its first arc, with tail node v, is not in the pseudo-tree \({\mathcal {T}}_{\kappa '}\), which contains the selected \(\kappa '\) paths (of which only \(\kappa \le \kappa '\) are loopless) and the candidate paths in X. Consider this path exists, and let it be \(p_{v,t}\).

Assume that \(a'_\ell\) is the arc of \(p_{\kappa }\) with tail node v. Consider that the tail node of \(a_{\ell +1}\) is also v and its head is w, i.e., \(a_{\ell +1}=(v,w)\). As arcs are arranged in the forward star form, there exists a path from v to t, the first arc of which is not an arc of \({\mathcal {T}}_{\kappa '}\), if and only if the tail node of \(a_{\ell +1}\) is v. Moreover, \(p_{v,t}\) the shortest path from v to t with first arc \(a_{\ell +1}=(v,w)\) is easily calculated: \(p_{v,t}= \langle v, (v,w), w \rangle \diamond p^*_{w,t}\). This results from the fact that \(p^*_{w,t}\), the shortest path from w to t, has zero reduced cost. Thus, for each v of \(p_{\kappa }^d\), path \(p^k_{s,v} \diamond p_{v,t}\) (if \(p_{v,t}\) it exists) will be added to X.

Although \(p^k_{s,v}\) and \(p_{v,t}\) are loopless, their concatenation may not be a loopless path. The loopless version of MPS, reduces the number of paths with loops in X by only accepting deviation arcs \(a_{\ell +r}\) for new paths to add to X such that [12]:

  • \(a_{\ell }\) is the arc of \(p_k\) with tail v;

  • \(a_{\ell +r} =(v,w)\)

  • \(p^k_{s,v} \diamond \langle v, a_{\ell +r}, w \rangle\) is a loopless path and \(p^k_{s,v} \diamond \langle v, a_{\ell +i}, u \rangle\) is not a loopless path for \(i=1,\dots , r-1\)

Hence, \(a_{\ell +r}\) is the first arc, in the ordered forward star form, with the same tail node v as \(a_\ell\), which concatenated with \(p^\kappa _{s,v}\) does not contain a cycle. If at the \(\kappa '\) iteration, the shortest path, selected and removed from X, is not loopless, then to generate candidates for the k shortest loopless paths, the nodes v in \(p^d_{k'}\) will have to be analyzed while \(p^{k'}_{s,v}\) does not contain a cycle.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Gomes, T., Martins, L., Craveirinha, J.M.F. et al. Two Algorithms for the k-Widest Path Problem. J Netw Syst Manage 31, 57 (2023). https://doi.org/10.1007/s10922-023-09738-z

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10922-023-09738-z

Keywords

Navigation