Г¤ 2 , ..., Г¤ q , в якій кожне ребро а i , за винятком першого і останнього ребер, пов'язано з ребрами а i-1 і а i +1 своїми кінцевими вершинами. Послідовності дуг:
Г¤ 2 , Г¤ 4 , Г¤ 8 , Г¤ 10 , (4)
Г¤ 2 , Г¤ 7 , Г¤ 8 , Г¤ 4 , Г¤ 3 , (5)
Г¤ 10 , Г„ 7 , Г¤ 4 , Г¤ 8 , Г¤ 7 , Г„ 2 . (6)
у графі, зображеному на рис. 2.1.2, є маршрутами; дві точки над символом дуги означають, що її орієнтацією нехтують, тобто дуга розглядається як неорієнтовані ребро. Також шлях або маршрут можна зображати послідовністю вершин. Наприклад, шлях (1) буде виглядати наступному чином: х 2 , х 5 , х 4 , х 3 , х 5 , х 6 . Іноді дуг графа приписуються числа, звані вагою, вартістю , або довжиною цієї дуги. У цьому випадку граф називається графом з зваженими дугами . А якщо вага приписується вершин графа, то тоді виходить граф з зваженими вершинами. Якщо в графі ваги приписані і дуг і вершин, то він називається просто зваженим . При розгляді шляху Ој представленого послідовністю дуг (Г¤ 1 , Г¤ 2 , ..., Г¤ q ), за його вага приймається число l (Ој), рівне сумі ваг всіх дуг, які входять у Ој, тобто <В
2.2 Алгоритм Дейкстри
Алгоритм Дейкстри будує найкоротші шляхи, що ведуть з вихідної вершини графа до решти вершин цього графа (якщо такі є). p> У процесі роботи алгоритму послідовно позначаються розглянуті вершини графа. Причому вершина, позначена останньої (на даний момент) розташована ближче до вихідної вершині, ніж всі непомеченние, але далі, ніж всі помічені.
Спочатку позначається вихідна вершина; наступної, очевидно, буде позначена вершина, найближча до початкової, і суміжна з нею.
Нехай на якомусь кроці вже позначено кілька вершин. Відомі найкоротші шляхи, що ведуть з вихідної вершини до поміченим. Для кожної з непомічених вершин проробимо наступне:
1. Розглянемо всі дуги, провідні з помічених вершин у одну Непомічені. Кожна така дуга є останньою дугою на шляху з вихідної вершини в цю Непомічені.
2. Виберемо з цих шляхів найкоротший. А потім виберемо серед них самий короткий до всіх Непомічені вершин, і пометим вершину, до якій він веде.
Алгоритм завершиться, коли будуть помічені всі досяжні вершини.
В результаті роботи алгоритму Дейкстри будується Дерево найкоротших шляхів.
В
3 ОСОБЛИВОСТІ РОБОТИ В СЕРЕДОВИЩІ
При написанні програми використовувалася середу Microsoft Visual C + + 6.0. Дане середовище дозволяє писати програми на мові C + +.
У ході написання програми всі оператори і службові слова мови С + + виділяються іншим кольором, щоб відрізняти їх від змінних, заданих програмістом. Середа Microsoft Visual C + + 6.0 містить вбудований компілятор. p> Вікно програми розділене на декілька частин. Вгорі знаходиться стандартна панель - Standart, з якою можна зберегти вихідний текст програми на диск, відкрити новий документ, скопіювати або вставити текст, скасувати останню дію або знайти текст. Зліва знаходяться панелі Object TreeView і Object Inspector, на яких показані об'єкти, які використовуються в даній програмі, та їх властивості. У центрі вікна програми розташований текстовий редактор, в якому слід писати програму. Внизу - панель Output, в якій показується повідомлення, якщо в програмі містяться помилки - компілятор повідомляє вид помилки і рядок, в якій вона допущена, досить зробити подвійний клік лівою клавішею миші на описі помилки в Output, щоб переміститися на рядок, що містить помилки. p> Програма створена в консольному режимі - в режимі, що не має графічного інтерфейсу.
4 ПРОГРАМНА РЕАЛІЗАЦІЯ
4.1 Опис алгоритму і структури програми
В
Рис. 4.1.1
Програма виводить мінімальний шлях між двома зазначеними вершинами в графі і його довжину.
При запуск програми на екран виводиться запит про введення ваг ребер досліджуваного графа. Дані, введені користувачем, відображаються у вигляді матриці суміжності, в якій не існуючі ребра позначаються нулями. Після зазначеним ребрах присвоюється значення 65535, яке приймається за нескінченність.
Наступним етапом виконання програми є запит про введення номерів вершин, між якими необхідно дізнатися шлях. У разі, якщо початкова та кінцева вершини збігаються, відображається відповідне повідомлення і робота програми завершується. В іншому випадку виконується безпосередньо алгоритм Дейкстри, схема якого наведена в додатку В.
Результатом програми є вивід на екран вершин, через які проходить мінімальний...