Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2010_Kontrolni_roboti_Metodichni_vkazivki_Eko.doc
Скачиваний:
33
Добавлен:
07.02.2016
Размер:
839.17 Кб
Скачать

1.4 Приведення задачі лінійного програмування до канонічного виду

При створенні лінійної моделі світогосподарського процесу не обов’язково, що вона буде вимагати пошук найменшого значення, та обмеження будуть представленні рівняннями. Але для пошуку рішення за допомогою симплекс методу це є обов’язковим. Тому виникає необхідність приведення задачі лінійного програмування до канонічного виду. Приведення до канонічного вигляду здійснюється за допомогою наступних правил.

Якщо цільова функція вимагає знаходження максимуму, то якщо її помножити на “-1” функція змінються на знаходження мінімуму. В системі обмежень для перехіду від знаку “” до знаку “=” треба додати додаткову зміну, а від знаку “” до знаку “=” додати додаткову зміну з відємним значенням.

Приклад 1. Економіко-математична модель задачі лінійного програмування, яку треба привести до канонічного виду має вигляд

F = 10x1 + 12 x2 max

при обмеженнях

4x1 + 5x2 300

2x1 + x2 100

2x1 + 3x2 160

x1 0; x2 0

Для приведення цільової функції до канонічного виду виконуємо множення її на “-1”. В кожному обмеженні для зміни знака “” на знак “=” додаємо додаткову змінну. Ця змінна компенсує різницю між математичною формулою ліворуч та встановленою величиною праворуч. Таким чином задача у канонічному виді

F = - 10x1 - 12 x2 min

при обмеженнях

4x1 + 5x2 + x3 = 300

2x1 + x2 + x4 = 100

2x1 + 3x2 + x5 = 160

x1 0; x2 0; x3 0; x4 0; x5 0

Приклад 2. Економіко-математична модель задачі лінійного програмування, яку треба привести до канонічного виду має вигляд

F(x) = х1 - х2 - 3х3 min

при обмеженнях

1 - х2 - 3х3 1

1 - 2х2 + х3 -2 ,

2x1 + x3 5

xj 0 ( j = 1, 2, 3)

В цьому прикладі цільова функція вже встановлює пошук найменшого значення. Тому вона не змінюється. В кожному обмеженні для зміни знака “” на знак “=” додаємо додаткову змінну, а для зміни знака “” на знак “=” додаємо додаткову змінну з відємним значенням. Ця змінна компенсує різницю між математичною формулою ліворуч та встановленою величиною праворуч. Таким чином задача у канонічному виді

F(x) = х1 - х2 - 3х3 min

при обмеженнях

1 - х2 - 3х3 + х4 = 1

1 - 2х2 + х3 - х5 = -2 ,

2x1 + x3 + х6 = 5

xj 0 ( j = 1, 2, ..., 6)

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

Існує багато методів які дозволяють знайти оптимальне рішення в задачах лінійного програмування (ЗЛП). Одним з таких методів, який дозволяє ефективно вирішувати такі задачі є симплекс метод. Ідея цього методу складається з переходів від одного розв’язку xk до другого xk+1 , для яких виконується умова f(xk) > f(xk+1). Для переходу від одного розв’язку до другого використовуються симлексні таблиці. Кожній симплексній таблиці відповідає один з розв’язків задачі. По змісту симплексної таблиці можна визначити, чі оптимальне рішення знайдено, або що задача рішень не має.

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

Крок 1. Здійснюється перевірка економіко-математичної моделі на відповідність канонічному виду. Якщо модель не відповідає вимогам, то виконується приведення моделі до канонічного виду.

