- •Лабораторный практикум
- •По дисциплине «Математические методы в экономике»
- •Часть 1.Линейное и дискретное программирование
- •Для подготовки студентов по направлениям 080500 - менеджмент и 080100 - экономика
- •Лабораторный практикум по дисциплине «Математические методы в экономике» . Часть 1.Линейное и дискретное программирование. Уч. Пособие. М.: фгоу впо ргау - мсха им. К.А. Тимирязева, - 124 с.
- •Содержание
- •Введение
- •Лабораторная работа № 1 «Запись условий задач линейного программирования»
- •Соответствие решений канонической, исходной и однородной форм задач линейного программирования
- •Алгоритм перехода от исходной формы к канонической форме
- •Лабораторная работа № 2 «Переход от задачи в канонической форме к задаче в однородной форме»
- •Эквивалентность различных форм задач линейного программирования
- •Лабораторная работа № 3 «Графический метод решения задач линейного программирования»
- •2 Область допустимых решений и допустимое решение
- •3 Линия уровня
- •4 Вектор – градиент
- •5 Оптимальное решение
- •6 Возможные варианты графического решения для двух переменных
- •Лабораторная работа № 4-5 «Решение задач линейного программирования на основе фундаментальной теоремы»
- •1 Теоремы о выпуклых множествах и области допустимых решений
- •2 Фундаментальная теорема
- •3 Применение фундаментальной теоремы для неограниченной области допустимых решений
- •2 Случай
- •4 Обобщенная фундаментальная теорема линейного программирования
- •5 Решение задач на основе фундаментальной теоремы
- •Лабораторная работа № 6 «Получение исходного опорного решения»
- •1 Общие сведения
- •2 Переход от однородной формы или исходной формы общей задачи линейного программирования к канонической форме
- •3 Переход от исходного базисного решения к исходному опорному решению
- •4 Получение исходного опорного решения м-задачи.
- •Правила перехода к м-задаче от исходной формы (основной) задачи
- •Контрольные вопросы
- •Лабораторная работа №7 - 12 «Решение общей задачи линейного программирования симплексным методом»
- •Алгоритм симплексного метода в полных таблицах при решении задач на максимум целевой функции.
- •Глоссарий основных понятий
- •Рекомендуемая литература
Эквивалентность различных форм задач линейного программирования
Две формы записи задачи линейного программирования эквивалентны, если любому допустимому решению одной из них соответствует единственное допустимое решение другой и при этом целевые функции обеих задач равны.
Две формы записи задачи линейного программирования эквивалентны, если оптимальному решению одной задачи соответствует оптимальное решение другой задачи и при этих оптимальных решениях значения целевых функций равны.
Пусть Хи(х 10, х 20 ,…, х n0); Хк(х 10, х 20 ,..., х n0, х n+10). Хи ~ Х к - эквивалентные допустимые решения исходной и канонической форм. При этом Z(Хи) = Z(Хк).
Пусть Хи(х 1*, х 2* ,…, х n*); Хк(х 1*, х 2* ,..., х n*, х n+1*). Хи*~ Х к* -
эквивалентные оптимальные решения исходной и канонической форм задачи линейного программирования. Тогда Z(Хи*) = Z(Хк*). Z(Хи*) Z(Хи). Z(Хк*) Z(Хк) (при решении на максимум Z).
Если две задачи линейного программирования эквивалентны, то достаточно найти оптимальное или хотя бы допустимое решение только в одной форме записи задачи. Решение в другой форме можно записать без повторного решения задачи в этой форме, а пользуясь лишь правилами соответствия.
Правило перехода от одной формы к другой обеспечивает эквивалентность задач.
Задача линейного программирования, записанная в исходной форме, эквивалентна как задаче, записанной в канонической форме, так и задаче, записанной в однородной форме.
Общая постановка задачи
Дана задача в канонической форме:
max Z = C1*x1 + C2*x2 +...+ Cn*x n+ C0
a 11 x 1 + a 12 x 2 +...+ a 1n. x n = a 10
a 21 x 1 + a 22 x2 +...+ a 2n x n = a 20
......................................................................
a m 1 x 1 + a m 2 x2 +...+ a m n x n= a m 0
x j ≥ 0 , j = 1 n.
С помощью преобразований Жордана - Гаусса получить каноническую форму с единичным базисом (случай 1), а затем получить задачу в однородной форме:
max Z = C`1 *x1 + C`2*x2 +...+ C`k*x k+ C`0
a` 11 x 1 + a` 12 x 2 +...+ a` 1k. x k ≤ a` 10
a` 21 x 1 + a` 22 x2 +...+ a` 2k x k ≤ a` 20
......................................................................
a`m 1 x 1 + a` m 2 x2 +...+ a` mk x k≤ a` m 0
x j ≥ 0 , j = 1 k.
Пример выполнения работы
Перейти от канонической формы к однородной форме.
max Z = x1 + x2 + x3+ x4
(А)
1. В задаче два ограничения. Следовательно, m = 2. Выпишем все возможные группы из четырех переменных по две.
x1 x2; x1 x3; x1 x4; x2 x3; x2 x4; x3 x4
Найдем определители из коэффициентов при переменных этих групп:
x1 x2
x1 x3
x1 x4
x2 x3
x2 x4
x3 x4
Для всех групп переменных определители отличны от нуля. Следовательно, данную систему можно привести к шести сочетаниям базисных переменных.
Перейдем к сочетанию базисных переменных х1 х2.
2. Перенесем в левую часть все элементы целевой функции. Получим
Z - x1 - x2 - x3 - х4 = 0.
3. Запишем систему ограничений и измененную целевую функцию в таблицу Гаусса. Получим таблицу 2.
Столбец контрольной суммы - это сумма всех элементов строки.
Таблица 2
-
Базисные переменные
Переменные
Z
x1
x2
x3
x4
aio
kΣ
-
0
1
3
1
0
5
10
-
0
3
2
2
1
10
18
I*
Z
1
-1
-1
-1
-1
0
-3
J*
4. Выполним первую итерацию преобразований Жордана - Гаусса.
За разрешающий элемент возьмем элемент во втором ограничении в столбце переменной x1. ai*j* = 3
Обведем его в рамку или в кружок, или выделим жирным шрифтом. Результаты расчетов запишем в таблице 3.
Разрешающую строку делим на разрешающий элемент:
a2zнов= =0; а21нов= = =1; а22нов= а23нов= ; а24нов= ;
а20нов= ; k .
В разрешающем столбце все элементы, кроме разрешающего элемента, равны нулю
a1j* нов = 0; С1 нов = a3j* нов= 0.
Элемент, стоящий на месте разрешающего, равен единице ai*j* нов = 1.
В разрешающей строке в столбце Z стоит 0, следовательно, столбец Z остается без изменений: aiz нов = 0; a3z нов = 1.
Проверим по правилу прямоугольника:
0 |
1 |
a1zнов= 0- |
0 |
3 |
|
0 |
3 |
a1zнов= 1- |
1 |
-1 |
|
Найдем элементы столбца x2:
1 |
3 |
a12нов= 3- |
3 |
2 |
|
3 |
2 |
C2нов=a32нов= -1- |
-1 |
-1 |
|
Найдем элементы столбца x3:
1 |
1 |
a13нов= 1- |
3 |
2 |
|
3 |
2 |
C3нов=a33нов= -1- |
-1 |
-1 |
|
Найдем элементы столбца x4 :
1 |
0 |
a14нов= 0- |
3 |
1 |
|
3 |
1 |
C4нов=a34нов= -1- |
-1 |
-1 |
|
Найдем элементы столбца свободных членов:
1 |
5 |
a10нов= 5- |
3 |
10 |
|
3 |
10 |
C0нов=a30нов=0- |
-1 |
0 |
|
Найдем элементы столбца контрольных сумм:
1 |
10 |
kΣ1нов= 10- |
3 |
18 |
3 |
18 |
kΣz нов= - 3 - |
-1 |
-3 |
Контрольные суммы находятся для контроля вычислений. Сумма всех элементов строки должна совпадать с контрольной суммой, вычисленной по общим правилам преобразований Жордана - Гаусса.
В первой строке:
Во второй строке:
В третьей строке - строке целевой функции:
Все контрольные суммы совпали. Следовательно, вычисления выполнены верно и записаны в таблицу 3
Таблица 3
-
Базисные переменные
Переменные
Z
x1
x2
x3
x4
aio
kΣ
-
0
0
7/3
1/3
-1/3
5/3
4
i*
x1
0
1
2/3
2/3
1/3
10/3
6
Z
1
0
-1/3
-1/3
-2/3
10/3
3
J*
II. Перейдем ко второй итерации. Вторая строка уже была разрешающей. Третья строка - строка целевой функции, разрешающей быть не может, следовательно, разрешающей строкой может быть только первая строка.
Мы выбрали сочетание базисных переменных x1,x2 . Систему уже разрешили относительно x1, следовательно, теперь ее разрешим относительно переменной x2.
Разрешающий элемент
a i*j* = .
Обведем его в рамку, в кружок или выделим жирным шрифтом.
Выполним преобразования Жордана - Гаусса и запишем результаты в таблицу 4.
Разрешающую строку делим на разрешающий элемент. В разрешающем столбце остальные элементы - нули. Запишем преобразования второй строки:
a22 нов = 0; a21 нов = 1,
т.к. в разрешающей строке в столбцах Z и x1 стоят нули, то эти столбцы остаются без изменений.
a23нов =
a24нов =
a20нов =
kΣ2 =
Найдем сумму элементов второй строки непосредственным сложением и сравним с kΣ2 .
Суммы совпали. Преобразования выполнены верно.
Запишем преобразования третьей строки - строки целевой функции:
a3Zнов = 1; C1нов = 0,
т.к. в разрешающей строке в столбцах Z и x1 стоят нули, то эти столбцы остаются без изменений.
C2нов = 0, как элемент разрешающего столбца.
C3нов =
C4нов =
C0нов =
KΣнов =
Проверим сумму элементов третьей строки непосредственным сложением и сравним с kΣZ .
1 -
В таблице 4 записаны полученные результаты:
Таблица 4
Базисные переменные |
Переменные |
||||||
Z |
x1 |
x2 |
x3 |
x4 |
aio |
kΣ |
|
x2 |
0 |
0 |
1 |
1/7 |
-1/7 |
5/7 |
12/7 |
x1 |
0 |
1 |
0 |
4/7 |
3/7 |
20/7 |
34/7 |
Z |
1 |
0 |
0 |
-2/7 |
-5/7 |
25/7 |
25/7 |
Выполнили m =2 преобразований Жордана-Гаусса. Получили в базисе переменные x2, x1 .
Запишем систему, соответствующую таблице 4. Получим:
(A΄)
Система (А) эквивалентна системе (А'), так как выполняли эквивалентные преобразования.
Перенесем все члены целевой функции, кроме Z, в правую часть, получим целевую функцию
Z = 0·х1 + 0·x2+ ·х3+ ·х4 + 25/7.
Отбросим базисные переменные x1, x2, заменив тип ограничения равенства на неравенства типа меньше или равно и записав условия неотрицательности переменных, получим однородную форму задачи.
(A”)
max Z = ·х3+ ·х4 +
Системы А", А', A эквивалентны, так как получены в результате эквивалентных преобразований.
Перейдем теперь от заданной канонической формы к новому сочетанию базисных переменных, например, к сочетанию x2,x3. Мы уже проверили, что такое сочетание возможно.
Таблица 2’
|
Базисные переменные |
Переменные |
||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Z |
x1 |
x2 |
x3 |
x4 |
aio |
kΣ |
i* |
||
- |
0 |
1 |
3 |
1 |
0 |
5 |
10 |
|||
- |
0 |
3 |
2 |
2 |
1 |
10 |
18 |
|||
Z |
1 |
-1 |
-1 |
-1 |
-1 |
0 |
-3 |
|
||
|
|
|
|
J* |
|
|
|
|
I итерация.
Возьмем разрешающей строкой первую строку, а разрешающим столбцом - столбец x3. Тогда разрешающий элемент
ai*j* = 1.
Обведем его в таблице 2' в рамку, в кружок или выделим жирным шрифтом.
Выполним первую итерацию преобразований Жордана-Гаусса. Результаты расчетов запишем в таблицу 3'.
II итерация.
Разрешающей строкой должна быть вторая строка. Мы выбрали сочетание базисных переменных x2, x3 . Систему уже разрешили относительно переменной x3, следовательно, теперь ее разрешим относительно переменной x2. Разрешающий элемент
ai*j* = -4
Обведем его в рамку, в кружок или выделим жирным шрифтом.
Таблица 3'
Базисные переменные |
Переменные |
|
|||||||
Z |
x1 |
x2 |
x3 |
x4 |
aio |
kΣ |
|
||
x3 |
0 |
1 |
3 |
1 |
0 |
5 |
10 |
|
|
- |
0 |
1 |
-4 |
0 |
1 |
0 |
-2 |
i* |
|
Z |
1 |
0 |
2 |
0 |
-1 |
5 |
7 |
|
|
|
|
|
j* |
|
|
|
|
|
Выполним вторую итерацию Жордана - Гаусса. Результаты запишем в таблицу 4׳.
Таблица 4'
Базисные переменные |
Переменные |
||||||
Z |
x1 |
x2 |
x3 |
x4 |
aio |
kΣ |
|
x3 |
0 |
7/4 |
0 |
1 |
3/4 |
5 |
17/2 |
x2 |
0 |
-1/4 |
1 |
0 |
-1/4 |
0 |
1/2 |
Z |
1 |
1/2 |
0 |
0 |
-1/2 |
5 |
6 |
Выполнили m = 2 преобразований Жордана - Гаусса. Получили в базисе переменные x3 x2. Запишем систему, соответствующую таблице 4', но предварительно перенесем все члены целевой функции, кроме Z, в правую часть. Получим
(A״׳)
max Z = - ·х1 + 0·x2 + 0·х3+ ·х4 +5
Отбросив базисные переменные x2 и x3, заменив тип ограничения равенства на неравенства типа меньше или равно, записав условия неотрицательности переменных, получим однородную форму задачи
(AIY)
max Z = - х1 + х4 + 5.
Системы A ~ AIII ~ AIV (системы эквивалентны), но A ~ A'~ A", то есть A ~ A'~ A" ~ AIII ~ AIV.
Ранее мы показали, что данную систему можно привести к шести сочетаниям базисных переменных. При этом системы, полученные в результате перехода от канонической формы к однородной, эквивалентны между собой.
Список индивидуальных данных
Перейти от канонической формы задачи линейного программирования к однородной (значение k – меняется по указанию преподавателя).
Для этого:
- выявить возможные сочетания базисных переменных,
выполнить в таблицах правила перехода для выбранного сочетания базисных переменных,
записать эквивалентную каноническую форму найденного сочетания базисных переменных,
записать эквивалентную однородную форму.
1. max Z = 5·x1 + 3·x2 + 4·x3 + х4
2. max Z = 3·x1 + 4·x2 + 5·x3 + 2·х4
3. max Z = 2·x1 + 3·x2 + 4·x3 - 5·х4
4. max Z = 3·x1 + 5·x2 - 6·x3 + 7·х4
5. max Z = 6·x1 + 7·x2 + 3·x3 + 2·х4
6. max Z = x1 + x2 + x3 + х4
7. max Z = 2·x1 + 5·x2 - 3·x3 + 6·х4
8. max Z = 3·x1 + 2·x2 + 6·x3 + 4·х4
9. max Z = 8·x1 + 3·x2 + 4·x3 + 5·х4
10. max Z = - x1 + 3·x2 + 4·x3 - 2·х4
11. max Z = -3·x1 - 3·x2 + x3 + 5·х4
12. max Z = 7·x1 + 2·x2 - 3·x3 + 4·х4
13. max Z = 2·x1 - 3·x2 + 4·x3 + х4
14. max Z = x1 - 4·x2 + 5·x3 - 6·х4
15. max Z = 4·x1 + 2·x2 + 6·x3 + х4
16. max Z = 2·x1 - x2 - 3·x3 + 5·х4
Выпишите свой пример:
max Z = x1 x2 x3 х4
x1 x2 x3 х4
x1 x2 x3 х4
xj 0 j = 14
x1 x2; x1 x3; x1 x4;
x2 x3; x2 x4; x3 x4.
detx1x2
detx1x3
detx1x4
detx2x4
detx2x3
detx3x4
Каноническая
форма
Однородная форма
Получите ещё новый базис, запишите для него каноническую и однородную форму:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Каноническая форма:
|
Однородная форма:
|
Получите ещё новый базис, запишите для него каноническую и однородную форму:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Каноническая форма:
|
Однородная форма:
|
Контрольные вопросы
1. Какие переменные называются:
базисными;
свободными?
2. Какое решение называется:
возможным;
общим;
частным;
допустимым;
базисным;
3. Какая строка (ограничение) называется разрешающей?
4. Какой столбец (переменная)называется разрешающим?
5. Как найти разрешающий элемент?
6. Как в таблицах Гаусса преобразуется разрешающая строка?
7. Как в таблицах Гаусса преобразуется разрешающий столбец?
8. Как выполняются преобразования элементов таблицы по правилу прямоугольника?
9. Что образуют в таблице (системе) базисные переменные?
10. Какая переменная записывается в базис системы?
11. Какая форма записи задачи линейного программирования называется канонической?
12. Какая форма записи задачи линейного программирования называется однородной?