Skip to main content
Log in

KidneyExchange.jl: a Julia package for solving the kidney exchange problem with branch-and-price

  • Full Length Paper
  • Published:
Mathematical Programming Computation Aims and scope Submit manuscript

Abstract

The kidney exchange problem (KEP) is an increasingly important healthcare management problem in most European and North American countries which consists of matching incompatible patient-donor pairs in a centralized system. Despite the significant progress in the exact solution of KEP instances in recent years, larger instances still pose a challenge especially when non-directed donors are taken into account. In this article, we present a branch-and-price algorithm for the exact solution of KEP in the presence of non-directed donors. This algorithm is based on a disaggregated cycle and chains formulation where subproblems are managed through graph copies. We additionally present a branch-and-price algorithm based on the position-indexed chain-edge formulation as well as two compact formulations. We formalize and analyze the complexity of the resulting pricing problems and identify the conditions under which they can be solved using polynomial-time algorithms. We propose several algorithmic improvements for the branch-and-price algorithms as well as for the solution of pricing problems. We extensively test all of our implementations using a benchmark made up of different types of instances. Our numerical results show that the proposed algorithm can be significantly faster compared to the state-of-the-art. All models and algorithms presented in the paper are gathered in an open-access Julia package, KidneyExchange.jl.

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.

Algorithm 1
Algorithm 2
Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Availability of data and materials

The PrefLib instances studied in this article are publicly available. Other instances can be randomly generated using the Julia package available through our GitHub repository. URLs are included in this published article. The randomly generated instances used in this article as well as the analysed results are available through the corresponding author upon reasonable request.

Code availability

The full code was made available for review and is publicly available through our GitHub repository. We remark that a set of optimization packages were used in this study, that were either open source or available for academic use. Specific references are included in this published article.

Notes

  1. https://slurm.schedmd.com/ (accessed July 2022).

  2. Github repository of the code: https://github.com/JohnDickerson/KidneyExchange.

  3. GLPK website: https://www.gnu.org/software/glpk/.

  4. CPLEX website: https://www.gurobi.com.

  5. Gurobi website: https://www.ibm.com/products/ilog-cplex-optimization-studio.

  6. Github repository: https://github.com/jeremyomer/KidneyExchange.jl.

  7. See the JuMP-dev organization.

