Учебное пособие: Практикум по решению линейных задач математического программирования

ПРАКТИКУМ

ПО РЕШЕНИЮ ЛИНЕЙНЫХ ЗАДАЧ

МАТЕМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ


Введение

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

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

 


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

Сформулируем общую задачу линейного программирования.

Пусть дана система m линейных уравнений и неравенств с n переменными (система ограничений):

                                  (1)

и линейная функция

.                                                        (2)

Необходимо найти такое решение  системы (1), при котором линейная функция принимает максимальное (минимальное) значение.

В общем случае ЗЛП может иметь бесконечное множество решений. Часто решение , удовлетворяющее ограничениям (1), называют планом. Если все компоненты  (3) для , то  называют допустимым решением.

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


Каноническая

Стандартная

Общая

1) Ограничения

Уравнения

,

Неравенства

,

Уравнения и неравенства

,

2) Условия неотрицательности

Все переменные

,

Все переменные

,

Часть переменных

, ,

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

 (max или min)

Здесь: – переменные задачи; – коэффициенты при переменных в целевой функции; – коэффициенты при переменных в основных ограничениях задачи; – правые части ограничений.

Пример. Составить экономико-математическую модель задачи: Для выпуска изделий двух типов А и В на заводе используют сырье четырех видов (I, II, III, IV). Для изготовления изделия А необходимо: 2 ед. сырья первого вида, 1 ед. второго вида, 2 ед. третьего вида и 1 ед. четвертого вида. Для изготовления изделия В требуется: 3 ед. сырья первого вида, 1 ед. второго вида, 1 ед. третьего вида. Запасы сырья составляют: I вида – 21 ед., II вида – 8 ед., III вида – 12 ед., IV вида – 5 ед. Выпуск одного изделия типа А приносит 3 УДЕ прибыли, а одного изделия типа В – 2 УДЕ. Составить план производства, обеспечивающий наибольшую прибыль.

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

Сырье Кол-во сырья на ед. продукции, ед. Запас сырья, ед.
А В
I 2 3 21
II 1 1 8
III 2 1 12
IV 1 5
Прибыль от ед. продукции, УДЕ 3 2

Пусть – количество изделий типа А и В соответственно, планируемое к выпуску (, ).

Тогда прибыль составит: , т. к. план производства должен обеспечивать наибольшую прибыль, то целевая функция задачи: .

Составим систему ограничений, используя заданную ограниченность сырья. При планируемых объемах производства расходуется сырья I вида: (ед.), что не должно превышать запас 21 ед. Т.о. получим неравенство: . Составляя неравенства по каждому виду сырья, получим систему:

Получаем математическую модель задачи линейного программирования:

 

Пример. Составить математическую модель задачи: На четырех станках (I, II, III, IV) обрабатываются два вида деталей (А и В). Каждая деталь проходит обработку на всех станках. Известны время обработки деталей на каждом станке, время работы станков в течение одного цикла производства и прибыль, полученная от выпуска одной детали. Данные приведены в таблице:

Станки Время обработки детали, ч.

Время работы станка

(цикл пр-ва), ч.

А В
I 1 2 16
II 2 3 26
III 1 1 10
IV 3 1 24
Прибыль от 1 детали, УДЕ 4 1

Составить план производства, обеспечивающий наибольшую прибыль при условии, что количество деталей вида В не должно быть меньше количества деталей вида А.

Решение. Пусть – количество деталей вида А и В соответственно, планируемое к выпуску (, ). Задача аналогична предыдущей, но при составлении модели не следует выпускать из поля зрения фразу: количество деталей вида В не должно быть меньше количества деталей вида А, что математически представимо в виде неравенства: .

Тогда математическая модель задачи линейного программирования имеет вид:

Любая ЗЛП может быть сведена к канонической, стандартной или общей задаче.


Приведение задач к каноническому виду

Пусть имеем задачу общего вида, которую нужно привести к каноническому виду, т.е. из ограничений-неравенств сделать ограничения-равенства. Для этого в каждое ограничение вводится дополнительная неотрицательная балансовая переменная со знаком «+», если знак неравенства «», и со знаком «–», если знак неравенства «». В целевую функцию эти переменные входят с нулевыми коэффициентами, т.е. значение целевой функции не изменяется.

Примечание: 1) В канонической форме равенства принято записывать так, чтобы правые части ограничений были неотрицательными. Если какое-либо  отрицательное, то умножив i-е ограничение на (–1), получим в правой части положительное число. При этом знак неравенства нужно изменить на противоположный.

2) Если ограничение содержит знак «=», то дополнительную переменную вводить не нужно.

Пример. Записать задачу линейного программирования в каноническом виде.

 max (min)

,

Решение. Второе ограничение системы содержит в правой части отрицательное число –2. Умножим второе ограничение на (–1), при этом знак неравенства  изменится на противоположный . Задача примет вид:

 max (min)

,

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

 max (min)

,

 

Задания для самостоятельной работы.

Составить экономико-математические модели следующих задач:

1.         Для изготовления двух видов продукции P1 и Р2 используют четыре вида ресурсов S1, S2, S3 и S4. Запасы ресурсов, число единиц ресурсов, затрачиваемых на изготовление единицы продукции, приведены в таблице:

2.        

Вид

ресурса

Запас

ресурса

Число ед. ресурсов,

затрачиваемых на изготовление ед. продукции

Р1 Р2
S1 18 1 3
S2 16 2 1
S3 5 1
S4 21 3

Прибыль, получаемая от единицы продукции Р1 и Р2, – соответственно 2 грн. и 3 грн.

