Thanks so much for your quick reply. Really appreciate it.
I've taken your suggestions of reducing the precision and also narrowed the bounds by using a custom epoch. This has definitely helped somewhat, but I am still seeing poorer performance than I'd hope for. In the attached example there are more intervals (now 15), but they are using much smaller bounds:
#Variables: 75 (#ints:15 in objective)
- 30 in [0][600,660]
- 15 in [0][600,1920]
- 15 in [0,1]
- 15 in [0,1320]
Despite this, I see similar behaviour where the solver finds the optimal solution very quickly but then takes quite a long time to prove that it is optimal:
Interleaved subsolvers: [feasibility_pump, rnd_var_lns_default, rnd_cst_lns_default, graph_var_lns_default, graph_cst_lns_default, scheduling_time_window_lns_default, scheduling_random_lns_default, rins_lns_default, rens_lns_default]
#Bound 0.01s best:-inf next:[-0,19798] bool_core num_cores:1 [core:3 mw:1 d:0] assumptions:13 depth:2 fixed_bools:0/81
#Bound 0.01s best:-inf next:[-0,19796] bool_core num_cores:2 [core:1 mw:1 d:2] assumptions:13 depth:2 fixed_bools:0/86
#Bound 0.01s best:-inf next:[-0,19794] bool_core num_cores:3 [core:1 mw:1 d:2] assumptions:13 depth:2 fixed_bools:1/91
#1 0.01s best:3840 next:[3842,19794] default_lp fixed_bools:0/72
#Bound 0.01s best:3840 next:[3842,19792] bool_core num_cores:4 [core:1 mw:1 d:2] assumptions:13 depth:2 fixed_bools:2/96
[…]
#Bound 42.01s best:3840 next:[3842,5248] default_lp
#Done 42.12s default_lp
Is there any more that you could recommend I do to optimise this?
Cheers,
Oliver