Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція моделювання.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.25 Mб
Скачать

3. Метод потенціалів

Алгоритм розв’язування транспортної задачі цим методом проілюструємо на конкретному випадку.

Задача. На трьох складах заводу з виготовлення сільськогосподарських машин є така їх кількість: на першому складі – 30, на другому – 40 і на третьому – 53. Ці машини повинні бути відправлені в чотири райони, потреба яких становить: першого – 22, другого – 35, третього – 25, четвертого – 41 машину.

Затрати на перевезення однієї машини (в грн.) наведені в табл.13.

Необхідно скласти такий план перевезень, щоб загальні транспортні витрати були мінімальними.

Таким чином, перед нами типова задача лінійного програмування, в якій необхідно знайти екстремальне значення цільової функції, тобто мінімум затрат на перевезення.

Для розв’язання даної задачі методом потенціалів спочатку всю інформацію розмістимо в таблиці.

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

Таблиця 13 – Затрати на перевезення однієї машини

Склади заводу

РАЙОНИ

1

2

3

4

І

23

27

16

18

ІІ

12

17

20

41

ІІІ

22

28

12

32

Опорний варіант плану можна складати одним із слідуючих способів:

а) методом апроксимації;

б) способом розподілу по клітинках з найкращими оцінками;

в) за правилом північно-західного кута.

Таблиця 14 – Інформація задачі

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

I

23

27

16

18

30

U1

II

12

17

20

41

40

U2

III

22

28

12

32

53

U3

Потреба в машинах

22

35

25

41

123

Vj

V1

V2

V3

V4

В нашій задачі опорний варіант плану складемо за правилом північно-західного кута. За цим правилом заповнення кліток проводиться, починаючи з крайньої північно-західної і дальше вправо - вниз в міру потреби і наявності вантажів по відповідних споживачах і постачальниках, тобто заповнення проводиться від клітки К11 (буквою К позначається будь-яка клітка) до клітки Кmn. Наприклад, в клітку К11 можна занести максимальну кількість машин – 22, так як в першому районі потрібно стідьки ж, хоч на першому складі є в наявності 30 машин, а в клітку К12 можна занести 8 машин, тобто стільки, скільки залишилося на першому складі (30-22=8), хоч у другому районі потрібно 35 машин і т.д. в міру наявності і потреби (табл.15).

Після складення опорного плану здійснюється перевірка щодо дотримання умов задачі. Алгоритм задачі вимагає, щоб кількість заповнених кліток дорівнювала m + n - 1, тобто сумі рядків і стовбців без одиниці (m – кількість рядків, n – кількість стовпчиків). Бувають випадки, коли кількість заповнених кліток менша m + n - 1. В такому випадку у відповідні клітки записують нуль і вважають їх заповненими.

Таблиця 15 – Опорний варіант плану

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

I

23

22

27

8

16

18

+

30

0

II

12

17

27 +

2 0

1 3

41

40

10

III

22

28

1 2

12 +

32

4 1

53

U3

Потреба в машинах

22

35

25

41

123

Vj

23

27

30

50

Дальше перевіряють план на оптимальність. Для перевірки опорного і наступних планів на оптимальність визначають ряд чисел, які називаються потенціалами. Порівняння цих потенціалів з оцінками ефективності ( в нашій задачі з вартостями перевезень) в клітках таблиці лежить в основі ознаки оптимальності розв’язання задачі.

Під потенціалами розуміють довільну систему чисел ( Vj i Ui ), які вираховуються для всіх заповнених кліток за правилом, згідно з яким різниця між потенціалами стовпчиків (споживачів) і рядків (постачальників) повинна дорівнювати величині оцінки у відповідній клітці, тобто

Vj – Ui = Cij, (1)

де Vj – потенціал j-ої колонки (в нашій задачі це потенціал j-го споживача – району);

Ui – потенціал і-го рядка ( в нашій задачі це потенціал і-го постачальника- складу);

Cij – оцінка (вартість перевезення від і-го постачальника до j-го споживача).

В зв’язку з тим, що потенціали визначаються для кожного постачальника і споживача, то загальна їх кількість повинна обов’язкозково дорівнювати величині (m + n). Оскільки кількість заповнених кліток дорівнює (m + n - 1), кількість потенціалів буде на одиницю більша числа заповнених кліток. Тому на першому етапі розрахунку потенціалів одному із них – потенціалу будь-якого рядка чи стовпчика дозволяється присвоювати довільне значення. Для полегшення розрахунків доцільно потенціалу першого рядка присвоювати нульове значення. Значення вирахованих потенціалів записуються у відповідні клітки стовпчиків і рядків потенціалів (табл.15).

