Skip to content

Conversation

nguidotti
Copy link
Contributor

This PR move the LU factorization from the dual_phase2 routine to the new method in basis_update_mpf_t and implements a new routine for computing the phase 2 of the dual simplex from an existing basis_update_mpf_t.

This is the first step in implementing the LU factorization reuse in the branch-and-bound.

Checklist

  • I am familiar with the Contributing Guidelines.
  • Testing
    • New or existing tests cover these changes
    • Added tests
    • Created an issue to follow-up
    • NA
  • Documentation
    • The documentation is up to date with these changes
    • Added new documentation
    • NA

@nguidotti nguidotti requested a review from a team as a code owner September 9, 2025 13:44
@nguidotti nguidotti requested review from kaatish and rg20 September 9, 2025 13:44
@nguidotti
Copy link
Contributor Author

/ok to test a3e50f8

@nguidotti nguidotti added non-breaking Introduces a non-breaking change dual_simplex labels Sep 9, 2025
@nguidotti nguidotti requested a review from chris-maes September 9, 2025 14:18
@nguidotti nguidotti added this to the 25.10 milestone Sep 9, 2025
@nguidotti nguidotti added the improvement Improves an existing functionality label Sep 15, 2025
Copy link

🔔 Hi @anandhkb, this pull request has had no activity for 7 days. Please update or let us know if it can be closed. Thank you!

If this is an "epic" issue, then please add the "epic" label to this issue.
If it is a PR and not ready for review, then please convert this to draft.
If you just want to switch off this notification, then use the "skip inactivity reminder" label.

@nguidotti
Copy link
Contributor Author

nguidotti commented Sep 26, 2025

This PR solves 89/92 instances from netlib with high precision, same as the main branch. The only "problematic" instances are: cycle , e226 and pilot87.

Below are the errors for each instance with both absolute-dual-tolerance and relative-dual-tolerance set to 1E-8.

================================================================================
    Problem        Computed        Reference       Abs Error       Rel Error   
