[Cbc] Making CBC run faster

Haroldo Gambini Santos haroldo.santos at gmail.com
Mon Jun 15 19:32:50 EDT 2015


Hi Mona,

I did some experiments with CPLEX and CBC for a (nurse) rostering problem.

Santos, Haroldo G.; Toffolo, Túlio A.M.; Gomes, Rafael A.M. and Ribas, 
Sabir. Integer programming techniques for the nurse rostering problem. 
Annals of Operations Research 
<http://www.decom.ufop.br/haroldo/papers/Santos2014.pdf>, 2014.

Recent versions of CBC have the zero half cuts, which usually give one 
improvement for scheduling formulations. Rewrite your problem in terms 
of stronger constraints may help...

AFAIK CBC is the fastest open source MIP solver. There is SCIP which is 
very fast, but it is not free for commercial use.

Cheers,

On 15-06-2015 11:15, Mona Rahn wrote:
> Hi all,
>
> I am trying to program software for automated roster planning. My 
> program works fine if I use CPLEX, but the final goal is to use CBC 
> (or some other free solver). I have several cases which CPLEX solves 
> in about half a minute, while CBC is still not done after 10 minutes.
>
> Do you have a tip how to make CBC run faster? I.e., is it better to 
> add constraints / variables? Or to remove them? Or can I influence the 
> solver in any other way? Or is there another free solver which might 
> run faster?
>
> Here are some  more details about the model: I use MIPs,
>
>   * the variables are essentially binary variables, one for each tuple
>     (worker, time, task)
>   * the constraints consist of
>       o the intuitive roster constraints such as "there is at most one
>         task for each worker at each time", "each task must be
>         executed by exactly one worker", etc.
>       o additional constraints such as "for every worker, Task X must
>         take at most 30% of his time" (where Task X is some unpleasant
>         task)
>       o additional constraints such as "after doing Task X, every
>         worker has to take a break", "Task Y is forbidden after Task X"
>   * the objective function - which is to be minimized - can be
>       o the number of additional workers needed to make the schedule
>         feasible, or (once there is a feasible schedule)
>       o the maximum percentage of Task X any worker has to do.
>
> Thank you in advance!
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc

-- 
==================================================
Haroldo Gambini Santos
D.Sc, Computer Science
Universidade Federal de Ouro Preto
http://www.decom.ufop.br/haroldo/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20150615/ce522f1d/attachment.html>


More information about the Cbc mailing list