Performance difference between solving the same model with different objectives vs loading each model with a different objective from scratch each time

60 views
Skip to the first unread message

Enrique Fernández

unread,
22 Aug 2016, 00:25:3822/08/2016
to Gurobi Optimization
Hello,

I have to solve the same problem many times with different objective functions (up to 16 times per model and I solve hundreds of such models in the top level search that I'm doing).
My models are continuous SOCPs.

In terms of performance, should I expect a big difference between solving each problem from scratch vs loading the model once and changing the objective and solving each time?

Or the only performance increase is a) loading the model and b) presolve?

I would have to change my implementation significantly, and it'd be nice to know if the effort would be worth it in advance.

Thanks!

des...@gurobi.com

unread,
15 Sept 2016, 17:25:0815/09/2016
to Gurobi Optimization

SOCP uses the barrier algorithm and there is no warm start capability in the barrier algorithm. Thus, it is not going to solve faster by using the previous solution. You may gain a slight performance improvement by reducing the time needed to load the model.
 
Dr Amal de Silva
Gurobi Optimization

Enrique Fernández

unread,
11 Oct 2016, 13:22:1011/10/2016
to Gurobi Optimization
Thanks, this is good to know.

I assume the same applies to "extending models"?

What I mean: In my application I need to iteratively solve models that are exactly like the previous one, except for new variables and constraints that are added in each step (without modifying the previous variables and constraints explicitly, like adding elements to a chain).

Is it also the case that for SOCP models I should expect no performance increase in 1) vs 2)?

1) Solve each model from scratch
2) Solve the initial model. Then add new variables, and constraints. Call update. Solve again.

My models are generally pretty small and solve in almost no time. My biggest models are solved in less than 50 msec, but I have to solve thousands and thousands of those, so small improvements add up very significantly.

Thanks!
Reply all
Reply to author
Forward
0 new messages