Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Застосування симплекс-таблиць



Розглянемо задачу лінійного програмування на знаходження мінімуму лінійної функції F = c1x1 + c2x2 +... + cnxn за системою обмежень

(2.23)

Систему обмежень запишемо у векторному вигляді

A1x1 + A2x2 +... + Amxm + Am+1xm+1 +...+Anxn = A0, X 0, (2.24)

де

, ,..., ,

,

,

Початковий опорний план X0 = (x1 = b1;...; xm = bm; 0;...; 0) задачі, (2.23) визначається системою m -вимірних одиничних векторів A1, A2,..., Am. Щоб дослідити його на оптимальність, треба вектори Aj (j = 1, 2 ,..., n) системи (2.24) описати лінійною комбінацією базисних векторів і обчислити значення оцінок fj - cj.

Оскільки базис системи (2.23) – одиничний, то коефіцієнтами у виразі вектора через базисні будуть його компоненти, тобто xij = aij (i = 1, 2 ,..., m; j = 1, 2 ,..., n). Обчислення наступного опорного плану та перевірку його оптимальності зручно виконувати, записавши умову задачі і дані, знайдені після побудови початкового опорного плану у симплексну таблицю. У першому її стовпці записано номери рядків таблиці. Стовпець базису містить базисні вектори. У стовпці C базису записано коефіцієнти даної лінійної функції, які відповідають базисним векторам. У стовпці A0 - початковий опорний план. У цьому самому стовпці в результаті обчислень знаходять оптимальний план.

Стовпці Aj (j = 1, 2 ,..., n) заповнено коефіцієнтами вектора Aj через базисні вектори. У (m+ 1)-му рядку стовпця A0 записано значення лінійної функції F (X0), якого вона набуває при початковому опорному плані, а в стовпцях Aj – значення оцінок fj - cj. Оцінки можна обчислити, якщо від добутків елементів стовпця Aj на відповідні елементи стовпця C базису відняти відповідні коефіцієнти cj. Далі обчислення симплекс-методом слід здійснювати за таким алгоритмом.

1. Розглянути оцінку плану (m+ 1)-го рядка. Якщо всі оцінки недо­дат­ні, то опорний план X0 оптимальний і мінімум лінійної функції дорівнює F (X0). Якщо серед оцінок є хоча б одна додатна, то перейти до п.2.

2. Якщо хоча б для однієї додатної оцінки fj - cj усі елементи стовпця Aj недодатні, то це означає, що лінійна функція на многограннику розв’язків не обмежена знизу і задача не має оптимального розв’язку. Якщо в кожному стовпці Aj з додатними оцінками плану є хоча б один додатний коефіцієнт, то слід перейти до п.3.

Коментар. Якщо у кожному стовпці Aj, що відповідають додат­ним оцінкам плану, є додатні коефіцієнти, то план X0 неоптимальний і можна побудувати новий опорний план, який надасть лінійній функції значення, менше від попереднього. Задача полягає в тому, щоб один з базисних векторів замінити новим. Вектор, який вводять у базис, вибирають в п.3, а вектор, який виводять з базису – в п.5.

3. Вибрати вектор з найбільшою додатною оцінкою. Нехай це буде вектор Ak. Перейти до п.4.

4. Обчислити відношення елементів стовпця A0 до відповідних додатних елементів стовпця Ak, результати записати у відповідних рядках стовпця q і перейти до п.5.

5. Серед векторів базису вибрати той, який відповідає найменшому з відношень, обчислених у п.4. Нехай це буде вектор Al. Перейти до п.6.

Коментар. Елемент xlk називається головним, рядок і стовпець, на перетині яких він міститься, називаються головними. Після визначення ведучого елемента заповнюють нову симплексну таблицю. Перші три стовпці нової таблиці відрізнятимуться від старої тільки рядком з номером l. У ньому замість елементів l, Ai, ci будуть записані елементи l, Ak, ck. Інші клітинки нової таблиці заповнюють згідно з пп.6 і 7.

6. Поділити елементи l -го рядка, які відповідають векторам Aj (j = 1, 2, ..., n), на головний елемент і результати записати у відповідні клітинки l -го рядка нової таблиці. Перейти до п.7.

7. Для знаходження елементів і -го (i = 1, 2, ..., l- 1, l+ 1, ..., m+ 1) рядка нової таблиці треба від елементів і -го рядка старої таблиці відняти відповідні елементи l -го рядка нової таблиці, помножені на xik (i ¹ l). Після заповнення нової таблиці перейти до п.1.

