Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PRAV_R_3_22.doc
Скачиваний:
1
Добавлен:
16.11.2019
Размер:
545.79 Кб
Скачать

3.6.6. Транспортна задача лінійного програмування.

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

Змістом задачі є знаходження такого плану перевезень продукта з п – складів (j = 1:n) до m – споживачів (i = 1:m), який вимагав би мінімальних витрат. Якщо споживач і отримує одиницю продукту (вважається, що перевезення здійснюються по прямій дорозі) із j-го складу, то матимемо витрати pij (вартість перевезення одиниці вантажу). Припускають, що транспортні витрати пропорційні кількості вантажу що перевозиться, тобто витрати на перевезення k одиниць продукції будуть kpij. Далі вважають, що кількість продукції на складі дорівнює кількості продукції необхідної споживачам, тобто:

(3.29)

Економіко-математична модель транспортної задачі, де критерієм оптимальності є вартість перевезень усіх вантажів матиме вигляд:

(3.30)

; (3.31)

; (3.32)

(3.33)

Витрати на перевезення одиниці вантажу (тариф перевезень) з і-го складу до j-го споживача представляються у вигдяді матриці pij, тобто:

Розглядаючи транспортну задачу лінійного програмування треба мати на увазі, що:

  1. Будь-яке невід’ємне рішення системи лінійних рівнянь (3.31), (3.32) називається допустимим планом транспортної задач.

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

  3. Опорним планом транспортної задачі називають допустимий план, що має не більше (m+n-1) відмінних від нуля величин .

  4. Опорний план називається не виродженим, якщо він містить рівно (m+n-1) відмінних від нуля компонент, якщо менше ніж (m+n-1) – виродженим.

  5. План Х* = (хij), при якому цільова функція (3.30) приймає своє мінімальне значення, називається оптимальним планом транспортної задачі.

  6. Необхідною і достатньою умовою існування розв’язку транспортної задачі є рівність (3.29) - кількість продукції на складі дорівнює кількості продукції необхідної споживачам. Модель транспортної задачі, для якої виконується рівність (3.29) називається збалансованою, або закритою. Якщо умова (3.29) не виконується, то транспортну задачу називають незбалансованою, або відкритою. Не виконання умови (3.29) приводить до двох можливих випадків:

а.) Якщо , тобто кількість продукції у розмірі , залишається на складах. У цьому випадку вводять «фіктивного» споживача т+1 з потребами у розмірі і вважають транспортні витрати pi+1,j, рівними нулю для усіх j, тоді xi+1,j можна розглядати як кількість продукції, що залишилась на j-складах у постачальників.

б.) Якщо , то потреби споживачів не можуть бути покриті кількістю продукції у постачальників. У цьому випадку початкові умови задачі повинні бути змінені таким чином, щоб повністю задовольнити потреби споживачів. Тобто, вводять «фіктивного» постачальника з запасами продукції і вважають транспортні витрати pi,j+1, рівними нулю для усіх і, тоді xi,j+1 можна розглядати як розмір недопоставленої продукції і – споживачам.

  1. Найкращим елементом матриці тарифів перевезень pij, називається найменший тариф, якщо задача розв’язується на мінімум цільової фукції і найбільший тариф, якщо задача поставлена на максимум цільової функції.

Як і у відомому симплесному методі, розв’язок транспортної задачі починається з побудови першого опорного плану. Методів, доволі простих і зручних у застосування існує декілька – метод північно-західного кута, метод подвійної перевеги, метод апроксимації Фогеля [686868], але принципово вони між собою не різняться. Розглянемо найпростіший з них – метод найменшої вартості (найменших тарифів). Побудову опорного плану зручно подавати у вигляді таблиці, в якій постачальники продукції відповідають рядкам, а споживачі — стовпчикам.

bj

ai

b1

b2

bn

а1

p11

p12

p1n

а2

P21

p22

p2n

am

pm1

pm2

pmn

