Add LBB relaxed NLP node solver - #3946
Conversation
|
Coordination note for #3942: #3942 and this PR fix different bugs. #3942 fixes the LBB time-limit result path for #3941; this PR fixes continuous-node solver dispatch for #3945. This PR does not supersede #3942. I checked the combined patches with Recommendation: merge #3942 first, then refresh this branch to resolve the |
|
@bernalde - Required legal acknowledgement was deleted and tests are failing. Please feel free to reopen with the correct template once tests are passing. |
|
Replaced by #4012. This PR was closed because its description did not follow the repository pull request template — the AI-Use Disclosure and Legal Acknowledgement sections were absent. GitHub would not allow it to be reopened, so the work continues in a new PR. #4012 carries over the implementation and tests from here unchanged, rebased onto current The coordination note from this thread still applies, with the numbers updated: #4012 touches Issue #3945 remains open. The discussion here remains the historical record; this branch was left untouched so the diff stays readable. |
Summary
relaxed_nlp_solver/relaxed_nlp_solver_argsrole for GDPopt LBB transformed node subproblems that have no unfixed discrete variables.relaxed_nlp_solveris unset, preserving LBB's current global-bounding behavior for nonconvex nodes.Coordination
pyomo/contrib/gdpopt/tests/test_LBB.py, so this PR may need a small conflict resolution after Fix GDPopt LBB time-limit results #3942 lands.Tests
pytest -q pyomo/contrib/gdpopt/tests/test_LBB.py::TestGDPoptLBBNodeSolverDispatch pyomo/contrib/mindtpy/tests/test_mindtpy_no_discrete.py::TestMindtPyShortCircuitRouting::test_goa_short_circuit_fixed_discrete_nlp_uses_nlp_solver5 passed in 0.99spytest -q pyomo/contrib/gdpopt/tests/test_LBB.py pyomo/contrib/mindtpy/tests/test_mindtpy_no_discrete.py35 passed, 9 skipped, 2 deselected in 1.70spytest -q pyomo/contrib/gdpopt/tests78 passed, 35 skipped, 5 deselected in 46.45spython -m black --check pyomo/contrib/gdpopt/branch_and_bound.py pyomo/contrib/gdpopt/tests/test_LBB.py pyomo/contrib/mindtpy/algorithm_base_class.py pyomo/contrib/mindtpy/tests/test_mindtpy_no_discrete.py4 files would be left unchangedNotes
Closes #3945