Я пытаюсь решить проблему заготовки 1D в 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
Это удовлетворяет спрос (количество) для первых 3 предметов, но не для четвертого.Понятия не имею, где моя ошибка.
Заранее спасибо.