I am using cp.SAT 9.13, cpModel and cpSolver for a scheduling problem. Basically is to schedule jobs to workers. There are 6 objectives, their weighted sum is the final objective.
To speed up, I firstly optimized 5 objectives. Get a solution from minimizing the weighted sum of the 5 objectives. The solution becomes the hinter to the next solver.
Secondly, optimize weighted sum of 6 objectives together. Models are exactly the same. The additional objective in the 2nd step is the sum(work start of every jobs), try to schedule the work earlier in the span.
Why adding additional objective will cause infeasible? It is not additional constraint.
Log as below,
Starting presolve at 0.01s
The solution hint is complete and is feasible. Its objective value is 1.20001067e+10.
...
Preloading model.
#Bound 0.58s best:inf next:[-4800,4.80002712e+10] initial_domain
The solution hint is complete, but it is infeasible! we will try to repair it.
#Model 0.58s var:1708/1708 constraints:2650/2650
Starting search at 0.58s with 8 workers.
6 full problem subsolvers: [core, default_lp, max_lp_sym, no_lp, quick_restart, reduced_costs]
2 first solution subsolvers: [fj, fs_random_no_lp]
12 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, ls, rins/rens, rnd_cst_lns, rnd_var_lns, scheduling_intervals_lns, scheduling_precedences_lns, scheduling_time_window_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]
1 ignored subsolver: [fixed]
#1 0.72s best:3.60000267e+10 next:[-4800,3.60000267e+10] fj_restart_decay_perturb(batch:1 lin{mvs:404 evals:2'206} gen{mvs:559 evals:1'770} #w_updates:167 #perturb:0)