- •Розділ 6 моделі цілоЧисельного програмування та комбінаторні моделі
- •Пошук філософського каменя
- •Постановки задач цілочисельного програмування
- •6.3. Загальні відомості про методи рішення задач цілочисельного програмування
- •6.4. Метод гілок і границь
- •6.5. Задачі комівояжера
- •З міста з міста у місто у місто Зменшені відстані Мінімум по стовпцях Мінімум по рядках
- •6.6. Метод часткового (неявного) перебору
З міста з міста у місто у місто Зменшені відстані Мінімум по стовпцях Мінімум по рядках
Оцінка: +(Мінімум по рядках)+(Мінімум по стовпцях) =
= 10+10+8+10+8+0+0+12+0 = 58
Рис. 6.2. Метод визначення оцінок в алгоритмі завдання маршрутів
Крок 3. Якщо поточне рішення визначає цикл, то зафіксувати його, прийняти рівним відповідному значенню цільової функції та повернутися до кроку 1. У супротивному випадку перейти до кроку 4.
Крок 4. При наявності можливості вибрати перемінну , що не входить у поточне рішення, таку, що за умови, що не приводить до утворення підциклу на перемінних, що вже увійшли в рішення. При такому виборі внести до основного списку дві задачі. Кожну з цих задач прийняти ідентичній задачі, обраній на кроці 1, за винятком лише того, що в одну з них ввести зміну , а в іншу – умову та зміну . Прийняти та повернутися до кроку 1.
Метод часткових циклів. Головною причиною викладу цієї модифікації методу гілок і границь є ознайомлення з підходом, використовуваним для рішення всіляких комбінаторних задач, наприклад, задач упорядкування (у яких відповідає розміщенню i-гo елемента на j-му місці деякої послідовності). Для цього буде потрібно використання поняття частковий цикл, що визначається як послідовність, що містить меншt п різних міст і починається з міста 1 (наприклад, місто 1 – місто i – місто j – місто k, де n > 4).
На початку будь-якої ітерації t відома верхня оцінка оптимального значення цільової функції. Значення визначається загальноприйнятим способом. Крім того, заданий основний список задач, що містить деяку підмножину , що визначає частковий цикл, і підмножина значень , прийнятих у результаті перегляду рівними ∞. На ітерації 1 основний список містить n – 1 задач, по одній для кожного і переглянутих Для обчислення нижньої оцінки оптимального значення цільової функції, що відповідає циклу, що є доповненням часткового циклу, можна застосувати той же метод, що й в алгоритмі завдання маршрутів. (З іншого боку, можна визначати оптимальне рішення задачі про призначення, включивши в цю задачу коефіцієнти , що належать рядкам і стовпцям, не пов’язаним з підмножиною , що входять у частковий цикл.)
Розглянута модифікація відрізняється від методу завдання маршрутів тільки кроком 4.
Крок 4. По кожному місту k, що не входить у частковий цикл задачі, обраної на кроці 1, внести додаткову задачу до основного списку, розширивши частковий цикл із міста j, що є останнім містом, включеним у частковий цикл, до міста k, змінивши при цьому на ∞. Прийняти та повернутися до кроку 1.
У цьому алгоритмі у випадку, коли частковий цикл містить m міст (включаючи місто 1), на кроці 4 в основний список включається п – т задач. Відзначимо, що на кроці 4 відсутній довільний вибір. (Надлишкові обчислення в даному алгоритмі можуть мати місце, якщо в основний список входять кілька задач, що містять у своїх часткових циклах ті самі т міст, наприклад місто 1 – місто 2 – місто 3 та місто 1 – місто 3 – місто 2. У цьому випадку обчислення оцінок на кроці 2 повторюються).