HPresolve::initialRowAndColPresolve can account for a significant proportion of the time when presolving models with a lot of fixed columns. This is due to the overhead of creating and then updating the dynamic storage of the model during presolve.
As an example, a model from a client has 35631 / 108047 fixed columns, and removing them accounts for 1/3 of the time in presolve. They also constitute a non-trivial overhead when creating the initial dynamic storage of the model
Some non-trivial code changes are required, since the initial fixes will have to be accommodated in the postsolve stack before creating the copy of the model used in presolve
HPresolve::initialRowAndColPresolvecan account for a significant proportion of the time when presolving models with a lot of fixed columns. This is due to the overhead of creating and then updating the dynamic storage of the model during presolve.As an example, a model from a client has 35631 / 108047 fixed columns, and removing them accounts for 1/3 of the time in presolve. They also constitute a non-trivial overhead when creating the initial dynamic storage of the model
Some non-trivial code changes are required, since the initial fixes will have to be accommodated in the postsolve stack before creating the copy of the model used in presolve