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

Змістовний опис симплекс-методу розв’язання задач ЛП



Нехай задача ЛП має оптимальний розв`язок. З геометричної точки зору це означає, що існує вершина багатокутника розв`язків, де лінійна функція досягає оптимального значення. Кожній вершині багатокутника відповідає опорний план. А кожний опорний план визначається системою m лінійно незалежних векторів, що містяться серед n векторів A1, A2,..., An системи обмежень. Щоб знайти оптимальний план, досить розглянути лише опорні плани. Їх кількість не перевищує Для великих значень m і n знайти серед них оптимальний простим перебором дуже важко. Тому необхідно мати такий аналітичний метод, що дає можливість цілеспрямовано розглядати опорні плани. Таким методом є симплексний метод. Виходячи з одного (початкового) опорного плану, симплексний метод забезпечує побудову нового опорного плану, що надає лінійній функції менші значення у порівнянні з попереднім планом. Цей процес продовжується поки не буде знайдено оптимальний план.

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

Отже, симплекс-метод дає спосіб обчислення опорного плану, перевіряє побудований опорний план на оптимальність і визначає спосіб побудови наступного опорного плану, що буде ближчий до оптимального. Таким чином, симплекс-метод полягає в послідовному поліпшенні плану і тому його називають ще методом послідовного поліпшення плану.

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

Знаходження початкового опорного плану

Щоб застосувати симплекс-метод для знаходження оптимального розв’язку задачі лінійного програмування, треба знайти відправну точку, тобто початковий опорний план. Якщо обмеження задачі ЛП задано у канонічному вигляді

AX = A0, A0 ³ 0, X ³ 0

і серед векторів A1, A2,..., An є одиничний базис, то початковим опорним планом буде вектор X = (b1, b2,..., bm, 0,..., 0).

У деяких випадках одиничний базис у системі обмежень легко виділити. Наприклад, нехай маємо систему обмежень:

Якщо перше рівняння системи поділити на три, а друге – на два, то дістанемо систему:

Тут вектори A1, A2 i A3 утворюють одиничний базис і всі вільні члени додатні. Поклавши, що x4 = x5 = x6 = 0, знайдемо опорний план, який визначається як X = (2, 4, 5, 0, 0, 0).

Якщо система (2.9) не містить у явному вигляді одиничного базису, то його в деяких випадках можна визначити методом повного виключення Гауса. Розглянемо це на прикладі такої системі обмежень.

Розв’язання. Застосуємо метод повного виключення Гауса. Результати обчислень наведено у табл. 2.1, де головний елемент узято у рамку. З таблиці видно, що після третьої ітерації перетворень системи методом повного виключення дістали одиничний базис: A1, A2, A5 йому відповідає план X = (20, 6, 0, 0, 26).

Таблиця 2.1

Ітерація A1 A2 A3 A4 A5 A0 S
          -1    
          -1    
      -1   -1    
          -1    
               
    -4 -1        
      -2   -1 -6 -7
               
               
               
               
               

Якщо обмеження задачі ЛП задано у вигляді нерівностей:

A1x1 + A2x2 +... + Anxn £ A0, X ³ 0, A0 ³ 0,

то, додавши до лівої частини кожної нерівності за невід’ємною змінною xn+1, xn+2,..., xn+m, дістанемо розширену систему лінійних обмежень

A1x1 +... + Anxn + An+1xn+1 +... + An+mxn+m = A0, X ³ 0, A0 ³ 0.

Змінні xn+1, xn+2,..., xn+m називають додатковими змінними. У лінійну функцію вони входять з нульовими коефіцієнтами. Отже, початкова задача лінійного програмування перетворилась у розширену: знайти оптимальне значення лінійної функції

F = c1x1 + c2x2 +...+ cnxn + 0 * xn+1 +...+ 0 * xn+m

