
- •Загальні відомості
- •Глава 1 Задача теорії розкладу
- •Питання для самоперевірки
- •Задачі для самостійної роботи
- •Глава 2 екстремальні задачі на графах
- •2.1 Основні поняття
- •2.2 Способи задання графа
- •1 Матриця суміжності вершин
- •2 Матриця суміжності ребер графа
- •3 Матриця інцидентності
- •2.3 Дерева та ліс. Остовне дерево графа
- •2.4 Алгоритм побудови остовного дерева зв’язного графа
- •2.5 Знаходження найкоротшого шляху в орієнтованому графі
- •2.6 Мережевий граф та його розрахунок
- •2.7 Задача про максимальну течію в мережі
- •Глава 3 метод гілок та меж
- •3.1 Основні поняття
- •3.2 Задача про рюкзак
- •3.3 Задача комівояжера
- •Глава 4 задача про призначення (вибір)
- •Глава 5 теорія ігор
- •5.1 Платіжна матриця. Нижня та верхня ціна гри
- •5.2 Розв’язання гри у мішаних стратегіях
- •5.4 Геометрична інтерпретація гри
- •5.5 Розв’язання ігор та
- •5.6 Розв’язання ігор
- •Глава 6 елементи теорії масового обслуговування
- •6.1 Основні поняття
- •6.2 Системи масового обслуговування з відмовами
- •6.3 Системи масового обслуговання з очікуванням (чергою)
- •Глава 1 Задача теорії розкладу...........................................................................4
- •Глава 2 Екстремальні задачі на графах...............................................................5
- •Глава 3 Метод гілок та меж.................................................................................31
- •Глава 4 Задача про призначення (вибір).............................................................44
- •Глава 5 Теорія ігор................................................................................................47
- •Глава 6 Елементи теорії масового обслуговування...........................................62
- •Навчальне видання
- •Дослідження операцій
3.3 Задача комівояжера
Далі розглянемо іншу задачу, яку можна розв’язати за допомогою методугілок та меж.
Постановка задачі. Маємо n міст, комівояжер повинен відвідати кожне з міст тільки один раз і повернутися в перше. Його маршрут повинен мінімізувати сумарну довжину ( або вартість) пройденого шляху. В теорії графів такий шлях називається гамільтоновим контуром. Тобто задача комівояжера – це знаходження гамільтонового контуру мінімальної довжини.
Мінімізується функція
де Х – множина всіх припустимих маршрутів,
тобто гамільтонових контурів, cij
– вага дуги (i,j) (довжина або вартість
шляху). Будемо вважати крім того, що cii
= ∞,
cij = ∞, якщо немає шляху з пункту і в пункт j.
Сформулюємо загальну схему розв’язання задачі.
Маємо матрицю С = (cij ), де cij
– вага дуги( i,j). Віднімаємо з усіх
елементів кожного рядка матриці С
мінімальний елемент цього рядка, далі
в матриці, що одержана, від усіх елементів
кожного стовпця віднімаємо мінімальний
елемент цього стовпця. Матриця, що
виникає, називається зведеною, позначимо
її
,
крім того позначимо через
–
мінімум в рядку і;
–
мінімум у стовпці j;
– назвемо константами зведення,
i,j=1,2,…,n.
Для будь-якого гамільтонового контуру
виконується наступне:
У якості ρ(х) вибираємо
,
і тоді виконуються вимоги, які накладаються
на оцінку ρ(х), ρ(х) ≤ f(x).
Після операції зведення довжина всіх гамільтонових шляхів зменшуються на одну й ту ж величину, тому оптимальний гамільтонів контур, знайдений з використанням зведеної матриці, буде оптимальним і для початкової матриці.
Множину X ми повинні галузити. Множина Х11 складається з уcіx гамільтонових контурів із X, що не містять деякої дуги (r,s). Множила Х12 складається з ycix гамільтонових контурів з X, що містять дугу (r,s).
Правило вибору дуги (r,s) полягає в наступному: оцінку ρ(Х12) прагнуть зробити меншою, оцінку ρ(Х11) – більшою з метою збільшити ймовірність подальшого галуження множини Х12. Бажання зменшити оцінку ρ(Х12) означає, що кандидатами на вибір дуги (r,s) можуть бути лише ті дуги, яким у зведеній матриці відповідають нульові елементи. Їх може бути декілька. Тоді знайдемо суму констант зведення кожного з нульових елементів матриці . Позначимо цю суму для елемента (i,j) через Θ(і, j). Як дугу (r,s) вибираємо таку, для якої оцінка знизу максимальна, тобто Θ(r,s) =max Θ (i,j).
Наступний етап – побудова зведених матриць i обчислення оцінок знизу.
Замінимо в матриці нульовий елемент, що відповіднє дузі (г,s), на ∞. Нову матрицю позначимо С1. Зведена матриця відстаней для гамільтонових контурів із Х11, що не містять дуги (r,s), одержується зведенням матриці C1. Сума констант зведення для матриці С1 дорівнює Θ(r,s).
Оцінка знизу для функції f(x) на множині Х11 така: ρ(Х11) = ρ(Х) + Θ(r,s).
Гамільтонові контури з Х12 містять дугу (r,s). Викреслимо в матриці рядок i стовпець, що відповідають дузі (рядок відповідає місту r і стовпець відповідає місту s), Елемент, що відповідає дузі (s,r), замінюємо на ∞ (назад із s в r їхати не можна).
Отриману матрицю позначимо С2 (її розмір менше, ніж у попередньої). Зведена матриця відстаней для контурів з X12 одержується зведенням матриці С2. При цьому оцінка знизу ρ(Х12) = ρ(Х) + τ(r,s), де τ(r,s) – сума констант зведення матриці С2.
Якщо в кожному рядку і стовпцю матриці С1 або С2 виявилося лише по одному елементу, відмінному від ∞, тоді множина X11 (або Х12) містить єдиний маршрут, довжина якого дорівнює ρ(Х11) (або ρ(Х12)).
Приклад. ( Задача комівояжера).
Є 5 міст. Дана матриця відстаней (вартості):
Потрібно знайти гамільтонів контур найменшої довжини.
Розв’язання.
І етап – операція зведення.
.
ІІ етап – операція галуження.
Галуження треба проводити за дугою (5,3):
ІІІ етап – побудова зведених матриць.
.
Кінцеві множини першого кроку Х11 і Х12. Галуженню підлягає Х12 ( з мінімальною оцінкою).
Зведемо матрицю С2:
Галуження буде за дугою (4,2).
Галуженню підлягає Х22 за дугою
(3,4):
Галуженню підлягає Х32 за дугою (2,1):
Побудуємо отримане дерево:
Запишемо гамільтонів контур:
f(x) = 6+7+1+10+10 =34.
Питання для самоперевірки
В чому полягає метод гілок та меж?
По якому принципу відбувається галуження множини розв’язків?
Якій умові повинна відповідати оцінка множин
?
Сформулюйте постановку задачі про рюкзак.
Яке припущення відносно речей, що кладуть в рюкзак, ми робимо під час розв’язання задачі методом гілок та меж?
Сформулюйте постановку задачі комівояжера.
У чому полягає алгоритм розв’язання задачі комівояжера?
Задачі для самостійної роботи
Розв’язати задачу про рюкзак.
Маємо 5 предметів, де
− вартість i-го предмета,
− вага i-го предмета.
Дані про предмети наведені в таблиці:
Варіант А
С=40
Варіант Б
C=45
Розв’язати задачу комівояжера при заданій матриці відстані.
Варіант А Варіант Б