I am currently working on a Supply Chain problem (LS-U-B) and I am facing some issues that I can not solve.
I have a standard formulation where the objective funtion is to minimize the total costs (Inventory and Backlog).
The “classical” flow constraints are:
Intenvory(s-1) + Production(s) + Backlog(s) =Demand(s) + Inventory(s) + Backlog(s-1)
where s is the period (from 2 to 10).
Production(s) + Backlog(s) = Demand(s) + Inventory(s)
where s is the period (at time t=1)
The standard model is running as it should without problem.
However, I have to build an extended formulation for this constraint (strenghten the formulation) and it does not work.
To do so, I created a new variable Production(s,r) representing the Production done at period s for the demand period r.
Consequently, the following variables are:
Inventory(s) = sum[r|ord(r)<=ord(s), sum[y|ord(y)>=ord(s)+1, Production(r,y)]]
Backlog(s) = sum[r|ord(r)>=ord(s)+1, sum[y|ord(y)<=ord(s), Production(r,y)]]
where y is also representing the time period.
Therefore, the flow constraint becomes:
sum[s,Production(s,r)] = Demand(r)
However, if I run this model. It returns “infeasible”. It is even stranger because when I limit the index of the last constraint on ord(r)>1 or ord(r)<10 for instance, the model is running as it should.
Do you have an idea from where this bug is coming?
I have also try to build alternative extended formulation but it is always the same problem, it does not run when r=1 (or r=10) is define.
Thank you for help and take care!