Алгоритм побудови першого опорного плану методом найменшої вартості включає наступні етапи:

  1. Серед тарифів pij знаходиться найменший. Клітинка з обраним тарифом заповнюється величиною, що рівна максимально можливому об’єму вантажу з урахуванням обмежень по рядку (аі) та по стовбчику (bj). При цьому або весь вантаж вивозиться від постачальника, або повністю задовольняються потреби споживача. Відповідні рядок або стовбчик викреслюються і у подальшому розподілі не розглядаються.

  2. Серед тарифів, що залишились, знову знаходиться найменший і процес продовжується доти, поки не буде розподілено весь наявний вантаж.

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

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

За методом потенціалів план Х = (хij) транспортної задачі буде оптимальним, якщо існує система m +n чисел ui , vj , що називають потенціалами, задовольняюча умови:

I. Z(X*)→ min

(3.34)

II. Z(X*)→ max

(3.35)

Потенціали ui , vj є змінними двоїстої транспортної задачі, їх числове значення дорівнює вартості перевезення одиниці вантажу в пунктах постачання та призначення відповідно, тому їх сума дорівнює транспортному тарифу ui + vj = pij , умови оптимальності (3.31), (3.32) отримані на основі другої теореми двоїстості (розділ 4).

Перевірка плану транспортної задачі на оптимальність методом потенціалів виконується за наступним алгортмом:

1) побудова першого опорного плану;

2) перевірка плану на виродженість. Якщо план вироджений, тобто кількість занятих клітинок в опорному плані менше ніж (m+n-1), то кількість рівнянь для визначення потенціалів є не достатньою. У цьому випадку в одну з вільних клітинок таблиці ставимо нуль, так щоб загальна кількість заповнених клітинок була рівною (m+n-1). Доцільно нуль вносити у клітинку із найменшим тарифом. При цьому фіктивно занята перевезенням «нульова» клітинка не повинна утворювати з іншими клітинками таблиці замкненого прямокутного циклу;

3) визначення значення цільової функції для опорного плану;

4) перевірка умови оптимальності (3.34), або (3.35). Для визначення потенціалів записуємо систему рівнянь ui + vj = pij , так як маємо (m+n-1) рівнянь системи із (m+n) невідомими, то система в цілому є невизначенною і має нескінченну множину розв’язків. Тому один із потенціалів прирівнюємо до нуля, тоді решта потенціалів визначається тривіально із рівностей ui + vj = pij. Дя запису понціалів у транспортну таблицю доцільно додати один рядок і стовбчик.

Перевіряють умову оптимальності для вільних клітинок таблиці ui + vjpij (ui + vjpij). Якщо ця умова виконується для усіх вільних клітинок, то маємо оптимальний план транспортної задачі, якщо хоча б в одній клітинці ця умова порушується, то план транспортної задачі є не оптимальним і маємо змогу його покращити, виконавши перерозподіл вантажів;

5) побудова нового опорного плану. Із усіх клітинок із порушенням умови оптимальності визначаємо клітинку що має найбільшу за абсолютним значенням оцінку Δij =ui + vj - pij >0 - для задачі на мінімум цільової функції, або Δij < 0 для задачі на максимум. Клітинку, що відповідає найбільшій оцінці треба заповнити, тобто змінити об’єм поставок. таким чином, щоб задіяти перевезення у заповнених клітинках, що утворюють із обраною так званий цикл.

Циклом, або прямокутним контуром, в транспортній таблиці називається ламана лінія, вершини якої розміщені в заповнених клітинках таблиці, а ребра – взовж стовбчиків та рядків, крім того у кожній вершині циклу зустрічається рівно два ребра, одне з яких розміщене в рядку, друге – в стовбчику. Точка перетину ребер ламаної, що утвоює цикл не є вершиною. Для кожної вільної клітинки транспортної таблиці можна побудувати єдиний цикл. У клітинках – вершинах циклу почергово ставлять «+», «-», починаючи із «вільної» клітинки. Потім із вантажів, що розміщені у клітинках зі наком «-» обирають найменший за обсягом. Вантаж цього обсягу додають у клітинки із знаком «+» і віднімають у клітинках із знаком «-», виконуючи, таким чином, перерозподіл вантажів у межах циклу. Результатом таких дій буде новий опорний план задачі, в якому вільна клітинка стане заповненою, а одна із заповнених клітинок – вільною.

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