Линейное программирование – направление математики, изучающее методы решения экстремальных задач, которые характеризуются линейной зависимостью между переменными и линейным критерием оптимальности.
Несколько слов о самом термине линейное программирование. Он требует правильного понимания. В данном случае программирование - это, конечно, не составление программ для ЭВМ. Программирование здесь должно интерпретироваться как планирование, формирование планов, разработка программы действий.
К математическим задачам линейного программирования относят исследования конкретных производственно-хозяйственных ситуаций, которые в том или ином виде интерпретируются как задачи об оптимальном использовании ограниченных ресурсов.
Круг задач, решаемых при помощи методов линейного программирования достаточно широк. Это, например:
· задача об оптимальном использовании ресурсов при производственном планировании;
· задача о смесях (планирование состава продукции);
· задача о нахождении оптимальной комбинации различных видов продукции для хранения на складах (управление товарно-материальными запасами или "задача о рюкзаке");
· транспортные задачи (анализ размещения предприятия, перемещение грузов).
· Линейное программирование – наиболее разработанный и широко применяемый раздел математического программирования (кроме того, сюда относят: целочисленное, динамическое, нелинейное, параметрическое программирование). Это объясняется следующим:
· математические модели большого числа экономических задач линейны относительно искомых переменных;
· данный тип задач в настоящее время наиболее изучен. Для него разработаны специальные методы, с помощью которых эти задачи решаются, и соответствующие программы для ЭВМ;
· многие задачи линейного программирования, будучи решенными, нашли широкое применение;
Некоторые задачи, которые в первоначальной формулировке не являются линейными, после ряда дополнительных ограничений и допущений могут стать линейными или могут быть приведены к такой форме, что их можно решать методами линейного программирования.
Экономико-математическая модель любой задачи линейного программирования включает: целевую функцию, оптимальное значение которой (максимум или минимум) требуется отыскать; ограничения в виде системы линейных уравнений или неравенств; требование неотрицательности переменных.
В общем виде модель записывается следующим образом:
1) целевая функция:
= c1x1 + c2x2 + ... + cnxn → max(min); (21)
2) ограничения
(22)
3) требование неотрицательности
xj ≥ 0, (23)
При этом aij, bi, cj ( ) - заданные постоянные величины.
Задача состоит в нахождении оптимального значения целевой функции при соблюдении ограничений (22) и (23).
Систему ограничений (22) называют функциональными ограничениями задачи, а ограничения (23) - прямыми.
Вектор , удовлетворяющий ограничениям (22) и (23), называется допустимым решением (планом) задачи линейного программирования. План , при котором функция (21) достигает своего максимального (минимального) значения, называется оптимальным.
Далее приведем примеры некоторых типовых задач, решаемых при помощи методов линейного программирования. Такие задачи имеют реальное экономическое содержание. Сейчас лишь сформулируем их в терминах ЗЛП, а методы решения подобных задач рассмотрим ниже.
1. Задача об оптимальном использовании ресурсов при производственном планировании.
Общий смысл задач этого класса сводится к следующему.
Предприятие выпускает n различных изделий. Для их производства требуется m различных видов ресурсов (сырья, материалов, рабочего времени и т.п.). Ресурсы ограничены, их запасы в планируемый период составляют, соответственно, b1, b2,..., bm условных единиц.
Известны также технологические коэффициенты aij, которые показывают, сколько единиц i-го ресурса требуется для производства единицы изделия j-го вида ( ).
Прибыль, получаемая предприятием при реализации изделия j-го вида, равна cj.
В планируемом периоде значения величин aij, bi и cj остаются постоянными.
Требуется составить такой план выпуска продукции, при реализации которого прибыль предприятия была бы наибольшей.
Далее приведем простой пример задачи такого класса.
Компания специализируется на выпуске хоккейных клюшек и наборов шахмат. Каждая клюшка приносит компании прибыль в размере $2, а каждый шахматный набор - в размере $4. На изготовление одной клюшки требуется четыре часа работы на участке A и два часа работы на участке B. Шахматный набор изготавливается с затратами шести часов на участке A, шести часов на участке B и одного часа на участке C. Доступная производственная мощность участка A составляет 120 н-часов в день, участка В - 72 н-часа и участка С - 10 н-часов.
Сколько клюшек и шахматных наборов должна выпускать компания ежедневно, чтобы получать максимальную прибыль? Условия задач указанного класса часто представляют в табличной форме.
производственные участки
затраты времени на единицу продукции, н-час
доступный фонд времени, н-час
клюшки
наборы шахмат
А
В
С
-
прибыль на единицу продукции, $
По данному условию сформулируем задачу линейного программирования.
Обозначим: x1 - количество выпускаемых ежедневно хоккейных клюшек, x2 - количество выпускаемых ежедневно шахматных наборов.
Формулировка ЗЛП:
= 2x1 + 4x2 → max;
4x1 + 6x2 ≤ 120, 2x1 + 6x2 ≤ 72, x2 ≤ 10;
x1 ≥ 0, x2 ≥ 0.
Подчеркнем, что каждое неравенство в системе функциональных ограничений соответствует в данном случае тому или иному производственному участку, а именно: первое - участку А, второе - участку В, третье - участку С.
Повторимся, методы решения ЗЛП мы будем рассматривать чуть позднее, а сейчас - пример задачи другого типа.