Крок 2. Для таблиці обмежень будується матриця коефіцієнтів та визначається базіс. Якщо треба, то послідовно у кожній строці визначається базисна змінна і за методом Гауса проводяться необхідні перетворення. Кожна базисна зміна має бути присутньою тільки в одній строці обмежень. Нехай Xk , Xk+1, …, Xk+j - є базіс, тогда Xk= B1 , Xk+1= B2 , …, Xk+j= Bm – є базисний розв’язок. Подальша задача полягає в тому, щоб від початкового допустимого базисного розв’язку перейти до іншого базисного розв’язку, при якому значення лінійної форми зменшиться. Лінійна форма при початковому базисному розв’язку дорівнюєнулю. Для поліпшення результатів розв’язку на кожному кроці треба перевести одну змінну з неосновних в основні і одну змінну з основних в неосновні, тобто дві змінні міняються місцями.

Крок 3. Будуємо симлекс таблицю для лінійної моделінаступного виду:

Таблиця 1.5.1

e

X1

X2

Xn

B

Xk

a11

a12

a1n

B1

Xk+1

a21

a22

a2n

B2

Xk+j

am1

am2

amn

Bm

F (x)

C1

C2

Cn

C0

В таблиці k, k+1, k+j < n, (Xk , Xk+1, …, Xk+j ) – початковий базіс рішення.

Крок 4. Серед коефіцієтів Ci (i = 1,n)обираємо Ci < 0 той , що має найменше значення (найбільше за абсолютним значенням). Стовпець з обраним Ci визначає змінну, яку треба перенести до базису. Щоб обрати змінну, яку треба виключити з бази розраховуємо оценку, яка визнається як Bi /aij . Виключати треба змінну, яка буде мати найменшу оцінку.

Крок 5. Після визначення змінної - притендента на перенесення в базис, використовуючі метод Гауса треба провести відповідні розрахунки в обмеженнях. Для цього строку обмежень з визначеною зміною пділимо на коефіцієнт при цей зміной. Потім знаходимо чому дорівнює ця змінна через інші змінні і підставляємо її значення в інші строки обмеження і лінейну форму.

Крок 6. За результатми проведених змін оновлюємо симплекс таблицю. Якщо серед коефіцієтів Ci (i = 1,n) є Ci < 0 , то переходимо до кроку 4. Якщо всі Ci 0, то знайдено оптимальне рішення.

Приклад 1. В прикладі 1 розділа 1.1 на підставі умов завдання побудована економіко-математична модель для пошуку рішення. Ця модель вимагає знайти максимальне значення цільової функції

F = 10x1 + 12 x2 max

при обмеженнях на ресурси виробництвапо металу, склу та трудовим ресурсам відповідно до технологічних норм,

4x1 + 5x2 300

2x1 + x2 100

2x1 + 3x2 160

x1 0; x2 0

Приводимо модель до канонічного виду

F = - 10x1 - 12 x2 min

при обмеженнях

4x1 + 5x2 + x3 = 300

2x1 + x2 + x4 = 100

2x1 + 3x2 + x5 = 160

x1 0; x2 0; x3 0; x4 0; x5 0

Будуємо сімплекс таблицю і визначаємо базіс. Так як додаткові змінні x3, x4, x5 мають кофецієнт одиницю та присутні тільке один раз в кожній строці обмежень, то ці змінні можуть створювати базіс.

Таблиця 1.5.2

e

X1

X2

X3

X4

X5

B

X3

4

5

1

0

0

300

X4

2

1

0

1

0

100

X5

2

3

0

0

1

160

F (x)

-10

-12

0

0

0

0

Аналізуємо остнню строку таблиці та визначаємо стовпець зі змінною, яку треба перенести до базису. В нашому випадку найменше значення “-12”, що відповідає знмінній x2.

Визначаємо змінну, яку треба вивести з базісу. Для цього вільні значення (стовпець В) ділимо на коефіцієнти у відповідних строках стовпця x2. За підсумками маємо значення

300 / 5 ; 100 / 1 ; 160 / 3 або 60; 100; 53,33333

Найменше значення знаходиться в строці зі змінною x5. Таким чином треба провести перетворення моделі за методом Гауса і перенести в базіс x2 замість x5. Обмеження, у якому визначено x2 і x5 поділимо на 3 і отримуємо (2/3)x1 + x2 + (1/3)x5 = 160/3. Вирішуємо рівняння відносно x2

