- •3.1 Назва підрозділу 38
- •4.1 Назва підрозділу 39
- •5.1 Назва підрозділу 41
- •Розділ 1 назва розділу
- •1.1 Комбінаторика
- •1.2 Постановка задачі
- •1.3 Методи рішення задачі комівояжера
- •1.3.1. Жадібний алгоритм
- •1.3.2. Дерев’яний алгоритм
- •1.3.3. Метод гілок і меж
- •1.3.4. Алгоритм Дейкстри
- •1.3.5. Мій метод (метод Ярощука) рішення задачі комівояжера
- •1.4 Аналіз методів рішення задачі комівояжера
- •1.5 Практичне застосування задачі комівояжера
- •Розділ 2 назва розділу
- •2.1 Назва підрозділу
- •Розділ 3 назва розділу
- •Розділ 4 назва розділу
- •Розділ 5 назва розділу
- •Висновки
- •Список використаних джерел
- •Додатки Додаток а
- •!!! Рамки зі штампами на додатках не ставити !!!
Розділ 1 назва розділу
1.1 Комбінаторика
Комбінаторика - розділ математики, присвячений вирішенню завдань вибору і розташування елементів деякого, звичайно кінцевого безлічі відповідно до заданих правил.
Кожне таке правило визначає спосіб побудови деякої конструкції з елементів вихідного безлічі, званої комбінаторної конфігурацією. Тому можна сказати, що метою комбінаторного аналізу є вивчення комбінаторних конфігурацій. Це вивчення включає в себе питання існування комбінаторних конфігурацій, алгоритми їх побудови, оптимізацію таких алгоритмів, а також вирішення завдань перерахування, зокрема визначення числа конфігурацій даного класу. Найпростішим прикладом комбінаторних конфігурацій є перестановки, поєднання і розміщення.
Великий внесок у систематичне розвиток комбінаторних методів був зроблений Г. Лейбніцем (дисертація «комбінаторної мистецтво»), Я. Бернуллі (робота «Мистецтво припущень»), Л. Ейлером. Можна вважати, що з появою робіт Я. Бернуллі і Г. Лейб-ница комбінаторні методи виділилися в самостійну частину математики. У роботах Л. Ейлера по розбиття і композиціям натуральних чисел на складові було покладено початок одному з основних методів перерахування комбінаторних конфігурацій - методу виробляють функцій.
Повернення інтересу до комбінаторному аналізу відноситься до 50-м рокам ХХ ст. у зв'язку з бурхливим розвитком кібернетики і дискретної математики і широким використанням електронно-обчислювальної техніки. У цей період активізувався інтерес до класичних комбінаторним задачам.
Класичні комбінаторні завдання - це завдання вибору і розташування елементів кінцевого безлічі, що мають в якості вихідної деяку формулювання розважального змісту типу головоломок.
У
1859 р У. Гамільтон придумав гру «Навколосвітня
подорож», що складається в знаходженні
такого шляху, що проходить через всі
вершини (міста, пункти призначення)
графа, зображеного на рис. 1, щоб відвідати
кожну вершину одноразово і повернутися
у вихідну. Шляхи, що володіють такою
властивістю, називаються Гамільтона
циклу.
Завдання про гамільтонових циклах в графі отримала різні узагальнення. Одне з цих узагальнень - завдання комівояжера, що має ряд застосувань в дослідженні операцій, зокрема при вирішенні деяких транспортних проблем.
1.2 Постановка задачі
Завдання комівояжера (надалі скорочено - ЗК) є однією із знаменитих завдань теорії комбінаторики. Вона була поставлена в 1934 році, і про неї, як про Велику теорему Ферма обламували зуби кращі математики. У своїй області (оптимізації дискретних задач) ЗК служить своєрідним полігоном, на якому випробовуються все нові методи.
Постановка завдання наступна.
Комівояжер (бродячий торговець) повинен вийти з першого міста, відвідати по разу в невідомому порядку міста 2,1,3..n і повернутися в перший місто. Відстані між містами відомі. У якому порядку слід обходити міста, щоб замкнутий шлях (тур) комівояжера був найкоротшим?
Щоб привести задачу до наукового увазі, введемо деякі терміни. Отже, міста перенумеровані числами jТ = (1,2,3..n). Тур комівояжера може бути описаний циклічної перестановкою t = (j1, j2, .., jn, j1), причому всі j1..jn - різні номери; повторюваний на початку і в кінці j1, показує, що перестановка зациклена. Відстані між парами вершин Сij утворюють матрицю С. Завдання полягає в тому, щоб знайти такий тур t, щоб мінімізувати функціонал.
Щодо математизированной формулювання ЗК доречно зробити два зауваження.
По-перше, у постановці Сij означали відстані, тому вони повинні бути невід'ємними, тобто для всіх jТ:
Сij0; Cjj = ∞ (2)
(останнє рівність означає заборону на петлі в турі), симетричними, тобто для всіх i, j:
Сij = Сji. (3)
і задовольняти нерівності трикутника, тобто для всіх:
Сij + СjkCik (4)
У математичній постановці йдеться про довільній матриці. Зроблено це тому, що є багато прикладних задач, які описуються основний моделлю, але всім умовам (2) - (4) не задовольняють. Особливо часто порушується умова (3) (наприклад, якщо Сij - НЕ відстань, а плата за проїзд: часто туди квиток коштує одну ціну, а назад - іншу). Тому ми будемо розрізняти два варіанти ЗК: симетричну задачу, коли умова (3) виконано, і несиметричну - в іншому випадку. Умови (2) - (4) за замовчуванням ми будемо вважати виконаними.
Друге зауваження стосується числа всіх можливих турів. У несиметричною ЗК всі тури t = (j1, j2, .., jn, j1) і t '= (j1, jn, .., j2, j1) мають різну довжину і повинні враховуватися обидва. Різних турів очевидно (n-1) !.
Зафіксуємо на першому і останньому місці в циклічній перестановці номер j1, а що залишилися n-1 номерів переставимо усіма (n-1)! можливими способами. В результаті отримаємо всі несиметричні тури. Симетричних турів мається на два раз менше, тому кожен зарахований два рази: як t і як t '.
Можна уявити, що С складається тільки з одиниць і нулів. Тоді З можна інтерпретувати, як граф, де ребро (i, j) проведено, якщо Сij = 0 і не проведено, якщо Сij = 1. Тоді, якщо існує тур довжини 0, то він пройде по циклу, який включає всі вершини по одному разу. Такий цикл називається гамільтоновим циклом. Незамкнутий гамільтонів цикл називається гамильтоновой ланцюгом (гамільтоновим шляхом).
У термінах теорії графів симетричну ЗК можна сформулювати так:
Дана повна мережу з n вершинами, довжина ребра (i, j) = Сij. Знайти гамільтонів цикл мінімальної довжини.
У несиметричною ЗК замість «цикл» треба говорити «контур», а замість «ребра» - «дуги» або «стрілки».
Деякі прикладні завдання формулюються як ЗК, але в них потрібно мінімізувати довжину трохи Гамільтона циклу, а гамильтоновой ланцюга. Такі завдання називаються незамкненими. Деякі моделі зводяться до задачі про декілька комівояжера, але ми тут їх розглядати не будемо.