3.         На приобретение оборудования для нового производственного участка общей площадью 375 м2 предприятие обладает необходимым количеством денежных средств. Предприятие может заказать оборудование двух видов: машины первого типа стоимостью 10000 грн., требующие производительную площадь 6 м2 (с учетом проходов), производящие 4000 единиц продукции за смену, и машины второго типа стоимостью 20000 грн., занимающие 10 м2 площади, производящие 5000 единиц продукции за смену. Общая производительность данного производственного участка должна быть не менее 221000 единиц продукции за смену. Построить модель задачи при условии, что оптимальным для предприятия вариантом приобретения оборудования считается тот, который обеспечивает наименьшие общие затраты.

4.         Фермер планирует произвести не менее 120 тонн пшеницы, 70 тонн кукурузы и 15 тонн гречихи. Для этого можно использовать два массива сельскохозяйственных угодий в 1000 и 800 га. В таблице приведены урожайность каждой культуры на различных участках (верхний показатель) и затраты на 1 га сельскохозяйственных угодий при производстве различных культур (нижний показатель). Требуется составить такой план засева, чтобы валовой сбор зерна удовлетворял плановому заданию, а стоимость затрат была наименьшей.

Поле Размер поля Культуры
пшеница кукуруза гречиха
I 1000

10

7

20

10

6

15

II 800

12

8

24

12

5

20

План по культурам 120 70 15

5.         Фирма имеет возможность рекламировать свою продукцию, используя для этого телевидение, радио и газеты. Затраты на рекламу в бюджете фирмы ограничены суммой 8000 грн. в месяц. Опыт прошлых лет показал, что 1 грн., потраченная на телерекламу, дает фирме прибыль в размере 10 грн., а потраченная на рекламу по радио и в газетах – соответственно 4 и 8 грн.

Фирма намерена затратить на теле- и радиорекламу не более 70% рекламного бюджета, а затраты на газетную рекламу не должны больше чем вдвое превышать затраты на радиорекламу.

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

6.         Продукция фабрики выпускается в виде бумажных рулонов стандартной ширины – 2 м. По специальным просьбам потребителей фабрика поставляет также рулоны других размеров, разрезая стандартные рулоны. Типичные заявки на рулоны нестандартных размеров приведены в таблице:

Заявка

Нужная ширина

рулона, м

Нужное кол-во

рулонов

1 0,8 150
2 1,0 200
3 1,2 300

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

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

 

1. Область решений линейных неравенств.

Пусть задано линейное неравенство с двумя переменными  и

                                                     (1)


Если величины  и  рассматривать как координаты точки плоскости, то совокупность точек плоскости, координаты которых удовлетворяют неравенству (1), называется областью решений данного неравенства. Следовательно, областью решений неравенства (1) является полуплоскость с граничной прямой линией .

Пример 1. Найти полуплоскость, определяемую неравенством

.

Решение. Строим прямую  по двум точкам, например, по точкам пересечения с осями координат (0; 4) и (6; 0). Эта линия делит плоскость на две части, т.е. на две полуплоскости. Берем любую точку плоскости, не лежащую на построенной прямой. Если координаты точки удовлетворяют заданному неравенству, то областью решений является та полуплоскость, в которой находится эта точка. Если же получаем неверное числовое неравенство, то областью решений является та полуплоскость, которой эта точка не принадлежит. Обычно для контроля берут точку (0; 0).

Подставим  и  в заданное неравенство. Получим . Следовательно, полуплоскость «к нулю» является областью решений данного неравенства (заштрихованная часть рис. 1).

Пример 2. Найти полуплоскость, определяемую неравенством

.

Решение. Строим прямую , например, по точкам (0; 0) и (1; 3). Т.к. прямая проходит через начало координат, точку (0; 0), то нельзя брать ее для контроля. Возьмем, например, точку (– 2; 0) и подставим ее координаты в заданное неравенство. Получим . Это неверно. Значит, областью решений данного неравенства будет та полуплоскость, которой не принадлежит контрольная точка (заштрихованная часть рис. 2).

2. Область решений системы линейных неравенств.

Пример. Найти область решений системы неравенств:


Решение. Находим область решений I-го неравенства (рис. 1) и II-го неравенства (рис. 2).

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

Если к заданной системе неравенств добавить условия  и , то область решений системы неравенств  будет находиться только в I координатной четверти (рис. 4).

Принцип нахождения решения системы линейных неравенств не зависит от количества неравенств, входящих в систему.

Примечание: Область допустимых решений (ОДР) если существует, то представляет собой замкнутый или незамкнутый выпуклый многоугольник.

3. Алгоритм графического метода решения ЗЛП

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

1)         Строим все полуплоскости, соответствующие ограничениям системы.

2)         Находим область допустимых решений (ОДР), как множество точек, в котором пересекаются все построенные полуплоскости.

3)         Строим вектор , выходящий из начала координат, где  и  – это коэффициенты при неизвестных в целевой функции . Этот вектор указывает направление возрастания целевой функции.

4)         Перпендикулярно вектору  проводим так называемую линию уровня  (т.е. прямую , проходящую через начало координат).

5)         Перемещаем линию уровня  параллельно самой себе в направлении вектора  (если задача на максимум (max)) или в противоположном направлении (если задача на минимум (min)) до тех пор, пока линия уровня имеет хотя бы одну общую точку с ОДР.

6)         Находим координаты  этой общей крайней точки, решая систему уравнений прямых, на пересечении которых она находится.

7)         Подставляем эти координаты в целевую функцию и находим ее max (или min).

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

 max

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

Т.о. задача примет вид

 max

,


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

; ; ; .

Областью решений неравенств является пятиугольник ABCDE.

