27. Метод Гоморі
Розглянемо алгоритм, запропонований Гоморі, для розв’язування повністю цілочислової задачі лінійного програмування, що ґрунтується на використанні симплексного методу і передбачає застосування досить простого способу побудови правильного відтинання.
Нехай маємо задачу цілочислового програмування:
(6.5)
за умов: , (6.6)
, (6.7)
— цілі числа .(6.8)
Допустимо, що параметри — цілі числа.
Не враховуючи умови цілочисловості, знаходимо розв’язок задачі (6.5)—(6.7) симплексним методом. Нехай розв’язок існує і міститься в такій симплексній таблиці:
Змінні — базисні, а — вільні. Оптимальний план задачі: . Якщо — цілі числа, то отриманий розв’язок є цілочисловим оптимальним планом задачі (6.5)—(6.8). Інакше існує хоча б одне з чисел, наприклад, — дробове. Отже, необхідно побудувати правильне обмеження, що відтинає нецілу частину значення .
Розглянемо довільний оптимальний план задачі (6.5) —(6.7). Виразимо в цьому плані базисну змінну через вільні змінні:
(6.9)
Виразимо коефіцієнти при змінних даного рівняння у вигляді суми їх цілої та дробової частин. Введемо позначення: — ціла частина числа , — дробова частина числа 1. Отримаємо:
, (6.10)
або
. (6.11)
Отже, рівняння (6.11) виконується для будь-якого допустимого плану задачі (6.5)—(6.7). Допустимо тепер, що розглянутий план є цілочисловим оптимальним планом задачі. Тоді ліва частина рівняння (6.11) складається лише з цілих чисел і є цілочисловим виразом. Отже, права його частина також є цілим числом і справджується рівність:
, (6.12)
де N — деяке ціле число.
Величина N не може бути від’ємною. Якщо б , то з рівняння (6.12) приходимо до нерівності:
.
Звідки . Тобто це означало б, що дробова частина перевищує одиницю, що неможливо. У такий спосіб доведено, що число N є невід’ємним.
Якщо від лівої частини рівняння (6.12) відняти деяке невід’ємне число, то приходимо до нерівності:
, (6.13)
яка виконується за допущенням для будь-якого цілочислового плану задачі (6.5)—(6.7). У такий спосіб виявилося, що нерівність (6.13) є шуканим правильним відтинанням.
Отже, для розв’язування цілочислових задач лінійного програмування (6.1)—(6.4) методом Гоморі застосовують такий алгоритм:
1. Симплексним методом розв’язується задача без вимог цілочисловості змінних — (6.1)—(6.3).
Якщо серед елементів умовно-оптимального плану немає дробових чисел, то цей план є розв’язком задачі цілочислового програмування (6.1)—(6.4).
Якщо задача (6.1)—(6.3) не має розв’язку (цільова функція необмежена, або система обмежень несумісна), то задача (6.1) — (6.4) також не має розв’язку.
2. Коли в умовно-оптимальному плані є дробові значення, то вибирається змінна, яка має найбільшу дробову частину. На базі цієї змінної (елементів відповідного рядка останньої симплексної таблиці, в якому вона міститься) будується додаткове обмеження Гоморі:
.
3. Додаткове обмеження після зведення його до канонічного вигляду і введення базисного елемента приєднується до останньої симплексної таблиці, яка містить умовно-оптимальний план. Отриману розширену задачу розв’язують і перевіряють її розв’язок на цілочисловість. Якщо він не цілочисловий, то процедуру повторюють, повертаючись до п. 2. Так діють доти, доки не буде знайдено цілочислового розв’язку або доведено, що задача не має допустимих розв’язків на множині цілих чисел.
У літературі [12, 27] доведено, що за певних умов алгоритм Гоморі є скінченним, але процес розв’язування задач великої розмірності методом Гоморі повільно збіжний. Слід також мати на увазі, що і кількість ітерацій суттєво залежить від сформованого правильного відтинання. Наведене правило (6.13) щодо формування правильного відтинання не єдине. Існують ефективніші відтинання, які використовуються у другому та третьому алгоритмах Гоморі [12, 27], однак наявний практичний досвід ще не дає змоги виділити з них найкращий.
Загалом, алгоритм Гоморі в обчислювальному аспекті є мало вивченим. Якщо в лінійному програмуванні спостерігається відносно жорстка залежність між кількістю обмежень задачі та кількістю ітерацій, що необхідна для її розв’язування, то для цілочислових задач такої залежності не існує. Кількість змінних також мало впливає на трудомісткість обчислень. Очевидно, процес розв’язання цілочислової задачі визначається не лише її розмірністю, а також особливостями багатогранника допустимих розв’язків, що являє собою набір ізольованих точок.
- Принципи моделювання соціально-економічних систем і процесів.
- Сутність економіко-математичної моделі.
- Необхідність використання математичного моделювання економічних процесів
- 7.Способи перевырки адекватносты економыко-математичних моделей
- 8.Поняття адаптацыъ та адаптивних систем
- 9.Сутність оптимізаційних моделей. Приклади економічних задач математичного програмування
- 10. Загальна постановка задачі лінійного програмування. Приклади економічних задач лінійного програмування.
- 11. Модель задачі лінійного програмування в розгорнутому і скороченому вигляді, а також в матричній і векторній формах.
- 12. Властивості розв’язків задачі лінійного програмування. Геометрична інтерпретація задач лінійного програмування.
- 13.Означення планів задачі лінійного програмування (допустимий, опорний, оптимальний).
- 14.Побудова опорного плану задачі лінійного програмування, перехід до іншого опорного плану.
- 15.Теорема про оптимальність розв’язку задачі лінійного програмування симплекс-методом.
- 16. Знаходженння розв’язку задачі лінійного програмування. Алгоритм симплексного методу.
- 17. Симплексний метод із штучним базисом. Ознака оптимальності плану із штучним базисом.
- 18.Двоїста задача. Правила побудови двоїстої задачі. Симетричні й несиметричні двоїсті задачі.
- 19. Економічний зміст двоїстої задачі й двоїстих оцінок.
- 20. Теореми двоїстості, їх економічна інтерпретація.
- 21.Застосування теорем двоїстості в розв’язуванні задач лінійного програмування.
- 23. Аналіз обмежень дефіцитних і недефіцитних ресурсів
- 24. Аналіз коефіцієнтів цільової функції задач лінійного програмування.
- 26. Геометрична інтерпретація задачі цілочислового програмування.
- 27. Метод Гоморі
- 28. Постановка задачі нелінійного програмування, математична модель. Геометрична інтерпретація.
- 29. Графічний метод розв’язування задач нелінійного програмування.
- 30.Метод множників Лагранжа. Теорема Лагранжа. Алгоритм розв’язування задачі на безумовний екстремум.
- 1. Принципи моделювання соціально-економічних систем і процесів.
- 2. Сутність економіко-математичної моделі.