You are on page 1of 11

ПРАКТИЧНА РОБОТА № 1

ТЕМА: МЕТОД ДЕЙКСТРИ ЗНАХОДЖЕННЯ НАЙКОРОТШИХ

МАРШРУТІВ НА ДТМ

Вар 12 остання цифра 9

Хід роботи:

Перетворимо у неорієнтований
граф:
Будуємо матрицю С:
1 2 3 4 5 6 7
1 ∞ 2 4 5 5 ∞ ∞
2 2 ∞3 ∞ 6 2 3
3 4 3 ∞4 ∞∞ ∞
С=
4 ∞ ∞ 4 ∞ 6 ∞ 2
5 5 6 ∞ 6 ∞1 ∞
6 ∞ 2 ∞ ∞ 1 ∞ 2
7 ∞ 3 ∞ 2 ∞ 2 ∞

1. Обираємо за вершину-джерело 1. Будуємо таблицю


для опрацювання блок-схеми алгоритму:
Крок S W D/P
2 3 4 5 6 7
Точа 1 - 2\1 4\1 5\1 5\1 ∞ ∞
ток
1
2
3
4
5
6

Крок S W D/P
2 3 4 5 6 7
Точа 1 - 2\1 4\1 5\1 5\1 ∞ ∞
ток
1 1,2 2 - 4\1 5\1 5\1 4\2 5\2
2 -
3 -
4 -
5 -
6 -

V=3: D[3] = min(D[3],D[2]+C[2,3]) = min(4,2+3) = 4

V=4: D[4] = min(D[4],D[2]+C[2,4]) = min(5, 2+∞) =5

V=5: D[5] = min(D[5],D[2]+C[2,5]) = min(5, 2+6) = 5


V=6: D[6] = min(D[6],D[2]+C[2,6]) = min(4, 2+2) = 4

V=7: D[7] = min(D[7],D[2]+C[2,7]) = min(5, 2+3) = 5

Крок S W D/P
2 3 4 5 6 7
Точа 1 - 2\1 4\1 5\1 5\1 ∞ ∞
ток
1 1,2 2 - 4\1 5\1 5\1 4\2 5\2
2 1,2,3 3 - - 5\1 5\1 4\2 5\2
3 - -
4 - -
5 - -
6 - -

V=4: D[4] = min(D[4],D[3]+C[3,4]) = min(5,4+4) =5

V=5: D[5] = min(D5],D[3]+C[3,5]) = min(5,4+∞) = 5

V=6: D[6] = min(D[6],D[3]+C[3,6]) = min(4,4+∞) =4

V=7: D[7] = min(D[7],D[3]+C[3,7]) = min(5,4+∞) = 5

Крок S W D/P
2 3 4 5 6 7
Точа 1 - 2\1 4\1 5\1 5\1 ∞ ∞
ток
1 1,2 2 - 4\1 5\1 5\1 4\2 5\2
2 1,2,3 3 - - 5\1 5\1 4\2 5\2
3 1,2,3,6 6 - - 5\1 5\1 - 5\2
4 - - -
5 - - -
6 - - -

V=4: D[4] = min(D[4],D[6]+C[6,4]) = min(5,4+∞) = 5

V=5: D[5] = min(D[5],D[6]+C[6,5]) = min(5,4+1) =5

V=7: D[7] = min(D[7],D[6]+C[6,7]) = min(5,4+2) = 5


Крок S W D/P
2 3 4 5 6 7
Точа 1 - 2\1 4\1 5\1 5\1 ∞ ∞
ток
1 1,2 2 - 4\1 5\1 5\1 4\2 5\2
2 1,2,3 3 -- -
7/2 6/1
5\1 -
5\1 3/5
4\2 5\2
3 1,2,3,6 6 - - 5\1 5\1 - 5\2
4 1,2,3,6,4 4 - - - 5\1 - 5\2
5 - - - -
6 - - - -

V=5: D[5] = min(D[5],D[4]+C[4,5]) = min(5,5+6) = 5

V=7: D[7] = min(D[7],D[4]+C[4,7]) = min(5,5+2) = 5

Крок S W D/P
2 3 4 5 6 7
Точа 1 - 2\1 4\1 5\1 5\1 ∞ ∞
ток
1 1,2 2 - 4\1 5\1 5\1 4\2 5\2
2 1,2,3 3 - - 5\1 5\1 4\2 5\2
3 1,2,3,6 6 - - 5\1 5\1 - 5\2
4 1,2,3,6,4 4 - - - 5\1 - 5\2
5 1,2,3,6,4,5 5 - - - - - 5\2
6 - - - - -

V=7: D[7] = min(D[7],D[5]+C[5,7]) = min(5,5+∞) = 5