Построим вектор . Через начало координат перпендикулярно вектору  проведем линию уровня . И затем будем перемещать ее параллельно самой себе в направлении вектора  до точки выхода из области допустимых решений. Это будет точка С. Найдем координаты этой точки, решив систему, состоящую из уравнений первой и четвертой прямых:

     .

Подставим координаты точки С в целевую функцию и найдем ее максимальное значение Пример. Построить линии уровня  и  для задачи линейного программирования:

 max (min)

Решение. Область допустимых решений – открытая область (рис. 6). Линия уровня  проходит через точку В. Функция Z имеет минимум в этой точке. Линию уровня  построить нельзя, так как нет точки выхода из области допустимых решений, это значит, что .

Задания для самостоятельной работы.

1.         Найти область решений системы неравенств:


а)                  б)

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

 min

3.         Составить экономико-математическую модель и решить графически задачу линейного программирования

Фирма выпускает изделия двух видов А и В. Изделия каждого вида обрабатывают на двух станках (I и II). Время обработки одного изделия каждого вида на станках, время работы станков за рабочую смену, прибыль фирмы от реализации одного изделия вида А и вида В занесены в таблицу:

Станки Время обработки одного изделия, мин. Время работы станка за смену, мин.
А В
I 10 20 1300
II 4 13 720
Прибыль от одного изделия, грн. 0,3 0,9

Изучение рынка сбыта показало, что ежедневный спрос на изделия вида В никогда не превышает спрос на изделия вида А более чем на 40 единиц, а спрос на изделия вида А не превышает 90 единиц в день.

Определить план производства изделий, обеспечивающий наибольшую прибыль.


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

Симплексный метод – это метод последовательного улучшения плана. Этим методом можно решать задачи линейного программирования с любым количеством переменных и ограничений.

Этот метод включает в себя три основные этапа:

1)         Построение начального опорного плана.

2)         Правило перехода к лучшему (точнее, нехудшему) решению.

3)         Критерий проверки найденного решения на оптимальность.

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

1) Построение начального опорного плана.

Данную задачу линейного программирования необходимо сначала привести к каноническому виду; при этом правые части ограничений должны быть неотрицательными.

Признаком возможности построения начального опорного плана служит наличие в каждом ограничении-равенстве с неотрицательной правой частью базисной переменной.

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

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

Пример. Для данной задачи линейного программирования найти начальный опорный план (базисное решение).


 max

Решение. Изменим знаки второго и третьего неравенств на противоположные, умножив каждое из них на –1. Система ограничений теперь будет такой:

В каждом ограничении слева добавим положительную переменную , соответственно запишем канонический вид задачи:

 max

.

Переменные  базисные. Приравниваем их к правым частям ограничений:  Все остальные переменные – свободные, приравниваем их к нулю:

Запишем теперь начальный опорный план

(0; 0; 0; 0; 16; 4; 0).

 


2) Составление симплексных таблиц. Критерий оптимальности.

Симплексный метод удобно применять, используя построение симплексных таблиц. Первая симплексная таблица, соответствующая начальному плану, имеет вид:

Базис

В

Здесь приняты следующие обозначения.

Столбец «Базис» – это базисные переменные.

Столбец «» – это коэффициенты при базисных переменных в целевой функции.

Столбец «В» – правые части ограничений;

 – коэффициенты при переменных в ограничениях;

 – коэффициенты при переменных в целевой функции.

Последняя строка в таблице () – это проверочная или оценочная строка.

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

.


 – называют оценками или симплексными разностями и находят так: элементы столбца  умножают на соответствующие элементы столбца , складывают результаты и вычитают .

Например,

.

Оценки () базисных переменных всегда равны нулю.

Признак оптимальности опорного плана состоит в следующем:

Опорный план будет оптимальным тогда и только тогда, когда все оценки

 для задачи на max и

 для задачи на min.

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

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

Для определения переменной, которую нужно вывести из базиса, поступают так: элементы столбца В делят только на положительные элементы разрешающего столбца и находят симплексные отношения . Выбирают из  наименьшее. Оно называет ту переменную, которую нужно ввести в базис. Соответствующая строка таблицы называется разрешающей.

На пересечении разрешающего столбца и разрешающей строки находится разрешающий элемент.

Теперь начинаем заполнять следующую таблицу. Покажем этот процесс на конкретном примере.

Пример. Решить симплексным методом задачу линейного программирования.

 max

Решение. 1) Приводим задачу к каноническому виду, т.е. из ограничений неравенств делаем равенства.

 max

2) Определяем базисные переменные – это .

3) Заполняем первую таблицу

Базис

В 2 3 0 0 0 0

0 18 1 3 1 0 0 0

0 16 2 1 0 1 0 0

0 5 0 1 0 0 1 0

0 21 3 0 0 0 0 1

0

–2

–3

0

0

0

0

Здесь  и  не удовлетворяют условию оптимальности, т. к. они меньше нуля. Выбираем среди них большее по модулю. Это . Следовательно, столбец переменной  – разрешающий. Значит, в новый базис нужно ввести переменную .

Находим : ; ;

Наименьшее из этих чисел – это число 5, что соответствует строке базисной переменной . Значит, строка базисной переменной  – разрешающая, следовательно, из базиса нужно вывести переменную . Элемент =1 – разрешающий. Новый базис: .

Заполнение следующей таблицы начинаем со столбцов «Базис» и «». Потом заполняем разрешающую строку, разделив каждый ее элемент на разрешающий, т.е. на 1. Все элементы разрешающего столбца будут нулями, кроме разрешающего, который всегда равен 1. Столбцы под  переписываем без изменения, т. к. эти переменные остались в базисе. Остальные элементы новой таблицы находим по правилу прямоугольника. Например, элемент  найдем из прямоугольника

 =

