From 3cd5d8a6a8d0cb532fb84b0944b08cb8c1d8f163 Mon Sep 17 00:00:00 2001 From: Ramakrishna Prabhu Date: Tue, 31 Mar 2026 10:35:08 -0500 Subject: [PATCH 01/39] Release notes update --- RELEASE-NOTES.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 752f11aac7..d3d86d4de6 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,5 +1,17 @@ # Release Notes +## Release Notes 26.04 + +### New Features (26.04) + +### Breaking Changes (26.04) + +### Improvements (26.04) + +### Bug Fixes (26.04) + +### Documentation (26.04) + ## Release Notes 26.02 ### New Features (26.02) From 03c702607b7d93f538a16b6ecb6aec77a563369d Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 08:52:27 -0700 Subject: [PATCH 02/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index d3d86d4de6..7b6cfbfad8 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -3,12 +3,27 @@ ## Release Notes 26.04 ### New Features (26.04) +- Run no relaxation heuristics on the original problem (before presolve) +- New MIP cuts: clique cuts and implied bounds cuts +- Add option for using Batch PDLP in reliability branching ### Breaking Changes (26.04) ### Improvements (26.04) +- Generate more MIR and Knapsack cuts +- Improved reliability branching +- Run crossover separately on PDLP and Barrier in concurrent mode for MIP root relaxation +- Reduce time for Markowitz factorization in Dual Simplex +- Reduce time in dual push inside crossover +- Reduce number of free variables in barrier + ### Bug Fixes (26.04) +- Fix a issue with Papilo crashing +- Write quadratic terms out in MPS files +- Fix a issue in MIP solver where cuOpt was taking a long time to terminate after optimal solution found +- Fix an issue in barrier on problems with variables with infinite lower bounds + ### Documentation (26.04) From 900f50563bc1fd7224557a8e0c1f56432496ee04 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 08:54:48 -0700 Subject: [PATCH 03/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 7b6cfbfad8..12ff31bc4d 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -11,6 +11,7 @@ ### Improvements (26.04) - Generate more MIR and Knapsack cuts +- Improved numerics of mixed integer Gomory cuts - Improved reliability branching - Run crossover separately on PDLP and Barrier in concurrent mode for MIP root relaxation - Reduce time for Markowitz factorization in Dual Simplex From 5235b339e15e514b9093d5e2560362d91c407f20 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 08:55:53 -0700 Subject: [PATCH 04/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 12ff31bc4d..f2383124e6 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -23,7 +23,7 @@ - Fix a issue with Papilo crashing - Write quadratic terms out in MPS files - Fix a issue in MIP solver where cuOpt was taking a long time to terminate after optimal solution found -- Fix an issue in barrier on problems with variables with infinite lower bounds +- Fix an issue in barrier on problems containing variables with infinite lower bounds ### Documentation (26.04) From 01d32d9f960e8f7cb937476ad4d65daefc683fc9 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 08:57:17 -0700 Subject: [PATCH 05/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index f2383124e6..44800eab9b 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -11,6 +11,7 @@ ### Improvements (26.04) - Generate more MIR and Knapsack cuts +- Lift knapsack cuts - Improved numerics of mixed integer Gomory cuts - Improved reliability branching - Run crossover separately on PDLP and Barrier in concurrent mode for MIP root relaxation From 1f0098c9c68e3ea6909f537e7e8a521204cebe76 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 08:58:49 -0700 Subject: [PATCH 06/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 44800eab9b..038fa8fcf3 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -25,6 +25,7 @@ - Write quadratic terms out in MPS files - Fix a issue in MIP solver where cuOpt was taking a long time to terminate after optimal solution found - Fix an issue in barrier on problems containing variables with infinite lower bounds +- Fix a bug where batch PDLP for strong branching was running on the problem without cuts ### Documentation (26.04) From 123d46f39dfe81967e0cadfca7fd7f0c50c5bdc1 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:01:15 -0700 Subject: [PATCH 07/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 038fa8fcf3..ee8abd1924 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -5,7 +5,8 @@ ### New Features (26.04) - Run no relaxation heuristics on the original problem (before presolve) - New MIP cuts: clique cuts and implied bounds cuts -- Add option for using Batch PDLP in reliability branching +- Add option for using Batch PDLP in reliability branching +- Add UnboundedOrInfeasible termination status ### Breaking Changes (26.04) @@ -21,6 +22,7 @@ ### Bug Fixes (26.04) +- Fix incorrect termination status and replace with UnboundedOrInfeasible - Fix a issue with Papilo crashing - Write quadratic terms out in MPS files - Fix a issue in MIP solver where cuOpt was taking a long time to terminate after optimal solution found From 9126dc27579a37573363c383b1264ec6370796c0 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:01:46 -0700 Subject: [PATCH 08/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 - 1 file changed, 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index ee8abd1924..3fc26be0dd 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -15,7 +15,6 @@ - Lift knapsack cuts - Improved numerics of mixed integer Gomory cuts - Improved reliability branching -- Run crossover separately on PDLP and Barrier in concurrent mode for MIP root relaxation - Reduce time for Markowitz factorization in Dual Simplex - Reduce time in dual push inside crossover - Reduce number of free variables in barrier From ff65fd1f0a76a51caadc625c68a34945c3ca18e9 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:02:19 -0700 Subject: [PATCH 09/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 3fc26be0dd..64c90fbd6d 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -24,8 +24,8 @@ - Fix incorrect termination status and replace with UnboundedOrInfeasible - Fix a issue with Papilo crashing - Write quadratic terms out in MPS files -- Fix a issue in MIP solver where cuOpt was taking a long time to terminate after optimal solution found -- Fix an issue in barrier on problems containing variables with infinite lower bounds +- Fix a issue in MIP where cuOpt was taking a long time to terminate after optimal solution found +- Fix a issue in barrier on problems containing variables with infinite lower bounds - Fix a bug where batch PDLP for strong branching was running on the problem without cuts From 8a5f116bddf953abfc679e10e124c2405853cbac Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:02:58 -0700 Subject: [PATCH 10/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 64c90fbd6d..5ead632506 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -15,7 +15,7 @@ - Lift knapsack cuts - Improved numerics of mixed integer Gomory cuts - Improved reliability branching -- Reduce time for Markowitz factorization in Dual Simplex +- Reduce time for Markowitz factorization in dual simplex - Reduce time in dual push inside crossover - Reduce number of free variables in barrier From 898f6ad9b73fe93501a7f9955747d69ad6137b87 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:03:33 -0700 Subject: [PATCH 11/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 5ead632506..5480ae9a57 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -7,6 +7,7 @@ - New MIP cuts: clique cuts and implied bounds cuts - Add option for using Batch PDLP in reliability branching - Add UnboundedOrInfeasible termination status +- Exposed parameters for tuning heuristics ### Breaking Changes (26.04) From 5d9734af4ac6026e4db14b144716dd60998be71a Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:04:43 -0700 Subject: [PATCH 12/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 5480ae9a57..5dd08e4f4f 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -17,7 +17,7 @@ - Improved numerics of mixed integer Gomory cuts - Improved reliability branching - Reduce time for Markowitz factorization in dual simplex -- Reduce time in dual push inside crossover +- Reduce time for dual push inside crossover - Reduce number of free variables in barrier From 8d27dd13221a64116ad2d380297e33032c45e094 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:06:16 -0700 Subject: [PATCH 13/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 5dd08e4f4f..fc3c3de917 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -23,7 +23,8 @@ ### Bug Fixes (26.04) - Fix incorrect termination status and replace with UnboundedOrInfeasible -- Fix a issue with Papilo crashing +- Fix a issue with Papilo's probing presolver crashing. Fix to be pushed upstream +- Fix a issue with a missing stream sync in the probing cache that was causing a crash - Write quadratic terms out in MPS files - Fix a issue in MIP where cuOpt was taking a long time to terminate after optimal solution found - Fix a issue in barrier on problems containing variables with infinite lower bounds From 6ee99b03381f44fd3fbef8f3d93b47693c0c062a Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:10:30 -0700 Subject: [PATCH 14/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index fc3c3de917..02a9e434dc 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -19,6 +19,7 @@ - Reduce time for Markowitz factorization in dual simplex - Reduce time for dual push inside crossover - Reduce number of free variables in barrier +- Add gap information to primal heuristics logs when root relaxation solve still running ### Bug Fixes (26.04) @@ -29,6 +30,7 @@ - Fix a issue in MIP where cuOpt was taking a long time to terminate after optimal solution found - Fix a issue in barrier on problems containing variables with infinite lower bounds - Fix a bug where batch PDLP for strong branching was running on the problem without cuts +- Fix errors with x + x*x, +x, -x in Python API ### Documentation (26.04) From 93b6820b988e33d85e62c15397e4ece564a36bf0 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:12:27 -0700 Subject: [PATCH 15/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 02a9e434dc..9b79ad9779 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -31,6 +31,7 @@ - Fix a issue in barrier on problems containing variables with infinite lower bounds - Fix a bug where batch PDLP for strong branching was running on the problem without cuts - Fix errors with x + x*x, +x, -x in Python API +- Update to the latest version of PSLP which includes bug fixes for incorrect infeasible classification ### Documentation (26.04) From 989d0f0352723ca66299a1c1f327bc54791d2bc2 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:14:56 -0700 Subject: [PATCH 16/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 9b79ad9779..60207d3429 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -12,10 +12,12 @@ ### Breaking Changes (26.04) ### Improvements (26.04) +- Improved reliability branching - Generate more MIR and Knapsack cuts -- Lift knapsack cuts +- Improve aggregation and complementation in MIR cuts +- Use variable lower and variable upper bounds in MIR cuts - Improved numerics of mixed integer Gomory cuts -- Improved reliability branching +- Lift knapsack cuts - Reduce time for Markowitz factorization in dual simplex - Reduce time for dual push inside crossover - Reduce number of free variables in barrier From d654b523fd9bb276e9d9b168e868db4368ba95a0 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:16:13 -0700 Subject: [PATCH 17/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 60207d3429..ba3c6dd324 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -28,6 +28,7 @@ - Fix incorrect termination status and replace with UnboundedOrInfeasible - Fix a issue with Papilo's probing presolver crashing. Fix to be pushed upstream - Fix a issue with a missing stream sync in the probing cache that was causing a crash +- Fix a issue in CPU Feasibility Jump where variables could violate their bounds - Write quadratic terms out in MPS files - Fix a issue in MIP where cuOpt was taking a long time to terminate after optimal solution found - Fix a issue in barrier on problems containing variables with infinite lower bounds From 253e15420375ec82d1044925f64458838ba4ebe2 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:16:41 -0700 Subject: [PATCH 18/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index ba3c6dd324..61002dfbc9 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -8,6 +8,7 @@ - Add option for using Batch PDLP in reliability branching - Add UnboundedOrInfeasible termination status - Exposed parameters for tuning heuristics +- Add support for Python 3.14 ### Breaking Changes (26.04) From 6d7dbd8aa69978a737a7bdd73225f1be5d62db5d Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:18:03 -0700 Subject: [PATCH 19/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 61002dfbc9..32ce4eaaf0 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -39,6 +39,7 @@ ### Documentation (26.04) +- Update docs to clarify the usage of getIncumbentValues() in the Python API ## Release Notes 26.02 From ed795b3a37a53097fcf75e06c0a742cb0a2f2bba Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:21:53 -0700 Subject: [PATCH 20/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 32ce4eaaf0..6be4045909 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -29,6 +29,8 @@ - Fix incorrect termination status and replace with UnboundedOrInfeasible - Fix a issue with Papilo's probing presolver crashing. Fix to be pushed upstream - Fix a issue with a missing stream sync in the probing cache that was causing a crash +- Fix a issue in MIP leading to incorrect dual bound when nodes remain in the heap +- Fix a issue in MIP where nodes with objective less than the incumbent objective value were incorrectly fathomed - Fix a issue in CPU Feasibility Jump where variables could violate their bounds - Write quadratic terms out in MPS files - Fix a issue in MIP where cuOpt was taking a long time to terminate after optimal solution found From d97f4045ff7c76db03f8345b89d51245f34a2d40 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:24:07 -0700 Subject: [PATCH 21/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 6be4045909..a46de6a1db 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -31,7 +31,8 @@ - Fix a issue with a missing stream sync in the probing cache that was causing a crash - Fix a issue in MIP leading to incorrect dual bound when nodes remain in the heap - Fix a issue in MIP where nodes with objective less than the incumbent objective value were incorrectly fathomed -- Fix a issue in CPU Feasibility Jump where variables could violate their bounds +- Fix a issue in MIP where variables could violate their bounds in Feasibility Jump on the CPU +- Fix a issue in MIP where a race condition could occur when sharing solutions between branch and bound and heuristics - Write quadratic terms out in MPS files - Fix a issue in MIP where cuOpt was taking a long time to terminate after optimal solution found - Fix a issue in barrier on problems containing variables with infinite lower bounds From cf07fc9a303ce7159326bc83dfdf098f6ee0390f Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:26:47 -0700 Subject: [PATCH 22/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index a46de6a1db..bd9f7190c9 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -3,7 +3,7 @@ ## Release Notes 26.04 ### New Features (26.04) -- Run no relaxation heuristics on the original problem (before presolve) +- Run no relaxation heuristics before presolve - New MIP cuts: clique cuts and implied bounds cuts - Add option for using Batch PDLP in reliability branching - Add UnboundedOrInfeasible termination status From 859eb4898ea10fb74083f4643c912b002ff7d97c Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 09:31:59 -0700 Subject: [PATCH 23/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index bd9f7190c9..d2d8f5f913 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -26,18 +26,18 @@ ### Bug Fixes (26.04) -- Fix incorrect termination status and replace with UnboundedOrInfeasible -- Fix a issue with Papilo's probing presolver crashing. Fix to be pushed upstream -- Fix a issue with a missing stream sync in the probing cache that was causing a crash -- Fix a issue in MIP leading to incorrect dual bound when nodes remain in the heap -- Fix a issue in MIP where nodes with objective less than the incumbent objective value were incorrectly fathomed -- Fix a issue in MIP where variables could violate their bounds in Feasibility Jump on the CPU -- Fix a issue in MIP where a race condition could occur when sharing solutions between branch and bound and heuristics -- Write quadratic terms out in MPS files -- Fix a issue in MIP where cuOpt was taking a long time to terminate after optimal solution found -- Fix a issue in barrier on problems containing variables with infinite lower bounds -- Fix a bug where batch PDLP for strong branching was running on the problem without cuts -- Fix errors with x + x*x, +x, -x in Python API +- Fix a bug in LP/MIP where cuOpt reported incorrect termination status; we now correctly report UnboundedOrInfeasible +- Fix a bug in MIP where Papilo's probing presolver crashed; fix will be pushed upstream +- Fix a bug in MIP with a missing stream sync in the probing cache that was causing a crash +- Fix a bug in MIP leading to incorrect dual bound when nodes remain in the heap +- Fix a bug in MIP where nodes with objective less than the incumbent objective value were incorrectly fathomed +- Fix a bug in MIP where variables could violate their bounds in Feasibility Jump on the CPU +- Fix a bug in MIP where a race condition could occur when sharing solutions between branch and bound and heuristics +- Fix a bug in QP where quadratic terms were not written out to MPS files +- Fix a bug in MIP where cuOpt was taking a long time to terminate after optimal solution found +- Fix a bug in LP/barrier on problems containing variables with infinite lower bounds +- Fix a bug in MIP where batch PDLP for strong branching was running on the problem without cuts +- Fix a bug in Python API when using x + x*x, +x, -x expressions - Update to the latest version of PSLP which includes bug fixes for incorrect infeasible classification From aa6ed277d34715f0bc199782c5e437feba56fea3 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 17:17:54 -0700 Subject: [PATCH 24/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index d2d8f5f913..31dd74e59c 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -3,11 +3,11 @@ ## Release Notes 26.04 ### New Features (26.04) -- Run no relaxation heuristics before presolve -- New MIP cuts: clique cuts and implied bounds cuts +- Run no-relaxation heuristics before presolve +- Add new MIP cuts: clique cuts and implied bounds cuts - Add option for using Batch PDLP in reliability branching - Add UnboundedOrInfeasible termination status -- Exposed parameters for tuning heuristics +- Expose` parameters for tuning heuristics - Add support for Python 3.14 ### Breaking Changes (26.04) From a3f16e9ebd8fa97a9c6616455f5f94db68d9508f Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 31 Mar 2026 17:19:33 -0700 Subject: [PATCH 25/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 31dd74e59c..6ecd4dd5c2 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -22,7 +22,7 @@ - Reduce time for Markowitz factorization in dual simplex - Reduce time for dual push inside crossover - Reduce number of free variables in barrier -- Add gap information to primal heuristics logs when root relaxation solve still running +- Add gap information to primal heuristics logs when root relaxation is still solving ### Bug Fixes (26.04) From c15f31285ae39b74f62c542398b04f5356fac4f0 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 14:02:06 -0700 Subject: [PATCH 26/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 6ecd4dd5c2..821fdeb2e1 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -5,6 +5,7 @@ ### New Features (26.04) - Run no-relaxation heuristics before presolve - Add new MIP cuts: clique cuts and implied bounds cuts +- Add support for FP32 and mixed precision in PDLP - Add option for using Batch PDLP in reliability branching - Add UnboundedOrInfeasible termination status - Expose` parameters for tuning heuristics @@ -19,6 +20,7 @@ - Use variable lower and variable upper bounds in MIR cuts - Improved numerics of mixed integer Gomory cuts - Lift knapsack cuts +- Use objective function integrality when pruning node - Reduce time for Markowitz factorization in dual simplex - Reduce time for dual push inside crossover - Reduce number of free variables in barrier From 8ae42dfc1375e3ba2066388f3368c5031c14c9ca Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 14:04:41 -0700 Subject: [PATCH 27/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 821fdeb2e1..7588849e9b 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -12,7 +12,8 @@ - Add support for Python 3.14 ### Breaking Changes (26.04) - +- The solved_by_pdlp field in the Python LP solution object was changed to solved_by + ### Improvements (26.04) - Improved reliability branching - Generate more MIR and Knapsack cuts From c063a22bfbd43dd3bd76fe08a957576e49e7921c Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 14:05:39 -0700 Subject: [PATCH 28/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 7588849e9b..0b357169a5 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -10,6 +10,7 @@ - Add UnboundedOrInfeasible termination status - Expose` parameters for tuning heuristics - Add support for Python 3.14 +- Add support for writing presolved model to a file ### Breaking Changes (26.04) - The solved_by_pdlp field in the Python LP solution object was changed to solved_by From c09e1c5754da50e3328501a3399fb013b617e54f Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 14:05:59 -0700 Subject: [PATCH 29/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 0b357169a5..0246c987b6 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -8,7 +8,7 @@ - Add support for FP32 and mixed precision in PDLP - Add option for using Batch PDLP in reliability branching - Add UnboundedOrInfeasible termination status -- Expose` parameters for tuning heuristics +- Expose parameters for tuning heuristics - Add support for Python 3.14 - Add support for writing presolved model to a file From e5307e7d34d501eb0143cb5a42256a074fd91c6a Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 14:07:35 -0700 Subject: [PATCH 30/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 0246c987b6..bcbdcf92bc 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -37,6 +37,7 @@ - Fix a bug in MIP where nodes with objective less than the incumbent objective value were incorrectly fathomed - Fix a bug in MIP where variables could violate their bounds in Feasibility Jump on the CPU - Fix a bug in MIP where a race condition could occur when sharing solutions between branch and bound and heuristics +- Fix a bug in MIP where the solver was not respecting the time limit - Fix a bug in QP where quadratic terms were not written out to MPS files - Fix a bug in MIP where cuOpt was taking a long time to terminate after optimal solution found - Fix a bug in LP/barrier on problems containing variables with infinite lower bounds From 6241ca9165ff6770a233a3d11f7db94117c0c90f Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 14:09:50 -0700 Subject: [PATCH 31/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index bcbdcf92bc..96ca1787c9 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -38,6 +38,7 @@ - Fix a bug in MIP where variables could violate their bounds in Feasibility Jump on the CPU - Fix a bug in MIP where a race condition could occur when sharing solutions between branch and bound and heuristics - Fix a bug in MIP where the solver was not respecting the time limit +- Fix a bug in MIP where the solver terminated at the end of the root relaxation solve - Fix a bug in QP where quadratic terms were not written out to MPS files - Fix a bug in MIP where cuOpt was taking a long time to terminate after optimal solution found - Fix a bug in LP/barrier on problems containing variables with infinite lower bounds From 4fa63dfa7bec7f38af80a8da7de5c6b1e948f5c1 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 14:43:27 -0700 Subject: [PATCH 32/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 96ca1787c9..b8a8d5498f 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -22,6 +22,7 @@ - Use variable lower and variable upper bounds in MIR cuts - Improved numerics of mixed integer Gomory cuts - Lift knapsack cuts +- Improved row and column scaling for MIP - Use objective function integrality when pruning node - Reduce time for Markowitz factorization in dual simplex - Reduce time for dual push inside crossover From 076c7a29ac0399682b45b5360cdac339d13ae1fe Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Fri, 3 Apr 2026 15:07:48 -0700 Subject: [PATCH 33/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index b8a8d5498f..a8edd7227d 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -22,7 +22,7 @@ - Use variable lower and variable upper bounds in MIR cuts - Improved numerics of mixed integer Gomory cuts - Lift knapsack cuts -- Improved row and column scaling for MIP +- Improved row and objective scaling for MIP - Use objective function integrality when pruning node - Reduce time for Markowitz factorization in dual simplex - Reduce time for dual push inside crossover From 3c3953e8e67a4abc7973afaf4707c8169beaabda Mon Sep 17 00:00:00 2001 From: Ramakrishna Prabhu Date: Mon, 6 Apr 2026 10:14:28 -0500 Subject: [PATCH 34/39] fix style --- RELEASE-NOTES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index a8edd7227d..ddd8afe052 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -3,7 +3,7 @@ ## Release Notes 26.04 ### New Features (26.04) -- Run no-relaxation heuristics before presolve +- Run no-relaxation heuristics before presolve - Add new MIP cuts: clique cuts and implied bounds cuts - Add support for FP32 and mixed precision in PDLP - Add option for using Batch PDLP in reliability branching @@ -13,8 +13,8 @@ - Add support for writing presolved model to a file ### Breaking Changes (26.04) -- The solved_by_pdlp field in the Python LP solution object was changed to solved_by - +- The solved_by_pdlp field in the Python LP solution object was changed to solved_by + ### Improvements (26.04) - Improved reliability branching - Generate more MIR and Knapsack cuts From b8f4a8408719f57c71d7bc5ab86bb3842767e984 Mon Sep 17 00:00:00 2001 From: Ramakrishna Prabhu Date: Mon, 6 Apr 2026 10:20:29 -0500 Subject: [PATCH 35/39] fix style --- RELEASE-NOTES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index ddd8afe052..cd681db4fb 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -11,6 +11,7 @@ - Expose parameters for tuning heuristics - Add support for Python 3.14 - Add support for writing presolved model to a file +- gRPC based remote execution support on python, C and CLI interface ### Breaking Changes (26.04) - The solved_by_pdlp field in the Python LP solution object was changed to solved_by From b5b469761b2fe11f0b17938ec5658580919ca745 Mon Sep 17 00:00:00 2001 From: Ramakrishnap <42624703+rgsl888prabhu@users.noreply.github.com> Date: Mon, 6 Apr 2026 10:40:42 -0500 Subject: [PATCH 36/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index cd681db4fb..11fe2fb1bd 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -11,7 +11,7 @@ - Expose parameters for tuning heuristics - Add support for Python 3.14 - Add support for writing presolved model to a file -- gRPC based remote execution support on python, C and CLI interface +- gRPC based remote execution support on python, C and CLI interface for LP,MILP and QP ### Breaking Changes (26.04) - The solved_by_pdlp field in the Python LP solution object was changed to solved_by From d32bbb7a6fee17455a792de26c2622ea739e0f24 Mon Sep 17 00:00:00 2001 From: Ramakrishna Prabhu Date: Mon, 6 Apr 2026 11:09:03 -0500 Subject: [PATCH 37/39] add system release details --- RELEASE-NOTES.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 11fe2fb1bd..433fff4adc 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -11,7 +11,7 @@ - Expose parameters for tuning heuristics - Add support for Python 3.14 - Add support for writing presolved model to a file -- gRPC based remote execution support on python, C and CLI interface for LP,MILP and QP +- gRPC based remote execution support on python, C and CLI interface for LP, MILP and QP ### Breaking Changes (26.04) - The solved_by_pdlp field in the Python LP solution object was changed to solved_by @@ -71,6 +71,7 @@ - The signatures of the solution callbacks have changed for the Python API - To use PDLP warm start, presolve must now be explicitly disabled by setting `CUOPT_PRESOLVE=0`. Previously, presolve was disabled automatically +- Drop support for Python 3.10 ### Improvements (26.02) @@ -85,6 +86,8 @@ - Use explicit `cudaStream_t` with `cub::DeviceTransform` and non-blocking streams for GPU control - Enable barrier LP tests, add regression testing, and add SonarQube static analysis - Added parameter for specifying the random seed used by the solver +- Refactoring agentic skills to follow standard skill structure and add developer skills +- Adding skill to evolve skills ### Bug Fixes (26.02) From 1b3c3bcbf0cbc3c6853db85a0fdbd73c36bc3922 Mon Sep 17 00:00:00 2001 From: Chris Maes Date: Tue, 7 Apr 2026 11:47:29 -0700 Subject: [PATCH 38/39] Update RELEASE-NOTES.md --- RELEASE-NOTES.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 433fff4adc..0702a050e3 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -8,22 +8,22 @@ - Add support for FP32 and mixed precision in PDLP - Add option for using Batch PDLP in reliability branching - Add UnboundedOrInfeasible termination status -- Expose parameters for tuning heuristics +- Expose settings for tuning heuristics - Add support for Python 3.14 - Add support for writing presolved model to a file -- gRPC based remote execution support on python, C and CLI interface for LP, MILP and QP +- gRPC based remote execution support on Python, C and CLI interface for LP/QP and MIP ### Breaking Changes (26.04) - The solved_by_pdlp field in the Python LP solution object was changed to solved_by ### Improvements (26.04) -- Improved reliability branching +- Improve reliability branching by better ranking of unreliable variables - Generate more MIR and Knapsack cuts - Improve aggregation and complementation in MIR cuts - Use variable lower and variable upper bounds in MIR cuts -- Improved numerics of mixed integer Gomory cuts +- Improve numerics of mixed integer Gomory cuts - Lift knapsack cuts -- Improved row and objective scaling for MIP +- Improve row and objective scaling for MIP - Use objective function integrality when pruning node - Reduce time for Markowitz factorization in dual simplex - Reduce time for dual push inside crossover From fc5ca741d985102e517fd494daa86d6d23a97774 Mon Sep 17 00:00:00 2001 From: Ramakrishna Prabhu Date: Tue, 7 Apr 2026 16:08:25 -0500 Subject: [PATCH 39/39] move the release notes to 26.04 --- RELEASE-NOTES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 0702a050e3..b4d674d4c1 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -15,6 +15,7 @@ ### Breaking Changes (26.04) - The solved_by_pdlp field in the Python LP solution object was changed to solved_by +- Drop support for Python 3.10 ### Improvements (26.04) - Improve reliability branching by better ranking of unreliable variables @@ -29,6 +30,8 @@ - Reduce time for dual push inside crossover - Reduce number of free variables in barrier - Add gap information to primal heuristics logs when root relaxation is still solving +- Refactoring agentic skills to follow standard skill structure and add developer skills +- Adding skill to evolve skills ### Bug Fixes (26.04) @@ -71,7 +74,6 @@ - The signatures of the solution callbacks have changed for the Python API - To use PDLP warm start, presolve must now be explicitly disabled by setting `CUOPT_PRESOLVE=0`. Previously, presolve was disabled automatically -- Drop support for Python 3.10 ### Improvements (26.02) @@ -86,8 +88,6 @@ - Use explicit `cudaStream_t` with `cub::DeviceTransform` and non-blocking streams for GPU control - Enable barrier LP tests, add regression testing, and add SonarQube static analysis - Added parameter for specifying the random seed used by the solver -- Refactoring agentic skills to follow standard skill structure and add developer skills -- Adding skill to evolve skills ### Bug Fixes (26.02)