================================================================================
25fv47             5.501846e+03    5.501846e+03    3.170000e-05    5.761703e-09
80bau3b            9.872242e+05    9.872322e+05    7.968720e+00    8.071779e-06
adlittle           2.254950e+05    2.254950e+05    1.600000e-04    7.095503e-10
afiro             -4.647531e+02   -4.647531e+02    1.400000e-07    3.012352e-10
agg               -3.599177e+07   -3.599177e+07    1.300000e-02    3.611936e-10
agg2              -2.023925e+07   -2.023925e+07    4.400000e-02    2.173993e-09
agg3               1.031212e+07    1.031212e+07    3.500000e-02    3.394066e-09
bandm             -1.586280e+02   -1.586280e+02    4.500000e-07    2.836826e-09
beaconfd           3.359249e+04    3.359249e+04    6.999995e-06    2.083798e-10
blend             -3.081215e+01   -3.081215e+01    4.600000e-08    1.492918e-09
bnl1               1.977630e+03    1.977629e+03    2.744000e-04    1.387520e-07
bnl2               1.811237e+03    1.811237e+03    3.999999e-07    2.208435e-10
boeing1           -3.352136e+02   -3.352136e+02    4.900000e-07    1.461755e-09
boeing2           -3.150187e+02   -3.150187e+02    2.000002e-08    6.348834e-11
bore3d             1.373080e+03    1.373080e+03    4.200000e-06    3.058816e-09
brandy             1.518510e+03    1.518510e+03    3.500000e-06    2.304891e-09
capri              2.690013e+03    2.690013e+03    3.800000e-06    1.412633e-09
cycle             -5.224928e+00   -5.226393e+00    1.465115e-03    2.803300e-04
czprob             2.185197e+06    2.185197e+06    1.100000e-03    5.033872e-10
d2q06c             1.227842e+05    1.227842e+05    2.515000e-02    2.048309e-07
d6cube             3.154917e+02    3.154917e+02    3.300000e-07    1.045987e-09
degen2            -1.435178e+03   -1.435178e+03    0.000000e+00    0.000000e+00
degen3            -9.872940e+02   -9.872940e+02    0.000000e+00    0.000000e+00
dfl001             1.126640e+07    1.126640e+07    4.000000e+00    3.550380e-07
e226              -1.163893e+01   -1.875193e+01    7.113000e+00    3.793210e-01
etamacro          -7.557152e+02   -7.557152e+02    9.260000e-06    1.225329e-08
fffff800           5.556796e+05    5.556796e+05    4.165000e-02    7.495326e-08
finnis             1.727911e+05    1.727910e+05    1.005300e-01    5.818013e-07
fit1d             -9.146378e+03   -9.146378e+03    2.400000e-06    2.623990e-10
fit1p              9.146378e+03    9.146378e+03    2.400000e-06    2.623990e-10
fit2d             -6.846429e+04   -6.846429e+04    6.000002e-06    8.763695e-11
fit2p              6.846429e+04    6.846429e+04    6.800001e-05    9.932186e-10
forplan           -6.642190e+02   -6.642187e+02    2.214700e-04    3.334293e-07
ganges            -1.095857e+05   -1.095864e+05    6.275600e-01    5.726625e-06
gfrd-pnc           6.902236e+06    6.902236e+06    5.000001e-04    7.244031e-11
greenbea          -7.255525e+07   -7.255525e+07    2.984600e-02    4.113555e-10
greenbeb          -4.302260e+06   -4.302148e+06    1.126535e+02    2.618541e-05
grow15            -1.068709e+08   -1.068709e+08    2.900000e-01    2.713553e-09
grow22            -1.608343e+08   -1.608343e+08    4.800000e-01    2.984437e-09
grow7             -4.778781e+07   -4.778781e+07    1.500000e-02    3.138876e-10
israel            -8.966448e+05   -8.966448e+05    1.400000e-04    1.561377e-10
kb2               -1.749900e+03   -1.749900e+03    1.000001e-07    5.714616e-11
lotfi             -2.526471e+01   -2.526471e+01    3.800000e-08    1.504075e-09
maros-r7           1.497146e+06    1.497185e+06    3.930650e+01    2.625360e-05
maros             -5.806374e+04   -5.806374e+04    1.000000e-06    1.722246e-11
modszk1            3.206197e+02    3.206197e+02    5.999999e-08    1.871376e-10
nesm               1.407604e+07    1.407607e+07    3.653500e+01    2.595539e-06
perold            -9.380755e+03   -9.380758e+03    2.787300e-03    2.971295e-07
pilot             -5.574865e+02   -5.574897e+02    3.190284e-03    5.722588e-06
pilot4            -2.581139e+03   -2.581139e+03    4.100000e-06    1.588446e-09
pilot87            3.018934e+02    3.017103e+02    1.830477e-01    6.067000e-04
pilot_ja          -6.113135e+03   -6.113134e+03    5.789000e-04    9.469774e-08
pilot_we          -2.720108e+06   -2.720103e+06    4.786100e+00    1.759529e-06
pilotnov          -4.497276e+03   -4.497276e+03    1.799999e-06    4.002421e-10
recipe            -2.666160e+02   -2.666160e+02    0.000000e+00    0.000000e+00
sc105             -5.220206e+01   -5.220206e+01    1.199999e-08    2.298759e-10
sc205             -5.220206e+01   -5.220206e+01    1.199999e-08    2.298759e-10
sc50a             -6.457508e+01   -6.457508e+01    4.100001e-08    6.349200e-10
sc50b             -7.000000e+01   -7.000000e+01    0.000000e+00    0.000000e+00
scagr25           -1.475343e+07   -1.475343e+07    3.900000e-02    2.643452e-09
scagr7            -2.331390e+06   -2.331389e+06    5.652000e-01    2.424306e-07
scfxm1             1.841676e+04    1.841676e+04    2.800000e-05    1.520354e-09
scfxm2             3.666026e+04    3.666026e+04    3.500000e-05    9.547122e-10
scfxm3             5.490125e+04    5.490125e+04    5.000000e-05    9.107259e-10
scorpion           1.878125e+03    1.878125e+03    2.700000e-06    1.437604e-09
scrs8              9.042970e+02    9.043000e+02    3.032190e-03    3.353080e-06
scsd1              8.666667e+00    8.666667e+00    4.300000e-09    4.961539e-10
scsd6              5.050000e+01    5.050000e+01    2.200000e-08    4.356436e-10
scsd8              9.050000e+02    9.050000e+02    7.000006e-08    7.734813e-11
sctap1             1.412250e+03    1.412250e+03    0.000000e+00    0.000000e+00
sctap2             1.724807e+03    1.724807e+03    2.900000e-06    1.681347e-09
sctap3             1.424000e+03    1.424000e+03    0.000000e+00    0.000000e+00
seba               1.571160e+04    1.571160e+04    0.000000e+00    0.000000e+00
share1b           -7.658932e+04   -7.658932e+04    2.100000e-05    2.741897e-10
share2b           -4.157322e+02   -4.157322e+02    2.600000e-07    6.254025e-10
shell              1.208825e+09    1.208825e+09    4.000000e+00    3.308997e-09
ship04l            1.793325e+06    1.793325e+06    2.000000e-03    1.115247e-09
ship04s            1.798715e+06    1.798715e+06    4.000000e-04    2.223810e-10
ship08l            1.909055e+06    1.909055e+06    1.400000e-03    7.333470e-10
ship08s            1.920098e+06    1.920098e+06    5.000001e-04    2.604034e-10
ship12l            1.470188e+06    1.470188e+06    7.000000e-04    4.761296e-10
ship12s            1.489236e+06    1.489236e+06    4.400000e-03    2.954535e-09
sierra             1.539436e+07    1.539436e+07    1.600000e-02    1.039341e-09
stair             -2.512670e+02   -2.512670e+02    1.900000e-07    7.561678e-10
standata           1.257699e+03    1.257699e+03    0.000000e+00    0.000000e+00
standmps           1.406017e+03    1.406017e+03    0.000000e+00    0.000000e+00
stocfor1          -4.113198e+04   -4.113198e+04    1.900000e-05    4.619277e-10
stocfor2          -3.902441e+04   -3.902441e+04    3.800001e-05    9.737497e-10
tuff               2.921478e-01    2.921478e-01    9.000001e-11    3.080633e-10
vtp_base           1.298315e+05    1.298315e+05    4.600000e-04    3.543055e-09
wood1p             1.442902e+00    1.442902e+00    1.600000e-09    1.108876e-09
woodw              1.304556e+00    1.304476e+00    7.934690e-05    6.082663e-05
================================================================================

@nguidotti nguidotti modified the milestones: 25.10, 25.12 Sep 26, 2025
Copy link

github-actions bot commented Oct 4, 2025

🔔 Hi @anandhkb, this pull request has had no activity for 7 days. Please update or let us know if it can be closed. Thank you!

If this is an "epic" issue, then please add the "epic" label to this issue.
If it is a PR and not ready for review, then please convert this to draft.
If you just want to switch off this notification, then use the "skip inactivity reminder" label.

@nguidotti nguidotti force-pushed the dual-simplex-update-basis branch from 7422762 to 181aef4 Compare October 7, 2025 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dual_simplex improvement Improves an existing functionality non-breaking Introduces a non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant