Тема 3 – Методы и модели линейного программирования

Цель:изучение методов линейного программирования при решении задач оптимизации.

Линейное программирование – это область математического программирования, изучающая теории и методы решения задач об экстремумах (наибольших и наименьших значений) линейной функции, на неизвестные которой наложены линейные ограничения. При этом термин «программирование» следует понимать в смысле «планирования». Особенно широкое распространение линейное программирование получило в экономике, т.к. многие зависимости между величинами, встречающимися в экономических задачах, представляют собой линейные функции с линейными ограничениями. Например, линейное программирование может использоваться при: оптимизации раскроя, оптимизации производственной программы предприятий, оптимизации плана перевозок и работы транспорта, управлении производственными запасами.

Решение оптимизационной задачи начинается с построения математической модели, при этом предварительно необходимо определить:

- цель и механизмы функционирования исследуемой системы;

- значения каких характеристик исследуемой системы можно варьировать (управляемые переменные);

- ограничения, которые определяют область допустимых решений.

Задача линейного программирования в общем виде имеет следующий вид:

Тема 3 – Методы и модели линейного программирования - student2.ru F(x) = c1x1 + c2x2 + ... + cnxn à opt - целевая функция;

∑aijxj <= bi , i=1,...m; - функциональные ограничения;

xj => 0 - прямые ограничения.

Все методы решения задач такого вида не позволяют получить решение в аналитической форме, поэтому процедура поиска оптимального значения проводится в несколько повторяющихся этапов (итераций).

Наиболее известным для решения общей задачи линейного программирования является симплекс-метод. Несмотря на то, что симплекс-метод является достаточно эффективным алгоритмом, он является алгоритмом с экспоненциальной сложностью. Кроме того, существуют такие методы решения задач данного класса, как метод эллипсоидов и метод внутренней точки. Графический метод решения ввиду большой размерности реальных практических задач применяется достаточно редко, хотя он нагляден и прост при решении задач малой размерности.

Пример

Решение задачи линейного программирования графическим методом

Предприятие выпускает ткань двух видов. Для их производства используется сырье трех видов: хлопок, лен и вискоза. На производство 10 п.м. ткани первого вида требуется 1 катушка хлопка, 2 катушки льна и 1 катушка вискозы. Для производства 10 п.м. ткани второго вида необходимо 1 катушка хлопка, 1 катушка льна и 2 катушки вискозы. На складе предприятия имеется 5 катушек вискозы, 9 катушек льна и 7 катушек хлопка. Известна удельная прибыль от реализации 10 п.м. ткани каждого вида, у.е. (С1, С2).

Определить оптимальный план выпуска и провести анализ чувствительности модели.

Таблица 11 – Исходные данные

Показатель Ткань 1 Ткань 2 Запасы
S1 (хлопок), катушки
S2 (лен), катушки
S3 (вискоза), катушки
С (удельная прибыль от реализации), катушки  

1. В качестве показателя эффективности целесообразно взять прибыль от реализации всех видов произведенной продукции.

2. В качестве управляемых переменных задачи следует взять

x1 – объем производства ткани первого вида;

x2 – объем производства ткани второго вида.

3. Целевая функция

1+4х2→max,

где 3 – удельная прибыль от реализации 10 п.м. ткани первого вида, у.е.;

4 – удельная прибыль от реализации 10 п.м. ткани второго вида, у.е.;

4. Ограничения:

4.1. По использованию хлопка: 1x1 + 1x2 £ 5.

4.2. По использованию льна: 2x1 + 1x2 £ 9.

4.3. По использованию вискозы: 1x1 + 2x2 £ 7.

4.4. Прямые ограничения: x1 ³ 0, x2 ³ 0.

Итак, задача в общем виде выглядит следующим образом:

Тема 3 – Методы и модели линейного программирования - student2.ru х1 + х2 ≤ 5,

1 + х2 ≤ 9,

х1 + 2х2 ≤ 7,

х1, х2 ≥ 0.

1 + 4х2→max.

Далее следует нанести на график прямые, соответствующие следующим уравнениям:

1) х12 = 5,

2) 2х12 = 9,

3) х1+2х2 = 7,

4) х1 = 0,

5) х2 = 0.

Для этого находим точки пересечения с осями:

1) (0; 5); (5; 0);

2) (0; 9); (4,5; 0);

3) (0; 3,5); (7; 0).

Затем необходимо заштриховать область, в точках которой выполняются все ограничения одновременно. Каждая точка данной области представляет собой допустимое решение, а множество всех таких точек образует область допустимых решений 0ABCD (рис. 16).

 
  Тема 3 – Методы и модели линейного программирования - student2.ru

Рис. 16 Область допустимых решений

Для того, чтобы решить поставленную задачу, необходимо выбрать одно из решений (точек) в области допустимых решений, которое максимизирует целевую функцию (функцию прибыли), т.е. такие х1, х2 при которых 3х1+4х2 = мах.

Максимизируем прибыль путем параллельного переноса базовой целевой функции вправо вверх до тех пор, пока не останется хотя бы одной общей точки у целевой функции и области 0АВСD.

Определим базовую целевую функцию произвольно.

Пусть 3х1+4х2=12, тогда точки пересечения с осями – (0, 3); (4, 0).

Все ограничения подразделяются на активные и неактивные. Ограничение считается активным, если соответствующая ему прямая проходит через точку, представляющую оптимальное решение поставленной задачи. В противном случае ограничение считается неактивным.

Тема 3 – Методы и модели линейного программирования - student2.ru

Рис. 17 Максимизация целевой функции

Из графика видно, что искомой точкой, соответствующей оптимальному плану выпуска продукции, в которой прибыль максимизируется при выполнении требуемых ограничений по сырью, является точка В, координаты которой определяются при решении системы уравнений:

Тема 3 – Методы и модели линейного программирования - student2.ru х1 + х2 = 5,

х1 + 2х2 = 7,

х1 = 3, х2 = 2.

Итак, оптимальный план выпуска продукции включает в себя выпуск 30 п.м. ткани первого вида и 20 п.м. ткани второго вида. При этом плановая прибыль от реализации составляет Р = 3х1+4х2 = 17 у.е.

Анализ чувствительности

Решение задачи нельзя считать законченным без анализа чувствительности модели. Необходимость такого анализа объясняется тем, что некоторые параметры задачи линейного программирования (финансы, запасы сырья) на практике можно регулировать, что, в свою очередь, может изменить найденное оптимальное решение. Анализ чувствительности позволяет оценить влияние этих параметров на оптимальное решение. Если обнаруживается, что оптимальное решение можно значительно улучшить за счет небольших изменений заданных параметров, то целесообразно реализовать эти изменения.

1. Насколько можно увеличить запас некоторого вида сырья для улучшения полученного оптимального значения целевой функции?

Сначала необходимо определить, какие из имеющихся ограничений являются активными. По данным рис.3, активными являются ограничения S1 и S3, т.е. данные виды сырья расходуются полностью и являются дефицитными. Ограничение S2 является неактивным, и запас соответствующего вида сырья имеется в избытке (не расходуется полностью).

 
  Тема 3 – Методы и модели линейного программирования - student2.ru

Рис. 18 Анализ чувствительности модели

Рассмотрим ограничение по сырью S1.

При увеличении запаса данного сырья прямая S1 будет перемещаться параллельно вверх, стягивая ΔСВК. В (.) К активными становятся ограничения S2 и S3 и дальнейшее увеличение запаса S1 будет нецелесообразным. При этом оптимальное решение переместится в (.) К, координаты которой определяются из решения системы соответствующих уравнений по принципу, указанному выше.

(.) К (11/3; 5/3).

Предельный уровень запаса сырья S1 составляет х12 = 11/3 + 5/3 = 16/3.

Фактический запас сырья S1 = 5, т.е. прирост запаса будет равен

ΔS1= 16/3 – 5 = 1/3.

При этом прибыль от увеличения запаса сырья составит

Р(ΔS1) = 3х1 + 4х2 = 3*11/3+4*5/3 = 53/3.

А прирост прибыли будет равен

ΔР(ΔS1) = 53/3 – 17 = 2/3.

Рассмотрим ограничение по сырью S3.

При увеличении запаса данного сырья прямая S3 будет перемещаться параллельно вверх. В (.) М оно перестает быть активными и далее увеличивать запас данного сырья не имеет смысла. При этом оптимальное решение переместится в (.) М.

(.) М (0; 5).

Предельный уровень запаса сырья S3 составляет х1+2х2 = 0 + 2*5 = 10.

Фактический запас сырья S3 = 7, т.е. увеличение запаса будет равно

ΔS3= 10 – 7 = 3.

При этом прибыль от увеличения запаса сырья составит

Р(ΔS3) = 3х1 + 4х2 = 3*0+4*5 = 20.

А прирост прибыли будет равен

ΔР(ΔS3) = 20 – 17 = 3.

2. На сколько можно понизить запас некоторого вида сырья при сохранении полученного оптимального значения целевой функции?

Понижать запас стоит только в том случае, когда речь идет о неактивном ограничении. В данном случае таким ограничением является S2. При снижении запаса соответствующая прямая будет перемещаться вниз до тех пор, пока не пересечет (.) В (в этот момент ограничение S2 становится активным и дальнейшее его снижение без изменения оптимального решения невозможно).

Предельный уровень запаса сырья S2 составляет 2х1+ х2 = 2*3 + 2 = 8.

Фактический запас сырья S3 = 9, т.е. снижение запаса возможно в размере

ΔS3= 9 – 8 = 1.

3. Увеличение какого вида сырья будет наиболее выгодно?

Для решения этого вопроса необходимо ввести некий показатель «эффективности» увеличения запаса. Так как эффективность по сути представляет собой отношение некого результата, полученного после внесения определенных затрат, то в данном случае представляется логичным использовать следующий коэффициент:

R = ΔР(ΔSi) / ΔSi . (22)

Чем больше данный коэффициент, тем большую прибыль можно получить от увеличения запаса.

R1 = ΔР(ΔS1) / ΔS1 = (2/3) / (1/3) = 2

R2 = ΔР(ΔS2) / ΔS2 = Ø

R3 = ΔР(ΔS3) / ΔS3 = 3 / 3 = 1

Таким образом, увеличение сырья S1 является более выгодным.

Наши рекомендации