
- •Міністерство освіти і науки, молоді та спорту України
- •Державний вищий навчальний заклад
- •“Калуський політехнічний коледж”
- •Методичні вказівки
- •До виконання лабораторних робіт
- •З дисципліни «Програмне забезпечення ііс»
- •Калуш – 2011
- •Мета виконання лабораторних робіт
- •Порядок виконання лабораторних робіт
- •Примірні інструкції до виконання лабораторних робіт
- •Теоретичні відомості
- •Індивідуальне завдання
- •Варіанти індивідуальних завдань
- •Контрольні питання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Варіанти індивідуальних завдань
- •Контрольні питання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Варіанти індивідуальних завдань
- •Контрольні питання
- •Теоретичні відомості
- •Індивідуальне завдання
- •Контрольні питання
Теоретичні відомості
Орієнтований граф(орграф) G=(V,E) складається з множини вершин V і множини дуг Е. Вершини також називаються вузлами, а дуги — орієнтованими ребрами. Дуги представляються у вигляді упорядкованої пари вершин (υ, ω), де вершина υ називається початком, а ω ― кінцем шляху. Кажуть, що вершина ω суміжна з вершиною υ.
Помічений граф – це орграф, у якого кожна дуга або кожна вершина має відповідні мітки. Міткою може бути ім’я, вага або вартість (дуги), або значення даних будь-якого заданого типу.
Нехай задано орграф G=(V,E), у якого всі дуги мають додатні мітки (вартості дуг), а одна вершина визначена як джерело. Задача полягає в знаходженні вартості найкоротших шляхів від джерела до всіх інших вершин графу G (тут довжина шляху визначається як сума вартості дуг, що складають цей шлях). Ця задача часто називається задачею знаходження найкоротшого шляху з одним джерелом.
Припустимо, що в орграфі G вершини названі цілими числами, тобто множина вершин V={1, 2…, n}, причому вершина 1 є джерелом. Масив С – двохвимірний масив вартостей, де елемент С[i, j] рівний вартості дуги i→j.
Якщо дуги i→j не існує, тоді С[i, j] кладемо рівним ∞, тобто більшим за будь-яку фактичну вартість дуг. На кожному кроці D[i] містить довжину поточного найкоротшого особливого шляху до вершини і.
Для розв’язку поставленої задачі будемо використовувати “жадібний” алгоритм, який часто називається алгоритмом Дейкстри. Алгоритм будує множину S вершин, для яких найкоротші шляхи від джерела вже відомі. На кожному кроці до множини S додається та з решти вершин, відстань до якої від джерела менша, ніж для інших вершин, які залишилися. Якщо вартості всіх дуг додатні, то можна бути впевненими, що найкоротший шлях від джерела до конкретної вершини проходить тільки через вершини множини S. Назвемо такий шлях особливим. На кожному кроці алгоритму використовується також масив D, в який записуються довжини найкоротших особливих шляхів для кожної вершини. Коли множина S буде містити всі вершини орграфа, тобто для всіх вершин будуть знайдені “особливі” шляхи, тоді масив D міститиме довжини найкоротших шляхів від джерела до кожної вершини.
Індивідуальне завдання
Представити заданий орграф у вигляді матриці вартостей та списку суміжності (I); скласти програму знаходження найкоротшого шляху до однієї вершини в орграфі з виводом результатів на друк.
Варіанти індивідуальних завдань
1. джерело = 1 2. джерело = 2
20
100
50
30
40
40
10
50
10
60
100
20
60
30
80
3.
джерело = 3 4.
джерело = 4
10
50
30
60
80
80
40
60
20
30
100
10
70
100
20
5. джерело = 5 6. джерело = 1
20
120
40
30
80
40
40
10
70
120
80
50
20
50
7. джерело = 4 8. джерело = 5
20
100
50
30
40
40
10
50
10
60
100
20
60
30
80
9.
джерело = 5 10.
джерело = 3
10
50
30
60
80
80
40
60
20
30
100
10
70
100
20
11. джерело = 2 12. джерело = 4
120
20
40
30
80
40
40
10
70
120
80
50
20
50
13. джерело = 1 14. джерело = 2
20
50
120
30
40
40
100
10
50
60
10
20
60
30
80
15. джерело = 3 16. джерело = 4
80
120
50
60
40
80
40
60
20
30
100
30
70
100
20
17. джерело = 5 18. джерело = 2
20
120
40
30
80
50
40
100
70
10
20
60
20
50
19. джерело = 2 20. джерело = 5
20
100
50
30
40
40
10
50
10
60
100
120
60
30
80
21.
джерело = 4 22.
джерело = 3
10
50
30
60
80
80
40
60
20
30
100
10
30
100
20
23. джерело = 2 24. джерело = 4
50
120
40
40
80
40
30
10
70
120
60
80
50
20
100
25. джерело = 1 26. джерело = 2
80
50
100
30
40
40
80
10
50
20
100
20
60
30
80
27. джерело = 3 28. джерело = 4
80
120
50
60
40
80
40
60
20
30
100
30
70
100
20
29. джерело = 5 30. джерело = 2
20
120
40
30
50
70
80
50
40
10
70
100
120
60
20
50
Хід роботи
-
Представити заданий орграф у вигляді матриці вартостей.
-
Скласти список суміжності (I) для даного орграфа.
-
Скласти програму знаходження найкоротшого шляху до однієї вершини в орграфі, використавши алгоритм Дейкстри.
-
Ввести свої дані у створену програму.
-
Результати вивести на друк.
-
Висновок.