
Дискретная математика / 2 4 Оптимизация
.pps
x, y |
Расстояние на графе |
x, y |
|||
- длина кратчайшей цепи |
|||||
1) x, y 0; |
|
x, y 0 x y |
|||
2) x, y y, x |
|
|
|||
3) x, y y, z x, z |
|
|
|||
Диаметр графа |
d G max max x, y |
||||
|
|
|
x X |
y X |
|
Радиус графа |
r G min max x, y |
||||
|
|
|
x X |
y X |
|
|
|
|
|
|
|
|
|
|
|
||
Центр графа v |
|
v X , max v, y r G |
|||
|
|
|
y X |
|
|
|
|
|
1

|
Волновой алгоритм |
|
||
1 |
2 |
|
b |
|
a |
3 |
|||
4 |
||||
|
||||
0 |
|
|
||
|
3 |
|
||
2 |
3 |
4 |
Этап I. Разметка графа
x X МЕТКА x : ;
МЕТКА a : 0; t : 0; F : a ;
0
Цикл пока (МЕТКА b )
t :=t+1;
Ft : x METKA x и xсмежна Ft
x Ft МЕТКА x : t;
Конец цикла;
Этап II. Построение пути
1 ;
2

Оптимизационные задачи на графоидах
Определение Пусть дан граф G =(Х,U) и числовая функция весов W: U→R. Тройку GW = =(Х,U,W) будем называть графоидом.
Задачи:
11
15 18
12
19
17
13
1.Построить остов минимального веса (МОД)
16 |
2. |
Построить путь минимального |
|
||
|
|
веса от вершины a к вершине b |
14 3. |
Построить дерево путей |
|
|
|
минимального веса из вершины |
|
|
a |
3

Остов минимального веса
Дан графоид G |
=(Х,U,W). Найти остов |
|
|
||||||||||
O n2 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
WT : ; |
l : 1; |
|
|
минимального веса. |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
Найти |
ul |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
Алгоритм |
|
- ребро минимального веса; |
|||||||||
|
|
|
U : U \ ul ;T : T ul ; |
||||||||||
«ближайшего |
|||||||||||||
|
|
соседа» |
|
Цикл пока l n 1 |
|||||||||
|
11 |
|
|
|
|
|
|
|
l: l 1; |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
15 |
|
18 |
|
|
|
|
|
|
16 |
Найти ul - ребро |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
12 |
|
|
|
|
|
|
|
минимального веса, |
|
|
|
|
|
|
|
|
|
|
|
|
|
смежное Т, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
19 |
|
|
|
|
|
|
14 |
не образующее цикла |
|
|
||
17 |
|
|
|
|
|
|
|
|
с ребрами Т; |
|
|
||
|
|
|
|
|
|
|
|
|
|
U : U \ ul ;T : T ul ; |
|||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||||
|
|
13 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
Конец цикла; |
4 |
|

Остов минимального веса
T : ; l : 1; |
W ul |
|
|
|
|
|
|
|
|
O n m |
|||||||
Задача Дан графоид G |
=(Х,U,W). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Найтиостов минимального веса. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
- ребро минимального веса; |
|
«Жадный» |
|
|
|||||||||||||
U : U \ ul ;T : T ul |
; |
|
|
||||||||||||||
|
алгоритм |
|
|
||||||||||||||
Цикл пока l n 1 |
|
|
|
|
11 |
|
|
|
|
|
|
|
|||||
l: l 1; |
|
15 |
|
|
|
|
18 |
|
|
|
|
|
16 |
|
|||
|
|
|
|
|
|
|
|
|
|
||||||||
Найти ul - ребро |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
12 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
||||||||
минимального веса, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
не образующее |
|
|
|
19 |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||
цикла с ребрами Т; |
17 |
|
|
|
|
|
|
14 |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
U : U \ ul ;T: T ul ; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
13 |
|
|
|
|
|
|
|
||||||||||
Конец цикла; |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Задача о кратчайшем пути
Задача Дан графоид GW =(Х,U,W). Найти путь
минимального веса от вершины а к вершине b.
Алгоритм Дейкстры
|
3 |
|
a |
|
|
1 |
|
|
|
|
|
x1 |
|
1 |
x2 |
|
|
|
|
6 |
2 |
|
5 |
x3 |
|
9 |
x4 |
|
|
||
|
7 |
|
|
|
|
4 |
|
|
|
|
|
|
|
|
b |
|
I. Разметка вершин |
|||||
1) |
a |
x1 |
x2 |
x3 |
x4 |
b |
0 |
|
|
|
|
|
|
2) |
0 |
3 |
1 |
|
|
|
3) |
0 |
2 |
1 |
|
6 |
|
4) |
0 |
2 |
1 |
8 |
4 |
|
5) |
0 |
2 |
1 |
8 |
4 |
8 |
II. Построение пути |
6 |
|