Я немного разобрался, как добавляются столбцы, причем все из английской литературы, там достаточно много примеров. К сожалению, на русском языке встречается только сухая теория с формулами и без примеров. В общем, столбцы только меняются, не добавляются новые. у меня другая проблема возникла. Вот маленький пример:
Длина исходной заготовки
.
Необходимо выполнить следующий заказ на раскрой (длина/количество):
Простейший план раскроя, для начального решения задачи симплекс-методом:
1. . Максимальное кол-во заготовок первого типа, которые можно разместить в заданной длине
2. Максимальное кол-во заготовок второго типа, которые можно разместить в заданной длине. (Целая часть числа)
3. Максимальное кол-во заготовок третьего типа, которые можно разместить в заданной длине
Таким образом, получаются исходные коэффициенты при переменных в ограничениях в задаче линейного программирования:
Решается задача лин. программирования, получаются следующие двойственные оценки из решения :
.
Двойственные оценки, длину каждой детали и размер исходной заготовки передаем в задачу о рюкзаке.
Решение задачи о рюкзаке:
Значения переменных:
Значение "рюкзачной" функции, ну или максимальная стоимость всего рюкзака:
.
Теперь, заменяем сгенерированным столбцом (это значения переменных в задаче о рюкзаке) первый столбец исходных ограничений.
Получаются следующие коэффициенты при переменных в ограничениях задачи линейного программирования:
А чтобы вычислить , какой столбец заменить, выполняются все те же операции при замене столбца как в обычном модифицированном симплекс-методе. Двойственные оценки решенной задачи :
.
Решение задачи о рюкзаке дает следующее решение:
Значения переменных:
Значение "рюкзачной" функции, ну или максимальная стоимость всего рюкзака:
.
Но такое значение уже было получено на предыдущем шаге, а функция еще не равна 1! Если на этом остановить решение, то решение всей задачи о раскрое не
будет оптимальным, а именно нужно использовать 234 заготовки. Сравнивая решение с перебором всех вариантов раскроя и решение
целочисленной задачи лин. программирования дает 225 заготовок.
Незнаю что делать.