Крок S W D/P
2 3 4 5 6 7
Точа 1 - 2\1 4\1 5\1 5\1 ∞ ∞
ток
1 1,2 2 - 4\1 5\1 5\1 4\2 5\2
2 1,2,3 3 - - 5\1 5\1 4\2 5\2
3 1,2,3,6 6 - - 5\1 5\1 - 5\2
4 1,2,3,6,4 4 - - - 5\1 - 5\2
5 1,2,3,6,4,5 5 - - - - - 5\2
6 1,2,3,6,4,5,7 7 - - - - - -

Інтерпретуємо отримані результати. Для цього побудуємо найкоротші


маршрути від першої вершини (джерела), до вершин, які залишились
(1,5,2,6,7,4,3):
1-2=2
1-3=4
1-4=5
1-5=5
1-2-6=4
1-2-7=5

2. Обираємо за вершину-джерело 2. Будуємо таблицю


для опрацювання блок-схеми алгоритму:
Крок S W D/P
1 3 4 5 6 7
Поча 2 - 2\2 3/2 ∞ 6/2 2/2 3/2
ток
1
2
3
4
5
6
Крок S W D/P
1 3 4 5 6 7
Поча 2 - 2\2 3/2 ∞ 6/2 2/2 3/2
ток
1 2,1 1 - 3\2 7\1 6\2 2\2 3\1
2 -
3 -
4 -
5 -
6 -

V=3: D[3] = min(D[3],D[1]+C[1,3]) = min(3,2+4) = 3

V=4: D[4] = min(D[4],D[1]+C[1,4]) = min(∞,2+5) =7

V=5: D[5] = min(D5],D[1]+C[1,5]) = min(6,2+5) = 6

V=6: D[6] = min(D[6],D[1]+C[1,6]) = min(2,2+∞) =2

V=7: D[7] = min(D[7],D[1]+C[1,7]) = min(3,2+∞) = 2

Крок S W D/P
1 3 4 5 6 7
Поча 2 - 2\2 3/2 ∞ 6/2 2/2 3/2
ток
1 2,1 1 - 3\2 7\1 6\2 2\2 3\1
2 2,1,6 6 - 3\2 7\1 3\6 - 3\1
3 - -
4 - -
5 - -
6 - -

V=3: D[3] = min(D3],D[6]+C[6,3]) = min(3,2+∞) = 3


V=4: D[4] = min(D[4],D[6]+C[6,4]) = min(7,2+∞) = 7
V=5: D[5] = min(D[5],D[6]+C[6,5]) = min(6,2+1) = 3

V=7: D[7] = min(D[7],D[6]+C[6,7]) = min(3,2+2) = 3


Крок S W D/P
1 3 4 5 6 7
Поча 2 - 2\2 3/2 ∞ 6/2 2/2 3/2
ток
1 2,1 1 - 3\2 7\1 6\2 2\2 3\1
2 2,1,6 6 - 3\2 7\1 3\6 - 3\1
3 2,1,6,7 7 - 3\2 5\7 3\6 - -
4 - - -
5 - - -
6 - - -

V=3: D[3] = min(D3],D[7]+C[7,3]) = min(3,3+∞) = 3

V=4: D[4] = min(D[4],D[7]+C[7,4]) = min(7,3+2) =5

V=5: D[5] = min(D[5],D[7]+C[7,5]) = min(3,3+∞) = 3

Крок S W D/P
1 3 4 5 6 7
Поча 2 - 2\2 3/2 ∞ 6/2 2/2 3/2
ток
1 2,1 1 - 3\2 7\1 6\2 2\2 3\1
2 2,1,6 6 - 3\2 7\1 3\6 - 3\1
3 2,1,6,7 7 - 3\2 5\7 3\6 - -
4 2,1,6,7,3 3 - - 5\7 3\6 - -
5 - - - -
6 - - - -

V=4: D[4] = min(D4,D[3]+C[3,4]) = min(5,3+4) = 5

V=5: D[5] = min(D5],D[3]+C[3,5]) = min(3,3+∞) = 3

Крок S W D/P
1 3 4 5 6 7
Поча 2 - 2\2 3/2 ∞ 6/2 2/2 3/2
ток
1 2,1 1 - 3\2 7\1 6\2 2\2 3\1
2 2,1,6 6 - 3\2 7\1 3\6 - 3\1
3 2,1,6,7 7 - 3\2 5\7 3\6 - -
4 2,1,6,7,3 3 - - 5\7 3\6 - -
5 2,1,6,7,3,5 5 - - 5\7 - - -
6 - - - - -

V=4: D[4] = min(D4],D[5]+C[5,4]) = min(5,3+6) = 5


Крок S W D/P
1 3 4 5 6 7
Поча 2 - 2\2 3/2 ∞ 6/2 2/2 3/2
ток
1 2,1 1 - 3\2 7\1 6\2 2\2 3\1
2 2,1,6 6 - 3\2 7\1 3\6 - 3\1
3 2,1,6,7 7 - 3\2 5\7 3\6 - -
4 2,1,6,7,3 3 - - 5\7 3\6 - -
5 2,1,6,7,3,5 5 - - 5\7 - - -
6 2,1,6,7,3,5,4 4 - - - - - -