Или элемент = из прямоугольника

Оценки  для новой таблицы можно находить по этому же правилу.

В целом, решение данной задачи симплексным методом в виде таблиц будет иметь вид

Базис

В 2 3 0 0 0 0

0 18 1 3 1 0 0 0 6

0 16 2 1 0 1 0 0 16

0 5 0 1 0 0 1 0 5

0 21 3 0 0 0 0 1

0 –2 –3 0 0 0 0 таб. 1

0 3 1 0 1 0 –3 0 3

0 11 2 0 0 1 –1 0 5,5

3 5 0 1 0 0 1 0

0 21 3 0 0 0 0 1 7

15 –2 0 0 0 3 0 таб. 2
Базис

В 2 3 0 0 0 0

2 3 1 0 1 0 –3 0

0 5 0 0 –2 1 5 0 1

3 5 0 1 0 0 1 0 5

0 12 0 0 –3 0 9 1

21 0 0 2 0 –3 0 таб. 3

2 6 1 0 –0,2 0,6 0 0

0 1 0 0 –0,4 0,2 1 0

3 4 0 1 0,4 –0,2 0 0

0 3 0 0 0,6 –1,8 0 1

24 0 0 0,8 0,6 0 0 таб. 4

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

 – это значения  из столбца В, т.е. , , , .

Свободные (небазисные) переменные .

Итак, = (6; 4; 0; 0; 1; 3),

= = 24.

Примечание: При переходе от таблицы к таблице для контроля сравнивают , которое должно быть не меньше предыдущего для задачи на максимум и не больше предыдущего – для задачи на минимум.

При использовании симплексного метода возможны следующие случаи.

1) Если в оценочной строке симплекс-таблицы оценка = 0 соответствует свободной переменной, то это означает, что ЗЛП имеет не единственный оптимальный план.

2) Если при переходе от одного опорного плана к другому в разрешающем столбце нет положительных элементов, то это означает, что целевая функция ЗЛП является неограниченной и оптимальных планов не существует.

Задания для самостоятельной работы.

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

а)

 max

б)

 min

Понятие двойственности

1) Симметричные двойственные задачи

Рассмотрим задачу производственного планирования. Пусть предприятие имеет m видов ресурсов объемом  единиц. Эти ресурсы должны быть использованы для выпуска n видов продукции. Пусть  – норма потребления i-го вида ресурса на производство единицы j-ой продукции;  – цена реализации j-ой продукции;  – объем производства j-ой продукции, обеспечивающий предприятию максимальную выручку.

План производства  следует составить из условия максимизации общей стоимости продукции  при ограничениях на использовании ресурсов

,

Или в краткой форме записи математическая модель задачи имеет вид:

                                                      (1)

,                                                    (2)

,                                                           (3)

Задачу (1) – (3) называют исходной.

По исходным данным задачи (1) – (3) сформируем другую экономическую задачу.

Предположим, что предприятию разрешено на его усмотрение реализовать все указанные ресурсы. Необходимо установить цены на них – , , пользуясь следующими соображениями:

–     покупатель стремится минимизировать их общую стоимость;

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

Эти требования можно записать в виде следующей ЗЛП:

,

Или в краткой форме записи:

                                                      (4)

,                                                    (5)

,                                                           (6)

Полученную задачу (4) – (6) называют двойственной. Переменные  называются двойственными оценками, или теневыми ценами.

Задачи (1) – (3) и (4) – (6) называют парой взаимно двойственных симметричных задач, т. к. они обладают следующими свойствами:

1.         Если в одной задаче ищется максимум целевой функции, то в другой – минимум.

2.         Коэффициенты при переменных в целевой функции одной задачи являются правыми частями ограничений другой задачи и, наоборот.

3.         В каждой задаче система ограничений задается в виде неравенств, причем все они одного смысла: если задача на max, то все неравенства содержат знаки «», если на min, то все неравенства содержат знаки «».

4.         Матрицы ограничений прямой и двойственной задач являются транспонированными друг к другу.

5.         Число неравенств в системе ограничений одной задачи равно числу переменных другой задачи.

6.         Условие неотрицательности переменных сохраняется в обеих задачах.

Примечание: Понятие «прямой» и «двойственной» задач условно.

2) Построение модели двойственной задачи

Используя свойства (1–6), покажем на конкретном примере построение двойственной задачи.

Пример. Пусть исходная задача имеет вид:

,

Нужно составить к ней двойственную.

Решение. Запишем расширенную матрицу системы ограничений и транспонируем ее.

1 –1 2 2 1 2 5 11 2
2 1 –3 4

АТ=

–1 1 –1 1 3

А =

5 –1 1 3 2 –3 1 2 1
11 1 2 1 2 4 3 1

min

2 3 1

max

Теперь запишем двойственную задачу по АТ с переменными , .

, .

 

Пример. К заданной задаче записать двойственную:


Решение. Так как задача на min, то все неравенства должны иметь знаки «». С этой целью второе ограничение умножим на (–1); при этом знак неравенства изменится на противоположный. Теперь задача будет иметь вид:

,

Запишем матрицы А и АТ.

1 1 1 1 –2 5

А =

–2 –3 –5

АТ=

1 –3 2
5 2

min

1 –5

max

Двойственная задача:

, .

3) Применение теорем двойственности к анализу оптимальных решений пары симметричных двойственных задач

