<p>In this paper, we introduce an HPR-LP solver, an implementation of a Halpern Peaceman–Rachford (HPR) method with semi-proximal terms for solving linear programming (LP). The HPR method enjoys the iteration complexity of <InlineEquation ID="IEq1"> <EquationSource Format="TEX">\(O(1/k)\)</EquationSource> <EquationSource Format="MATHML"><math> <mrow> <mi>O</mi> <mo stretchy="false">(</mo> <mn>1</mn> <mo stretchy="false">/</mo> <mi>k</mi> <mo stretchy="false">)</mo> </mrow> </math></EquationSource> </InlineEquation> in terms of the Karush–Kuhn–Tucker residual and the objective error. Based on the complexity results, we design an adaptive strategy of restart and penalty parameter update to improve the efficiency and robustness of the HPR method. We conduct extensive numerical experiments on different LP benchmark datasets using an NVIDIA A100-SXM4-80GB GPU in different stopping tolerances. Our solver’s Julia version achieves a <b>2.39x</b> to <b>5.70x</b> speedup measured by SGM10 on benchmark datasets with presolve (<b>2.03x</b> to <b>4.06x</b> without presolve) over the award-winning solver PDLP with the tolerance of <InlineEquation ID="IEq2"> <EquationSource Format="TEX">\(10^{-8}\)</EquationSource> <EquationSource Format="MATHML"><math> <msup> <mn>10</mn> <mrow> <mo>-</mo> <mn>8</mn> </mrow> </msup> </math></EquationSource> </InlineEquation>. The Julia implementation of HPR-LP is available for downloading at <a href="https://github.com/PolyU-IOR/HPR-LP">https://github.com/PolyU-IOR/HPR-LP</a>.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

HPR-LP: An implementation of an HPR method for solving linear programming

  • Kaihuang Chen,
  • Defeng Sun,
  • Yancheng Yuan,
  • Guojun Zhang,
  • Xinyuan Zhao

摘要

In this paper, we introduce an HPR-LP solver, an implementation of a Halpern Peaceman–Rachford (HPR) method with semi-proximal terms for solving linear programming (LP). The HPR method enjoys the iteration complexity of \(O(1/k)\) O ( 1 / k ) in terms of the Karush–Kuhn–Tucker residual and the objective error. Based on the complexity results, we design an adaptive strategy of restart and penalty parameter update to improve the efficiency and robustness of the HPR method. We conduct extensive numerical experiments on different LP benchmark datasets using an NVIDIA A100-SXM4-80GB GPU in different stopping tolerances. Our solver’s Julia version achieves a 2.39x to 5.70x speedup measured by SGM10 on benchmark datasets with presolve (2.03x to 4.06x without presolve) over the award-winning solver PDLP with the tolerance of \(10^{-8}\) 10 - 8 . The Julia implementation of HPR-LP is available for downloading at https://github.com/PolyU-IOR/HPR-LP.