за обмежень (1.5.3). Додаткові вектори An+1, An+2,..., An+m утворюють одиничний базис m -вимірного векторного простору, а вектор X=(x1=0;...; xm=0; xm+1=b1;...; xn+m = bn+m) є опорним планом розширеної задачі.

Зазначимо, що розв’язок розширеної задачі, якщо він існує, буде також розв’язком початкової задачі. Якщо ж розширена задача розв’язку не має, то не має розв`язку і вихідна задача.

Застосовуючи симплекс-метод до розширеної задачі, поступово замінюють у системі базисних векторів додаткові вектори An+1, An+2,..., An+m векторами початкової системи обмежень. Якщо лінійна функція досягла свого екстремуму, а в системі базисних векторів є хоча б один додатковий вектор, наприклад An+i, то це означає, що i -те обмеження в початковій задачі має смисл строгої нерівності. Отже, початкова задача матиме оптимальний розв’язок (якщо його має розширена задача) і тоді, коли не всі додаткові вектори виключено із базису.

Часто, виділивши в системі обмежень одиничний базис і відповідний йому базисний розв’язок можна побачити, що знайдений розв’язок не є опорним планом системи обмежень, бо серед його змінних є і від’ємні. Для цілеспрямованого пошуку опорного плану треба від знайденого одиничного базису перейти до іншого. Для цього застосовують метод симплексного перетворення. Оскільки симплексні перетворення виконують над векторами A1, A2,..., An, A0 системи обмежень, то ці вектори зведемо в табл. 2.2.

Таблиця 2.2

Рядки A0 A1 A2 ... Aj ... An S q
  b1 a11 a12 ... a1j ... a1n    
  b2 a21 a22 ... a2j ... a2n    
... ... ... ... ... ... ... ... ... ...
I bi ai1 ai2 ... aij ... ain    
... ... ... ... ... ... ... ... ... ...
M bm am1 am2 ... amj ... amn    

Нехай вектор A0 ³ 0, тобто всі bi ³ 0, (i = 1, 2,..., m). Цього можна досягти, помноживши рівняння з від’ємними членами на -1. Тепер у табл. 2.2 виділимо одиничний базис, не порушуючи невід’ємність компонент вектора A0. Зробити це можна за таким алгоритмом.

1. З неодиничних векторів A1, A2,..., An взяти той, у якого є хоча б один додатний елемент. Нехай таким вектором буде Aj. Якщо такого вектора в таблиці немає, то це означає, що система обмежень несумісна і процес симплексного перетворення завершено.

2. Знайти відношення q i елементів вектора A0 до відповідних додатних елементів вектора Aj, записати їх у відповідному рядку стовпця q і взяти з них найменше. Нехай таким буде деяке відношення q = bi / aij. Тоді елемент aij – головний, а рядок і стовпець таблиці, на перетині яких лежить aij, відповідно годовні рядок і стовпець.

3. Коефіцієнти головного рядка (крім q i ) таблиці поділити на головний елемент і записати у відповідному рядку нової таблиці.

4. Елементи кожного наступного рядка нової таблиці дістають шляхом додавання відповідного рядка вихідної таблиці і рядка, записаного в п. 3, помноженого на таке число, щоб у головному стовпці при додаванні дістати нулі. На цьому заповнення нової таблиці завершується і перетворення нової таблиці починаються з п. 1.

Такі перетворення продовжуються доти, поки не буде виділено одиничний базис або ж не буде встановлено, що система обмежень несумісна. Стовпець S призначений для контролю обчислень, його елементи обчислюють так само, як і за методом повного виключення Гауса.

Приклад 2.5. Знайти початковий опорний план для системи обмежень

Розв’язання. Записуємо коефіцієнти системи обмежень у табл.2.3. За головний візьмемо перший стовпець, оскільки вектор A1 має додатні компоненти. Знайдемо відношення q1=6/1=6 i q3=2. Менше з них знаходиться у третьому рядку. Отже, головний елемент a31=1.

Над елементами вихідної системи виконаємо симплексні перетворення. Після першої ітерації перетворень одиничними є вектори A1 і A5. Намагаючись знайти базис з векторів A2, A3, A4, візьмемо A2, що має додатний елемент a22 =2, який і буде головним. Виконавши симплексні перетворення, після другої ітерації маємо одиничний базис A1, A2, A5 і опорний план X = (2; 2; 0; 0; 6), що йому відповідає.

Таблиця 2.3

Ітерація Рядок A0 A1 A2 A3 A4 A5 S q
        -1   -1      
          -1 -3      
                   
        -1 -1 -2      
          -1 -3      
                   
          -3/2 -7/2      
          -1/2 -3/2      
                   

Знаходження оптимального плану

Розглянемо симплекс-метод знаходження оптимального плану на прикладі задачі ЛП:

F = c1x1 + c2x2 +... + cnxn ® min

за обмежень

де

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

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

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

де

, ,..., ,

,

,

.

Вектори A1, A2,..., Am – лінійнонезалежні одиничні вектори m -ви­мір­ного простору, і тому вони утворюють базис цього простору. За базисні змінні в системі обмежень виберемо x1, x2,..., xm, а вільні змінні xm+1,..., xn прирівнюємо до нуля. З урахуванням того, що bi ³ 0 (i = 1,..., m), знаходимо початковий план

X0 = (x1 = b1; x2 = b2;...; xm = bm; xm+1 = 0;...; xn = 0). (2.9)

Йому відповідає лінійна комбінація

x1A1 + x2A2 +... + xmAm = A0 , (2.10)

у якій вектори A1, A2,..., Am лінійно незалежні. Отже, побудований початковий план є опорним, що надає значення лінійній функції

F(X0) = c1x1 + c2x2 +... + cmxm = f0, (2.11)

яке залежить тільки лише від значень m перших компонент вектора C. Оскільки оптимальний план належить до опорних, то й оптимальне значення лінійної функції залежатиме від відповідних компонент вектора C.

Розглянемо тепер, яким чином, виходячи з початкового опорного плану (2.9), можна побудувати інший опорний план, який надасть лінійній функції значення меншого, ніж попередній план. Початковий опорний план визначається базисними векторами A1, A2,..., Am.

Побудувати наступний опорний план, виходячи з початкового, можна завдяки переходу від базису A1, A2,..., Am до нового базису. Такий перехід здійснюється за допомогою вибору вектора, який вводять у базис, і вибору вектора, який виводять з нього. Знайдемо критерій вибору таких векторів.

Оскільки вектори A1, A2,..., Am утворюють базис m -вимірного простору, то будь-який вектор системи A1, A2,..., An однозначно лінійно визначається через базисні

Aj = x1jA1 + x2jA2 +... + xmjAm, j = 1, 2 ,...,n. (2.12)

Зауважимо, що коефіцієнти xij (i = 1, 2 ,..., m) є компонентами вектора Aj в базисі A1, A2,..., Am. У виразі (2.12) вектора Aj відповідає єдине значення лінійної функції

fj = c1x1j + c2x2j +... + cmxmj, j = 1, 2 ,...,n. (2.13)

де ci (i = 1, 2 ,..., m) – коефіцієнти лінійної функції, що відповідають базисним векторам Ai (i = 1, 2 ,..., m).

Значення fj знайдемо, якщо у вираз лінійної функції замість змінних підставимо відповідні коефіцієнти подання j -го вектора через базисні вектори. Нехай для деякого вектора, що не входить у базис, наприклад, Ak (k > m), хоча б один з коефіцієнтів xik у виразі

x1k A1 + x2k A2 +... + xmk Am = Ak (2.14)

є додатним. Виразу (2.14) відповідає значення лінійної функції

c1x1k + c2x2k +... + cmxmk = fk. (2.15)

Задамо деяке, поки що невідоме додатне число q. Помножимо на нього обидві частини рівностей (2.14) і (2.15) і результати віднімемо від (2.10) і (2.11) відповідно:

(x1 - q x1k) A1 + (x2 - q x2k) A2 +... + (xm - q xmk) Am + q Ak = A0,

(x1 - q x1k) c1 + (x2 - q x2k) c2 +... + (xm - q xmk) cm = f0 - q fk. (2.16)

В останній рівності до обох частин додамо q ck:

(x1 - q x1k) c1 + (x2 - q x2k) c2 +... + (xm - q xmk) cm + q ck = f0 - q (fk - ck). (2.17)

Лінійній комбінації відповідає новий план

X1 = (x1 - q x1k; x2 - q x2k;...; xm - q xmk ; 0 ,..., q,..., 0),

якщо його коефіцієнти невід’ємні. Ті компоненти вектора X1, до яких входять недодатні q xik, будуть невід’ємними, бо q > 0. Компоненти вектора X1 з додатними xik (i = 1, 2 ,..., m) будуть невід`ємними, якщо

