Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MP_new_conspect.doc
Скачиваний:
15
Добавлен:
11.11.2019
Размер:
1.62 Mб
Скачать

1.4. Транспортна задача

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

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

Нехай є в наявності m пунктів виробництва деякого однорідного продукту та n пунктів його споживання. Відомі запаси аі продукту в кожному пункті-постачальнику і = 1…m, попит bj кожного пункту-споживача j = 1…n і витрати Cij на перевезення одиниці продукту з пункту-постачальника і до пункту-споживача j. Припускаємо, що сумарний запас рівний сумарному попиту, аі > 0, bj > 0, Cij  0 для всіх і = 1…m, j = 1…n. Необхідно скласти план перевезень продукту (або план закріплення постачальників за споживачами), при якому запаси кожного постачальника були б вивезені, попит кожного споживача задоволений, а загальні транспортні витрати були б мінімальними. Умови транспортної задачі записують зазвичай у вигляді таблиці 1.5.

Таблиця 1.5.

j

i

1

2

n

ai

1

C11

C12

C1n

a1

2

C21

C22

C2n

a2

m

Cm1

Cm2

Cmn

am

bj

b1

b2

bm

Складемо математичну модель задачі. Позначимо через xij шуканий об’єм перевезення від постачальника і до споживача j. Будемо розглядати змінні xij, задають план перевезень, як компоненти матриці перевезень Х розміром  n:

. (1.4.1)

Витрати, пов’язані з певним перевезенням, складуть величину Cijxij, а загальна вартість перевезень Z від усіх постачальників до всіх споживачів визначиться виразом

. (1.4.2)

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

, (1.4.3)

а загальне постачання будь-якому споживачеві задовольняло його попит

. (1.4.4)

Зміст змінних висуває умову їх не-від’ємності:

(1.4.5)

В результаті отримуємо формулювання математичної моделі транспортної задачі: знайти значення змінних xij, які б задовольняли умови (1.4.3)-(1.4.4) і мінімізувати цільову функцію (1.4.2).

Це типова канонічна задача лінійного програмування. У неї число змінних рівне добуткові ( n), а число рівнянь-обмежень – (+ n).

Для перевірки умов сумісності системи (1.4.3)–(1.4.4) просумуємо рівняння (1.4.3) по індексу і, а (1.4.4) – по j. Отримаємо рівності:

; , (1.4.6)

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

. (1.4.7)

Умова (1.4.7) є умовою сумісності системи обмежень (1.4.3)-(1.4.4). Вона виражає вимогу балансу між сумарними запасами і сумарним попитом.

Задачу, для якої виконується умова (1.4.7), називається транспортною задачею з правильним балансом або закритою транспортною задачею. Якщо ж умова (1.4.7) порушена, то транспортна задача називається відкритою.

Тут можливі два випадки: 1) сумарні запаси перевищують сумарний попит; 2) сумарний попит перевищує сумарні запаси. У першому випадку після задоволення всіх споживачів у деяких постачальників залишиться невивезений продукт, в другому випадку поставки для деяких споживачів будуть меншими від їх потреб. Тоді умови (1.4.6) перетворюються в нерівності.

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

У другому випадку еквівалентна закрита задача будується введенням „фіктивного постачальника”, запас якого дорівнює надлишковому попиту всіх споживачів. Розв’язком вихідної відкритої задачі буде сукупність перевезень від реальних постачальників до всіх споживачів, а поставки від фіктивного постачальника вкажуть об’єм незадоволеного попиту відповідних споживачів.

На відміну від загальної задачі лінійного програмування питання про існування допустимих і оптимальних планів транспортної задачі розв’язується дуже просто.

Властивість 1. Транспортна задача завжди має оптимальний план.

Властивість 2. У транспортної задачі завжди існують допустимі плани, які містять не більше ніж (+ n – 1) додатній елемент.

Властивість 3. Якщо в транспортній задачі всі числа ai, bj цілі, то вона має оптимальний цілочисловий план.

Оскільки транспортна задача є задачею лінійного програмування, то її можна розв’язувати симплекс-методом. Простота будови системи обмежень дозволяє значно спростити симплекс-метод. Це можна помітити на прикладі відшукання початкових планів. Клітинки матриці перевезень AiBj заповнюють меншим з чисел її рядка і стовпчика, тобто числом min (aibj).

Методи пошуку початкового опорного плану. Розглянемо декілька найпоширеніших методів пошуку початкового опорного плану при розв’язуванні транспортної задачі.

Діагональний метод.

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

Першою заповнюємо клітинку А1В1 числом 22, як min (22, 60). При цьому потреби В1 задовольнились повністю, а запаси А1 зменшились до 38 од. Цим числом заповнюємо клітинку А1В2. У подальших розрахунках використовуємо запаси А2 і А3.

Таблиця 1.6

Поста-чальники

Споживачі

Запас

В1

В2

В3

В4

В5

А1

4

22

1

38

3

4

4

60

А2

2

3

7

2

20

2

8

3

35

А3

3

5

2

4

10

4

30

40

Потреби

22

45

20

18

30

В результаті послідовності дій отримуємо початковий опорний план

.

Метод найменшої вартості.

Метод найменшої вартості від попереднього відрізняється лише послідовністю заповнення клітинок. Таблицю перевезень починають заповнювати у порядку зростання вартості перевезень.