x2 = 160/3 - (2/3)x1 - (1/3)x5

Отримане значення x2 підставляємо в інші обмеження і цільову функцію.

4x1 + 5(160/3 - (2/3)x1 - (1/3)x5) + x3 = 300 або (2/3)x1+ x3 - (5/3)x5 = 100/3,

2x1 + 160/3 - (2/3)x1 - (1/3)x5 + x4 = 100 або (4/3)x1+ x4 - (1/3)x5 = 140/3.

Підставляємо значення x2 в цільову функцію

F = - 10x1 - 12 (160/3 - (2/3)x1 - (1/3)x5) або - 2x1 + 4x5 – 640 min,

і отримуємо нову систему цільової функції і обмежень

F = - 2x1 + 4x5 – 640 min,

при обмеженнях

(2/3)x1+ x3 - (5/3)x5 = 100/3

(4/3)x1+ x4 - (1/3)x5 = 140/3

(2/3)x1 + x2 + (1/3)x5 = 160/3

Будуємо нову сімлекс таблицю:

Таблиця 1.5.3

e

X1

X2

X3

X4

X5

B

X3

2/3

0

1

0

-5/3

100/3

X4

4/3

0

0

1

-1/3

140/3

X2

2/3

1

0

0

1/3

160/3

F (x)

-2

0

0

0

4

640

Знову визначаємо змінну, яку треба перевести до базісу. За підсумками аналізу ніжньої строки це змінна x1 .

Визначаємо змінну, яку треба вивести з базісу. Для цього вільні значення (стовпець В) ділимо на коефіцієнти у відповідних строках стовпця x1. За підсумками маємо значення

(100/3):(2/3) = 50 ; (140/3):(4/3) = 35 ; (160/3):(2/3) = 80

На цьому кроці найменше значення знаходиться в строці зі змінною x4. Таким чином треба провести перетворення моделі за методом Гауса і перенести в базіс x1 замість x4. Обмеження, у якому визначено x1 і x4 поділимо на 4/3 і отримуємо x1 + (3/4)x4 - (1/4)x5 = 35. Вирішуємо рівняння відносно x1

x1 = 35 - (3/4)x4 + (1/4)x5

Отримане значення x1 підставляємо в інші обмеження і цільову функцію.

2/3(35 - (3/4)x4 + (1/4)x5) + x3 + (5/3)x5 = 100/3 або x3 - (1/2)x4 - (3/2)x5 = 10,

2/3(35 - (3/4)x4 + (1/4)x5) + x2 + (1/3)x5 = 160/3 або x2 - (1/2)x4 + (1/2)x5 = 30,

Підставляємо значення x2 в цільову функцію

F = - 2(35 - (3/4)x4 + (1/4)x5) + 4x5 – 640 min, або 1,5 x4 + 3,5x5 – 710 min,

і отримуємо нову систему цільової функції і обмежень

F = 1,5x4 + 3,5x5 – 710 min,

при обмеженнях

x3 - (1/2)x4 - (3/2)x5 = 10

x1 + (3/4)x4 - (1/4)x5 = 35

x2 - (1/2)x4 + (1/2)x5 = 30,

Будуємо нову сімлекс таблицю:

Таблиця 1.5.4

e

X1

X2

X3

X4

X5

B

X3

0

0

1

-1/2

-3/2

10

X1

1

0

0

3/4

-1/4

35

X2

0

1

0

-1/2

1/2

30

F (x)

0

0

0

1,5

3,5

710

В нової таблиці немає відємних значень в останій строці. Тому ми маємо оптимальне розв’язування задачі. Змінні x4 , x5 , які не входять до бази, дорівнюємо нулю і отримуваємо результат: (x1 = 35; x2 = 30; x3 = 10; x4 = 0; x5 = 0;) , максимальне значення функції дорівнює 710. Подставляємо значення x1 = 35 і x2 = 30 до цільової функції і отримуваємо:

