Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Рішення задачі про комівояжера

Реферат Рішення задачі про комівояжера





б зайві гілки в дереві пошуку найкоротшого шляху.

Для пояснення мого варіанту розв'язання задачі слід ввести кілька понять. Проміжну довжину шляху можна визначити наступним чином: уявімо, що торговець вибрав небудь шлях; він вийшов з першого міста і зараз знаходиться в якомусь місті i . Тоді все пройдене відстань з початку в місто i будемо називати проміжна довжина шляху. Якщо виходити з того, що торговець у кожен момент часу буде перебувати в якомусь i -му місті, то завжди можна підрахувати яку відстань він пройшов з початку до цього міста, тобто проміжну довжину шляху.

Мінімальним шляхом будемо називати маршрут, що проходить по всіх містах і має мінімальну довжину.

Мій критерій будується на одному простому твердженні: якщо проміжна довжина шляху більше мінімального шляху, тоді очевидно наступне:

1. проміжна довжина буде рости, коли торговець буде рухатися до кінцевого місту,

2. а значить довжина всього шляху буде більше довжини мінімального маршруту.

отже такий маршрут можна відкинути. p> Пояснення показані на малюнку 1.


У даній програмі використовується наступний критерій: при переході від одного міста до іншого розраховується проміжна довжина шляху, і якщо вона більше поточного мінімального шляху, то обчислення з даної гілки припиняються. Таким чином, відсікаються зайві гілки. p> Рішення даної задачі призводить до перебору можливих варіантів шляху, але критерії такого роду можуть значно скоротити обчислення і зменшити час роботи програми.

В  Мова програмування

Для написання програми була вибрана мова Сі + + з наступних причин:

1. Середа програмування Windows-додатків Microsoft Visual C + + 6.0 дозволяє в моїй завданню наочно відобразити карту міст і схему їх з'єднання.

2. Це одна з мов, в якому я непогано розбираюся. Тому мені зручніше писати програму за допомогою Visual C + +. <В  Опис алгоритму

У програмі міститься рекурсивна функція, яка забезпечує перебір можливих шляхів для пошуку найкоротшого. Саме тут укладено алгоритм рішення задачі В«комівояжераВ». Розглянемо його детальніше:

1. Для кожного міста ( i = від 1 до n ), де ми ще не були. p> 2. Припустимо, що ми прийшли в якесь місто i . Позначаємо його, що ми тут вже були. p> 3. Підраховуємо довжину пройденого шляху.

4. Якщо вона більше ніж довжина мінімального шляху,

4.1. Тоді немає сенсу йти цим шляхом далі.

4.1.1. позначаємо місто як не відвідування, виходимо з міста.

4.2. Інакше, p> 4.2.1. якщо ми в кінці шляху

4.2.1.1. тоді , порівнюємо з мінімальним шляхом, якщо він менше найкоротшого шляху, тоді мінімальний шлях = найкоротший шлях.

4.2.1.2. інакше переходимо до пункту 1.

5. Переходимо до наступного міста, де ми не були.

Слід розглянути оди...


Назад | сторінка 2 з 17 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Пошук найкоротшого шляху між парами вершин в орієнтованому і неориентирован ...
  • Реферат на тему: Завдання пошуку найкоротшого шляху
  • Реферат на тему: Пошук найкоротшого шляху в графі
  • Реферат на тему: Пошук найкоротшого шляху в лабіринті
  • Реферат на тему: Метод Мінті знаходження найкоротшого шляху