At first glance both approaches appear to be very similar. So, I wondered where lie the major differences between integer programming and constraint programming?...Read more

I've regularly encountered that there are too many constraints to categorize into just hard and soft constraints. For example: Physical constraints (very hard), e.g. 1 person can only be at 1 spot at the same timeLegal constraints (hard), e.g. 1 person can only do 1 shift per dayUnassigned constraints (less hard), e.g. each shift must be assigned (broken during overconstrained planning)Non-disruptive constraints (even less hard), e.g. don't change the schedule unless it's to avoid breaking harder constraints given the input changeMonetary const...Read more

Once a model is implemented in PuLP, how do you change a coefficient (e.g., $a_{ij}$, $b_i$ or $c_j$) of a program of the from $\min\{c^{\top}x: Ax=b, x\geq0\}$?Specifically:How to update coefficients or RHSs?Once it is updated, do we have to tell pulp to update (e.g., in Gurobi we would do model.update()) ?Does pulp re-optimize or starts from scratch?...Read more

How to formulate (linearize) a maximum function in a constraint? Suppose $C = \max \{c_1, c_2\}$, where both $c_1$ and $c_2$ are variables. If the objective function is minimizing $C$, then it can be simply done by applying $C \geqslant c_1$, and $C \geqslant c_2$. But if the objective function is non-regular, e.g. earliness tardiness, the value of $C$ will be larger than the maximum of $c_1$ and $c_2$. So my question is how to formulate it correctly?...Read more

When solving a routing problem with time windows, unless you go for the arc-based math program that describes it, you have to check time windows "manually." For example, generating routes with any procedure would require this verification in the route generation process. Are there computational (or numerical or mathematical) tricks to perform this constraint verification quickly for a given route (sequence of nodes)? In particular (and this is the harder case) when you can't wait until the time window starts (meaning, can't arrive way too early...Read more

There are many naturally multi-stage (i.e., more than two) stochastic programming problems that are approximated by a two-stage stochastic programming model due to the complete intractability of the 'real' model. For example, consider a 10 period location-transportation problem with some dependencies between the periods so that the solution of one of the periods determines possible recourse actions for the period thereafter. With a two-stage approximation I imply that we consider, in terms of location-transportation, a first-stage decision wher...Read more