Рассмотрим некоторые наиболее часто используемые в практических целях задачи линейного программирования.
Предприятие может выпускать n видов
продукции, используя для этого m
видов ресурсов. Известны затраты каждого вида ресурса на производство единицы
каждого вида продукции и прибыль от реализации единицы каждого вида продукции.
Требуется составить план выпуска продукции так, чтобы при данных запасах
ресурсов получить максимальную прибыль.
Составим математическую модель данной задачи.
Введем обозначения:
bi,
-
запасы i-го
вида ресурса;
aij,
;
- затраты i-го
вида ресурса на производство единицы j-го
вида продукции;
cj, - прибыль от
реализации единицы j-го
вида продукции.
Данные задачи можно
представить в виде таблицы:
Виды продукции Виды ресурсов |
1
2 … j …
n |
Запасы ресурсов |
|
1 |
a11 a12
… a1j … a1n |
b1 |
|
2 |
a21 a22 … a2j … a2n |
b2 |
|
… |
… |
… |
|
i |
ai1 ai2 … aij … ain |
bi |
|
… |
… |
… |
|
m |
am1 am2 … amj … amn |
bm |
|
Прибыль от реализации единицы продукции |
c1 c2 … cj …
cn |
|
|
Обозначим через xj планируемый выпуск j-го вида продукции; - план выпуска
продукции. Тогда прибыль от реализации всей выпускаемой продукции составит
c1x1
+ c2x2 +…+cjxj
+…+cnxn.
Составим ограничения по ресурсам. Найдем
расход ресурса первого вида при данном плане выпуска:
a11x1+a12x2+…+a1jхj +…+a1nxn.
Ресурса первого вида имеется
в наличии b1 условных единиц, т.е. получаем
ограничение
a11x1+a12x2+…+a1jхj +…+a1nxn
£ b1.
Аналогично составляем ограничения по всем
остальным видам ресурсов.
Кроме того, xj ³ 0, , так как количество продукции не может быть отрицательным числом.
Таким образом,
математической моделью данной задачи является задача
линейного программирования: найти наибольшее значение функции
при ограничениях
,
В продаже имеются различные виды продуктов.
Известны цены продуктов, содержание питательных веществ в единице каждого вида
продукта, медицинские требования на содержание питательных веществ в суточной
диете. Требуется определить, какие продукты и в каком количестве нужно включить в диету, чтобы она соответствовала
всем медицинским требованиям и чтобы стоимость диеты была минимальной.
Составим математическую
модель данной задачи.
Введем обозначения:
aij
-содержание i-го
питательного вещества в единице j-го
продукта;
bi - минимальное содержание i-го питательного вещества в суточной диете;
cj - цена единицы j-го
продукта.
Данные задачи можно
представить в виде таблицы:
Виды продуктов Виды питательных веществ |
1 2
… j …
n |
Медицинские требования к диете |
1 |
а11 a12
… a1j … a1n |
b1 |
2 |
а21 a22
… a2j … a2n |
b2 |
… |
… |
… |
i |
ai1 ai2 … aij … ain |
bi |
… |
… |
… |
m |
am1 am2 … amj … amn |
bm |
Цена единицы продукта |
с1 c2 …
cj …
cn |
|
Пусть xj единиц j-го продукта включается в
суточную диету, тогда - суточная диета.
Цена диеты:
c1x1
+ c2x2 +…+cjxj
+…+cnxn.
Содержание первого питательного вещества в
диете составит
a11x1+a12x2+…+a1jхj +…+a1nxn.
и это количество должно быть не менее чем b1 единиц:
a11x1+a12x2+…+a1jхj +…+a1nxn
£ b1.
Аналогично составляем ограничения по всем
видам питательных веществ.
Кроме того, xj ³ 0, так как количество
продуктов не может быть отрицательным числом.
Математическая модель
задачи: найти минимум функции
при ограничениях:
,
Таким образом, математической
моделью данной задачи является задача линейного программирования.
Задача на
оптимальный раскрой материала
Имеются прутки одинаковой длины, из которых
нужно нарезать определенное количество заготовок заданной длины. Прутки можно
нарезать на заготовки в различных сочетаниях. При каждом варианте нарезания
прутков остаются концевые отрезки.
Требуется определить, какое количество
прутков следует разрезать по каждому варианту, чтобы получить заданное
количество заготовок различной длины и чтобы общая длина концевых отрезков была
минимальной.
Составим математическую
модель данной задачи.
Введем обозначения:
i - номер
вида заготовки, ;
j - номер варианта раскроя
прутка, ;
aij
- количество заготовок i-го
вида, получаемых из одного прутка, разрезаемого по j-му варианту;
bi -
требуемое число заготовок i-го
вида;
cj - длина концевого отрезка, оставшегося от одного
прутка при разрезании прутка по j-му варианту.
Данные задачи можно
представить в виде таблицы:
Варианты раскроя Виды заготовок |
1 2
… j …
n |
План по заготовкам |
1 |
а11 a12
… a1j … a1n |
b1 |
2 |
а21 a22
… a2j … a2n |
b2 |
… |
… |
… |
i |
ai1 ai2 … aij … ain |
bi |
… |
… |
… |
m |
am1 am2 … amj … amn |
bm |
Длина концевого отрезка |
с1 c2 …
cj …
cn |
|
Обозначим через хj -
число прутков, разрезаемых по j-му варианту, тогда - план раскроя прутков. Найдем общую длину концевых отрезков.
По первому варианту
планируем разрезать x1
прутков, концевой отрезок от одного прутка будет иметь длину с1,
тогда общая длина концевых отрезков от х1
прутков составит c1x1. Аналогично общая длина
концевых отрезков от х2 прутков, разрезанных по второму варианту, будет
равна c2x2 и т.д.
Следовательно, общая длина
концевых отрезков при разрезании прутков по всем вариантам составляет
.
Составим ограничения по
заготовкам.
Из одного прутка, разрезаемого
по первому варианту, получают a11 шт.
заготовок первого вида, а из x1
прутков - a11x1 шт.; по
второму варианту из одного прутка получают a12 шт., а
из x2
прутков - a12x2 шт. и
т.д., по n-му варианту - a1nxn шт.
Отсюда получаем первое ограничение
a11x1+a12x2+…+a1jхj +…+a1nxn = b1.
Аналогично получаем ограничения по всем
заготовкам.
Кроме того, так как число прутков
не может быть отрицательным.
Математическая модель
задачи: найти наименьшее значение функции
при ограничениях:
,
Таким образом,
математической моделью данной задачи является задача
линейного программирования.