takje
takje

Reputation: 2800

Drawbacks of avoiding crossover after barrier solve in linear program

I am running a large LP (approximately 5M non-zeros) and I want to speed up the solving process. I tried a concurrent solve to test which algorithm solves my problem the quickest and I found that the barrier method is the clear winner (solver = Xpress MP, but I guess that it would be the same for other solvers).

However, I want to further speed it up. I noticed that the real barrier solve takes less than 1% of the total solution time. The remainder of the time is spend in the crossover (~40%) and the primal solve (to find the corner solution in the new basis) (~60%). Unfortunately, I couldn't find a setting to tell the solver to do the dual crossover (there is one in Cplex, but I don't have a license for Cplex). Therefore I couldn't compare if this would be quicker.

Therefore I tried to turn off the crossover which yields a huge speed increase, but there are some disadvantages according to the documentation. So far, the drawbacks that I know of are:

My question(s) is(are) simple. What other drawbacks are important to justify the very inefficient crossover step (both Cplex and Xpress MP enable the crossover as default setting). Alternatively, is my problem exceptional and is the crossover step very quick in other problems? Finally, what is wrong with having midface solutions (this means that a corner optimum is also not unique)?

Sources:

Upvotes: 3

Views: 2194

Answers (1)

Erwin Kalvelagen
Erwin Kalvelagen

Reputation: 16782

Main disadvantage: the solution will be "ugly", that is many 0.000001 and 0.9999999 in the solution values. Secondly you may get somewhat different duals. Finally a basis is required to do fast "hot starts". One possible way to speed up large models up is to use a simplex method and using an advanced basis from a representative base run.

Upvotes: 4

Related Questions