Solver Tips and Tricks
You should not enter idle time unnecessarily ( > 0) when creating transition matrix definitions. Neither should you switch non-standard setup at resource unnecessarily when creating resources. It can have severe performance penalties for the solver, especially when utility/enabling claim on changeover or setup is present.
When a schedule is not feasible and is detected before the search phase starts the solver generates the following message: "Restarting, some inconsistencies were detected". The solver starts over, adding all the constraints of all batches to the model and finally printing the constraint that was violated. The solver also prints the batch state before the violated constraint was added. This can help identify why the schedule is not feasible. See below for an example of a log output and an explanation.
The batch state is described as follows: of each segment of the batch the valid propagated minimum and maximum time bound are printed of the start and end variable of the segment.
The propagated minimum and maximum duration of each segment is printed as well.
Remember that initial domains of segments are the complete horizon interval. Each time a constraint is added to the model, some variables involved with the constraint can get smaller domains.
From these derived valid bounds, one should reason why these bounds are as they are.