- •«Задачі цілочисельного програмування. Задача про рюкзак»
- •Завдання з неподільними
- •Комбінаторні задачі
- •Завдання з перервними цільовими функціями
- •Приклад Розв’язання цзлп методом Гомори
- •Інтерація 2
- •Метод гілок і меж
- •Розв’язання цзлп методом гілок і меж
- •Висновки
- •Список літератури
- •Задача про рюкзак
Розв’язання цзлп методом гілок і меж
Розглянемо застосування алгоритму методу гілок і меж для розв’язання ЦЗЛП (4.2) - (4.3). Як вже згадувалося, через D(q) позначається підмножина безлічі допустимих планів задачі. Перед початком першої ітерації (q = 1) в якості поточного безлічі береться все безліч D (D (1) = D), після чого вирішується стандартна задача лінійного програмування (D (1), f). Неважко помітити, що вона є безперервним аналогом вихідної задачі 2-3.
Якщо знайдений оптимальний план (1) містить тільки цілочисельні компоненти, то він є і оптимальним планом для 2-3: (1) = x *. В іншому випадку значення f ((1)) стає оцінкою (верхньою межею) значення цільової функції на множині D (1), і ми переходимо до виконання стандартної ітерації алгоритму. Опишемо вхідні в неї етапи.
1) Вибирається деяка нецілочисельне компонента плану k (q). Оскільки в оптимальному плані вона повинна бути цілою, то можна накласти обмеження xk ≤ [k (q)] і xk ≥ [k (q)] +1. Таким чином, D (q) розбивається на підмножини
Графічна інтерпретація такого розбиття множини D (q) наведена на рис.4.
2) Вирішуються завдання лінійного програмування
Відповідні максимальні значення цільової функції приймаються як її оцінки на цих множинах:
Якщо оптимальний план для однієї з вирішених завдань задовольняє умові
і містить тільки цілі компоненти, то, значить, знайдено Розв’язання основного завдання 2-3. В іншому випадку серед усіх кінцевих підмножин, отриманих як на попередніх (Di (q)), так і на поточному (D1 (q), D2 (q)) етапі, вибирається область з найбільшою оцінкою ξ (Di (q)). Вона стає поточним розглядаються підмножиною (D (q +1)). Далі виробляється перенумерація кінцевих множин і обчислювальний процес итеративно повторюється.
При вирішенні завдань (D1 (q), f) і (D2 (q), f) можна скористатися результатами Розв’язання попередньої задачі (D (q), f). Розглянемо варіант організації обчислювального процесу на прикладі задачі (1 (q), f) (для (2 (q), f) він виглядає аналогічно з точністю до знаків нерівностей).
Припустимо, що на останньому кроці Розв’язання задачі (D (q), f) був отриманий оптимальний базис β. Без обмеження спільності можна вважати, що він складається з перших m стовпців матриці завдання. Дане припущення робиться виключно для забезпечення наочності подальшого викладу і очевидно, що його виконання можна завжди домогтися за рахунок простої перенумерациі векторів аj. За аналогією з попереднім параграфом введемо позначення для елементів матриці задачі (D (q), f) і її вектора обмежень щодо базису:
Тоді система обмежень задачі (D (q), f) може бути представлена як
а
отримувана на її основі система обмежень
задачі (
1
(q), f) як
Або
де хn +1 ≥ 0 - фіктивна змінна, якої відповідає нульовий коефіцієнт у цільовій функції, добавляемая для перетворення нерівності в суворе рівність.
Очевидно, що 1 ≤ k ≤ m, т. к. небазисні компоненти оптимального плану (m +1 ≤ j ≤ n) дорівнюють нулю, тобто є завідомо цілочисельними. Тоді з урахуванням зроблених припущень про вигляді базису можна записати:
Як видно з 35, в k-му стовпці є всього два відмінних від нуля елементи: в k-й і (m +1)-й рядках. Якщо відняти з (m +1)-го рівняння ke, то, враховуючи, що [άk] - άk = - {άk}, отримаємо еквівалентну систему:
Проведені перетворення системи обмежень D1 (q) дозволили явно виділити зв'язаний базис, утворений стовпцями з номерами 1, ..., m, n +1, і відповідний йому псевдоплан (ά1, ..., άm, 0, ...., 0, - {άk}), тобто для розв'язання задачі (D1 (q), f) може бути застосований алгоритм двоїстого симплекс-методу. Практично обчислювальний процес для даного етапу зводиться до перетворення до симплекс-таблиці, показаному на рис.5.
Для випадку задачі (D2 (q), f) перетворення симплекс-таблиці, одержуване на базі аналогічних міркувань, наведено на рис.6.
Очевидним недоліком алгоритму методу гілок і меж при вирішенні задач великої розмірності є необхідність перебрати занадто велика кількість варіантів перед тим, як буде знайдено оптимальний план. Однак він частково може бути подоланий, якщо обмежитися пошуком не оптимальні, а просто "хорошого" (близького до оптимального) плану. Про ступінь такої близькості і швидкості наближення до екстремуму неважко судити по зміні значень оцінок.
Підкреслимо, що наведена реалізація методу гілок і меж є однією з багатьох. Крім неї, наприклад, дуже популярна версія методу розв'язання задачі комівояжера, в якій для розгалуження і побудови оцінок використовують специфічні властивості даної моделі.
