Моделювання бюджету доходів та витрат методом транспортної задачі
Як згадувалося вище, транспортна задача (1.1) - (1.4) є звичайною задачею лінійного програмування і може бути розв'язана симплексним методом, однак особливості побудови математичної моделі транспортної задачі дають змогу розв'язати її простіше. Всі коефіцієнти при змінних у рівняннях (1.2), (1.3) дорівнюють одиниці, а сама система обмежень (1.2), (1.3) задана в канонічній формі. Крім того, система обмежень (1.2), (1.3) складається з mn невідомих та m+n рівнянь, які пов'язані між собою співвідношенням (1.8). Якщо додати відповідно праві та ліві частини систем рівнянь (1.2) та (1.3), то отримаємо два однакових рівняння:
; .
Наявність у системі обмежень двох однакових рівнянь свідчить про її лінійну залежність. Якщо одне з цих рівнянь відкинути, то в загальному випадку система обмежень буде містити лінійно незалежне рівняння, отже, їх можна розв'язати відносно базисних змінних. Опорний план транспортної задачі такий допустимий її план, що містить не більш ніж додатних компонент, а всі інші його компоненти дорівнюють нулю. Такий план є невиродженим. Якщо ж кількість базисних змінних менша ніж , то маємо вироджений опорний план.
1.2 Методи розв’язання транспортної задачі
Один із способів розв’язування транспортної задачі ґрунтується на розгляді двоїстої задачі.
Розглянемо транспортну задачу (1.1-1.4). Позначимо змінні двоїстої задачі, які відповідають рівнянням (1.2), через , а для рівнянь (1.3) - через . Оскільки всі обмеження транспортної задачі є рівняннями, то пара спряжених задач є несиметричною і ніякі обмеження на знаки змінних двоїстої задачі та не накладаються.
Для побудови двоїстої задачі поставимо у відповідність обмеженням початкової задачі змінні двоїстої:
(1.9),
(1.10),
Згідно з загальними правилами побудови двоїстих задач маємо:
(1.11)
за умов
(1.12)
Змінні та задачі (1.11), (1.12) двоїстої до транспортної мають назву потенціалів.
Для того, щоб плани відповідних спряжених задач були оптимальними, необхідно і достатньо, щоб виконувалися умови доповнюючої нежорсткості:
1) (1.13)
2) (1.14)
Друга група умов для транспортної задачі виконується автоматично, оскільки всі обмеження задачі є рівняннями.
Перша умова виконується у двох випадках:
а) якщо . Другий співмножник бо за умовою ();
б) якщо , то за умовою транспортної задачі , тоді ().
Необхідність і достатність виконання таких умов для оптимальності планів прямої та двоїстої задач було доведено раніше. Отже, як наслідок другої теореми двоїстості для транспортної задачі отримали необхідні та достатні умови оптимальності плану.
Теорема (умова оптимальності опорного плану транспортної задачі). Якщо для деякого опорного існують числа та , для яких виконуються умови:
1) , ;
2) ,
для всіх , то він є оптимальним планом транспортної задачі.
Використовуючи наведені умови існування розв'язку транспортної задачі, методи побудови опорних планів та умову оптимальності опорного плану транспортної задачі, сформулюємо алгоритм методу потенціалів, який по суті повторює кроки алгоритму симплексного методу.
Алгоритм методу потенціалів складається з таких етапів:
Визначення типу транспортної задачі (відкрита чи закрита). За необхідності слід звести задачу до закритого типу.
Побудова першого опорного плану транспортної задачі одним з відомих методів.
Перевірка опорного плану задачі на виродженість. За необхідності вводять нульові постачання.
Перевірка плану транспортної задачі на оптимальність.
Визначення потенціалів для кожного рядка і стовпчика таблиці транспортної задачі. Потенціали опорного плану визначають із системи рівнянь , які записують для всіх заповнених клітинок транспортної таблиці, кількість яких дорівнює , а кількість невідомих - . Кількість рівнянь на одне менша, ніж невідомих, тому система є невизначеною, і одному з потенціалів надають нульове значення. Після цього всі інші потенціали розраховують однозначно.
Перевірка виконання умови оптимальності для пустих клітин. За допомогою розрахованих потенціалів перевіряють умову оптимальності для незаповнених клітинок таблиці. Якщо хоча б для однієї клітини ця умова не виконується, тобто , то поточний план є неоптимальним, і від нього необхідно перейти до нового опорного плану.
Вибір змінної для введення в базис на наступному кроці. Загальне правило переходу від одного опорного плану до іншого полягає в тому, що з попереднього базису виводять певну змінну (вектор), а на її місце вводять іншу змінну (вектор), яка має покращити значення цільової функції. Аналогічна операція здійснюється і в алгоритмі методу потенціалів.
Перехід від одного опорного плану до іншого виконують заповненням клітинки, для якої порушено умову оптимальності. Якщо таких клітинок кілька, то для заповнення вибирають таку, що має найбільше порушення, тобто .
4.4 Побудова циклу і перехід до наступного опорного плану. Вибрана порожня клітина разом з іншими заповненими становить , отже, з цих клітин обов'язково утвориться цикл. У межах даного циклу здійснюють перерахування, які приводять до перерозподілу постачань продукції. Кожній вершині циклу приписують певний знак, причому вільній клітинці - знак "+", а всім іншим - за черговістю знаки "-" та "+". У клітинках зі знаком "-" вибирають значення і переносять його у порожню клітинку. Одночасно це число додають до відповідних чисел, які містяться в клітинках зі знаком "+", та віднімають від чисел, що позначені знаком "-". Якщо значенню відповідає кілька однакових перевезень, то при відніманні залишаємо у відповідних клітинках нульові величини перевезень у такій кількості, що дає змогу зберегти невиродженість опорного плану.
Внаслідок наведеного правила вибору дістаємо новий опорний план, який не містить від'ємних перевезень і задовольняє умови транспортної задачі. Оскільки кількість всіх клітин таблиці, що входять у цикл, є парною і до половини з них те саме чисті додається, а від половини віднімається, то загальна сума перевезень по всіх колонках і рядках залишається незмінною.
Доведемо ациклічність нового плану. Вектор умов, який відповідає приєднаній клітині, є лінійною комбінацією векторів базису, які утворюють разом з ним цикл, бо ці вектори входять у згадану комбінацію з відмінними від нуля коефіцієнтами. Виключення з циклу одного з базисних векторів приводить до нової системи з лінійно незалежними векторами, бо інакше введений у новий базис вектор мав би два різних розклади через вектори попереднього базису, що неможливо. А системі лінійно незалежних векторів відповідає ациклічна сукупність клітин таблиці транспортної задачі, що й потрібно було довести.
Отже, клітинка, що була вільною, стає заповненою, а відповідна клітинка з мінімальною величиною вважається порожньою. У результаті такого перерозподілу перевезень продукції дістанемо новий опорний план транспортної задачі.
Перевірка умови оптимальності наступного опорного плану. Якщо умова оптимальності виконується - маємо оптимальний план задачі, інакше необхідно перейти до наступного опорного плану (тобто повернутися до пункту 3 даного алгоритму).
Зауважимо, що аналогічно з розв'язуванням загальної задачі лінійного програмування симплексним методом, якщо за перевірки оптимального плану транспортної задачі для деяких клітин виконується рівність , то це означає, що задача має альтернативні оптимальні плани. Отримати їх можна, якщо побудувати цикли перерозподілу обсягів перевезень для відповідних клітин.
На практиці в задачах, що пов'язані з перевезеннями, часто доводиться враховувати додаткові умови: неможливість здійснення перевезень за окремими маршрутами; необхідність перевезень неоднорідної продукції тощо. Такі умови ускладнюють математичну постановку транспортної задачі та вимагають особливих підходів до її розв'язання.
Особливості відкритих транспортних задач з додатковими умовами.
1. Додаткова умова заборони перевезень від певного постачальника до певного споживача. В такому разі в оптимальному плані відповідні клітини обов'язково мають бути вільними ().
Розв'язуючи транспортну задачу з додатковою умовою на заборону окремих постачань, необхідно у відповідних клітинах замінити значення вартостей перевезень одиниці продукції на деяке велике число (ставиться досить велике число ). Оскільки розглянуті вище методи розв'язання транспортних задач уможливлюють організацію перевезень у такий спосіб, що мінімізується загальна вартість витрат на транспортування, то це зумовить з розгляду перевезень з надто великими вартостями, що забезпечить виконання такої додаткової умови.
2. Додаткова умова перевезення за окремими маршрутами строго визначеного обсягу продукції, тобто виконання обов'язкових постачань. В оптимальному плані відкритої транспортної задачі з такою додатковою умовою клітини відповідних фіктивно введених постачальників чи споживачів мають бути вільними.
Розв'язуючи такого типу транспортну задачу, необхідно у відповідних клітинах також збільшити значення вартостей перевезень (ставиться досить велике число ).
3. Додаткова умова необхідності перевезення від -го постачальника -му споживачеві не менше одиниць продукції, тобто вводиться додаткове обмеження виду: .
Розв'язуючи транспортну задачу з такою додатковою умовою, необхідно змінити початкові умови: обсяг постачання відняти від обсягу запасу -го постачальника () та від потреби -го споживача (). Знайдений оптимальний план транспортної задачі зі зміненими умовами (де використані значення ) коригується, враховуючи обмеження .
Додаткова умова необхідності перевезення від -го постачальника -му споживачеві не більше одиниць продукції, тобто вводиться додаткове обмеження виду:
Для виконання такої додаткової умови необхідно в транспортну таблицю -го споживача записати двічі. Один раз його потреби визначатимуться величиною , а другий раз - різницею . Витрати на перевезення одиниці продукції в обох стовпцях повинні бути однаковими за винятком клітини на перетині -го постачальника і -го споживача з потребою . У цій клітині ставиться досить велике число . В такій постановці задача розв'язується відомими методами.
На практиці часто потрібно визначити оптимальний план перевезень неоднорідної продукції, тобто розв'язати багатопродуктову задачу. Її математична модель має такий вигляд:
;
;
;
,
де - індекс виду продукції, що необхідно перевезти.
Розв'язуючи багатопродуктову транспортну задачу, потрібно заблокувати ті клітини, які зв'язують постачальників і споживачів щодо постачань різної продукції. Таке блокування здійснюється введенням досить високих вартостей перевезень одиниці продукції (великого числа ), але слід зауважити, що наявність заблокованих клітин може призвести до неможливості розв'язання задачі. Тому в такому разі необхідно перевіряти, чи є достатня кількість незаблокованих перевезень для побудови опорного плану задачі, який повинен містити додатну змінну.
1.3 Загальна характеристика підприємства ВАТ "Інгулецький гірничо-збагачувальний комбінат"
ВАТ "ІнГЗК" входить до складу групи "Метінвест", яка уявляє собою інтегровану компанію, що має