Інтерпретуємо отримані результати. Для цього побудуємо найкоротші


маршрути від першої вершини (джерела), до вершин, які залишились
(2,7,6,5,4,1,3):
2-1=2
2-3=3
2-7-4=5
2-6-5=3
2-6=2
2-7=3

3. Обираємо за вершину-джерело 3. Будуємо таблицю


для опрацювання блок-схеми алгоритму:
Крок S W D/P
1 2 4 5 6 7
Поча 3 - 4/3 3/3 4\3 ∞ ∞ ∞
ток
1
2
3
4
5
6
Крок S W D/P
1 2 4 5 6 7
Поча 3 - 4/3 3/3 4\3 ∞ ∞ ∞
ток
1 3,2 2 4\2 - 4\3 9\2 5\2 6\2
2 -
3 -
4 -
5 -
6 -

V=1: D[1] = min(D[1],D[2]+C[2,1]) = min(4,3+2) = 4


V=4: D[4] = min(D[4],D[2]+C[2,4]) = min(4,3+∞) = 4

V=5: D[5] = min(D[5],D[2]+C[2,5]) = min(∞,3+6) =9

V=6: D[6] = min(D[6],D[2]+C[2,6]) = min(∞,3+2) = 5

V=7: D[] = min(D[7],D[2]+C[2,7]) = min(∞,3+3) = 6

Крок S W D/P
1 2 4 5 6 7
Поча 3 - 4/3 3/3 4\3 ∞ ∞ ∞
ток
1 3,2 2 4\2 - 4\3 9\2 5\2 6\2
2 3,2,1 1 - - 4\3 9\2 5\2 6\2
3 - -
4 - -
5 - -
6 - -

V=4: D[4] = min(D[4],D[1]+C[1,4]) = min(4,4+5) =4

V=5: D[5] = min(D[5],D[1]+C[1,5]) = min(9,4+5) =9


V=6: D[6] = min(D[6],D[1]+C[1,6]) = min(5,4+∞) = 5

V=7: D[7] = min(D[7],D[1]+C[1,7]) = min(6,4+∞) =6


Крок S W D/P
1 2 4 5 6 7
Поча 3 - 4/3 3/3 4\3 ∞ ∞ ∞
ток
1 3,2 2 4\2 - 4\3 9\2 5\2 6\2
2 3,2,1 1 - - 4\3 9\2 5\2 6\2
3 3,2,1,4 4 - - - 9\2 5\2 6\2
4 - - -
5 - - -
6 - - -

V=5: D[5] = min(D[5],D[4]+C[4,5]) = min(9,4+6) =9


V=6: D[6] = min(D[6],D[4]+C[4,6]) = min(5,4+∞) =5
V=7: D[7] = min(D[7],D[4]+C[4,7]) = min(6,4+2) =6

Крок S W D/P
1 2 4 5 6 7
Поча 3 - 4/3 3/3 4\3 ∞ ∞ ∞
ток
1 3,2 2 4\2 - 4\3 9\2 5\2 6\2
2 3,2,1 1 - - 4\3 9\2 5\2 6\2
3 3,2,1,4 4 - - - 9\2 5\2 6\2
4 3,2,1,4,6 6 - - - 6\6 - 6\2
5 - - - -
6 - - - -

V=5: D[5] = min(D[5],D[6]+C[76,5]) = min(9,5+1) = 6


V=7: D[7] = min(D[7],D[6]+C[,7]) = min(6,5+2) = 6

Крок S W D/P
1 2 4 5 6 7
Поча 3 - 4/3 3/3 4\3 ∞ ∞ ∞
ток
1 3,2 2 4\2 - 4\3 9\2 5\2 6\2
2 3,2,1 1 - - 4\3 9\2 5\2 6\2
3 3,2,1,4 4 - - - 9\2 5\2 6\2
4 3,2,1,4,6 6 - - - 6\6 - 6\2
5 3,2,1,4,6,7 7 - - - 6\6 - -
6 - - - - -
V=5: D[5] = min(D[5],D[7]+C[7,5]) = min(6,5+∞) = 6

Крок S W D/P
1 2 4 5 6 7
Поча 3 - 4/3 3/3 4\3 ∞ ∞ ∞
ток
1 3,2 2 4\2 - 4\3 9\2 5\2 6\2
2 3,2,1 1 - - 4\3 9\2 5\2 6\2
3 3,2,1,4 4 - - - 9\2 5\2 6\2
4 3,2,1,4,6 6 - - - 6\6 - 6\2
5 3,2,1,4,6,7 7 - - - 6\6 - -
6 3,2,1,4,6,7,5 - - - - - -

Інтерпретуємо отримані результати. Для цього побудуємо найкоротші


маршрути від першої вершини (джерела), до вершин, які залишились
(3,7,4,2,1,6,5):
\

3-1=4
3-2=3
3-4=4
3-2-6-5=6
3-2-6=5
3-2-7=6

You might also like