Отже, нехай U1 (потенціал першого рядка) дорівнює нулю. В цьому рядку є дві заповнені клітки – К11 з величиною поставки 22 і К12 з величиною поставки 8. Оцінка клітинки К1111) дорівнює 23, а оцінка клітинки К12 12) дорівнює 27. Користуючись формулою (1), можна визначити потенціали першого і другого стовпчиків (V1 i V2). Підставивши у формулу (1) значення U1=0 і С11= 23, одержимо, що V1= С11 + U1, тобто V1= 23 +0 = 23. Аналогічно вираховуємо потенціали останніх рядків і стовпчиків.

V2= С12 + U1 = 27 + 0 = 27;

U2 = V2 – С22 = 27 – 17 = 10;

V3 = U1 + С23 + 10 +20 = 30;

U3 = V3 – С33 = 30 – 12 = 18

V4 = U3 + С34 = 18 + 32 = 50.

Після вирахування значень потенціалів їх необхідно використати для дослідження характеристик незаповнених кліток К13, К14, К21, К24, К31, К32. План вважається оптимальним тоді, коли для всіх незаповнених кліток виконується вимога:

Vj – Ui <=Cij. (2)

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

Розрахуємо за формулою (2) всі характеристики для незаповнених кліток таблиці 15.

Для К13 30 – 0 = 30 > 16

для К14 50 – 0 = 50 > 18

для К21 23 – 10 = 13 >12

для К24 50 – 10 = 40 < 41

для К31 23 – 18 = 5 < 22

для К32 27 – 18 = 9 < 28

Три клітки - К13, К14, К21 не підходять під ознаку оптимальності. Отже, план завезень машин, який представлений в таблиці 15, не оптимальний і загальну вартість перевезень можна зменшити.

Для вибору напрямку покращення плану необхідно вирахувати для тих кліток, для яких порушується вимога (2), різницю між потенціалами і оцінками за формулою:

dij = V1 – Ui – Cij (3)

Підставимо конкрентні дані:

d13 = V3 – U1 – C13 = 30 – 0 – 16 = 14;

d14 = V4 – U1 – C14 = 50 – 0 – 18 = 32;

d21 = V1 – U2 – C21 = 23 – 10 – 12 = 1.

Клітку, в якій є найбільше значення dij, називають ключовою. З неї і починають поліпшення плану. В нашому випадку найбільше значення dij (32) має клітка К14. Для поліпшення плану будують замкнутий цикл (многокутник), який повинен з’єднати ключову клітку з іншими заповненими клітками, але так, щоб загальна кількість охоплених циклом кліток завжди була парною. Цикл може проходити через заповнені і незаповнені клітки, однак повороти вершин обов’язково необхідно робити в заповнених клітках під прямим кутом. В нашому випадку такий замкнутий цикл буде проходити по клітках К14 →К12 →К22 →К23 →К33 →К14 (таблиця 15), охопивши 6 кліток, із яких одна незаповнена і 5 заповнених.

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

Знаходять найменше значення Хij у клітках з від’ємними вершинами. Це число додають до всіх значень Хij у клітках із додатними і віднімають від значень Хij у клітках із від’ємними вершинами. Найменшим значенням Хij буде 8 у клітці К12. В клітку К14, яка була не заповненою, заносимо число 8, у клітці К12, в якій було 8 машин, після віднімання 8 нічого не залишиться і вона буде не заповненою. Подібним чином до числа 27 в клітці К22 додаємо 8 і в ній буде 35 машин, а із клітки К23 заберемо 8 машин і в ній залишиться 5 машин. В клітку К33 додамо 8 машин і в ній стане 20 машин, а з клітки К34 заберемо 8 машин і в ній залишиться 33 машини. Після такого переміщення одержимо новий план завезень машин, наведений у таблиці 16.

Транспортні витрати при такому плані завезень машин будуть дорівнювати 2641 грн. (22х23) + (8х18) + (35х17) + (5Х20) + (20Х12) + (33х32) = 2641 грн., що на 256 грн. менше в порівнянні з попереднім (опорним) варіантом плану.

Дальше вся вирахувальна процедура повторюється. Для того, щоб перевірити на оптимальність новий варіант плану (табл.16), знову вираховують потенціали, використовуючи при цьому формулу (1) і записують їх у відповідні клітки стовпчика і рядка потенціалів. Використовуючи формулу (2),