Рассмотрим следующую задачу. Предприятие планирует выпускать 3 вида продукции – П1, П2, П3. Для этого оно располагает объемами ресурсов 3-х видов Р1, Р2, Р3. Затраты каждого ресурса на изготовление единицы продукции и цена единицы продукции приведены в таблице:

Пj

Рi

П1

П2

П3

Объем

Р1

4 2 1 180

Р2

3 1 1 210

Р3

1 2 5 244

Цена

10 14 12

Требуется:

1)         построить модель исходной и двойственной задач;

2)         решить исходную задачу симплексным методом;

3)         найти оптимальное решение двойственной задачи, используя проверочную строку последней симплексной таблицы;

4)         дать экономический анализ основным и дополнительным переменным оптимальных решений обеих задач;

5)         в ответе записать оптимальные решения обеих задач и значения их целевых функций; указать наиболее дефицитный ресурс и наиболее убыточный вид продукции.

Решение. 1. Построим модель исходной задачи

, .

Здесь х1, х 2, х3 – план выпуска продукции.

Составим математическую модель двойственной задачи:


, .

2. Решим исходную задачу симплексным методом.

Запишем ее канонический вид:

, .

 

х4, х5, х6 – дополнительные и они же базисные переменные. Начальный опорный план (0; 0; 0; 180; 210; 244).

Базис

В 10 14 12 0 0 0

0 180 4 2 1 1 0 0 90

0 210 3 1 1 0 1 0 210

0 244 1 2 5 0 0 1 122

0 –10 –14 –12 0 0 0 таб. 1
Базис

В 10 14 12 0 0 0

14 90 2 1 0,5 0,5 0 0 180

0 120 1 0 0,5 –0,5 1 0 240

0 64 –3 0 4 –1 0 1 16

1260 18 0 –5 7 0 0 таб. 2

14 82 2,375 1 0 0,625 0 –0,125

0 80 1,375 0 0 0,125 1 –0,625

12 16 –0,75 0 1 –0,25 0 0,25

1340 14,25 0 0 5,75 0 1,25 таб. 3

Так как все оценки , то получен оптимальный план:

= (0; 82; 16; 0; 80; 0); = 1340.

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

основные переменные

дополнительные переменные

дополнительные переменные

основные переменные

Откуда: 5,75; 0; 1,25; 14,25; 0; 0.

= (5,75; 0; 1,25; 14,25; 0; 0); 1340.

Таким образом получили =1340.

4. Проанализируем основные и дополнительные переменные оптимальных решений обеих задач. Основные переменные исходной задачи – это планируемый выпуск продукции.

Продукцию І-го вида к выпуску не планируют, ІІ-го вида – в количестве 82 ед. и ІІІ-го вида – в количестве 16 ед.

Дополнительные переменные исходной задачи показывают остатки сырья.

Сырье І и ІІІ видов израсходовано полностью. А сырье ІІ вида осталось в количестве 80 ед.

Основные переменные двойственной задачи характеризуют дефицитность сырья: если , то сырье дефицитное; если , то сырье недефицитное.

Таким образом, сырье І и ІІІ видов дефицитное, причем наиболее дефицитное сырье І-го вида. Сырье ІІ вида недефицитное.

Дополнительные переменные двойственной задачи характеризуют рентабельность продукции. При этом, если , то продукция нерентабельна.

По этому соотношению видно, что продукция І вида нерентабельна, а ІІ и ІІІ – рентабельна.

Ответ: = (0; 82; 16; 0; 80; 0); = 1340;

= (5,75; 0; 1,25; 14,25; 0; 0); 1340

Наиболее дефицитное сырье І вида. Наиболее убыточный І вид продукции.

Задания для самостоятельной работы.

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

Построить модель прямой и двойственной задач. Найти оптимальный план для обеих задач и экстремальные значения целевых функций. Дать экономическую интерпретацию основным и дополнительным переменным исходной и двойственной задач.

Ресурсы Продукция

Затраты ресурсов на единицу продукции

Объем

ресурсов

П1

П2

П3

П4

Р1

2 3 4 4 2100

Р2

5 5 0 7 2800

Р3

8 7 10 9 3000

Цена

единицы

60 65 55 62
Транспортная задача (ТЗ)

Транспортная задача возникает при планировании рациональных перевозок грузов. Математическая модель транспортной задачи в простейшем случае имеет вид:

max                                                 (1)

                                                  (2)

, ,                                                         (3)

Здесь: – запасы поставщиков;

– спрос потребителей;

– тарифы, т.е. стоимости перевозки единицы груза от -го поставщика к -му потребителю;

Z – транспортные расходы;

- количество продукта, перевозимого от -го поставщика к -му потребителю.

Обычно транспортную задачу задают тремя матрицами: матрицей поставщиков, матрицей потребителей и матрицей тарифов.

Для наглядности транспортную задачу представляют в виде распределительной таблицы.

Любая транспортная задача имеет допустимое решение (матрицу перевозок ), если

                                                             (4)

Если условие (4) выполняется, то транспортную задачу называют транспортной задачей закрытого типа.

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

1) Построение начального опорного плана. Его вырожденность или невырожденность. Ранг матрицы системы.

а) Метод северо-западного угла.

Заполнение распределительной таблицы начинают с клетки (1; 1), при этом . Далее смещаются или по строке вправо или по столбцу вниз до клетки . Заполненные клетки должны распространяться так, чтобы их можно было соединить ломаной линией, звенья которой взаимно перпендикулярны.

Пример. Построить методом северо-западного угла начальный опорный план для транспортной задачи: поставщики а = (20; 30; 40); потребители = (15; 35; 20; 20); тарифы перевозок

Найти стоимость перевозок.

