- •3.1. Характеристика задач лінійного програмування
- •3.2. Постановка задачі лінійного програмування. Стандартна форма представлення задач лінійної оптимізації
- •3.3. Графічне рішення задачі лп
- •3.3.1. Розробка моделі
- •3.3.2. Графічний розв’язок задачі лп
- •3.4. Основи симплекс-методу
- •3.4.1. Основні поняття та визначення
- •3.4.2. Алгоритм симплекс-методу
- •3.4.3. Приклад застосування симплекс-методу до розв’язку задач лінійного програмування
- •3.5 Особливості розв’язку транспортної задачі
- •3.5.1 Постановка транспортної задачі
- •3.5.2 Поняття збалансованою та незбалансованої транспортної задачі
- •3.5.3 Алгоритм розв’язку транспортної задачі
- •3.5.4 Методи визначення початкового допустимого рішення транспортної задачі
- •3.5.5 Метод потенціалів
- •3.5.6 Алгоритм побудови замкнутого циклу
3.5.3 Алгоритм розв’язку транспортної задачі
Процес розв’язку транспортної задачі [7] передбачає ряд кроків, які детально описані нижче, а алгоритм наведено на рис. 3.3.
Отже, перший крок алгоритму передбачає визначення початкового допустимого рішення з визначенням значення цільової функції. Кількість базисних змінних визначається як I+J-1. При наявності побудованої транспортної таблиці для задач даного типу досить зручно використати один зі спеціальних методів по визначенню початкового базисного рішення, зокрема: правило північно-західного кута, метод мінімальної вартості чи наближений метод Фогеля, які детально будуть розглянути нижче.
Наступний крок алгоритму передбачає визначення змінної зі списку не базисних, яку, для покращення рішення задачі, необхідно ввести в список базисних. Знаходження цієї змінної базується на умові оптимальності і можна використати метод потенціалів. У випадку відсутності такої змінної процес знаходження рішення транспортної задачі завершується і отриманий розв’язок вважається оптимальним. В іншому випадку проводиться визначення змінної, яку необхідно виключити зі списку базисних з допомогою методу побудови цикла. Після цього вираховуємо нове значення цільової функції і цикл починається з початку та продовжується доти, поки не буде викона умова виходу з циклу.
3.5.4 Методи визначення початкового допустимого рішення транспортної задачі
Правило
північно-західного кута. Визначення
початкового базисного рішення з допомогою
правила північно-західного кута[7]
починається з того, що змінній
(розміщеній в північно-західному куті
транспортної таблиці звідси і пішла
назва) присвоюється максимально можливе
значення, яке допускають обмеженнями
на попит та об’єм виробництва товару.
Після цього викреслюють відповідний
стовпчик (чи стрічку), для яких виконується
обмеження, фіксуючи цим, що змінні даного
стовпчика (стрічки) рівні нулю. У випадку
виконання обмежень для стовпчика і
стрічки можна викреслити або стовпчик,
або стрічку. Після того,
як попит і об’єм
виробництва в усіх викреслених стрічках
та стовпчиках приведені до відповідності
з встановленим значенням змінної,
максимально можливе значення приписується
першому невикресленому елементу нового
стовпчика (стрічки). Процес завершується,
коли залишається один не викреслений
стовпчик чи стрічка. Для кращого
розуміння даного правила наведемо
приклад знаходження початкового
допустимого рішення для транспортної
задачі (Табл. 3.9).
-

Рис.3.3 Алгоритм розв’язку транспортної задачі
Отже, для змінної
,
згідно алгоритму, присвоюємо максимально
можливе значення 300 і викреслюємо з
розгляду першу стрічку, при розрахунках,
присвоюючи змінній
- 0, оскільки для стрічки виконується
обмеження (змінна
=300
та об’єм виготовлений першим заводом
також рівний 300). Змінна
вноситься в список базисних, а -
до списку не базисних. Необхідно
зауважити, що умова для першого стивпчика
не виконується оскільки
=300
(значення інших змінних цього стовпчика,
на даний момент, вважаємо рівними нулю),
а сума по стовпчику має бути рівною 1000
(Див. Табл. 3.12).
Табл. 3.12
-
1
2
1

350
X12
830
300
2

500
X22
200
400
3

550
X32
420
700
1000
400
Наступною
змінною розглядаємо
,
максимальне значення для цієї змінної
ми можемо присвоїти 400 і необхідно
викреслити другу стрічку (Див. Табл.
3.13). В результаті, залишається остання
третя стрічка, в якій, для змінної
можемо присвоїти максимальне значення
300 (для виконання обмеження-рівності по
першому стовпчику), а змінній
- 400 (для виконання рівності по другому
стовпчику та умови по третій стрічці,
див. Табл.3.14). Отже початкове базисне
рішення включає змінні
,
,
,
,
а в список не базисних входять змінні
,
,
відповідно.
Табл. 3.13
-
1
2
1

350
X12
830
300
2

500
X22
200
400
3