, (2.18)

де мінімум береться серед тих i, для яких xik > 0. Отже, під час виконання даної умови вектор X1 буде опорним планом. Опорний план не може мати m+1 додатних компонент. Тому в плані X1 треба хоча б одну з компонент перетворити в нуль. Це можна зробити, якщо q вибрати так:

. (2.19)

Оскільки розглядається невироджена задача, тобто всі її опорні плани містять рівно m додатних компонент, то мінімум в (2.19) досягатиметься для єдиного значення i. Нехай i = l (1 £ l ³ m). Тоді для q 0 = xl / xlk відповідні коефіцієнт виразу (2.16) і компонента плану X1 перетворяться в нуль. Підставивши значення q0 в план X1, дістанемо лінійну комбінацію

x’1A1 +... + x’l-1Al-1 + x’l+1Al+1 +... +x’mAm + x’kAk = A0 ,

і відповідний їй опорний план

X1 = (x’1,..., x’l-1, 0,x’l+1,..., x’m, 0 ,..., x’k,..., 0),

де

(2.20)

План X1 надає лінійній функції F значення f0 - q 0 (fk - ck).

Отже, дістали новий опорний план, базис якого складається з векторів A1, A2,..., Al-1, Al+1,..., Am, Ak. Новий план X1 надає лінійній функції F значення F(X1) = f0 - q0 (fk - ck), яке буде менше від F (X0), якщо fk - ck > 0. Величина різниці fk - ck називається оцінкою плану. Якщо для деякого вектора Ak оцінка плану fk - ck > 0, то план X0 не є оптимальним і можна побудувати новий план X1 такий, що F (X1) <F (X0).