F = 10x1 + 12 x2 = 10*35 + 12*30 = 350 + 360 = 710

Це визначає, що рішення вірно.

Приклад 2. На двох складах зберегається 12т. та 15т. товару який треба перевезти до трьох крамниць (до 1-й крамниці – 8т., до 2-й крамниці – 10т., до 3-й крамниці – 9 т.). Необхідно скласти оптимальний план перевезень якщо вартість перевезення в у.о. 1т. товару зі складів до крамниць наведено в таблиці:

Таблиця 1.5.5

Крамниці

Склади

Крамниця 1 8

Крамниця 2 10

Крамниця 3 9

Склад1 12

30

46

32

Склад2 15

20

53

40

Ця задача наведена в прикладі 2 розділа 1.2 на підставі умов завдання побудована економіко-математична модель для пошуку рішення. Ця модель вимагає знайти минимальне значення цільової функції:

F(x) = 30 x1 + 46 x2 +32 x3 + 20 x4 + 53 x5 + 40 x6 min

З обмеженнями

x1 + x2 + x3 = 12

x4 + x5 + x6 = 15

x1 + x4 = 8

x2 + x5 = 10

x3 + x6 = 9

xi 0 i = 1,2,…,6

У даному випадку задача лінійного програмування вже має канонічний вид. Треба будувати симлекс таблицю, але спочатку необхідно визначити базіс. За методом Гауса виконуємо наступні перетворення, щоб визначити базові змінні. З першого рівняння x1 = 12 - x3 - x2 . Підставляємо значення x1 до третього рівняння, та виводимо x1 до бази. З четвертого рівняння x2 = 10 - x5 . Підставляємо значення x2 до першого і третього рівняння, та виводимо x2 до бази. З п’ятого рівняння x3 = 9 - x6 . Підставляємо значення x3 до першого і третього рівняння, та виводимо x3 до бази. Після ціх перетворень маємо наступні обмеження

x1 - x5 - x6 = -7

x4 + x5 + x6 = 15

x4 + x5 + x6 = 15

x2 + x5 = 10

x3 + x6 = 9

xi 0 i = 1,2,…,6

Друге рівняння тотожно третьому, тому його можна виключити. Для моделі будуємо симплексну таблицю

Таблиця 1.5.6

e

X1

X2

X3

X4

X5

X6

B

X 1

1

0

0

0

-1

-1

-7

X 4

0

0

0

1

1

1

15

X2

0

1

0

0

1

0

10

X 3

0

0

1

0

0

1

9

F (x)

30

46

32

20

53

40

0

В таблиці немає в останій строці коефіцієнтів, які мають відємне значення, тому подальша оптимізація за допомогою симплекс перетворень не можлива. Для пошуку остаточного рішення треба змінні, які не є базовими дорівняти 0. Якщо за першим рівнянням одночасно x5 та x6 дорівняти 0, то x1 буде мати відємне значення, а це суперечить умовам. Для подальшого пошуку рішення треба застосовувати інши логічно математичні перетворення, за результатами яких остаточне рішення (0;3; 9; 8; 7; 0), а значення цільової функції F(x) = 30*0 + 46*3 +32*9 + 20*8 + 53*7 + 40*0 = 957.

Остаточне рішення має вигляд: Таблиця 1.5.7

Крамниці

Склади

Крамниця1 (потрібно 8т)

Крамниця2 (потрібно10т)

Крамниця3 (потрібно 9т)

Склад1 (усього 12т)

Х1=0

Х2=3

Х3=9

Склад2 (усього 15т)

Х4=8

Х5=7

Х6=0

У даному прикладі наведено рішення транспортної задачі симплекс методом. Використання цього методу для вирішення транспортних задач не є ефективним. Для розв’язування транспортних задач більш ефективними є спеціальні методи, які будуть наведени при розгляді транспортних задач.