Задачи оптимизации |
Центр графа
Вспомним, что центром является любая вершина х с наименьшим значением МВВ(х) (макимальное расстояние вершина-вершина), т. е. центр — это любая вершина х, такая, что расстояние от нее до наиболее отдаленной вершины минимально.
МВВ(х) =min{МВВ(i)}
Центр отыскивается как один из элементов матрицы DN, значение i, j-го элемента которой — di,j есть кратчайшее расстояние от вершины i к вершине j. Элементы матрицы могут быть вычислены с помощью алгоритма Флойда или алгоритма Данцига. Максимальное расстояние МВВ(i) от вершины i до любой вершины графа является элементом i-й строки матрицы DN, имеющим максимальное значение. Центром является произвольная вершина х с наименьшим среди всех вершин графа звачеявем МВВ(х), т. е. центр — это произвольная вершина х, которой соответствует строка матрицы DN, содержащая элемент с наименьшим максимальным значением.
Алгоритм поиска центра
- находим D0 – матрицу, элементами которой являются ai,j – длины кратчайших дуг.
- Ищем DN – матрицу длин кратчайших расстояний по Флойду или Данцегу.
- Определяем МВВ(i) для каждой вершины графа.
- Из всех МВВ(i) выбираем минимальное соответствующая вершина и будет центром.
Пример
Необходимо найти центр графа представленого на рисунке:
![]()
Составим матрицу длин кратчайших дуг между каждой парой вершин - D0, в случае, если дуги между вершиной i и j не существует, элементу ai,j матрицы присваивается значение ∞. Матрица D0:
D0= 0 30 ∞ ∞ 45 ∞ ∞ 23 30 0 ∞ 17 ∞ ∞ 122 ∞ ∞ 34 0 12 ∞ 52 ∞ ∞ ∞ 11 23 0 ∞ ∞ ∞ 67 45 ∞ ∞ ∞ 0 40 ∞ ∞ ∞ ∞ 52 ∞ 43 0 ∞ ∞ ∞ 12 ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 67 ∞ ∞ ∞ 0
C помощью алгоритма Флойда или Данцега получаем матрицу длин кратчайших путей между каждой парой вершин графа:
D8= 0 30 70 47 45 85 152 23 30 0 40 17 75 92 122 53 53 23 0 12 95 52 145 76 41 11 23 0 86 75 133 64 45 75 92 92 0 40 197 68 88 75 52 64 43 0 197 111 42 12 52 29 87 104 0 65 108 78 90 67 153 142 200 0
Теперь, основываясь на полученой нами матрице длин кратчайших путей, найдем МВВ(i) для каждой вершины графаМВВ(i)=max{di,j}.
МВВ(1)=max{d(1, j)}=152
МВВ(2)=max{d(2, j)}=122
МВВ(3)=max{d(3, j)}=145
МВВ(4)=max{d(4, j)}=133
МВВ(5)=max{d(5, j)}=197
МВВ(6)=max{d(6, j)}=197
МВВ(7)=max{d(7, j)}=104
МВВ(8)=max{d(8, j)}=200Центром графа является такая вершина x, для которой МВВ(x)=min{МВВ(i)}.. Минимальное значение имеет МВВ(7)=104, а это значит, что вершина 7 является центром графа.