Методи відтинання. Метод Гоморі

В основу методів цілочислового програмування покладено ідею Данціга. Допустимо, що необхідно розв’язувати задачу лінійного програмування, всі або частина змінних якої мають бути цілочисловими. Можливо, якщо розв’язувати задачу, не враховуючи умову цілочисловості, випадково одразу буде отримано потрібний розв’язок. Однак така ситуація малоймовірна. Переваж­но розв’язок не задовольнятиме умову цілочисловості. Тоді накладають додаткове обмеження, яке не виконується для отриманого плану задачі, проте задовольняє будь-який цілочисловий розв’язок. Таке додаткове обмеження називають правильним відтинанням. Система лінійних обмежень задачі доповнюється новою умовою і далі розв’язується отримана задача лінійного програмування. Якщо її розв’язок знову не задовольняє умови цілочисловості, то будується нове лінійне обмеження, що відтинає отриманий розв’язок, не зачіпаючи цілочислових планів. Процес приєднання додаткових обмежень повторюють доти, доки не буде знайдено цілочислового оптимального плану, або доведено, що його не існує.

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

Методи відтинання. Метод Гоморі - student2.ru

Рисунок 8.3

Слід відмітити, що визначення правила для реалізації ідеї Данціга стосовно формування додаткового обмеження виявилось досить складним завданням і першим, кому вдалось успішно реалізувати цю ідею, був Гоморі.

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

Нехай маємо задачу цілочислового програмування:

Методи відтинання. Метод Гоморі - student2.ru (8.5)

за умов:

Методи відтинання. Метод Гоморі - student2.ru , Методи відтинання. Метод Гоморі - student2.ru (8.6)

Методи відтинання. Метод Гоморі - student2.ru , Методи відтинання. Метод Гоморі - student2.ru (8.7)

Методи відтинання. Метод Гоморі - student2.ru – цілі числа Методи відтинання. Метод Гоморі - student2.ru . (8.8)

Допустимо, що параметри Методи відтинання. Метод Гоморі - student2.ru – цілі числа.

Не враховуючи умови цілочисловості, знаходимо розв’язок задачі (8.5)-(8.7) симплексним методом. Нехай розв’язок існує і міститься в такій симплексній таблиці:

Таблиця 8.1

Методи відтинання. Метод Гоморі - student2.ru

Змінні Методи відтинання. Метод Гоморі - student2.ru – базисні, а Методи відтинання. Метод Гоморі - student2.ru — вільні. Оптимальний план задачі: Методи відтинання. Метод Гоморі - student2.ru . Якщо Методи відтинання. Метод Гоморі - student2.ru – цілі числа, то отриманий розв’язок є цілочисловим оптимальним планом задачі (8.5)-(8.8). Інакше існує хоча б одне з чисел, наприклад, Методи відтинання. Метод Гоморі - student2.ru – дробове. Отже, необхідно побудувати правильне обмеження, що відтинає нецілу частину значення Методи відтинання. Метод Гоморі - student2.ru .

Розглянемо довільний оптимальний план Методи відтинання. Метод Гоморі - student2.ru задачі (8.5)-(8.7). Виразимо в цьому плані базисну змінну Методи відтинання. Метод Гоморі - student2.ru через вільні змінні:

Методи відтинання. Метод Гоморі - student2.ru . (8.9)

Виразимо коефіцієнти при змінних даного рівняння у вигляді суми їх цілої та дробової частин. Введемо позначення: Методи відтинання. Метод Гоморі - student2.ru – ціла частина числа b, Методи відтинання. Метод Гоморі - student2.ru – дробова частина числа b.

Цілою частиною числа а називається найбільше ціле число Методи відтинання. Метод Гоморі - student2.ru , що не перевищує а. Дробовою частиною є число Методи відтинання. Метод Гоморі - student2.ru , яке дорівнює різниці між самим числом а та його цілою частиною, тобто Методи відтинання. Метод Гоморі - student2.ru .

Наприклад, для Методи відтинання. Метод Гоморі - student2.ru Методи відтинання. Метод Гоморі - student2.ru , Методи відтинання. Метод Гоморі - student2.ru ;

для Методи відтинання. Метод Гоморі - student2.ru Методи відтинання. Метод Гоморі - student2.ru , Методи відтинання. Метод Гоморі - student2.ru .

Отримаємо:

Методи відтинання. Метод Гоморі - student2.ru , (8.10)

