Forum Discussion
FICO
8 months agoCommunity Manager
A specific separation procedure, $(l,S)$ Inequalities, to solve the lot-sizing problem
Dear support team, I have tried to use a specific separation procedure, $(l, S)$ Inequalities, to solve the lot-sizing problem proposed in the references, like Algorithm and formulations for lot siz...
FICO
8 months agoCommunity Manager
Hi Abbas,
thank you for coming back to us. We are not a 100% sure what your intention is and where the problem lies. I will just provide a few comments and hope these help.
- Back to the two inequalities you are mentioning in your first question. As I assumed these are identical. Both represent the same (l,S) inequality. Summing over the flow conservation constraints (involving x and s variables) for $j \in L$ in the standard ULS formulation from the Wolsey paper and adding them to the first inequality gives the second.
- Now it depends on which model you are solving. The literature about different variants of LS is rich and this is not the place to discuss all of them. The mentioned Mosel model and python sibbling are variants of ULS in the space of the x and y variables. That is, only the first inequality can be used with this model. The model further imposes capacity constraints, so it is not exactly the uncapacitated ULS variant your are referring to and that you seem to implement in your examples.
- The Mosel and python code are just showcasing the use of user cutting planes. They are are based on a simple separation procedure for (l,S) inequalities, choosing the set S greedily such as to minimize the left hand side, maximizing potential violation. It is not said at all that using these additional cuts with this separation procedure actually accelerates the solve. Xpress has its own internal cutting place procedures. It might be very effective solving your lot sizing problem without any "help". (You can switch off all Xpress cuts using cutstrategy=0.)
- When you remove the integrality constraints the problem becomes an LP. Xpress still triggers an MILP solve because you have an optnode callback set. However, without doing anything else, the root LP solution is detected as globally feasible very early by some heuristic and the solve will terminate with that solution without actually calling your separation routine. If you want to mimic a pure cutting plane procedure with only your cutting planes, you have to switch off all heuristics (heuremphasis=0). This should trigger the callback until it returns no cut anymore.
Best regards,
Christian
Related Content
Related Content
Mapping methods between XPRBctr and new class Inequality
I'm porting a Java application to c++ (I'm using latest Xpress Version). From guide I understood that XPRBctr old BCL class has been mapped to Inequality, but I cannot find some methods (i.e. addTerm...1 year agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum1 unread comment1 unread0Views0likes1CommentContainer separation
Hi, I have a problem that I cannot solve for about a week. I have defined a set of Containers =[1,2,3,4,5,6] where bins have to be loaded. Bins come from differen suppliers = [L1,L2,L3], are loaded ...10 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum2 unread comments2 unread0Views0likes2CommentsProcedure error, why?
Why does this result in an error message (Syntax Error before ")")? procedure sInitialise() declarations end-declarations initializations from "mmsheet.excel:Dataset.xlsx" mFracRet as "noin...8 years agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum1 unread comment1 unread0Views0likes1Comment