Таблиця 16 – Другий варіант плану

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

I

- 23

22

27

16

18

8 +

30

0

II

12

+

17

35

20

5 -

41

40

-22

III

22

28

1 2

20 +

32

33 -

53

-14

Потреба в машинах

22

35

25

41

123

Vj

23

-5

-2

18

розраховують для незаповнених кліток характеристики.

Для К12 -5 – 0 = -5 < 27

для К13 -2 – 0 = -2 < 16

для К21 23 – (-22) = 45 >12

для К24 18 – (-22) = 40 < 41

для К31 23 – (-14) = 37 >22

для К32 -5 – (14) = 9 < 28

Ознака оптимальності не дотримується для двох кліток – К21 і К31. Tому даний план завезень машин не є оптимальним, значить загальну вартість перевезень можна зменшити.

За формулою (3) вираховуємо різницю між потенціалами і оцінками:

d21 = 23 – (-22) – 12 = 33

d31 = 23 – (-14) – 22 = 15.

Найбільше значення dij (d21 = 33) знаходиться в клітці К21, яка і буде ключовою. З цієї клітки за вище описаним правилом будуємо замкнутий цикл, який пройде по клітках: К21→К11→К14→К34→К33→К23→К21 (табл.16). Після побудови замкнутого циклу в клітки, починаючи із ключової, проставляємо почергово знаки плюс і мінус. Найменшим значенням Xij, яке знаходиться в клітці із знаком мінус, буде 5 (клітка К23). Це значення Xij (число 5) додаємо до значень Xij в клітках із знаком плюс і віднімаємо від значень Xij в клітках із знаком мінус. Після такого переміщення знову одержимо новий план завезень машин, який наведений в таблиці 17.

Загальні транспортні витрати при цьому плані завезень машин будуть дорівнювати 2476 грн., або на 165 грн. менше від попереднього плану і на 421 грн. менше від опорного плану.

Однак результати вирахувальних процедур показують, що цей варіант

плану не оптимальний. Поліпшення його за описаною вище методикою і наведемо в таблиці 18.

Таблиця 17 – Третій варіант плану

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

I

- 23

17

27

16

+ 18

23

30

0

II

12

5

17

35

20

41

40

11

III

22

+

28

12

25

32

28 -

53

-14

Потреба в машинах

22

35

25

41

123

Vj

23

28

-2

18

При такому плані перевезень машин загальні транспортні витрати будуть дорівнювати 2221 грн., що на 255 грн. менше в порівнянні із попереднім варіантом плану.

Таблиця 18 – Четвертий (оптимальний) варіант плану

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

I

23

27

16

18

30

30

0

II

12

5

17

35

20

41

40

-4

III

22

17

28

12

25

32

11

53

-14

Потреба в машинах

22

35

25

41

123

Vj

8

13

-2

18

Використавши формулу (1) вираховуємо нові потенціали, які запишемо у відповідні клітки стовпчика і рядка потенціалів.

За формулою (2) перевіримо план на оптимальність.

Для К11 8 - 0 = 8 < 23

для К12 13 - 0 = 13 < 27

для К13 -2 – 0 = -2 <16

для К23 -2 – (-4) = 2 < 20

для К24 18 – (-4) = 22 < 41

для К32 13 – (-14) = 27 < 28

Оскільки, ознака оптимальності дотримується для всіх незаповнених кліток, одержаний план завезень машин є оптимальним. Згідно оптимального плану необхідно: із першого складу всі машини направити в 4-й район, із другого складу 5 машин необхідно направити в 1-й район і 35 – в 2-й, із третього складу – 17 машин в 1-й район, 25 – в 3-й і 11 – в 4-й район. Тільки при такому плані перевезень машин загальні транспортні витрати будуть мінімальними.

Примітка. Методом потенціалів можна успішно розв’язувати транспортні задачі не тільки на мінімум, але й на максимум лінійної функції. Для цього необхідно змінити знак (поставити знак “мінус”) усіх оцінок змінних невідомих і розв’язувати задачу аналогічно як на мінімум.

При складанні опорного плану способом розподілу по клітках з найкращими оцінками, найкращі оцінки можна вибирати: по рядках, по колонках, одночасно по всіх клітках таблиці. Цей спосіб зрозумілий і логічний. Алгоритм побудови опорного плану цим способом розглянемо на тому ж прикладі (таблиця 19).

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

