4. Дискретное программирование
В задачах дискретного программирования результатом решения должны быть целые, но не любые целые.
Пример 3. Мебельная фабрика выпускает диваны, кресла и стулья. Требуется определить, сколько можно изготовить спинок диванов, подлокотников кресел и ножек стульев при известном удельном расходе ресурсов (табл. 4)., чтобы доход был максимальным.
Таблица 4.
|
Изделия |
Наличие ресурса |
||
Показатели |
спинка дивана |
подлокотники кресла |
ножка стула |
|
Цена, д. е./ед. |
20 |
6 |
8 |
— |
Древесина |
10 |
5 |
3 |
206 |
Трудозатраты |
2 |
7 |
4 |
100 |
Спрос |
10 |
8 |
12 |
— |
|
x1 |
x2 |
x3 |
|
Причем выпуск спинок дивана может принимать любое значение, подлокотники изготавливаются парами, т. е. их количество должно быть кратно двум, а количество ножек стульев — четырем.
Решение. С учетом этих требований математическая модель задачи запишется:
L
=
10,
10,
10,
где
- варианты количества подлокотников и
ножек (k
= 1, …, ki).
Здесь
дополнительное введение булевых
переменных дает возможность обеспечить
выпуск изделий в кратном заданном
количестве. Так, для подлокотников x2
может принимать следующие значения:
если в результате решения будет получено
,
а остальные
то x2;
если
,
а остальные
,
то x2
= 4 и
т.д.
Для решения задачи с учетом дополнительных условий мы ввели еще семь переменных и четыре ограничения. Следовательно, введение дополнительных требований привело к увеличению размерности задачи. Заметим, что если бы нам требовалось определить выпуск спинок, подлокотников и ножек для одного изделия (комплекта), то можно было бы записать x2 = 2х1; х3 = 4x1 и не вводить дополни тельных ограничений и булевых переменных. Но это была бы другая задача.
В
результате решения задачи были получены
следующие значения: max
L
= 320;
= 1;
= 4;
= 12;
0;
При этом оказались не полностью использованы ресурсы: резерв первого равен 50, второго — 4 ед.
Такое недоиспользование характерно для задач целочисленного программирования, т. е. ресурс, остается, но для использования на увеличение дискретного количества продукции его оказывается недостаточно.
В общем виде задачу распределения ресурсов с учетом требования дискретного значения переменных можно записать:
max(min)
где
,
,
…,
,
… — дискретные значения, которые может
принимать переменная
.
Эта система отличается от обычной задачи
распределения ресурсов появлением
булевых переменных и увеличением
числа ограничений:
max(min)
Значит, в данном случае, как и всегда, за удовлетворение дополнительных требований приходится платить увеличением размерности задачи и целочисленностью.