Решение. Строим распределительную таблицу и находим груз х11 = min (20; 15) = 15. По первому столбцу не перемещаемся, так как спрос І потребителя удовлетворен. Перемещаемся по І строке в клетку (1; 2):

х12 = min (а1 х11; b2) = min (5; 35) = 5.

Теперь переходим по ІІ столбцу в клетку (2; 2):

х22 = min (30; b2 х12) = min (30; 30) = 30.

Так как спрос ІІ потребителя удовлетворен и у ІІ поставщика продукция уже выбрана, то переходим к клетке (3; 3):

х33 = min (40; 20) = 20.

х34 = min (а3 х33; b4) = min (20; 20) = 20.

Таким образом, получен план перевозок:

15 35 20 20
20 4 6 12 5
15 5
30 2 7 8 10
30
40 5 3 4 6
20 20

Для подсчета стоимости перевозок нужно количество груза в каждой заполненной клетке умножить на соответствующий тариф в этой клетке и результаты сложить.

.

б) Метод минимального элемента (наименьшей стоимости).

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

Пример. Построить начальный опорный план методом минимальной стоимости и найти транспортные расходы для транспортной задачи: поставщики а = (20; 30; 40); потребители = (15; 35; 20; 20); тарифы перевозок

Решение. Строим распределительную таблицу и начинаем ее заполнять с клетки (2; 1), т. к. в ней наименьший тариф х21 = min (30; 15) = 15.

15 35 20 20
20 4 6 12 5
20
30 2 7 8 10
15 15
40 5 3 4 6
35 5

Потом заполняем клетку (3; 2) с тарифом с32 = 3;

х32 = min (40; 35) = 35.

Далее х33 = min (а3 х32; b3) = (5; 20) = 5;

х14 = min (20; 20) = 20;

х23 = min (а2 х21; b3 х33) = min (15; 15) = 15.

.

Сравнивая значение Z в а) и б), видим, что учитывая стоимости перевозок, затраты при втором методе значительно меньше.

Рангом матрицы системы (2) называют число , т.е. количество строк плюс количество столбцов и минус единица. Если число заполненных клеток в распределительной таблице равно рангу матрицы, то полученный план называется не вырожденным. В противоположном случае – вырожденным.

В пунктах а) и б) , а число заполненных клеток 5. Следовательно, полученные планы – вырожденные.

2) Метод потенциалов. Признак оптимальности опорного плана.

Допустимое решение транспортной задачи является оптимальным тогда и только тогда, когда можно найти такие числа – потенциалы ,  и , , которые удовлетворяют следующим условиям:

          I.  

        II.    для всех заполненных клеток;                              (5)

       III.    для всех пустых клеток.                    (6)

На основании первого условия оптимальности потенциалы находят из условий  и один, произвольно выбранный, потенциал приравнивают к нулю, например .

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

3) Переход к нехудшему опорному плану.

Переход к не худшему опорному плану осуществляют при помощи цикла перераспределения груза. Цикл представляет собой замкнутую ломаную, звенья которой взаимно перпендикулярны и вершины цикла, кроме одной, находятся в заполненных клетках.

Приведем примеры разновидностей форм циклов:

В каждом случае только одна вершина цикла находится в незаполненной клетке. Ее называют началом цикла и определяют по наибольшему нарушению условия оптимальности (6), т.е. по максимальной оценке . Клетке начала цикла присваивают знак «+», во всех остальных вершинах цикла знаки чередуют «–», «+» и т.д. Из клеток цикла со знаками «–» выбирают ту, в которой находится минимальный груз. Это и будет то количество груза, которое нужно перераспределить по циклу, т.е. в клетке со знаком «+» это количество груза прибавляется, а со знаком «–» – вычитается. Клетки, которые не задействованы в цикле, остаются неизменными.

Таким образом, получаем новый опорный план. Подсчитываем транспортные расходы, которые должны быть не более предыдущих. В противном случае где-то допущена ошибка. Новый план опять проверяем на оптимальность, используя условия (5) и (6). Если план оптимальный, то задача решена. Если же план опять не оптимальный, то работаем, согласно пункту 3) до получения оптимального плана и нахождения Zmin.

Транспортная задача открытого типа

Если для транспортной задачи выполняется одно из условий

 или

,

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

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

Запишем алгоритм решения транспортной задачи:

1) Проверка типа модели ТЗ.

2) Построение начального опорного плана (любым способом).

3) Проверка плана на вырожденность.

4) Проверка плана на оптимальность методом потенциалов:

а) нахождение потенциалов из системы

     (для всех заполненных клеток);

б) проверка второго условия оптимальности

      (для всех пустых клеток).

5) Переход к нехудшему опорному плану (если это необходимо).

Пример. На складах имеются запасы однотипного товара в количестве а (35; 40; 40; 50), который необходимо доставить потребителям. Потребности потребителей задает вектор b (31; 52; 17; 20). Матрица затрат на доставку единицы товара от i-го поставщика j-му потребителю:

с=

Составить план перевозок с минимальными транспортными затратами.

Решение. Определим тип модели транспортной задачи. Суммарная мощность поставщиков: 35+40+40+50=165 (единиц товара); Суммарный спрос потребителей: 31+52+17+20=120 (единиц товара).

Т.к. , то имеем модель открытого типа.

Введем фиктивного потребителя, спрос которого равен

 165 –120 =45 (единиц товара).


Тарифы 0. Т.о. получаем модель закрытого типа, m = 4 – число поставщиков, n = 5 – число потребителей. Ранг матрицы задачи . Построим начальный опорный план методом минимального элемента (наименьшей стоимости).

31 52 17 20 45