Таблиця 19 – Опорний варіант плану

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

І

23

27

16

25 -

18

+ 5

30

0

ІІ

12

22

17

18

20

41

40

-3

ІІІ

22

28

17

12

+

32

- - 36

53

-14

Потреба в машинах

22

35

25

41

123

Vj

9

14

16

18

При цьому необхідно дотримуватись вимоги, щоби кількість заповнених кліток дорівнювала величині m+n-1, де m – кількість постачальників - 3, n – кількість споживачів – 4. Таким чином кількість заповнених кліток на будь-якій стадії розрахунків повинна бути рівна: 3 + 4 – 1 = 6.

Початковий (опорний) варіант плану буде такий:

в клітку К13 записуємо 25;

в клітку К14 - 5;

в клітку К21 - 22;

в клітку К22 - 18;

в клітку К32 - 17;

в клітку К34 - 36.

Згідно цього плану заповнено 6 кліток, що відповідає вимогам m+n-1. Якби кількість заповнених кліток була меншою цієї вимоги, тоді потрібно було б умовно перейти до такого плану, при якому було б заповнено 6 кліток. Цього досягаємо шляхом заповнення однієї із незаповнених кліток нулем.

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

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

25*16 + 5*18 + 22*12 + 18*17 + 17*28 + 36*32 = 2688 грн.

Далі перевіряємо план на оптимальність. Для цього визначаємо потенціали за формулою Vj – Ui = Cij. Вся процедура вирахування потенціалів проводиться так само, як було здійснено вище.

U1 = 0;

V3 = 0+16= 16;

V4 = 0+18= 18;

U3 = 18-32= -14;

V2 = -14+28= 14;

U2 = 14-17= -3;

V1 = -3+12= 9

За формулою Vj – Ui <= Cij перевіряємо план на оптимальність.

Отже для К11 9 – 0 = 9 < 23

для К31 9 – (-14) = 23 > 22

для К12 14 – 0 = 14 <= 27

для К23 16 – (-3) = 19 <= 20

для К33 16 – (-14) = 30 > 12

для К24 18 – (-3) = 21 <= 41

Ознака оптимальності не виконується для двох кліток: К31 і К33. Ключовою кліткою буде клітка К33, з якої й починають поліпшення плану. Замкнутий цикл буде проходити по клітках: К33 → К13 → К14 → К34. Знаходимо найменше значення Xij(25) і додаємо його до всіх значень Xij у клітках з додатніми вершинами і віднімаємо від значень Xij у клітках з від”ємними вершинами. На основі цього одержимо новий варіант плану (таблиця 20).

Дальше вся вирахувальна процедура повторюється.

Таблиця 20 – Другий варіант плану

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

І

23

27

16

18

30

30

0

ІІ

- 12

- 22

17

1 8 +

20

41

40

-3

ІІІ

22

+

28

17 -

12

25

32

11

53

-14

Потреба в машинах

22

35

25

41

123

Vj

9

14

-2

18

Розраховуємо потенціал за формулою Vj – Ui = Cij.

U1 = 0;

V4 = 0+18= 18;

U3 = 18-32= -14;

V3 = -14+28= 14;

U2 = -14 + 22 = 8;

V1 = 13-17 =-4.

Таблиця 21 – Третій варіант плану

Bj

Ai

1

2

3

4

Наявність машин на складах

Ui

І

23

27

16

18

30

30

0

ІІ

12

5

17

35

20

41

40

-4

ІІІ

22

17

28

12

25

32

11

53

-14

Потреба в машинах

22

35

25

41

123

Vj

8

13

-2

18

Перевіряємо план на оптимальність за формулою Vj – Ui <= Cij.

для К11 8- 0 = 8 < 23

для К12 13 – 0 = 13 <= 27

для К32 13 – (-14) = 27 > 28

для К13 -2 – 0 = -2 < 16

для К23 -2 – (-4) = 2 <= 20

для К24 18 – (-4) = 22 < 41

Як видно із розрахунків, умова оптимальності (Vj – Ui <= Cij) виконується для всіх незаповнених кліток. Отже план оптимальний.

Отже: X11 = 0; X12 = 0; X13=0; X14 = 30; X21 = 5; X22 = 35; X23 = 0;

X24 = 0; X31 = 17; X32 = 0; X33 =25; X34 = 11

Zmin = 30*18 +5 *12 + 35*17 + 17*22 + 25*12 + 11*32 = 540 +60 +595 +374 +300 +352 = 2221 грн.