mosek

On the iterative implementation of mosekopt for large linear programs


I have to solve a linear program with a very large number of constraints. I use MOSEK (mosekopt, with MSK_IPAR_INTPNT_BASIS set equal to MSK_BI_NEVER to save time). The solver takes time to solve the program due to the large dimension.

I thought about manually coding the following iterative procedure:

  1. Take a random subset of constraints and solve the restricted linear program.

  2. If a solution of the restricted linear program does not exist, stop.

  3. If a solution of the restricted linear program exists, check if it is a solution of the original linear program. If yes, stop. If not, repeat from 1. with a larger set of constraints that includes the constraints of this iteration.

The procedure does not seem to produce a notable saving of time. I wonder whether this is because 1.,2.,3. are essentially what the solver does without needing my input. Could you advise?

Could I do improve things if, when moving from 3. to 1., I supply to mosekopt the old solution of the restricted linear program?


Solution

  • This may or may not be faster, than using Mosek on the complete problem. At least theoretical your approach is inferior.

    You say nothing of the dimension of the problem that would be interesting to know. Or how long it takes to solve the complete problem.

    One issue tricky is how many and which constraints you are adding in 3. That will be very important.