550
X32
420
700
1000
400
Визначення початкового базисного рішення для транспортної задачі з допомогою методу найменшої вартості. Вхідними даними для визначення початкового базисного рішення [7] є інформація записана у формі транспортної таблиці. Обчислення проводяться наступним чином. На першому етапі вибирається змінна, якій відповідає найменше значення вартості в усій таблиці і цій змінній присвоюється найбільш можливе значення. Якщо таких змінних декілька, то береться будь-яка з них. Викреслюється відповідний стовпчик чи стрічка (для яких виконується обмеження у формі рівності). Після обчислень нових значень попиту та об’єму виробництва для всіх невикреслених стрічок та стовпчиків процес продовжується при присвоєнні найбільш можливого значення для тої змінної, якій відповідає мінімальна вартість серед невикреслених. Процедура завершується, коли залишається одна стрічка чи один стовпчик.
Для кращого розуміння ідеї методу розглянемо приклад. Вхідні дані для нього розміщені в Табл.3.9. Згідно вище наведеного алгоритму змінною з найменшою вартістю перевезення 200 одиниць є X22. Присвоюємо їй найбільш можливе значення 400 і викреслюємо з розгляду другу стрічку (Див. Табл.3.15). Наступною змінною є X11 (350), якій присвоюємо 300 і викреслюємо першу стрічку (Див. Табл. 3.16). В кінцевому випадку залишається не викресленою третя стрічка і для виконання обмежень рівностей змінній X32 слід присвоїти 0, а змінній X31 – 700. Базисними змінними є X11, X22, X31 та X32, всі інші є небазисними.
Табл. 3.14
-
1
2
1

350
X12
830
300
2

500
X22
200
400
3

550

420
700
1000
400
Табл.3.15
-
1
2
1
X11
350
X12
830
300
2
X21
500
X22 = 400
200
400
3
X31
550
X32
420
700
1000
400
Табл.3.16
-
1
2
1
X11=300
350
X12
830
300
2
X21
500
X22 = 400
200
400
3
X31 = 700
550
X32 = 0
420
700
1000
400
Еврістичний метод Фогеля. Цей метод, як правило, дозволяє отримати кращі результати, ніж два розглянуті вище (метод північно-західного кута та метод найменшої вартості).
Алгоритм застосування методу Фогеля передбачає виконання наступних кроків:
Крок 1. Визначити штрафи для кожної стрічки (стовпчика). Віднімаючи значення найменшої вартості перевезення для даного елемента цієї стрічки (стовпчика) з наступним значенням вартості за ним по величині елемента тієї ж стрічки (стовпчика).
Крок 2. Відмітити стрічку чи стовпчик з найбільшим штрафом. Визначити в ній елемент з найменшою вартістю і присвоїти змінній цього елемента найбільш можливе значення враховуючи накладені обмеження. Викреслити з розгляду стрічку чи стовпчик, для яких виконується накладене обмеження. Якщо обмеження по стовпчику і стрічці виконуються одночасно, то викреслити стовпчик чи стрічку, а невикресленій стрічці або стовпчику присвоїти нуль для попиту чи об’єму виробництва. Стрічки чи стовпчики з нульовим попитом чи об’ємом виробництва надалі з розгляду виключають.
Крок 3. Якщо залишається невикресленою одна стрічка чи стовпчик, то завершити обчислення.
У випадку, коли залишається одна стрічка чи стовпчик з додатнім об’ємом виробництва (попитом), то до цієї стрічки необхідно застосувати метод найменшої вартості.
Якщо всім невикресеним стрічкам та стовпчикам відповідають нульові об’єми виробництва і величини попиту – застосувати метод найменшої вартості.
В інших випадках обчислити нові значення штрафів для невикреслених стрічок і стовпчиків та перейти до кроку 2.
Приклад застосування даного методу наведено нижче. Обчислення штрафів подано в Табл.3.17. Найбільший штраф присвоєно другій стрічці, а елемент X22 має найменше значення вартості, тому йому присвоюємо найбільш можливе значення 400. При цьому, виконується умова як по стовпчику, так і по стрічці. Викреслимо другу стрічку, а в графі попит для другого стовпчика поставимо 0 (Див. Табл.3.18). Знову вираховуємо штрафи, найбільший штраф має перша стрічка (280), вибираємо елемент змінної X11 оскільки для цієї змінної найменша величина вартості, присвоюємо їй значення 300 і викреслюємо з розгляду першу стрічку (Див.Табл. 3.19). Згідно вище наведеного алгоритму до третьої стрічки застосовуємо метод найменшої вартості, який передбачає присвоння змінній X32=0, а змінній X31=700. В результаті застосування методу Фогеля отримано початкові базисні змінні X11, X22, X31 та X32 (Див.Табл.3.20).
Табл. 3.17
-
1
2
Штрафи
1
X11
350
X12
830
300 830-350=280
2
X21
500
X22
200
400 500-200=300
3
X31
550
X32
420
700 550-420=130
1000
400
Штрафи
500-350=150
420-200=220
Порахуємо значення цільової функції для списків базисних змінних отриманих з допомогою різних методів.
|
Правило північно-західного кута |
Ц.Ф.=300*350+400*500+300*550+400*420=638000 |
|
Метод найменшої вартості |
Ц.Ф.=300*350+400*200+700*550=570000 |
|
Еврістичний метод Фогеля |
Ц.Ф.=300*350+400*200+700*550=570000 |
Отримані дані дозволяють стверджувати, що методи найменшої вартості та Фогеля дозволяють отримати значно краще початкове базисне рішення у порівнянні з алгоритмом північно-західного кута.