План X1 побудовано завдяки заміні вектора з початкового базису новим вектором. Критерій заміни векторів сформулюємо таким чином:

- у новий базис вводять вектор Ak, для якого оцінка плану додатна;

- із старого базису виводять той вектор Ai, для якого відношення xi / xik з додатними xik набуває найменшого значення.

Процес заміни векторів продовжують доти, поки всі оцінки плану не стануть від’ємними або нулями, або для деякої оцінки fj-cj >0 усі xij стануть недодатними, що означає, що побудований план є оптимальним.

Якщо на деякому кроці заміни для будь-якого j оцінка fj - cj > 0 і усі xij £ 0, то це означає, що лінійна функція не обмежена знизу на багатокутнику розв’язків і її значення може бути як завгодно малим. Зазначимо, що коли є кілька додатних оцінок плану, то вибирають найбільшу з них і той вектор, який відповідає цій найбільшій оцінці, вводять у новий базис.

Якщо є кілька однакових найбільших оцінок, то можна вводити в новий базис будь-який з векторів, що відповідає цим найбільшим оцінкам. Якщо для деякого вектора Aj з додатною оцінкою плану є кілька однакових найменших відношень xi / xij, то з базису можна вивести будь-який з відповідних векторів, однак, при цьому може виникнути явище зациклювання.