Відзначимо, що коли у таблиці є кілька додатних оцінок плану, то під час обчислення у базис вводять вектор, якому відповідає максимальна оцінка. Завдяки такому вибору вектора можна досягти оптимального пла­ну за мінімум ітерацій. Якщо ж є кілька рівних найбільших значень q0j (fj - cj), то з відповідних їм векторів вибирають той, якому відповідає min cj.

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

Задачу знаходження максимального значення лінійної функції можна розв’язати, не зводячи її до задачі мінімізації. План задачі знаходження максимуму буде оптимальним тільки тоді, коли його оцінки бу­дуть не­від’єм­ними. Якщо ж умова оптимальності не виконується, то під час обчислень в базис вводять вектор, якому відповідає min [ q0j(fj - cj) ], де мінімум береться серед тих j, для яких fj - cj < 0. Якщо мінімальних оцінок кілька, то в базис вводять вектор, якому відповідає min cj.

Приклад 2.6. Знайти мінімум функції F=x1+x2+x3 за обмежень:

Розв’язання. Запишемо систему обмежень у векторному вигляді

x1A1 + x2A2 +... + x6A6 = A0,

де ; ; ; ; ; ; .

Дана система обмежень у явному вигляді містить одиничний базис A1 , A2 , A3. Тому змінні x1 , x2 , x3 - базисні, а x4 , x5 , x6 - вільні змінні. Поклавши x4 = x5 = x6 = 0, знайдемо початковий опорний план X0 =(x1= 0; x2= 0; x3= 0; x4= 0; x5= 0; x6= 0), якому відповідає комбінація x1A1 + + x2A2 + x3A3 = A0 і значення функції F(X0) = 1×5 +1×3 + 1×5 = 13.

Для перевірки плану X0 на оптимальність заповнимо першу симплексну таблицю (табл. 2.4) і обчислимо значення оцінок:

f4 - c4 = 1×(-1) + 1×2 + 1×2 - 0 = 3;

f5 - c5 = 1×0 + 1×(-3) + 1×(-5) - 0 = -8;

f6 - c6 = 1×(-2) + 1×1 + 1×6 - 0 = 5.

Для базисних векторів значення оцінок нульові. Серед обчислених оцінок є дві додатні. Більша з них f6 - с6 = 5 відповідає вектору А6, який і введемо в базис. Для визначення вектора, який треба вивести з базису, обчислимо q06 . Мінімальне відношення відповідає вектору А3 базису. Отже, його треба замінити вектором А6. Головним елементом у першій симплексній таблиці є число 6, яке стоїть на перетині третього рядка і стовпця А6. Виконаємо одну ітерацію симплексних перетворень і заповнимо другу симплекс-таблицю. Нові елементи головного рядка знайдемо, поділивши елементи ведучого рядка початкової симплекс-таблиці на головний елемент (число 6). За допомогою обчисленого рядка знайдемо елементи інших рядків другої таблиці методом симплексних перетворень: помножимо його елементи на 2 і додамо до відповідних елементів першого рядка початкової симплекс-таблиці; віднімемо його елементи від відповідних елементів другого рядка; помножимо його на мінус 5 і додамо до четвертого рядка. В результаті дістанемо заповнену другу таблицю.

Таблиця 2.4

Ітерація Рядок Базис С базису A0 c1 = 1 c2 = 1 c3 = 1 c4 = 0 с5 = 0 c6 = 0    
A1 A2 A3 A4 A5 A6   S   q
    A1           -1   -2    
  A2             -3      
  A3             -5     5/6
  fj - cj           -8      
    A1   20/3     1/3 -1/3 -5/33      
  A2   13/10     -1/6 5/3 -8/ 6   5/2 13/10
  A3   5/6     1/6 1/3 -5/6   3/2 5/2
  fj - cj 53/6     -5/6 4/3 -38/6   11/2  
    A1   71/10   1/5 3/10   -21/10   13/2  
  A2   13/10   3/5 -1/10   -13/10   3/2  
  A3   2/5   -1/5 1/5   -2/5      
  fj - cj 71/10   -4/ 5 -7/10   -21/10   7/2  

