Методи розв’язування задач цілочислового лінійного програмування
Для знаходження оптимального розв’язку цілочислових задач використовують спеціальні методи. Найпростішим методом розв’язування цілочислової задачі є знаходження її оптимального розв’язку, як задачі, що має неперервні змінні, з подальшим округленням останніх. Такий підхід часто є виправданим. Проте якщо мова йде про випуск продукції великої вартості (наприклад, турбіни до електростанцій чи агрегату в сушильний цех), то будь-які заокруглення недопустимі.
Для знаходження оптимальних планів цілочислових задач застосовують дві основні групи методів:
- методи відтинання;
- комбінаторні методи.
Основою методів відтинання є ідея поступового «звуження» області допустимих розв’язків задачі. Спочатку розв’язується задача з так званими послабленими умовами, тобто без урахування вимог цілочисельності змінних, а потім вводять в модель додаткові обмеження, які враховують вимогу, щоб значення змінних були цілими. Таким чином многокутник допустимих розв’язків послабленої задачі поступово зменшуємо до тих nip, доки змінні оптимального розв’язку не набудуть цілих значень. Основним методом цієї групи є метод Гоморі.
Комбінаторні методи цілочислової оптимізації базуються на повному переборі всіх допустимих цілочислових розв’язків, тобто вони реалізують процедуру цілеспрямованого перебору, під час якої розглядається лише частина розв’язків (досить невелика), а решта враховується одним із спеціальних методів.
Найпоширенішим в цій групі є метод «віток і меж», який, починаючи з розв’язування послабленої задачі, передбачає розбиття початкової задачі на дві підзадачі виключенням областей, що не мають цілочислових розв’язків, і дослідженням кожної окремої частини многокутника допустимих розв’язків.
Для розв’язування задач з бульовими змінними використовують комбіновані методи, і якщо змінні є бульовими, то методи пошуку оптимального розв’язку значно спрощуються.
Розглянемо детальніше метод Гоморі. Нехай маємо задачу цілочислового програмування (6.1)-(6.3). Для її розв’язування застосовують наступний алгоритм:
1. Використовуючи симплекс-метод, знаходять розв’язок послабленої задачі, тобто задачі без вимог цілочисельності змінних - (6.1)-(6.2). Якщо серед елементів умовно-оптимального плану немає дробових чисел, то цей план є оптимальним планом задачі цілочислового програмування (6.1)-(6.3).
2.Якщо в умовно-оптимальному плані є дробові значення, то вибирається змінна, яка має найбільшу дробову частину. На базі цієї змінної та елементів рядка останньої симплекс-таблиці, що відповідає цій змінній будується додаткове обмеження Гоморі:
, (6.5)
де символ { } означає дробову частину числа.
Для визначення дробової частини будь-якого числа необхідно від нього відняти цілу його частину - найбільше ціле число, що не перевищує зазначеного. Цілу частину числа позначають [ ].
3. Додаткове обмеження після зведення його до канонічної форми приєднується до останньої симплекс-таблиці, яка містить умовно-оптимальний розв’язок задачі. Отриману розширену задачу розв’язують, а потім перевіряють її розв’язок на цілочисельність. Якщо він не цілочисловий, то повертаються до пункту 2. Процедуру повторюють до знайдення цілочислового оптимального розв’язку або буде доведено, що задача не має допустимих розв’язків у множині цілих значень. Досвід показує, що процес розв’язування задач великої розмірності методом Гоморі повільно збіжний.
Дата добавления: 2016-07-22; просмотров: 5015;