
- •Розділ 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 повторюються).