Найменша вартість у клітинці А1В2, тому заповнюємо її першою (табл.1.7). Наступна мінімальна вартість 2. Можна вибрати будь-яку клітинку з такою вартістю. Клітинку А2В4 не заповнюємо, бо запаси А2 вичерпані.

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

Таблиця 1.7

Поста-чальники

Споживачі

Запас

В1

В2

В3

В4

В5

А1

4

1

45

3

4

4

15

60

А2

2

22

3

2

13

2

3

35

А3

3

5

2

7

4

18

4

15

40

Потреби

22

45

20

18

30

Метод усереднених коефіцієнтів.

За методом усереднених коефіцієнтів обчислюємо середні вартості рядків і стовпчиків матриці перевезень:

Після цього обчислюємо усереднені коефіцієнти Kij за формулою

.

Потім послідовно заповнюємо клітинки з найменшими Kij (табл.1.8).

Таблиця 1.8

Поста-чальники

Споживачі

Запас

СА

В1

В2

В3

В4

В5

А1

4

-2,2

1

-5,2

45

3

-2,5

4

-2,5

4

-2,9

15

60

3,2

А2

2

-3,4

2

3

-3,4

2

-2,7

2

-3,7

18

3

-3,1

15

35

2,4

А3

3

-3,6

20

5

-1,6

2

-3,9

20

4

-2,9

4

-3,1

40

3,6

Потреби

22

45

20

18

30

CВ

3

3

2,3

3,3

3,7

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

а) за діагональним методом

од.

б) за методом найменшої вартості

од.

в) за методом усереднених коефіцієнтів

од.

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

Якщо врахувати, що ранг матриці дорівнює (m + n – 1), отриманий план буде невиродженим, якщо всі його (m + n – 1) компонентів додатні, і виродженим у протилежному випадку.

Метод потенціалів. Розглянуті методи створення опорного плану транспортної задачі не розв’язують основного питання – чи є отриманий план оптимальним. Для того, щоб отримати відповідь на питання оптимальності плану, застосовують так званий метод потенціалів. Він ґрунтується на розгляді задачі, двоїстої до транспортної.

Запишемо транспортну задачу на мінімізацію загальної вартості перевезень у розгорнутому вигляді:

, (1.4.8)

(1.4.9)

хij  0 (i = 1…m, j = 1…n) (1.4.10)

Позначимо змінні двоїстої задачі, які відповідають рівнянням першої підсистеми системи (1.4.9) основних обмежень транспортної задачі, через ui, а ті, що відповідають обмеженням другої підсистеми (1.4.9) – через vj. Оскільки всі обмеження прямої задачі є рівняннями, то обмеження на знаки змінних двоїстої задачі не накладаються.

Згідно з правилами побудови двоїстих задач (див. тему 1.3) кожній змінній хij  0 транспортної задачі відповідає одне обмеження двоїстої задачі у вигляді

. (1.4.11)

Цільова функція двоїстої задачі, яку необхідно максимізувати, запишеться так:

(1.4.12)

при системі обмежень (1.4.11) і необмежених за знаком змінних ui та vj. Ці змінні й називають потенціалами транспортної задачі.

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

Пояснимо термін «потенціальність опорного плану» і саму теорему.

Потенціальним назвемо всякий план транспортної задачі, який задовольняє умови доповнюючої нежорсткості, тобто для цього плану існує система чисел-потенціалів ui та vj таких, що для кожного хij > 0

(1.4.13)

і для кожного хij = 0

. (1.4.14)

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

Алгоритм методу такий.

1. Кожному рядкові і та стовпчикові j, виходячи з цін Cij заповнених клітинок, надають деякі числа (потенціали) uі (i = 1...m) та vj (j = 1...n). Для кожної заповненої клітинки повинна виконуватись рівність

. (1.4.8)

Оскільки заповнених клітинок (+ n – 1), а невідомих потенціалів (+ n), то один з потенціалів вибираємо довільно (наприклад, 0), а решта знаходимо з наведеної рівності (1.4.8).

2. Для порожніх клітинок таблиці, що відповідають вільним змінним, обчислюємо умовні ціни, записуючи їх у лівому верхньому куточку клітинки. Якщо, наприклад, ( ) – порожня клітинка, то для неї умовна ціна дорівнюватиме

. (1.4.9)

3. У порожніх клітинках обчислюємо різниці між дійсними й умовними цінами:

. (1.4.10)

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

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

Рис.1.3.

Такий цикл матиме вигляд замкнутої ламаної лінії (рис.1.3). В одному з кутків цієї ламаної знаходиться клітинка, для якої виконується перетворення, в інших кутках – заповнені клітинки, які беруть участь у перетворенні. При побудові циклу виходять з клітинки з найбільшою від’ємною оцінкою і повертаються до неї по ламаній, причому повороти можна робити лише в заповнених клітинках (що відповідають базисним змінним). Нехай у “несприятливу” клітинку потрібно помістити k одиниць об’єму перевезень. Для уникнення порушення балансу в таблиці при циклових переходах у відповідні клітинки почергово додають і віднімають k одиниць до (від) наявних у них об’ємів перевезень.

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

Поста-чаль-

ники

Споживачі

За-паси

ui

В1

В2

В3

В4

В5

А1

4

1

3

4

4

60

0

22

38

А2

2

3

2

2

3

35

2

7

20

8

А3

3

5

2

4

4

40

4

10

30

Потреби

22

45

20

18

30

vj

4

1

0

0

0

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]