35 5 4 3 1 0 0
15 20
40 2 3 5 8 0 1
31 9
40 6 8 7 10 0 4
40
50 5 6 7 2 0 4
43 2 5

1 2 3 1 – 4 Таб.1

Число заполненных клеток распределительной таблицы 8 равно рангу матрицы задачи r = 8, следовательно, опорный план является невырожденным.

Транспортные затраты, соответствующие опорному плану:

 (ден. ед.).

Исследуем опорный план на оптимальность, используя метод потенциалов.

Дополним таблицу 1 столбцом и строкой потенциалов  и . Систему потенциалов найдем, используя первое условие оптимальности: для заполненных поставками клеток .

;

;

;

;

;

;

;

;

.

Из записанной системы находим: , , ,, , , , , .

Проверим выполнение второго условия оптимальности. Для всех пустых клеток должно выполняться неравенство: .

(1; 1) 0 + 1 – 5 = –40;

(1; 2) 0 + 2 – 4 = –20;

(1; 5) 0 – 4 – 0 = –40;

(2; 3) 1 + 3 – 5 = –10;

(2; 4) 1 + 1 – 8 = –60;

(2; 5) 1 – 4 – 0 = –40;

(3; 1) 4 + 1 – 6 = –10;

(3; 2) 4 + 2 – 8 = –20;

(3; 3) 4 + 3 – 7 = 00;

(3; 4) 4 + 1 – 10 = –50;

(4; 1) 4 + 1 – 5 = 00;

(4; 4) 4 + 1 – 2 = 30.

Т.к. среди свободных клеток есть такие, в которых второе условие оптимальности не выполняется, то план не оптимален.

Осуществим переход к нехудшему опорному плану. Наиболее перспективная для заполнения клетка (4; 4), т. к. ей соответствует наибольшая положительная оценка

4 + 1 – 2 = 3.

Найдем цикл перераспределения груза для этой клетки.

Выбранной для заполнения клетке присваиваем знак «+», далее знаки чередуем. Среди вершин со знаком «–» выбираем наименьшую поставку.

– объем перепоставки.

Перераспределим поставки по циклу, тем самым перейдем к новому опорному плану.

31 52 17 20 45

35 5 4 3 1 0 0
17 18
40 2 3 5 8 0 –2
31 9
40 6 8 7 10 0 1
40
50 5 6 7 2 0 1
43 2 5

4 5 3 1 –1 Таб.2

Транспортные затраты, соответствующие опорному плану:

 (ден. ед.).

Исследуем опорный план на оптимальность. Найдем значения потенциалов, используя первое условие оптимальности. Для заполненных поставками клеток .

, , , , , , , , .

Проверим выполнение второго условия оптимальности. Для всех пустых клеток должно выполняться неравенство: .

Выпишем клетки, в которых условие нарушено:

(1; 2) 0 + 5 – 4 = 10.

Осуществим переход к нехудшему опорному плану. Наиболее перспективная для заполнения клетка (1; 2), т. к. ей соответствует положительная оценка 1. Найдем цикл перераспределения груза для этой клетки.

– объем перепоставки.

Число заполненных клеток распределительной таблицы 8 равно рангу матрицы задачи r = 8, следовательно, опорный план (таб. 3) является невырожденным.

31 52 17 20 45

35 5 4 3 1 0 0
18 17
40 2 3 5 8 0 –1
31 9
40 6 8 7 10 0 2
40
50 5 6 7 2 0 2
25 20 5

3 4 3 0 –2 Таб.3

Транспортные затраты, соответствующие опорному плану:

 (ден. ед.).

Исследуем опорный план на оптимальность.

Найдем значения потенциалов, используя первое условие оптимальности. Для заполненных поставками клеток .

, , ,, , , , , .

Проверим выполнение второго условия оптимальности. Для всех пустых клеток должно выполняться неравенство: .

Второе условие оптимальности выполняется для всех свободных клеток, следовательно, план оптимален.

Наименьшие транспортные затраты .

Ответ: ; оптимальный план распределения поставок расположен в таб. 3.

Задания для самостоятельной работы.

Составить план перевозок с минимальными транспортными затратами.

 

а)

 

б)

Решение оптимизационных задач с помощью Excel

При решении оптимизационных экономических задач необходимо пройти через следующие этапы:

·          Составить математическую модель экономической задачи;

·          Решить полученную экстремальную математическую задачу;

·          Дать экономическую интерпретацию ответу.

Рассмотрим прохождение этих этапов на примере задачи об использовании ресурсов.

Пример. Для изготовления изделий двух видов А и В на заводе используют сырье четырех типов (І, ІІ, ІІІ, IV). Для выпуска изделия А необходимо 2 единицы сырья І типа; 1 ед. сырья ІІ типа; 2 ед. сырья ІІІ типа; 1 ед. сырья IV типа. Для изготовления изделия В требуется 3 единицы сырья І типа; 1 ед. сырья ІІ типа; 1 ед. сырья ІІІ типа. Запасы сырья составляют: І типа – 21 ед., ІІ типа – 8 ед., ІІІ типа – 12 ед., IV типа – 5 ед. Выпуск одного изделия типа А приносит 3 грн. прибыли, а одного изделия типа В – 2 грн. прибыли. Составить план производства, обеспечивающий наибольшую прибыль.

Решение.

·          Составление математической модели.

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

Так как необходимо определить количество изделий А и В, то введем следующие обозначения:

– количество изделий А, планируемое к выпуску;

– количество изделий В, планируемое к выпуску;

Z (целевая функция задачи) по своему экономическому смыслу – это прибыль. (Т.к. из условия задачи мы видим, что слово «наибольшая», связанное с экстремумом, соответствует прибыли).