Нагадаємо, що компоненти нового плану можна обчислити за формулами (2.20). Для перевірки побудованого плану на оптимальність треба знайти компоненти усіх векторів Aj (j = 1, 2,..., n) у новому базисі. Їх можна обчислити за формулами:

a’ij = aij - alj, i ¹ l, (2.21)

a’ij = aij / alk, i = l. (2.22)

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

Приклад 2.6. Знайти мінімум функції

F=2x1+3x2+x3+4x4

за такими обмеженнями:

Розв’язання. Відповідно загальним позначенням маємо

X = (x1, x2, x3, x4), C = (2; 3; 1; 4),

, , , , .

Система обмежень містить два одиничні лінійно незалежні вектори A3 і A4, які утворюють базис двовимірного векторного простору. Тоді вектори Aj (j = 1, 2,..., 4) описуються через базисні

A0 = x3A3 + x4A4 = 70 A3 + 45 A4,

A1 = x31A3 + x41A4 = 4 A3 + 2.5 A4,

A2 = x32A3 + x42A4 = 11 A3 + 8 A4,

A3 = x33A3 + x43A4 = 1 *A3 + 0 *A4,

A4 = x34A3 + x44A4 = 0 *A3 + 1 *A4.

Поклавши у системі обмежень x1=x2= 0, дістанемо початковий опорний план X0 = (0, 0, 70, 45). Значення цільової функції F дорівнює F (X0) = = 2×0 + 3×0 + + 1×70 + 4×45 = 250. Знайдемо оцінки початкового опорного плану. Для цього обчислимо значення fj (j = 1,..., 4) за формулою (2.13) як суму добутків компонент вектора Aj на компоненти вектора C, які відповідають базисним векторам

f1 = 1 × 4 + 4 × 2.5 = 14; f2 = 1× 11 + 4× 8 = 43;

f3 = 1×1 + 4 × 0 = 1; f4 = 1× 0 + 4× 1 = 4.

Тоді оцінки плану визначаться як f1 - c1 = 12, f2 - c2 = 40, f3 - c3 = 0, f4 - c4 = 0. Серед них є дві додатні. Більшою є оцінка f2 - c2, що відповідає вектору A2. Отже, його вводимо в базис.

Щоб визначити, який з векторів A3, A4 треба вивести з базису, обчислимо відношення xi / xi2 (i =3, 4) для додатних xi2, тобто поділимо компо­нен­ти вектора A0 на відповідні додатні компоненти вектора A2: , . Меншим з обчислених відношень є відношення x4 / x42, яке відповідає вектору A4. Таким чином, замість вектора A4 як базис вводимо вектор A2. Новий базис утворюють вектори A2 і A3. У новому базисі вектори Aj (j = 0, 1,..., 4) мають такі вирази:

A0 = 2A2 + 3A3,

A1 = 21A2 + 31A3 ,

A2 = 22A2 + 32A3 = A2 + 0 × A3,

A3 = 21A2 + 31A3 = A3 + 0 × A2,

A4 = 21A2 + 31A3 ,

де i обчислюються за формулами (2.20), а ij - згідно з формулами (2.21) і (2.22). Новий опорний план X1, який визначається базисними векторами A1 і A2, має вигляд X1 = ( 0, 2, 3, 0 ). Обчислимо його компоненти: , .

Отже,

, а F (X1) = c 2 2 + c 3 3 = .

Обчислимо тепер компоненти векторів A1 i A4 у новому базисі:

, ,

, .

Тепер знаходимо значення fj (j = 1, 2, 3, 4):

, f2 = 3× 1+ 1× 0 = 3,

f3 = 1× 1 + 3× 0 = 1; .

Нарешті, визначимо оцінку плану X1:

f1 - c1 =1 - 2= -1, f2 - c2 = 0, f3 - c3 = 0, f4 - c4 = -5.

Усі оцінки опорного плану X1 недодатні. Це означає що побудований план є оптимальним, тобто мінімум функції Fmin = 25 досягається за планом .





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



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