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

Алгоритм методу потенціалів

Алгоритм методу потенціалів полягає в наступному:

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

Етап 2. Кожному постачальнику Ai ставиться у відповідність деяке число ui ( ), а кожному споживачу Bj ( ) – деяке число vj, названі потенціалами, відповідно, постачальника Ai і споживача Bj. Ці числа підбирають так, щоб у будь-якій заповненій клітині їх сума дорівнювала тарифу цієї клітинки, тобто ui + vj = cij. Оскільки всіх потенціалів m+n, а заповнених клітин (базисних перевезень) m+n-1, то для визначення всіх чисел ui,та vj необхідно розв’язувати систему з m+n-1 рівнянь виду ui+vjij з m+n невідомими. Для однозначного розв’язання системи одному з невідомих надають довільного значення; доцільно те невідоме, яке найбільш часто зустрічається в системі покласти рівним нулю. Інші m+n-1 невідомих потенціалів визначаються однозначно з розв’язання системи рівнянь.

Етап 3. Отриманий початковий опорний план перевіряється на оптимальність. Для цього для кожної вільної клітини (i,j) обчислюється оцінка за формулою:

ij = cij - (ui + vj).

План буде оптимальний, якщо для кожної вільної клітини (i,j) оцінка ij є величина не меншою нуля, тобто всі ij0.

Етап 4. Якщо критерій оптимальності не виконаний (є клітини з ij <0), то переходять до нового опорного плану з меншим значенням цільової функції. В число зайнятих вводять вільну клітину, для якої оцінка найменша, і одержують новий план перевезень. Процес продовжується доти, поки не буде отримано оптимальний план, для якого всі оцінки вільних клітин ij 0.

Нехай, наприклад, найменша від’ємна оцінка ij буде для вільної клітини (l,k). Тоді ця клітинка внаслідок перерахунку буде введена в набір зайнятих (з додатними xij) в новому опорному плані. Для знаходження числового значення xlk=t в таблиці з попереднім опорним планом будується так званий цикл перерахунку з початковою (вихідною) клітиною циклу (l,k).

Для побудови такого циклу треба притримуватися таких основних правил:

1 Всі клітини циклу, крім початкової, повинні бути зайнятими (базисними).

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

3 Кожен наступний відрізок з попереднім повинен утворювати прямий кут.

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

5 Початкова клітина циклу позначається знаком "+", а інші - знаками "+" і "-" так, щоб будь-які дві сусідні клітини, з’єднані лінією, були позначені протилежними знаками. Клітини циклу, позначені знаком "+", утворять додатний напівцикл, а знаком "-" - від’ємний.

Знаходимо серед усіх клітин від’ємного напівциклу клітину, яка містить найменше значення xij=t. Позначимо таку клітинку (p,q). Ця клітина в новому плані стане вільною. Перерахунок значень в клітинах циклу виконуємо так: значення xij, що містяться у всіх клітинах додатного напівциклу, збільшуємо, а значення xij у всіх клітинках від’ємного напівциклу зменшуємо на величину t. Величини xij>0 в інших зайнятих клітинах залишаються незмінними.

Отримаємо новий поліпшений план, з якого клітина (p,q) виведена і замість неї введена нова клітина (l,k) з xlk=t.

Для перевірки нового плану на оптимальність знову виконують етапи 2, 3 алгоритму. Процес продовжується до одержання плану, в якому всі оцінки ij0.

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