我正在尝试解决Scilab中的一维切割库存问题,但是我没有可行的解决方案。
logLength = 40; // width of the roll
lengthlist = [8; 12; 16; 20]; // size of items
quantity = [90; 111; 55; 30]; // demand for each item
nLengths = length(lengthlist); // quantity of different cuts
patterns = diag(floor(logLength./lengthlist)); // creates a feasible
solution, although far from optimal
nPatterns = size(patterns,2); // number of patterns
c=ones(nPatterns,1); // cost for each patter is equal (1)
所以我使用karmarkar函数,如下所示:
xopt=karmarkar(patterns,quantity,c)
结果为:
xopt =
18.
37.
27.5
0.0004578
它满足前三个项目的需求(数量),但不满足第四个项目的需求(数量)。不知道我的错误在哪里。
谢谢。