Для связи в whatsapp +905441085890

Пример №2. Задача о раскрое.

Пример №2. Задача о раскрое.

Для изготовления брусьев трех длин (0,2; 0,3 и 0,5 м) на распил поступили бревна длиной 1 м. Нужно получить не менее 150 и не более 200 брусьев длиной 0,2 м; не менее 200 и не более 300 брусьев длиной 0,3 м; не менее 300 и не более 330 брусьев длиной 0,5 м. Как распиливать бревна, чтобы обеспечить нужное число брусьев каждого размера и при этом минимизировать отходы?

Прежде всего опишем все способы распила одного бревна. Например, бревно длиной 1 м можно распилить на 5 брусьев длиной 0,2 м, отходов в этом случае нет. Или можно получить 3 бруса длиной 0,3 м, тогда в отходы уйдет 0,1 м бревна. Варианты распила приведены в табл. 1.1.

Задача о раскрое

Опишем математическую модель задачи.

Описание неизвестных. Неизвестно, сколько бревен следует распиливать каждым из способов, указанных в табл. 1.1. Обозначим через Задача о раскрое количество бревен, распиленных Задача о раскрое-м способом. Всего 7 неизвестных, каждое из них может принимать только целые значения: 0,1,2, 3,….

Описание целевой функции. Требуется минимизировать суммарные отходы. Отходы остаются только в случае применения 2,4, 6-го способов. Если распил одного бревна дает единицу отходов (0,1 м), то распил Задача о раскрое бревен дает Задача о раскрое единиц отходов. Суммарная величина отходов равна

Задача о раскрое

Описание системы ограничений. Всего брусьев длиной 0,2 м будет получено Задача о раскрое штук (6-й и 7-й способы распила не дают брусьев длиной 0,2 м). По условию число брусьев длиной 0,2 м должно лежать в пределах от 150 до 200, получаем два ограничения:

Задача о раскрое

Аналогично строятся ограничения по числу брусьев длиной 0,3 м и длиной 0,5 м.

Задача о раскрое

Добавим также условие неотрицательности и целочисленности переменных:

Задача о раскрое

Изменим теперь условие задачи. Пусть требуется получить ровно 150 брусьев длиной 0,2 м, 200 брусьев длиной 0,3 м, 300 брусьев длиной 0,5 м и при этом минимизировать суммарные отходы.

Пусть снова Задача о раскрое — количество бревен, распиленных по 1-му, 2-му, …, 7-му способам соответственно. Тогда количество брусьев длиной 0,2; 0,3 и 0,5 м будет соответственно таким:

Задача о раскрое

Так как переменные Задача о раскрое принимают только целые значения, нельзя гарантировать, что в результате распила получится, например, ровно 150 брусьев длиной 0,2 м. Можно потребовать только, чтобы их было не меньше 150 штук. Но если их будет, например, 152 штуки, получится еще 0,4 дополнительных единиц отходов. Обозначим через Задача о раскрое избыточные количества брусьев длиной 0,2; 0,3; 0,5 м. Они привнесут в целевую функцию дополнительно Задача о раскрое единиц отходов.

Окончательно целевая функция выглядит так:

Задача о раскрое

Система ограничений примет вид:

Задача о раскрое

Эта задача взята со страницы решения задач по предмету «линейное программирование»:

Решение задач по линейному программированию

Возможно эти страницы вам будут полезны:

Пример №30. Найдем максимальный поток в сети, показанной на рис. 8.2.
Пример №1. Задача распределения ресурсов.
Пример №3. Задача о смеси.
Пример №4. Задача планирования производства.