Closed bknueven closed 5 months ago
TODO:
@michaelbynum if you have time and interest in reviewing this I would appreciate any feedback you might have.
Very cool!! If I understand correctly, this is performing FBBT on each subproblem in parallel, communicating to update the non-ant bounds, and repeating? I think that is what you said above in different words?
Very cool!! If I understand correctly, this is performing FBBT on each subproblem in parallel, communicating to update the non-ant bounds, and repeating? I think that is what you said above in different words?
Precisely.
This PR adds "Distributed Subproblem Presolve".
This functionality is available for all Hub and Spoke algorithms which inherit from SPBase. It can be enabled by passing
presolve=True
into the constructor, and is available with the--presolve
command line option.Leveraging the existing feasibility-based bounds tightening (FBBT) available in Pyomo, this presolver will tighten the bounds on all variables, including the non-anticipative variables. If the non-anticipative variables have different bounds, the bounds among the non-anticipative variables will be synchronized to utilize the tightest available bound.
In its current state, the user might opt-in to presolve for two reasons:
The PR is structured in such a way that we can add additional presolve capability to mpi-sppy without too much effort.