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

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 r...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Mathematical programming computation 2024-03, Vol.16 (1), p.151-184
Hauptverfasser: Arslan, Ayşe N., Omer, Jérémy, Yan, Fulin
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 184
container_issue 1
container_start_page 151
container_title Mathematical programming computation
container_volume 16
creator Arslan, Ayşe N.
Omer, Jérémy
Yan, Fulin
description 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.
doi_str_mv 10.1007/s12532-023-00251-7
format Article
fullrecord <record><control><sourceid>proquest_hal_p</sourceid><recordid>TN_cdi_hal_primary_oai_HAL_hal_03830810v3</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2932486229</sourcerecordid><originalsourceid>FETCH-LOGICAL-c304t-faa54fbb128b2b2b536cd69dd5841d9e8cfbd04f1771256719551d85c9f720f83</originalsourceid><addsrcrecordid>eNp9kM1OAjEUhRujiQR9AVdNXLko9mc67bgjBEUlcaPr2um0zMAwgy2gvL2FIbizXdzm5nyn9x4AbggeEIzFfSCUM4owZQhjygkSZ6BHZCoQzbg4P72T7BJchzDH8TAqJMt64PO1Khq7G_-YUjczO5jXD1DDl01dabjSZqFnFrrWw9DW26qZwXVp4eKAQHtk4Mq3eW2X8LtalzD3ujEl0k2BVr4y9gpcOF0He32sffDxOH4fTdD07el5NJwiw3CyRk5rnrg8J1TmNF7OUlOkWVFwmZAis9K4vMCJI0LEbVNBMs5JIbnJnKDYSdYHd51vqWsVf15qv1OtrtRkOFX7HmaSYUnwlkXtbaeNk39tbFirebvxTRxP0YzRRKY01j6gncr4NgRv3cmWYLUPXnXBqxi8OgSvRIRYB4UojuH4P-t_qF8pDYSN</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2932486229</pqid></control><display><type>article</type><title>KidneyExchange.jl: a Julia package for solving the kidney exchange problem with branch-and-price</title><source>Springer Nature - Complete Springer Journals</source><creator>Arslan, Ayşe N. ; Omer, Jérémy ; Yan, Fulin</creator><creatorcontrib>Arslan, Ayşe N. ; Omer, Jérémy ; Yan, Fulin</creatorcontrib><description>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.</description><identifier>ISSN: 1867-2949</identifier><identifier>EISSN: 1867-2957</identifier><identifier>DOI: 10.1007/s12532-023-00251-7</identifier><language>eng</language><publisher>Berlin/Heidelberg: Springer Berlin Heidelberg</publisher><subject>Algorithms ; Chain branching ; Exact solutions ; Full Length Paper ; Kidneys ; Mathematical analysis ; Mathematics ; Mathematics and Statistics ; Mathematics of Computing ; Operations Research/Decision Theory ; Optimization ; Optimization and Control ; Polynomials ; Pricing ; Theory of Computation</subject><ispartof>Mathematical programming computation, 2024-03, Vol.16 (1), p.151-184</ispartof><rights>Springer-Verlag GmbH Germany, part of Springer Nature and Mathematical Optimization Society 2024. 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.</rights><rights>Attribution</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c304t-faa54fbb128b2b2b536cd69dd5841d9e8cfbd04f1771256719551d85c9f720f83</cites><orcidid>0000-0002-7486-9425 ; 0000-0001-8801-6135</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s12532-023-00251-7$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s12532-023-00251-7$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>230,314,776,780,881,27901,27902,41464,42533,51294</link.rule.ids><backlink>$$Uhttps://inria.hal.science/hal-03830810$$DView record in HAL$$Hfree_for_read</backlink></links><search><creatorcontrib>Arslan, Ayşe N.</creatorcontrib><creatorcontrib>Omer, Jérémy</creatorcontrib><creatorcontrib>Yan, Fulin</creatorcontrib><title>KidneyExchange.jl: a Julia package for solving the kidney exchange problem with branch-and-price</title><title>Mathematical programming computation</title><addtitle>Math. Prog. Comp</addtitle><description>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.</description><subject>Algorithms</subject><subject>Chain branching</subject><subject>Exact solutions</subject><subject>Full Length Paper</subject><subject>Kidneys</subject><subject>Mathematical analysis</subject><subject>Mathematics</subject><subject>Mathematics and Statistics</subject><subject>Mathematics of Computing</subject><subject>Operations Research/Decision Theory</subject><subject>Optimization</subject><subject>Optimization and Control</subject><subject>Polynomials</subject><subject>Pricing</subject><subject>Theory of Computation</subject><issn>1867-2949</issn><issn>1867-2957</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2024</creationdate><recordtype>article</recordtype><recordid>eNp9kM1OAjEUhRujiQR9AVdNXLko9mc67bgjBEUlcaPr2um0zMAwgy2gvL2FIbizXdzm5nyn9x4AbggeEIzFfSCUM4owZQhjygkSZ6BHZCoQzbg4P72T7BJchzDH8TAqJMt64PO1Khq7G_-YUjczO5jXD1DDl01dabjSZqFnFrrWw9DW26qZwXVp4eKAQHtk4Mq3eW2X8LtalzD3ujEl0k2BVr4y9gpcOF0He32sffDxOH4fTdD07el5NJwiw3CyRk5rnrg8J1TmNF7OUlOkWVFwmZAis9K4vMCJI0LEbVNBMs5JIbnJnKDYSdYHd51vqWsVf15qv1OtrtRkOFX7HmaSYUnwlkXtbaeNk39tbFirebvxTRxP0YzRRKY01j6gncr4NgRv3cmWYLUPXnXBqxi8OgSvRIRYB4UojuH4P-t_qF8pDYSN</recordid><startdate>20240301</startdate><enddate>20240301</enddate><creator>Arslan, Ayşe N.</creator><creator>Omer, Jérémy</creator><creator>Yan, Fulin</creator><general>Springer Berlin Heidelberg</general><general>Springer Nature B.V</general><general>Springer</general><scope>AAYXX</scope><scope>CITATION</scope><scope>1XC</scope><scope>VOOES</scope><orcidid>https://orcid.org/0000-0002-7486-9425</orcidid><orcidid>https://orcid.org/0000-0001-8801-6135</orcidid></search><sort><creationdate>20240301</creationdate><title>KidneyExchange.jl: a Julia package for solving the kidney exchange problem with branch-and-price</title><author>Arslan, Ayşe N. ; Omer, Jérémy ; Yan, Fulin</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c304t-faa54fbb128b2b2b536cd69dd5841d9e8cfbd04f1771256719551d85c9f720f83</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2024</creationdate><topic>Algorithms</topic><topic>Chain branching</topic><topic>Exact solutions</topic><topic>Full Length Paper</topic><topic>Kidneys</topic><topic>Mathematical analysis</topic><topic>Mathematics</topic><topic>Mathematics and Statistics</topic><topic>Mathematics of Computing</topic><topic>Operations Research/Decision Theory</topic><topic>Optimization</topic><topic>Optimization and Control</topic><topic>Polynomials</topic><topic>Pricing</topic><topic>Theory of Computation</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Arslan, Ayşe N.</creatorcontrib><creatorcontrib>Omer, Jérémy</creatorcontrib><creatorcontrib>Yan, Fulin</creatorcontrib><collection>CrossRef</collection><collection>Hyper Article en Ligne (HAL)</collection><collection>Hyper Article en Ligne (HAL) (Open Access)</collection><jtitle>Mathematical programming computation</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Arslan, Ayşe N.</au><au>Omer, Jérémy</au><au>Yan, Fulin</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>KidneyExchange.jl: a Julia package for solving the kidney exchange problem with branch-and-price</atitle><jtitle>Mathematical programming computation</jtitle><stitle>Math. Prog. Comp</stitle><date>2024-03-01</date><risdate>2024</risdate><volume>16</volume><issue>1</issue><spage>151</spage><epage>184</epage><pages>151-184</pages><issn>1867-2949</issn><eissn>1867-2957</eissn><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.</abstract><cop>Berlin/Heidelberg</cop><pub>Springer Berlin Heidelberg</pub><doi>10.1007/s12532-023-00251-7</doi><tpages>34</tpages><orcidid>https://orcid.org/0000-0002-7486-9425</orcidid><orcidid>https://orcid.org/0000-0001-8801-6135</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 1867-2949
ispartof Mathematical programming computation, 2024-03, Vol.16 (1), p.151-184
issn 1867-2949
1867-2957
language eng
recordid cdi_hal_primary_oai_HAL_hal_03830810v3
source Springer Nature - Complete Springer Journals
subjects Algorithms
Chain branching
Exact solutions
Full Length Paper
Kidneys
Mathematical analysis
Mathematics
Mathematics and Statistics
Mathematics of Computing
Operations Research/Decision Theory
Optimization
Optimization and Control
Polynomials
Pricing
Theory of Computation
title KidneyExchange.jl: a Julia package for solving the kidney exchange problem with branch-and-price
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-09T21%3A00%3A02IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_hal_p&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=KidneyExchange.jl:%20a%20Julia%20package%20for%20solving%20the%20kidney%20exchange%20problem%20with%20branch-and-price&rft.jtitle=Mathematical%20programming%20computation&rft.au=Arslan,%20Ay%C5%9Fe%20N.&rft.date=2024-03-01&rft.volume=16&rft.issue=1&rft.spage=151&rft.epage=184&rft.pages=151-184&rft.issn=1867-2949&rft.eissn=1867-2957&rft_id=info:doi/10.1007/s12532-023-00251-7&rft_dat=%3Cproquest_hal_p%3E2932486229%3C/proquest_hal_p%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2932486229&rft_id=info:pmid/&rfr_iscdi=true