Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labor_praktikum_ch1.doc
Скачиваний:
46
Добавлен:
18.11.2019
Размер:
1.83 Mб
Скачать

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

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

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

Пусть Хи(х 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

11 x 1 + a 12 x 2 +...+ a 1n. x n = a 10

21 x 1 + a 22  x2  +...+ a 2n  n  = a 20

......................................................................

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  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

-

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

1нов= 10-

3

18

3

18

z нов= - 3 -

-1

-3

Контрольные суммы находятся для контроля вычислений. Сумма всех элементов строки должна совпадать с контрольной суммой, вычисленной по общим правилам преобразований Жордана - Гаусса.

В первой строке:

Во второй строке:

В третьей строке - строке целевой функции:

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

Таблица 3

Базисные переменные

Переменные

Z

x1

x2

x3

x4

aio

-

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нов =

2 =

Найдем сумму элементов второй строки непосредственным сложением и сравним с kΣ2 .

Суммы совпали. Преобразования выполнены верно.

Запишем преобразования третьей строки - строки целевой функции:

a3Zнов = 1; C1нов = 0,

т.к. в разрешающей строке в столбцах Z и x1 стоят нули, то эти столбцы остаются без изменений.

C2нов = 0, как элемент разрешающего столбца.

C3нов =

C4нов =

C0нов =

нов =

Проверим сумму элементов третьей строки непосредственным сложением и сравним с kΣZ .

1 -

В таблице 4 записаны полученные результаты:

Таблица 4

Базисные переменные

Переменные

Z

x1

x2

x3

x4

aio

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

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

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

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 = 14

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. Какая форма записи задачи линейного программирования называется однородной?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]