special
  •  #StandWithUkraine Ukraine flag |
  • ~536840+1180
     Enemy losses on 853th day of War in Ukraine

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

Математичне програмування - Наконечний С.І.

5.9.2. Метод потенціалів на мережі

Розглянемо без доведення розв’язування транспортної задачі на мережі методом потенціалів. Зобразимо задачу у вигляді мережі (рис. 5.2.), де на кожній дузі цифрами у кружечках позначені вартості перевезень одиниці продукції; для спрощення вважатимемо ці вартості однаковими в обох напрямках ребра, а пропускні здатності ребер необмеженими зверху. Зауважимо, що .

Пункти відправлення і запаси в них позначимо відповідними цифрами (що дорівнюють запасам) із знаком «плюс», а пункти доставки — цифрами, що дорівнюють потребам, із знаком «мінус» (стоять у дужках).

На першому етапі складаємо початковий план перевезень: напрям вантажопотоків показуємо стрілками, а кількість вантажів — цифрою над (під) відповідною стрілкою.

Рис. 5.3

Як видно з рис. 5.3, початковий план утворюють змінні:

,

.

Якщо сіть містить m вершин, то система (5.42) складається з m рівнянь, а її ранг має дорівнювати . У нашому прикладі план містить рівно відмінних від нуля базисних змінних, отже, він невироджений.

Скористаємося без доведення теоремою [28]: для того, щоб деяка частина графа відповідала базисним змінним задачі (5.42)—(5.44), необхідно і достатньо, щоб вона була деревом.

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

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

;

;

;

.

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

;

;

;

;

.

Для базисних ребер відповідні різниці точно дорівнюють вартостям перевезень, що є однією з умов оптимальності плану транспортної задачі. Отже, умова оптимальності порушена лише один раз на ребрі (4; 3). Якщо таких порушень більше ніж одне, то вибираємо ребро з найбільшим порушенням. Утворимо цикл з базисних ребер і небазисного ребра (4; 3), що проходить через вершини (4, 3, 1, 5, 6, 2, 4). Напрям обходу збігається з напрямом потоку, який планується вести по ланці (4; 3) — від вершини 4 до вершини 3, оскільки маємо нерівність . Отже, обходимо цикл проти руху стрілки годинника. Обмеження (5.42) не будуть порушені, якщо ми, вибравши в цьому циклі найменший зустрічний потік у ланці (2; 6), відніматимемо його величину від зустрічних потоків у ланках циклу і додаватимемо до потоків, напрями яких збігаються з напрямом обходу. Тоді ланка (2; 6) стає вільною від потоку, а ланка (4; 3) — базисною (рис 5.4).

Рис. 5.4

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

.

Перевірку слід зробити лише для тих вільних ребер, для яких хоча б в одній з вершин змінилося значення потенціалу, а саме – для (1, 2), (2, 6):

;

.

Отже, всі умови оптимальності задовольняються і оптимальний план знайдено:

.

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

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

У літературі [28] можна знайти детальніший опис розв’язання сітьових транспортних задач.



 

Created/Updated: 25.05.2018