References

  1. Abraham, D.J., Blum, A., Sandholm, T.: Clearing algorithms for barter exchange markets: enabling nationwide kidney exchanges. In: Proceedings of the 8th ACM Conference on Electronic Commerce (San Diego, California, USA). EC ’07. New York, NY, USA: ACM, pp. 295–304. (2007) https://doi.org/10.1145/1250910.1250954.

  2. Ahuja, R.K., Magnanti, T.L., James, B.: Orlin. “Network flows” (1988)

  3. Anderson, R., Ashlagi, I., Gamarnik, D., Roth, A.E.: Finding long chains in kidney exchange using the traveling salesman problem. In: Proceedings of the National Academy of Sciences 112.3 , pp. 663–668. (2015). https://doi.org/10.1073/pnas.1421853112.

  4. Ashlagi, I., Jaillet, P., Manshadi, V.H.: Kidney exchange in dynamic sparse heterogenous pools (2013). arxiv:1301.3509 (visited on 01/27/2022)

  5. Axelrod, D.A., Schnitzler, M.A., Xiao, H., Irish, W., Tuttle-Newhall, E., Chang, S.-H., Kasiske, B.L., Alhamad, T., Lentine, K.L.: An economic assessment of contemporary kidney transplant practice. Am. J. Transpl. 18(5), 1168–1176 (2018). https://doi.org/10.1111/ajt.14702

    Article  Google Scholar 

  6. Arslan, A., Navaro, P., Omer, J.: KidneyExchange.jl v1.0. (2023). https://doi.org/10.5281/zenodo.10138121. https://github.com/jeremyomer/KidneyExchange.jl/tree/1.0

  7. Bezanson, J., Edelman, A., Karpinski, S., Shah, V.B.: Julia: A Fresh approach to numerical computing. SIAM Rev. 59(1), 65–98 (2017). https://doi.org/10.1137/141000671

    Article  MathSciNet  Google Scholar 

  8. Biró, P., de Klundert, J., van, Manlove, D., Pettersson, W., Andersson, T., Burnapp, L., Chromy, P., Delgado, P., Dworczak, P., Haase, B., Hemke, A., Johnson, R., Klimentova, X., Kuypers, D., Costa, A.N., Smeulders, B., Spieksma, F., Valentín, M.O., Viana, A.: Modelling and optimisation in European kidney exchange programmes. Eur. J. Oper. Res. (2019). https://doi.org/10.1016/j.ejor.2019.09.006

  9. Carvalho, M., Lodi, A.: A theoretical and computational equilibria analysis of a multi-player kidney exchange program. Eur. J. Oper. Res. 305(1), 373–385. https://doi.org/10.1016/j.ejor.2022.05.027 (2023)

  10. Constantino, M., Klimentova, X., Viana, A., Rais, A.: New insights on integer-programming models for the kidney exchange problem. Eur. J. Oper. Res. 231(1), 57–68. https://doi.org/10.1016/j.ejor.2013.05.025. (2013)

  11. Delorme, M., García, S., Gondzio, J., Kalcsics, J., Manlove, D., Pettersson, W., Trimble, J.: Improved instance generation for kidney exchange programmes. Comput. Oper. Res. 141, 105707 (2022). https://doi.org/10.1016/j.cor.2022.105707

    Article  Google Scholar 

  12. Desaulniers, G., Desrosiers, J., Solomon, M.M.: Accelerating strategies in column generation methods for vehicle routing and crew scheduling problems. In: Essays and Surveys in Metaheuristics. Vol. 15. Operations Research/Computer Science Interfaces Series. Springer, pp. 309–324 (2002)

  13. Dickerson, J.P., Procaccia, A.D., Sandholm, T.: Optimizing kidney exchange with transplant chains: theory and reality. In: Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems (AAMAS 2012). p. 8 (2012)

  14. Dickerson, J.P., Manlove, D.F., Plaut, B., Sandholm, T., Trimble, J.: Position-indexed formulations for kidney exchange. In: Proceedings of the 2016 ACM Conference on Economics and Computation - EC ’16. The 2016 ACM Conference. Maastricht, The Netherlands: ACM Press, pp. 25-42. (2016) https://doi.org/10.1145/2940716.2940759.

  15. Dickerson, J.P., Procaccia, A.D., Sandholm, T.: Failure–aware kidney exchange. Manage. Sci. 65(4), 1768–1791. https://doi.org/10.1287/mnsc.2018.3026. (2019)

  16. Dunning, I., Huchette, J., Lubin, M.: JuMP: a modeling language for mathematical optimization. SIAM Rev. 59(2), 295–320. https://doi.org/10.1137/15M1020575 (2017)

  17. Farnadi, G., St-Arnaud, W., Babaki, B., Carvalho, M.: Individual fairness in kidney exchange programs. In: Proceedings of the AAAI Conference on Artificial Intelligence 35.13, pp. 11496–11505. (2021) https://doi.org/10.1609/aaai.v35i13.17369.

  18. Ferrari, P., Weimar, W., Johnson, R.J., Lim, R.J., Tinckam, K.J.: Kidney paired donation: principles, protocols and programs. Nephrol. Dial. Transpl. 30(8), 1276–1285 (2015). https://doi.org/10.1093/ndt/gfu309.

  19. Forrest, J., Ralphs, T., Santos, H.G., Vigerske, S., Hafer, L., Forrest, J., Kristjansson, B., Jpfasano, E., Lubin, M., Rlougee, J., Jan-Willem, H.-I.-G., Brito, S., Cristina, S., Matthew, T., Matsushima, F., To-St.: COIN-OR Branch-and-Cut Solver. Version releases/2.10.7. Jan. 26 (2022) https://doi.org/10.5281/ZENODO.5904374.

  20. Glorie, K.M., de Klundert, J. J.van, Wagelmans, A.P.M.: Kidney exchange with long chains: an efficient pricing algorithm for clearing barter exchanges with branch-and-price. Manuf. Serv. Oper. Manag. 16(4), 498–512 (2014). https://doi.org/10.1287/msom.2014.0496.

  21. Huangfu, Q., Hall, J. A. J. : Parallelizing the dual revised simplex method. Math. Programm. Comput. 10(1), 119–142. (2018) https://doi.org/10.1007/s12532-017-0130-5.

  22. Klimentova, X., Alvelos, F., Viana, A.: A new branch-and-price approach for the kidney exchange problem. In: Computational Science and Its Applications - ICCSA 2014. pp. 237-252 (2014)

  23. Lam, E., Mak-Hau, V.: Branch-and-cut-and-price for the cardinality- constrained multi-cycle problem in kidney exchange. Comput. Oper. Res. 115, 104852 (2020). https://doi.org/10.1016/j.cor.2019.104852

    Article  MathSciNet  Google Scholar 

  24. Mak-Hau, V.: On the kidney exchange problem: cardinality constrained cycle and chain problems on directed graphs: a survey of integer programming approaches. J. Combinat. Optim. 33(1), 35–59 (2017). https://doi.org/10.1007/s10878-015-9932-4

    Article  MathSciNet  Google Scholar 

  25. Malik, S., Cole, E.: Foundations and principles of the Canadian living donor paired exchange program. Can. J. Kidney Health Dis. 1, 6 (2014)

    Article  PubMed  PubMed Central  Google Scholar 

  26. Plaut, B., Dickerson, J., Sandholm, T.: Fast optimal clearing of capped-chain barter exchanges. In: Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 30 (2016)

  27. Plaut, B., Dickerson, J.P., Sandholm, T.: Hardness of the pricing problem for chains in barter exchanges (2016). arxiv:1606.00117 (visited on 02/28/2021)

  28. Rapaport, F.T.: Transplantation Proceedings. Vol. 18(3) Suppl. 2. pp. 5-9 (1986)

  29. Riascos-Álvarez, L.C., Bodur, M., Aleman, D.M.: A branch-and-price algorithm enhanced by decision diagrams for the kidney exchange problem (2020). arxiv:2009.13715 (visited on 02/22/2021)

  30. Roth, A. E., Sonmez, T., Unver, M. U.: Kidney exchange. Quart. J. Econ. 119(2), 457–488. https://doi.org/10.1162/0033553041382157 (2004)

  31. Roth, A.E., Sönmez, T., Ünver, M.U.: Efficient kidney exchange: coincidence of wants in markets with compatibility-based preferences. Am. Econ. Rev. 97(3), 828–851. https://doi.org/10.1257/aer.97.3.828 (2007)

  32. Roth, A.E., Sönmez, T., Ünver, M.U.: Pairwise kidney exchange. J. Econ. Theory 125(2), 151–188. https://doi.org/10.1016/j.jet.2005.04.004 (2005)

  33. Saidman, S.L., Roth, A.E., Ünver, T.S., Mutku, D., Francis, L.: Increasing the opportunity of live kidney donation by matching for two- and three-way exchanges. Transplantation 81(5), 773–782. https://doi.org/10.1097/01.tp.0000195775.77081.25 (2006)

  34. Smeulders, B., Bartier, V., Crama, Y., Spieksma, F.C.R.: Recourse in kidney exchange programs. INFORMS J. Comput. 34(2), 1191–1206 (2022). https://doi.org/10.1287/ijoc.2021.1099

    Article  MathSciNet  Google Scholar 

  35. Taccari, L.: Integer programming formulations for the elementary shortest path problem. Eur. J. Oper. Res. 252(1), 122–130. https://doi.org/10.1016/j.ejor.2016.01.003 (July 2016)

  36. Tarjan, R.E.: Edge-disjoint spanning trees and depth-first search. Acta Informatica 6(2), 171–185 (1976). https://doi.org/10.1007/BF00268499

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgements

The authors gratefully thank Pierre Navarro, CNRS research engineer at IRMAR, for his skillful support with Julia Language.

For the purpose of Open Access, a CC-BY public copyright licence has been applied by the authors to the present document and will be applied to all subsequent versions up to the Author Accepted Manuscript arising from this submission.

Funding

The authors declare that no funds, grants, or other support were received during the preparation of this manuscript.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ayşe N. Arslan.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.

Additional information

Publisher's Note

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

Experiments presented in this paper were carried out using the PlaFRIM experimental testbed, supported by Inria, CNRS (LABRI and IMB), Université de Bordeaux, Bordeaux INP and Conseil Régional d’Aquitaine (see https://www.plafrim.fr/).

Appendix

Appendix

1.1 6.1 Position-indexed chain-edge formulation (PICEF)

$$\begin{aligned} \max \;\;&\sum _{s\in S}\sum _{c\in \mathcal {C}_K^s} w_{c} z_{c}+ \sum _{(u,v) \in A}\sum _{l=1}^L w_{u,v} y_{u,v,l} \end{aligned}$$
(32)
$$\begin{aligned} \text{ s.t. }\;\;&\sum _{s\in S}\sum _{c\in \mathcal {C}_K^s(v)} z_c+\sum _{u\mid (u,v)\in A}\sum _{l=1}^{L} y_{u,v,l}\le 1&\forall v\in V \end{aligned}$$
(33)
$$\begin{aligned}&\sum _{v\mid (v,u)\in A} y_{v,u,l}\ge \sum _{v\mid (u,v)\in A} y_{u,v,(l+1)}&\forall u \in P, l=1,\ldots ,L-1 \end{aligned}$$
(34)
$$\begin{aligned}&\sum _{v\mid (u,v)\in A}y_{u,v,1}=0&\forall u\in P\end{aligned}$$
(35)
$$\begin{aligned}&\sum _{v\mid (u,v)\in A} y_{u,v,l}= 0&\forall u\in D, l=2,\ldots ,L \end{aligned}$$
(36)
$$\begin{aligned}&z_c\in \{0,1\}&\forall s\in S, c\in \mathcal {C}_K^s \end{aligned}$$
(37)
$$\begin{aligned}&y_{u,v,l}\in \{0,1\}&\forall (u,v)\in A, l=1,\ldots ,L. \end{aligned}$$
(38)

Here, constraints (33) impose that each vertex is involved in at most one chain or cycle, (34) are flow balance constraints and ensure that a chain is formed by the chain-flow (y) variables, (35)–(36) impose that only non-directed donors can initiate a chain and therefore appear in position \(l=1\) and only in position \(l=1\).

1.2 6.2 Detailed numerical results

See Table 4 here.

Table 4 Average solution time (for instances solved to optimality) using each compact MIP formulation

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Arslan, A.N., Omer, J. & Yan, F. KidneyExchange.jl: a Julia package for solving the kidney exchange problem with branch-and-price. Math. Prog. Comp. 16, 151–184 (2024). https://doi.org/10.1007/s12532-023-00251-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12532-023-00251-7

Keywords

Mathematics Subject Classification

Navigation