Ветвь 1. Попарная проверка вершин и нахождение диаметра 2 страница
= заменяется на 17, = = 14 заменяется на меньшее 11.
Вычисляем эксцентриситет претендента ε(c1) = 17. Так как , полагаем . Верхняя и нижняя границы радиуса не равны: , значит, вершина c1 = v3 не является центральной.
Находим самую удаленную от c1 вершину: v5 с расстоянием . Так как для v5 не найдены все кратчайшие пути, решаем SSSP(v5) и добавляем v5 в множество опорных вершин: . При этом матрица длин ребер изменяется следующим образом: = заменяется на 18.
v1 | v2 | v3 | v4 | v5 | v6 | |
v1 | 0 | 7 | 9 | 17 | 11 | 2 |
v2 | 7 | 0 | 10 | 15 | 18 | ∞ |
v3 | 9 | 10 | 0 | 11 | 17 | 11 |
v4 | 17 | 15 | 11 | 0 | 6 | 15 |
v5 | 11 | 18 | 17 | 6 | 0 | 9 |
v6 | 2 | ∞ | 11 | 15 | 9 | 0 |
Находим следующего претендента c2 – это вершина v6 с . Согласно формуле (2.2) изменяем нижнюю границу радиуса, полагая rl = 15. Для c2 кратчайшие расстояния не найдены, решаем SSSP(c2 = v6), в матрице длин ребер при этом значение = заменяется на 9.
v1 | v2 | v3 | v4 | v5 | v6 | |
v1 | 0 | 7 | 9 | 17 | 11 | 2 |
v2 | 7 | 0 | 10 | 15 | 18 | 9 |
v3 | 9 | 10 | 0 | 11 | 17 | 11 |
v4 | 17 | 15 | 11 | 0 | 6 | 15 |
v5 | 11 | 18 | 17 | 6 | 0 | 9 |
v6 | 2 | 9 | 11 | 15 | 9 | 0 |
Вычисляем эксцентриситет претендента ε(c2) = 15. Так как , полагаем . В данном случае нижняя и верхние границы совпадают , значит, вершина c2 = v6 является центральной, при этом радиус графа равен .
Таким образом, найден центр графа (в данном случае центр состоит из одной вершины) и его радиус. При этом задача SSSP решена для 5 вершин, против 6 решений SSSP при поиске радиуса обычным способом. В данном примере коэффициент уменьшения числа решений SSSP разработанным алгоритмом составил 5/6, однако на реальных графах большой размерности, как показывают эксперименты, этот показатель значительно ниже – до 1% и менее.
|
|
Теперь найдем диаметр графа, используя алгоритм Д1. Для начальной оценки нижней dl и верхней du границ диаметра используется информация о кратчайших расстояниях от вершин, для которых решена задача SSSP во время поиска радиуса. В данном примере таких вершин пять: v1, v3, v4, v5 и v6. Обходим эти вершины по порядку и итерационно уточняем значения нижней и верхней границ диаметра, а также исключаем из рассмотрения вершины, чей эксцентриситет удовлетворяет условиям (2.11), (2.12).
Изначально , , матрица границ эксцентриситетов вершин имеет вид
v1 | v2 | v3 | v4 | v5 | v6 | |
εl | –∞ | –∞ | –∞ | –∞ | –∞ | –∞ |
εu | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ |
Рассматриваем вершину v1. Получаем значения нижней и верхней границ диаметра:
, .
Вычисляем нижние и верхние границы эксцентриситетов вершин:
εl(v1) = max(εl(v1), ε(v1) – , ) = max(–∞, 17 – 0, 0) = 17;
εu(v1) = min(εu(v1), ε(v1) + ) = min(∞, 17 + 0) = 17;
εl(v2) = max(εl(v2), ε(v1) – , ) = max(–∞, 17 – 7, 7) = 10;
|
|
εu(v2) = min(εu(v2), ε(v1) + ) = min(∞, 17 + 7) = 24;
εl(v3) = max(εl(v3), ε(v1) – , ) = max(–∞, 17 – 9, 9) = 9;
εu(v3) = min(εu(v3), ε(v1) + ) = min(∞, 17 + 9) = 26;
εl(v4) = max(εl(v4), ε(v1) – ,
) = max(–∞, 17 – 17, 17) = 17;
εu(v4) = min(εu(v4), ε(v1) + ) = min(∞, 17 + 17) = 34;
εl(v5) = max(εl(v5), ε(v1) – ,
) = max(–∞, 17 – 11, 11) = 11;
εu(v5) = min(εu(v5), ε(v1) + ) = min(∞, 17 + 11) = 28;
εl(v6) = max(εl(v6), ε(v1) – , ) = max(–∞, 17 – 2, 2) = 15;
εu(v6) = min(εu(v6), ε(v1) + ) = min(∞, 17 + 2) = 19.
Из рассмотрения при этом исключаются вершины v1 и v4, так как εl(v1) = εu(v1) и εl(v4) = du/2. Матрица границ эксцентриситетов принимает вид
v1 | v2 | v3 | v4 | v5 | v6 | |
εl | 17 | 10 | 9 | 17 | 11 | 15 |
εu | 17 | 24 | 26 | 34 | 28 | 19 |
Далее рассматриваем вершину v3. Эксцентриситет вершины v3 не изменяет значений нижней и верхней границ диаметра: dl = max(dl,ε(v3)) = (17, 17) = 17, du = min(du,2∙ε(v3)) = (34, 34) = 34. Уточняем нижние и верхние границы эксцентриситетов не исключенных вершин:
εl(v2) = max(εl(v2), ε(v3) – ,
) = max(10, 17 – 10, 10) = 10;
εu(v2) = min(εu(v2), ε(v3) + ) = min(24, 17 + 10) = 24;
εl(v3) = max(εl(v3), ε(v3) – , ) = max(9, 17 – 17, 17) = 17;
εu(v3) = min(εu(v3), ε(v3) + ) = min(26, 17 + 0) = 17;
εl(v5) = max(εl(v5), ε(v3) – ,
) = max(11, 17 – 17, 17) = 17;
εu(v5) = min(εu(v5), ε(v3) + ) = min(28, 17 + 17) = 28;
εl(v6) = max(εl(v6), ε(v3) – ,
) = max(15, 17 – 11, 11) = 15;
|
|
εu(v6) = min(εu(v6), ε(v3) + ) = min(19, 17 + 11) = 19.
Из рассмотрения при этом исключаются вершины v3 и v5, так как εl(v3) = εu(v3) и εl(v5) = du/2. Матрица границ эксцентриситетов принимает вид
v1 | v2 | v3 | v4 | v5 | v6 | |
εl | 17 | 10 | 17 | 17 | 17 | 15 |
εu | 17 | 24 | 17 | 34 | 28 | 19 |
Теперь рассматриваем вершину v4. Эксцентриситет вершины v4 не изменяет значений нижней и верхней границ диаметра: dl = max(dl, ε(v4)) = (17, 17)=17, du = min(du, 2∙ε(v4)) = (34, 34) = 34. Уточняем нижние и верхние границы эксцентриситетов не исключенных вершин:
εl(v2) = max(εl(v2), ε(v4) – ,
) = max(10, 17 – 15, 15) = 15;
εu(v2) = min(εu(v2), ε(v4) + ) = min(24, 17+15) = 24;
εl(v6) = max(εl(v6), ε(v4) – ,
) = max(15, 17 – 15, 15) = 15;
εu(v6) = min(εu(v6), ε(v4) + ) = min(19, 17 + 15) = 19.
Ни одна из оставшихся вершин не исключаются из рассмотрения. Матрица границ эксцентриситетов принимает вид
v1 | v2 | v3 | v4 | v5 | v6 | |
εl | 17 | 15 | 17 | 17 | 17 | 15 |
εu | 17 | 24 | 17 | 34 | 28 | 19 |
Далее рассматриваем вершину v5. Значение нижней границы диаметра изменяется: dl = max(dl, ε(v5)) = (17, 18) = 18, а верхней – нет: du = min(du, 2∙ε(v5)) = (34, 36) = 34. Уточняем нижние и верхние границы эксцентриситетов неисключенных вершин:
εl(v2) = max(εl(v2), ε(v5) – ,
) = max(15, 17 – 18, 18) = 18;
εu(v2) = min(εu(v2), ε(v5) + ) = min(24, 17 + 18) = 24;
εl(v6) = max(εl(v6), ε(v5) – , ) = max(15, 17 – 9, 9) = 15;
|
|
εu(v6) = min(εu(v6), ε(v5) + ) = min(19, 17 + 9) = 19.
Из рассмотрения при этом исключается вершина v2, так как 18 = εl(v2) > du/2 = 17. Матрица границ эксцентриситетов принимает вид
v1 | v2 | v3 | v4 | v5 | v6 | |
εl | 17 | 18 | 17 | 17 | 17 | 15 |
εu | 17 | 24 | 17 | 34 | 28 | 19 |
Дата добавления: 2021-02-10; просмотров: 72; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!