As part of a final project for my linear programming course, I have been asked to discuss implementations of pivot algorithms, including which combinations of the ideas we have talked about in class this fall are actually used by available solvers today. Would someone be able to answer or point me to resources on the following questions?
From my work so far with optimization solvers, I see primal and dual simplex seem to be the two pivot algorithms implemented. Do any commonly used solvers implement any others?
I've learned in a previous LP course that revised simplex can greatly improve the efficiency of pivot calculations for LP's. Is revised simplex commonly used within today's solvers? If so, is there any specific variants of it that are most popular? If it isn't used, are there any other methods of calculating pivots employed?
When it comes to deciding how to pivot, we have learned about least ratios and lexicographic minimums for picking new bases as well as Bland's rule for avoiding cycles. Are these concepts still relevant for today's solvers, and if so are there any specific variants that are most popular? If not, what other kinds of pivoting rules and cycle avoidance techniques are common?
I know from my time working with OR scientists before grad school that my colleagues would talk about preprocessing as being a significant source of the improvements in which optimization models could be solved by solvers. What kinds of things are done for preprocessing and can any of them be done in general for all LP's? Is there anything in addition to preprocessing that solvers do outside of selecting and calculating pivots that help solve performance?