б зайві гілки в дереві пошуку найкоротшого шляху.  
 Для пояснення мого варіанту розв'язання задачі слід ввести кілька понять. Проміжну довжину шляху можна визначити наступним чином: уявімо, що торговець вибрав небудь шлях; він вийшов з першого міста і зараз знаходиться в якомусь місті  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. Переходимо до наступного міста, де ми не були. 
  Слід розглянути оди...