- •Міністерство освіти і науки, молоді та спорту України
- •Державний вищий навчальний заклад
- •“Калуський політехнічний коледж”
- •Методичні вказівки
- •До виконання лабораторних робіт
- •З дисципліни «Програмне забезпечення ііс»
- •Калуш – 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
2
1.
джерело = 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) для даного орграфа.
-
Скласти програму знаходження найкоротшого шляху до однієї вершини в орграфі, використавши алгоритм Дейкстри.
-
Ввести свої дані у створену програму.
-
Результати вивести на друк.
-
Висновок.