Получим:

 – математическая модель задачи.

·          Решение полученной экстремальной задачи:

Для решения задачи воспользуемся возможностями Microsoft Excel.

§   Откройте Microsoft Excel.

§   В ячейки первой строки (в данном случае А1 и В1) введите обозначения имеющихся в задаче переменных ,  (язык и шрифт значения не имеют, т. к. обозначения необходимы для понимания смыслов соответствующих им чисел).

§   В ячейки второй строки (в данном случае А2 и В2), соответствующие заполненным ячейкам первой, введите произвольные значения переменных (для простоты возьмем значения 1, хотя на самом деле это могут быть любые числа). Тем самым мы присваиваем  и  пока значения 1.

В ячейку А4 введите обозначение целевой функции Z=.

§   В ячейку В4 введите формулу вычисления целевой функции из математической модели задачи

(), подставляя вместо  и , соответствующие им значения из ячеек А2 и В2. (Вспомните, что введение формулы начинается со знака =)

После нажатия кнопки Enter на экране монитора должно быть следующее. (Продумайте, как изменится картинка, если ввести иные значения  и , к примеру, не 1, а 2. А теперь поэкспериментируйте. Оправдался ваш прогноз?)

В ячейки А5 и В5 введите соответственно слова: А5 – Ограничение, В5 – Правая часть ограничения.

§   В ячейку А6 введите формулу вычисления левой части первого ограничения , подставляя вместо  и , соответствующие им значения из ячеек А2 и В2.

§   В ячейку В6 введите свободный член первого ограничения – 21. После нажатия кнопки Enter на экране монитора должно быть следующее.

§   Аналогично в ячейку А7 введите формулу вычисления левой части второго ограничения , а в В7 его свободный член – 8; в ячейку А8 введите формулу вычисления левой части третьего ограничения , а в В8 его свободный член – 12; в ячейку А9 введите формулу вычисления левой части четвертого ограничения , а в В9 его свободный член – 5;

§   После нажатия кнопки Enter на экране монитора должно быть следующее.

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

§   В меню Сервис выберите команду Поиск решения (именно она является инструментом для поиска решений задач оптимизации)

§   В этой команде вам будет предложено установить целевую ячейку. Именно слово «целевую» поможет вам в дальнейшем вспомнить, о чем идет речь. Конечно же, о значении целевой функции. Введите это значение, щелкнув левой кнопкой мышки на ячейке В4 (содержащей в данном случае числовое значение целевой функции). Получите:

§   Т.к. в данной задаче функция Z исследуется на максимум, то оставляем Равной: максимальному значению.

Если решаем задачу на минимум, то нужно поставить метку • перед словами минимальному значению.

§   Далее нажмите на стрелку, расположенную в правой части пространства ячейки Изменяя ячейки:, в результате чего на экране должно появиться следующее

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

Т.е. заполненная ячейка должна принять вид:

§   После этого заполняют пространство ячейки Ограничения: Для чего нужно щелкнуть по кнопке Добавить, в результате чего на экране появится новое окно:

В Ссылка на ячейку: введите номер ячейки, содержащей левую часть ограничения (в данном случае для первого ограничения – это ячейка А6).

Выберите знак ограничения в соответствии с математической моделью из предлагаемых вариантов (в данном случае <=, т. к. первое ограничение со знаком )

В Ограничение: введите номер ячейки, содержащей свободный член ограничения (в данном случае для первого ограничения – это ячейка В6).

Т.о. перед вами на экране должна быть следующая картинка:

Это вы ввели только первое ограничение, а есть еще и другие, поэтому нажмите кнопку Добавить и аналогичным образом введите второе, третье и четвертое ограничения.

§   Но после того, как все ограничения системы введены, еще рано нажимать ОК, т. к. в математической модели имеется условие неотрицательности переменных (), а в описании задачи для компьютера оно еще не упоминалось.

Поэтому после введения последнего ограничения вновь нажмите кнопку Добавить и в Ссылка на ячейку: введите номер ячейки, содержащей числовое значение ; выберите знак >=; а в Ограничение: введите 0.

Еще раз нажмите Добавить и аналогичным образом создайте условие неотрицательности для .

§   Таким образом, компьютер получил все те ограничения, которые есть в условии задачи, поэтому теперь можно нажать ОК. В результате на экране появится следующее:

Появилось? Если ДА, то нажимайте Выполнить.

И согласитесь на то, чтобы Сохранить найденное решение. Т.е. в появившемся окне нажмите ОК.

§   Обратите внимание на то, какие теперь значения принимают ,  и Z.

 = 4;  = 4; Z = 20 – Это и есть найденное оптимальное решение задачи () и соответствующее

экстремальное значение целевой функции ().

Математически задача решена. Осталось дать экономическую

интерпретацию полученному.

·          Дадим экономическую интерпретацию ответу.

Для достижения наибольшей прибыли 20 грн. необходимо производить 4 изделия А и 4 изделия В.


Литература

1.   Вітлінський В.В., Наконечний С.І., Терещенко Т.О. Математичне програмування. – К.: КНЕУ, 2001.

2.   Исследование операций в экономике/ Под ред. проф. Н.Ш. Кремера. – М.: Банки и биржи, ЮНИТИ, 2000.

3.   Конюховский П.В. Математические методы исследования операций в экономике: учебное пособие. – СПб. – Москва – Харьков – Минск, 2005.

4.   Кулян В.Р. и др. Математическое программирование. – К.: МАУП, 2005.

5.   Таха, Хемди. Введение в исследование операций. – М.: Издательский дом «Вильямс», 2001.