Для базисних векторів значення оцінок нульові. Серед обчислених оцінок є дві додатні. Більша з них f6 - с6 = 5 відповідає вектора А6, який і введемо в базис. Для визначення вектора, який треба вивести з базису, обчислимо q06 . Мінімальне відношення відповідає вектора А3 базису. Отже, його треба замінити вектором А6. Головним елементом у першій симплексній таблиці є число 6, яке стоїть на перетині третього рядка і стовпця А6. Виконаємо одну ітерацію симплексних перетворень і заповнимо другу симплекс-таблицю. Нові елементи головного рядка знайдемо, поділивши елементи головного рядка початкової симплекс-таблиці на головний елемент (число 6). За допомогою обчисленого рядка знайдемо елементи інших рядків другої таблиці методом симплексних перетворень: помножимо його елементи на 2 і додамо до відповідних елементів першого рядка початкової симплекс-таблиці; віднімемо його елементи від відповідних елементів другого рядка; помножимо його на мінус 5 і додамо до четвертого рядка. В результаті дістанемо заповнену другу таблицю.

Правильність проведених обчислень контролюємо за допомогою стовпця S, кожний елемент якого обчислюється двома способами: за допомогою симплексних перетворень та додаванням елементів відповідних рядків. У другій симплексній таблиці маємо новий опорний план Х1 =(20/3, 13/6, 0, 0, 0, 5/6), якому відповідає значення лінійної функції F (X1)=53/6 < F(X0) =13. У четвертому рядку таблиці маємо додатну оцінку f4 - с4 = 4/3.

Отже, вектор А4 вводимо до базису. Знайшовши q04 , побачимо, що вектор А2 треба вивести із базису. Головний елемент стоїть на перетині другого рядка і стовпця А4. Виконаємо один крок симплексних перетворень. У результаті дістанемо план Х2 =(71/10,0,0, 13/10, 2/5). У четвертому рядку останньої симплекс-таблиці усі оцінки не додатні. Отже, план Х2 – оптимальний. Він надав лінійній функції значення F(X2) =71/10. На основі оцінок цього плану робимо висновок, що оптимальний план є єдиним, оскільки нульові оцінки відповідають тільки базисним векторам.

Приклад 2.7. Знайти максимум лінійної функції F = 40 x1 + 30 x2 за обмежень

Розв’язання. Запишемо задачу в канонічному вигляді, додавши до лівої частини кожної з нерівностей системи обмежень по одній додатковій невід’ємній змінній. Як результат дістанемо

Запишемо систему у векторній формі

x1A1 + x2A2 +... + x5A5 = A0,

де ; ; ; ; ; . Одиничні вектори A3, A4, A5 утворюють базис і задають опорний план Х0= (0;0;30;24;20).

Значення лінійної функції F (X0) = 40×0+30×0=0. Для перевірки плану X0 на оптимальність складаємо симплекс-таблицю (табл. 2.5). Обчислимо значення оцінок плану f1 =0×5+0×2+0×4=0, f2 =0×6+0×6+0×2=0, f1 - c1 = = -40, f2 - c2 =-30.

Таблиця 2.5

Ітерація Рядок Базис С базису   c1 = 1 c2 = 1 с3 = 1 c4 = 0 c5 = 0    
A0 A1 A2 A3 A4 A5   S   q
    A3                  
  A4                  
  A5                  
  fj - cj   -40 -30       -70  
    A3       7/2     -5/ 4 33/4 10/7
  A4             -1/2 39/2 14/5
  A1       1/2     1/4 27/4  
  fj - cj     -10          
    A3   10/7     2/7   -5/14 33/14  
  A4   48/7     -10/7   9/7 54/7  
  A1   30/7     -1/ 7   3/7 39/7  
  fj - cj 1500/7     20/7   45/7 1565/7  

Для векторів базису оцінки дорівнюють нулю. Серед обчислених оцінок дві від’ємні: f1 - c1 = -40, f2 - c2 = -30. Отже, опорний план Х0 не є оптимальним. Найменша оцінка відповідає вектору А1, який введемо в базис. Визначимо вектор, виключений з базису. Для цього обчислимо q01 = = min (30/5, 24/2, 20/4). Найменше з відношень відповідає вектору А5, тому його замінюємо вектором А1. Головним елементом є число 4, яке стоїть на перетині третього рядка і стовпця А1. Складаємо другу симплекс-таблицю. Обчислимо нові значення головного рядка. Для цього елементи головного рядка поділимо на 4 і запишемо в третьому рядку другої таблиці. Тепер за допомогою цього рядка виконаємо одну ітерацію симплексних перетворень, тобто помножимо його елементи на 5 і віднімемо від першого рядка першої ітерації, потім помножимо його елементи на 2 і віднімемо від другого рядка першої ітерації, помножимо його на 40 і додамо до четвертого рядка першої ітерації. Правильність проведених обчислень контролюємо за допомогою стовпця S, кожний елемент якого обчислюється двома способами: за допомогою симплексних перетворень і підсумовуванням елементів відповідних рядків.