або

Методи відтинання. Метод Гоморі - student2.ru . (8.11)

Отже, рівняння (8.11) виконується для будь-якого допустимого плану задачі (8.5)-(8.7). Допустимо тепер, що розглянутий план Методи відтинання. Метод Гоморі - student2.ru є цілочисловим оптимальним планом задачі. Тоді ліва частина рівняння (8.11) складається лише з цілих чисел і є цілочисловим виразом. Отже, права його частина також є цілим числом і справджується рівність:

Методи відтинання. Метод Гоморі - student2.ru , (8.12)

де N – деяке ціле число.

Величина N не може бути від’ємною. Якщо б Методи відтинання. Метод Гоморі - student2.ru , то з рівняння (8.12) приходимо до нерівності:

Методи відтинання. Метод Гоморі - student2.ru .

Звідки Методи відтинання. Метод Гоморі - student2.ru . Тобто це означало б, що дробова частина Методи відтинання. Метод Гоморі - student2.ru перевищує одиницю, що неможливо. У такий спосіб доведено, що число N є невід’ємним.

Якщо від лівої частини рівняння (8.12) відняти деяке невід’ємне число, то приходимо до нерівності:

Методи відтинання. Метод Гоморі - student2.ru , (8.13)

яка виконується за допущенням для будь-якого цілочислового плану задачі (8.5)-(8.7). У такий спосіб виявилося, що нерівність (8.13) є шуканим правильним відтинанням.

Отже, для розв’язування цілочислових задач лінійного програмування (8.1)-(8.4) методом Гоморі застосовують такий алгоритм:

1. Симплексним методом розв’язується задача без вимог цілочисловості змінних – (8.1)-(8.3).

Якщо серед елементів умовно-оптимального плану немає дробових чисел, то цей план є розв’язком задачі цілочислового програмування (8.1)-(8.4).

Якщо задача (8.1)-(8.3) не має розв’язку (цільова функція необмежена, або система обмежень несумісна), то задача (8.1)-(8.4) також не має розв’язку.

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

Методи відтинання. Метод Гоморі - student2.ru .

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

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

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

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

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

Приклад 8.1. Сільськогосподарське підприємство планує відкрити сушильний цех на виробничій площі 190м2, маючи для цього 100тис.грн і можливість придбати устаткування двох типів: А і В. Техніко-економічну інформацію стосовно одиниці кожного виду устаткування подано в табл.7.2:

Таблиця 8.2

Методи відтинання. Метод Гоморі - student2.ru

Розв’язання. Нехай х1 і х2 – кількість комплектів устаткування відповідно типу А і В.

Запишемо економіко-математичну модель задачі:

Методи відтинання. Метод Гоморі - student2.ru ,

Методи відтинання. Метод Гоморі - student2.ru ;

Методи відтинання. Метод Гоморі - student2.ru ;

Методи відтинання. Метод Гоморі - student2.ru ,

Методи відтинання. Метод Гоморі - student2.ru і Методи відтинання. Метод Гоморі - student2.ru – цілі числа.

Розв’язуємо задачу, нехтуючи умовою цілочисловості. Остання симплексна таблиця набуде вигляду:

Таблиця 8.3

Методи відтинання. Метод Гоморі - student2.ru

Значення другої змінної є дробовим числом, що не задовольняє початкові умови задачі. Побудуємо для другого рядка наведеної симплексної таблиці додаткове обмеження виду Методи відтинання. Метод Гоморі - student2.ru :

Методи відтинання. Метод Гоморі - student2.ru .

Оскільки Методи відтинання. Метод Гоморі - student2.ru , Методи відтинання. Метод Гоморі - student2.ru , Методи відтинання. Метод Гоморі - student2.ru , то додаткове обмеження набуває вигляду:

Методи відтинання. Метод Гоморі - student2.ru .

Зведемо його до канонічної форми та введемо штучну змінну:

Методи відтинання. Метод Гоморі - student2.ru .

Приєднавши отримане обмеження до симплексної таблиці (табл.8.3) з умовно-оптимальним планом, дістанемо:

Таблиця 8.4

Методи відтинання. Метод Гоморі - student2.ru

Розв’язавши наведену задачу, знаходимо цілочисловий оптимальний план: Методи відтинання. Метод Гоморі - student2.ru , Методи відтинання. Метод Гоморі - student2.ru .

Наши рекомендации