Після завершення другої ітерації дістали план Х1 =(5; 0; 5; 14; 0), якому відповідає значення лінійної функції F (Х1) = 200. У четвертому рядку f2-c 2=-10 < 0, тому план Х1 не є оптимальним і вектор А2 слід ввести в базис. Обчислимо q02 = min (10/7, 14/5, 10)=10/7. Число 7/2 стоїть на перетині першого рядка і стовпця А2, є головним. Вектор А3 вилучаємо з базису. Виконавши третю ітерацію симплексних перетворень, дістанемо нову таблицю. Оскільки в четвертому рядку всі оцінки плану Х2 = (30/7; 10/7; 0; 48/7; 0) невід’ємні, то опорний план Х2 - оптимальний, йому відповідає значення лінійної функції F(Х2) =1500/7.

Зазначимо, що кожне число, записане в таблиці, має не тільки математичний, а й певний економічний зміст. Так, у четвертому рядку першої ітерації симплексної таблиці 5 є дві від’ємні оцінки: f11 =-40, f2-c2 =-30. Число 40 означає, що від включення до плану виробництва одиниці продукції Р1 прибуток збільшиться на 40 у.о. Якщо включити до плану виробництва одиницю продукції Р2, то прибуток збільшиться на 30 у.о. Тому з економічного погляду доцільніше включати до плану продукцію Р1. Цей висновок цілком узгоджується із формальним критерієм оптимальності опорного плану симплексного методу, оскільки найменша оцінка відповідає вектору А1. Число q01 =5 означає, що максимальна кількість продукції, яку можна включити до плану виробництва, дорівнює п’яти одиницям. При цьому сировину третього виду буде використано повністю.

Після завершення другої ітерації у колонці А0 дістали опорний план Х1 =(5; 0; 5; 14; 0). Згідно з цим планом виробляється 5 одиниць продукції Р1 і залишається невикористаною 5 одиниць сировини S1 і 14 одиниць сировини S2. Прибуток від реалізації виробленої продукції становить 200 у.о. В результаті симплексних перетворень змінилася не тільки колонка А0, а й інші колонки таблиці. Їх економічний зміст став ще складнішим. Розглянемо, наприклад, колонку А2. Число Ѕ в третьому рядку показує, на скільки одиниць треба зменшити виробництво продукції Р1, якщо запланувати випуск продукції Р2. Числа 7/2 і 5 у першому і другому рядках колонки А2 означають, скільки треба витратити одиниць сировини S1 і S2, відповідно, якщо запланувати виготовлення одиниці продукції Р2. Число 10 у четвертому рядку означає, що прибуток, який буде одержано від реалізації одиниці продукції Р2, становитиме 10 у.о. Інакше кажучи, включення до плану виробництва одиниці продукції Р2 зумовлює зменшення випуску продукції Р1 на Ѕ одиниць і додаткові затрати 7/2 одиниць сировини S1 і 5 одиниць сировини S2, а загальний прибуток від реалізації продукції відповідно до нового плану зросте на 10 у.о. Дещо інший економічний зміст мають числа, записані в колонці А5. Число 1/4 в третьому рядку цієї колонки означає, що збільшення обсягу сировини S3 на 1 одиницю дасть змогу збільшити випуск продукції Р2 на 1/4 одиниці. Одночасно треба буде додатково взяти 5/4 одиниці сировини S1 і 1/2 одиниці сировини S2. Збільшення випуску продукції Р2 на 1/4 одиниці забезпечить збільшення при­бут­ку на 10 у.о. З економічного аналізу даних таблиці після другої ітерації випливає, що план Х1 не є оптимальним. Це видно і з четвертого рядка симплекс-таблиці, оскільки у колонці А2 – від’ємна оцінка плану.

Після третьої ітерації знайшли оптимальний план Х2 =(30/7, 10/7, 0, 48/7, 0) випуску продукції, який включає виробництво 30/7 одиниць продукції Р1 і 10/7 одиниць продукції Р2. При такому плані випуску продукції буде повністю використано сировину першого і третього видів і залишиться невикористаною 48/7 одиниць сировини другого виду. Прибуток від реалізації запланованої продукції становитиме 1500/7 у.о.





Дата публикования: 2015-09-18; Прочитано: 389 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...